1、2019/6/23,1,需求建模,需求建模方法 结构化分析方法 面向数据流的分析方法面向数据的分析方法 面向对象的分析方法,2019/6/23,2,需求建模,需求建模方法的组成一组语言机制供需求分析人员表达用户需求、构造软件模型。规则和经验 指导分析人员提取需求并使用户需求精确化、全面化、一致化。,2019/6/23,3,结构化分析方法,六十年代未、七十年代初结构化设计盛行,结构化分析以结构化设计附产品的身份出现。 七十年代未期 Douglas Ross提出结构化分析的术语DeMarcoDEM79 进行推广,给出分析员可以创建信息流模型的主要图形记号,建议将“数据字典”和“处理说明”作为信息流
2、模型的补充,並提供方法应用的实例;,2019/6/23,4,结构化分析方法,八十年代初期Page-JonesPAG80,GaneGAN82等人提出结构化分析方法的一些变种,用于信息系统的开发; 八十年代中期 Ward、MellorWAR85、Hatiy和PirbhaiHAT87对结构化分析进行扩充支持实时、控制和嵌入式系统的开发; Harel Pnueli研制了面向复杂实时反应式系统(Complex Real-time Reactive System)的开发环境 STATEMATE。,2019/6/23,5,第五章 面向数据流的分析方法,1 数据流图与数据字典 2 实体一关系图 数据对象、属性
3、与关系实体一关系图 3 基于数据流的分析方法创建数据流模型 创建控制流模型创建过程规格说明,2019/6/23,6,结构化的分析模型,第五章 面向数据流的分析方法,2019/6/23,7,结构化的分析模型,核心 数据字典 描述软件工程项目的所有数据对象 中间层 实体-关系图、数据流图、状态-变迁图实体-关系图 描述数据对象之间的关系数据流图 功能建模的基础系统或子系统对数据实施的变换、变换的功能提供信息分析的信息状态-变迁图 行为建模的基础系统的行为模式(称“状态”)以及状态变迁的方式,第五章 面向数据流的分析方法,2019/6/23,8,结构化的分析模型,最外层 数据对象描述、加工规格说明P
4、SPEC、控制规格说明CSPEC 数据对象 表示实体-关系图中每个数据对象的属性 加工规格说明PSPEC 描述数据流图的每个功能。 控制规格说明CSPEC 描述软件控制的附加信息,第五章 面向数据流的分析方法,2019/6/23,9,5.1 数据流图与数据字典,基于计算机的信息处理系统由数据流和一系列的加工构成,这些加工将输入数据流加工为输出数据流 数据流图描述数据流和加工 数据流图用图形符号表示数据流、加工、数据源及外部实体 数据流图具有层次结构,支持问题分解、逐步求精的分析方法,第五章 面向数据流的分析方法,2019/6/23,10,数据流图标记,5.1数据流图与数据字典,2019/6/2
5、3,11,顶层数据流图,随着需求分析活动的深入,较高抽象级别的复杂加工逐步精化为一系列相互关联的数据流和子加工。,5.1数据流图与数据字典,2019/6/23,12,数据流图的精化与平衡,逐层精化必须保持数据流图的平衡数据流与加工精化必须保持一致需求分析活动只求对问题全面、清晰的理解,不考虑软件设计细节,5.1数据流图与数据字典,2019/6/23,13,数据字典,定义数据字典由数据条目组成,数据字典描述、组织和管理数据流图的数据流、加工、数据源及外部实体。数据字典用简洁、清晰、易理解的文字描述条目,说明数据流图的加工功能、性能、要求及设计约束等。 数据流图与数据字典配套使用,完整地描述软件需
6、求。,5.1数据流图与数据字典,2019/6/23,14,数据字典的数据条目,内容 (1)名称与别名 数据流、数据源或外部实体的标识; (2)数据类型; (3)何处使用如何使用 输入流输出流的加工表; (4)内容描述; (5)补充说明如,取值范围与缺省值,有关的设计约束等。,5.1数据流图与数据字典,2019/6/23,15,数据字典 定义数据条目,原则精确、简洁,容易理解。 例 用形式语言的语法定义机制描述数据条目 由构成 、的顺序连接 、的选择连接 An (=) 个的重复连接 ( ) 可选的数据 原子语法成分用简明的自然语言描述,5.1数据流图与数据字典,2019/6/23,16,“家庭保
7、安系统电话号码”的数据条目定义,电话号码分机号外线号码 分机号12 外线号码(市话号码长话号码) 长话号码(区号市话号码) 区号任何长度为3的数字串 市话号码局号分局号 局号444552 分局号=任何长度为4的数字串,5.1数据流图与数据字典,2019/6/23,17,5.2 实体关系图,需求分析的重要任务是,对复杂的数据及数据关系进行分析、建模。实体关系图是数据模型的基础,它描述数据对象、属性、及其关系。,第五章 面向数据流的分析方法,2019/6/23,18,5.2.1 数据对象、属性与关系,数据对象 数据属性 数据关系 数据对象、属性与关系,5.2实体-关系图,2019/6/23,19,
8、1 数据对象,数据对象 现实世界具有不同特征和属性的实体或事务的标识,计算机软件描述并处理的一组信息。如,事件、行为、角色、组织、地点、结构等。数据对象只封装数据,包括:数据流、数据源、外部实体的数据部分,不封装操作。数据对象是相互关联的。,5.2实体-关系图,2019/6/23,20,2 数据对象的属性,属性用“标识符、符号串和值”标识,描述数据对象的性质。包括: (1)命名 标识数据对象 (2)描述 描述数据对象的性质 (3)引用 建立数据对象之间的联系数据对象的属性是原子数据项,不包含内部数据结构。 数据对象的任何属性有且仅有一个属性值。 现实世界的实体具有许多属性,分析人员只能考虑与应
9、用问题有关的属性。,5.2实体-关系图,2019/6/23,21,数据对象描述,例汽车销售管理问题的数据对象描述表.汽车属性制造商 型号标识码 车体类型颜色 买主,5.2实体-关系图,2019/6/23,22,3 数据对象的关系,关系 数据对象按照某种关系相互连接 用对象关系偶描述数据对象 关系的命名及内涵应反映描述的问题 删除与问题无关的关系,5.2实体-关系图,2019/6/23,23,4 数据对象、属性与关系,数据对象、属性和关系 问题的数据对象与其它数据对象存在各种形式的关联。 数据模型研究,数据对象、数据对象的属性、数据对象之间的关系。 基于数据的对象、属性与关系构成应用问题数据模型
10、的基本要素。,5.2实体-关系图,2019/6/23,24,数据对象、属性与关系,例汽车销售问题的数据对象、属性与关系 数据对象 数据对象 关系制造商 汽车 生产 购车用户 汽车 购买,5.2实体-关系图,2019/6/23,25,5.2.2 实体关系图,数据对象的描述用基数和形态两个参数实体关系图描述系统所有数据对象的组成和属性,描述数据对象之间关系的图形语言。,5.2实体-关系图,2019/6/23,26,1 数据对象的基数和形态,基数 cardinality一对象与另一对象关联个数的度量。取值 “一对一”(1:1)一个对象A关联一个对象B,反之,一个对象B关联一个对象A。如,夫妻。 “一
11、对多”(1:N)一个对象A关联多个对象B,反之,一个对象B关联一个对象A。如,父子。 “多对多”(N:M)一个对象A关联多个对象B,反之,一个对象B关联多个对象A。如,叔侄。,5.2实体-关系图,2019/6/23,27,数据对象的基数和形态,形态 modality数据对象与某一“关系”关联程度的度量。取值 0、1、多。“数据对象” 与 “关系” “关系的形态”无关可选 0出现一次 1出现多次 “多”,5.2实体-关系图,2019/6/23,28,2 实体关系图,实体关系图 标识系统输入/输出的数据对象 定义对象的属性 描述对象间的关系,5.2实体-关系图,2019/6/23,29,实体关系图
12、 实例 汽车制造商与运输商的运货合同,数据对象 长方形表示 关系 菱形表示数据对象有基数和形态两个参数。 基数 关系线上离距形近的符号 形态 关系线上离距形远的符号,5.2实体-关系图,2019/6/23,30,例 汽车的层次表示,用实体关系图表示数据对象的层次结构及部分整体关系,5.2实体-关系图,2019/6/23,31,例 汽车的部分整体关系,5.2实体-关系图,2019/6/23,32,结构化分析 创建实体-关系图,过程(1)客户列出业务过程中的事物,它对应一组输入/输出数据对象,及生产/消费信息的外部实体(2)系统分析员和客户逐个定义对象及对象间的连接(3)根据对象间的连接标识对象-
13、关系偶(4)确定对象-关系偶的基数和形态(5)重复(2)-(4)直至创建所有的对象-关系偶(6)描述实体属性(7)复审实体-关系图(8)重复(1)-(7)完成数据建模,5.2实体-关系图,2019/6/23,33,5.3 基于数据流的分析方法,数据建模的基本元素是,数据对象、属性和关系。 创建数据流模型 创建控制流模型 过程规格说明 例 “家庭保安系统”,第五章 面向数据流的分析方法,2019/6/23,34,5.4.1 创建数据流模型,数据流图是目标软件系统中各个处理子功能以及它们之间的数据流动的图形表示。 数据流图的精化过程是处理子功能和数据流的细化过程。随着这一过程的进行,用户需求逐步精
14、确化、一致化、完全化。,5.4基于数据流的分析方法,2019/6/23,35,创建用户需求数据流模型应遵循的规则,(1)首先建立顶级数据流图 顶级数据流图只有一个代表目标软件系统的功能加工 根据软件系统与外部环境的关系确定顶级数据流图的外部实体以及它们与软件系统之间的数据流。 “家庭保安系统”0级数据流图,5.4基于数据流的分析方法,2019/6/23,36,“家庭保安系统”1级数据流图,2)对用户需求的文字描述进行语法分析 名词和名词短语构成潜在的外部实体 数据源或数据流、动词构成潜在的处理功能。 结合分析人员对问题域和用户需求的理解,确定软件系统的主要功能以及它们之间的数据流。,5.4基于
15、数据流的分析方法,2019/6/23,37,创建用户需求数据流模型应遵循的规则,(3)功能分解 按照“强内聚、松藕合”原则,对处理功能进行精化; 对数据流进行精化,针对被精化的处理功能生成下一级数据流图。 数据流精化的意义 数据流的内容及各项特征将逐步彰现,所以要将其作为数据字典的一个条目,并不断精化、调整内容。 在父数据流图中的复合数据项可被分解为子数据项,这种数据流分解并不违背平衡准则。 如,如果将图5.16中的“启动停止系统”功能分解为“启动系统”和“停止系统”,那么“启动停止命令”应相应地精化为“启动命令”和“停止命令”。,5.4基于数据流的分析方法,2019/6/23,38,“家庭保
16、安系统”2级数据流图,(4)在精化过程中必须维持各级数据流图的平衡。 ()精化过程应适可而止,避免涉及软件设计细节。某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解。,5.4基于数据流的分析方法,2019/6/23,39,小结,结构化分析是广泛使用的需求建模方法,数据建模和数据流建模为分析模型奠定基础。 本章介绍了数据流图、数据字典和实体关系图的基本概念,讨论了在数据流图中引进实时系统需求分析机制的两种扩充方法。 利用实体-关系图可以表示系统中全部重要的数据对象。 基于数据流图进行需求分析的过程为:创建数据流模型、创建控制流模型、针对原子级处理功能给出过程规格说明。 维持数据流图的层间平衡是保证需求模型一致性的一条重要规则。,第五章 面向数据流的分析方法,