结构化分析(Structural Analysis,SA)是由美国Yourdon公司提出的适用于分析典型数据处理系统的,以结构化的方式进行系统定义的分析方法。这个方法通常与L.Constantine 提出的结构化设计(Structural Design,SD)方法衔接起来使用,即所谓的 SA/SD 方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。SA/SD 方法首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(Structural Programming,SP)。结构化分析(SA)方法最初由Douglas Ross提出,由DeMarco推广,由Ward、Mellor及后来的Hatley、Pirbhai扩充,形成了今天的结构化分析方法的框架。结构化分析方法是一种建模技术,它建立的分析模型,如图2.6所示。
图2.6 分析模型的结构
这种分析模型必须达3个主要目标:
(1)描述用户要求。
(2)建立软件设计的基础。
(3)定义软件开发完成时,必须确认的需求集合。
该模型的核心是数据词典,它描述了所有在目标系统中使用的和生成的数据对象。围绕这个核心有 3 种图:实体—关系图(Entity Relationship Diagram,ERD)描述数据对象及数据对象之间的关系;数据流程图(DFD)描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能);状态—迁移图(State Transference Diagram,STD)描述系统对外部事件如何响应、如何动作。
因此,ERD用于数据建模,DFD用于功能建模,STD用于行为建模。