【从零开始学习计算机科学】软件工程(四)结构化需求分析 与 面向对象需求分析

发布于:2025-03-17 ⋅ 阅读:(10) ⋅ 点赞:(0)

结构化需求分析

结构化分析(SA,Structured Analysis)方法是20世纪70年代,由E.Yourdon等人倡导的一种适用于大型数据处理系统的、面向数据流的需求分析方法。
其将待解决的问题看作一个系统,从而用系统科学的思想方法(抽象、分解、模块化)来分析和解决问题。
系统模型从以下不同的角度表述系统:
从外部来看,它是对系统分析上下文或系统环境建模;
从行为上看,它是对系统行为建模;
从结构上看,它是对系统的体系结构和系统处理的数据结构建模。
结构化需求分析起源于结构化程序设计语言(事先设计好每一个具体的功能模块,然后将这些设计好的模块组装成一个软件系统)。

在结构化方法中,需求可以通过数据流图描述。结构化分析又称数据流法,其基本策略是跟踪数据流,即研究问题域中数据如何流动,以及在各个环节上进行何种处理,从而发现数据流和加工。得到的分析模型是数据流图(DFD),主要模型元素是数据流、加工、文件及端点,外加处理说明和数据字典。

结构化分析模型——三视点模型(3VM)
根据结构化分析准则,系统分析模型由以下部分构成:

数据模型

利用实体关系图表现系统数据域的数据对象及相互关系。系统建模的一个重要方面就是要定义系统处理数据的逻辑结构。最广泛采用的数据建模技术是实体-关系模型,它描述数据实体、关联及实体属性。实体关系模型可用ERD(Entity-Relationships Diagram实体关系图)来表示。

E-R图

1976年,P.P.S.Chen提出E-R模型,用E-R图来描述概念模型。其核心观点是世界是由一组称作实体(entities)的基本对象和这些对象之间的联系(relationships)构成的。

E-R 图的地位:数据分析、描述的工具;数据分析、描述以E-R图为主;需要其它文档辅助。
E-R图的作用是帮助澄清用户数据需求;分析员和用户对数据需求达成高度一致;数据逻辑模型设计的基础。
E-R图的要求和评价标准是清晰、易懂、完整、精确、无二义。

E-R图中的对象:

  • 实体(Entity)。客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。
  • 实体型(Entity Type)。用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
  • 实体集(Entity Set)。同型实体的集合称为实体集。
  • 属性(Attribute)。实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
  • 域(Domain)。属性的取值范围称为该属性的域。
  • 码。唯一标识实体的属性集称为码。
  • 联系。指实体类型之间的联系例如,教师教学生,“教”就是实体类型“教师”和“学生”之间的联系。联系也可以有属性,例如,学生实体与课程实体之间的联系“选课”,可以有属性学号、课程号、成绩等。

在ER图(E-R Diagram)中,基本的图形元素有3个:实体用矩形框表示,实体之间的联系用菱形框表示,属性用椭圆形框(或圆形框)表示,并用无向边将其与相应的实体连接起来。
实体之间的联系也称基数比约束,是对参与联系的实体的一种约束。一个联系的基数(Cardinality)是指,对应于该联系的另一方的实体集的单个实体,本实体集的实体的数量。

ER模型支持的实体之间的一对一、一对多、多对多的联系。

联系的分类:

  • 一对一联系(1:1) 。如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1。
  • 一对多联系(1:n)。如果对于实体集A中的每一个实体,实体集B中有n个实体(n$\geq$0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。
  • 多对多联系(m:n)。如果对于实体集A中的每一个实体,实体集B中有n个实体(n$\geq 0 )与之联系,反之,对于实体集 B 中的每一个实体,实体集 A 中也有 m 个实体( m 0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m 0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m\geq$0)与之联系,则称实体集A与实体B具有多对多联系。记为m:n。

基于E-R图的建模过程

在建立ER模型中,首先确定实体集合,然后确定联系集合,最后给出实体和联系的属性。

下面的一些启发性规则可以帮助确定实体:对于汇集和维护企业组织的数据有重要意义的、确定的、可以标识的对象可以指定为实体;每个实质性的确定的对象,如人员、位置、事物等可指定为实体;抽象概念如部门或通信干线等可指定为实体;在由唯一的术语标识的环境中的非实质性的概念,也可指定为实体,例如信用货款备忘录中的信用度,可作为一个实体。

功能模型

利用数据流图表现系统功能域的功能结构和协作关系。
数据流图将系统看作由数据流联系起来的各种功能的组合。通