设计一个复杂的软件系统需要清晰地了解数据的流动方式以及数据的存储位置。如果没有结构化的方法,系统架构可能会变得脆弱、难以维护,并容易出现逻辑错误。系统工程中最基础的两种建模技术是数据流图(DFD)和实体关系图(ERD)。尽管两者都具有关键的可视化功能,但它们关注的是系统中截然不同的方面。 理解这两种模型之间的区别不仅仅是一个学术上的练习;对于系统架构师、业务分析师和开发人员来说,这是实际的必要需求。在开发的错误阶段使用错误的模型,可能导致沟通失误、数据库效率低下或业务逻辑断裂。本指南探讨了每种图表类型的细微差别、其特定组成部分,以及在何种战略场景下一种模型应优先于另一种。 理解数据流图(DFD) 🔄 数据流图关注的是数据在系统中的流动。它可视化信息如何被处理、转换和存储。DFD不关心物理实现细节或过程的时间安排,而是提供信息逻辑流动的高层次视图。 DFD的核心组成部分 外部实体: 这些代表系统边界之外的数据来源或目的地。它们可以是用户、其他系统或组织。它们发起或接收数据,但在本特定模型的上下文中不对其进行处理。 处理过程: 以圆角矩形表示,这些是将输入数据转换为输出数据的活动。一个处理过程会改变通过它的信息的状态或形式。每个处理过程都必须至少有一个输入和一个输出,这一点至关重要。 数据存储: 这些是用于后续使用的数据存储库。在DFD中,它们代表文件、数据库或归档。它们并不暗示特定技术,而只是表示持久存储的存在。 数据流: 以箭头表示,这些显示了数据移动的方向。每个数据流都应标注正在传输的数据包名称。数据流连接实体、处理过程和存储。 抽象层次 DFD通常以分层方式创建,以管理复杂性: 上下文图(第0层): 这是最高层次的视图。它将整个系统视为一个单一的处理过程,并标识出与之交互的所有外部实体。它清晰地定义了系统的边界。 第1层图: 它将上下文图中的单一过程分解为多个主要子过程。它更详细地展示了系统如何内部处理数据,而不会陷入逻辑细节中。 第2层及更高层: 这些图表将第1层中的特定过程进一步分解为更详细的层次。这一层级通常用于复杂模块,其中需要对特定的数据转换进行严格定义。 何时应用DFD DFD在需求收集和功能设计阶段最为有效。它们帮助利益相关者在不被技术限制干扰的情况下,可视化系统的运行行为。它们特别适用于: 识别缺失的数据需求。 向非技术利益相关者传达业务流程。










