第四章 需求分析过程

96
第第第 第第第第第第 第第第第第第 第第第第第第

Upload: amaya-goodwin

Post on 03-Jan-2016

162 views

Category:

Documents


3 download

DESCRIPTION

第四章 需求分析过程. 需求分析基础 需求分析建模. 4.1 需求分析基础 . 软件需求 用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 需求分析阶段的任务 通过对问题及环境的理解、分析,将用户需求精确化、完全化,最终形成需求规格说明,描述系统信息、功能和行为。 技术和方法 初步需求获取技术 需求建模技术 快速原型技术 问题抽象、问题分解与多视点分析. 软件需求分析产品. 用户需求 (系统分析的产品) 系统需求 软件需求规格说明(软件设计描述) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第四章  需求分析过程

第四章 需求分析过程

需求分析基础

需求分析建模

Page 2: 第四章  需求分析过程

软件需求 用户对目标软件系统在功能、行为、性能、设计约

束等方面的期望。

需求分析阶段的任务通过对问题及环境的理解、分析,将用户需求精

确化、完全化,最终形成需求规格说明,描述系统信息、功能和行为。

技术和方法 初步需求获取技术 需求建模技术 快速原型技术 问题抽象、问题分解与多视点分析

4.1 需求分析基础

Page 3: 第四章  需求分析过程

软件需求分析产品

用户需求 (系统分析的产品) 系统需求 软件需求规格说明(软件设计描述)

需求规格说明是软件设计、实现、测试、维护的基础。

Page 4: 第四章  需求分析过程

用户需求、系统需求和软件设计描述

用户需求用自然语言和图表描述说明系统必须提供哪些服务、系统运行要受哪些约束系统需求详细说明系统将要提供的服务以及系统受到的约束精确的描述软件的功能系统买方和软件开发者签订合同的重要内容软件设计描述在系统需求的基础上,加入更详细的内容,构成软件设计

活动的概要描述,是软件设计和实现的基础

Page 5: 第四章  需求分析过程

4.1.1 需求分析三个主要阶段

问题分析

需求描述

需求评审

Page 6: 第四章  需求分析过程

1 问题分析

建立问题分析系统模型。从不同的角度、不同的抽象级别精确地说明对问题的理解、对目标软件的需求。

模型应帮助用户和分析人员发现、排除用户需求不一致,不合理的部分,挖掘潜在的用户需求。

模型是分析人员根据问题创建的软件系统结构,包括与问题和环境相关的信息流、处理功能、用户界面、行为及设计约束。

模型是形成需求规格说明、进行软件设计的基础。

Page 7: 第四章  需求分析过程

2 需求描述

以需求模型为基础,考虑软件问题的可解性,生成需求规格说明和初步的用户手册。

需求规格说明包含对目标软件系统的外部行为的完整描述、需求验证标准以及用户在性能、质量、可维护性等方面的要求。

用户手册包括用户界面描述以及有关目标软件使用方法的初步构想。

Page 8: 第四章  需求分析过程

3 需求评审

对需求规格说明和初步的用户手册进行评审,确保软件需求的完全性、精确性和一致性,并使用户和软件设计人员对需求规格说明及用户手册的理解达成一致。

确认后的需求规格说明应成为用户方与软件开发方合同的一部分。

Page 9: 第四章  需求分析过程

4.1.2 初步需求获取技术 1 访谈与会议

分析人员应精心准备问题,通过用户对问题的回答,逐步理解用户对目标软件的要求。

(1) 循序渐进 首先关心一般性、整体性问题,然后再讨论细节问

题。 (2) 客观、公正 不应限制用户在回答问题过程中自由发挥。 (3) 总结 问题汇总后应能反映软件或其子系统的全貌,能覆

盖用户对目标软件或其子系统在功能、行为、性能诸方面的要求。

细节问题留待以后解决。

Page 10: 第四章  需求分析过程

2 考察用户软件或其子系统业务流程

学习用户的有关业务知识,在用户帮助下了解用户的软件或子系统业务流程,结合软件开发和应用的经验提出新的用户需求。

3 联合小组

建立软件开发方和用户方共同组成的联合小组,小组成员对分析负有相同的责任。联合小组要制定自己的工作制度和计划,确定专门的记录员,另设专人负责会议的议程和资料的综合、整理。选择易于理解、比较简洁、精确的表示机制作为描述语言,如辅以文字说明的流程图。

Page 11: 第四章  需求分析过程

实例分析 家庭保安系统

问题描述: 家庭保安市场正以每年 40% 的速度增长。希

望建立一种基于微处理器的家庭保安系统,它能够识别异常事件并采取相应的防护措施。这些异常事件包括:非法侵入、火灾、水淹等。一旦异常情况被传感器探测出来,系统应自动通过电话向监控中心报警。此外,应允许户主对系统行为进行程序控制。

Page 12: 第四章  需求分析过程

联合小组首先制定工作制度 ,明确议程。 经过会议讨论,明确问题的范围、问题与环境的关系,并就开发软件产品的必要性达成共识。

列出问题及环境中的有关对象,操作以及对象间的相互作用。

对象 : 控制面板、电话机、监控中心、烟雾传感器、门窗监视器、警报器等

操作 : 接收传感器事件、用户编程控制、电话拔号、报警等。

分析初期联合小组的工作程序

Page 13: 第四章  需求分析过程

对接收传感器事件、用户编程控制、电话报警等操作进行详细的描述,可用流程图表示。

提出约束,比如:造价不能超过 3, 000元,对传感器事件必须在 1秒内作出响应,事件必须按优先级进行处理等。

会后小组负责人对这些信息进行综合、整理,形成文档,该文档应能反映“家庭保安系统”的全貌。

Page 14: 第四章  需求分析过程

划分小组,分别处理用户编程控制和传感器监测两个子系统。目的是对子系统的软件需求进行细化。对出现的新对象、新操作、新约束应及时添加到相应的子系统。

确定子系统需求并形成文档 讨论子系统的集成及需求验证标准。初步分析活

动应形成结论性文档,该文档将作为后续分析活动的基础。

划分小组完成需求

Page 15: 第四章  需求分析过程

初步分析生成的“家庭保安系统”部分需求文档 “家庭保安系统”的软件允许用户在安装时进行系

统配置,实施对传感器的监控并通过控制面板与用户进行信息交互。

配置操作(1)指定每一传感器的种类和编号;(2) 设置开、关机密码;(3)指定报警电话号码;(4)指定报警延迟和电话重拔延迟时间 ( 以秒为单位 ) 。

Page 16: 第四章  需求分析过程

当软件系统接收到传感器发出的数据后,判别是否出现异常事件。如果是,则在指定的延迟时间内拔报警电话号码,拔号操作将按照重拔延迟反复进行,直至电话接通。然后软件系统负责报告时间、地点和异常事件的性质。

开机后软件系统负责显示当前工作状态,接收并处理用户指令。

Page 17: 第四章  需求分析过程

4.1.3 需求建模

建立软件模型是分析活动的关键。 目标软件系统的模型用来刻划系统所涉及

的信息、处理功能及系统运行时的外部行为。

模型不应涉及软件实现细节。选择图形符号表示信息流、处理功能及系

统行为,以此来描述软件需求模型。

Page 18: 第四章  需求分析过程

4.1.4 分析问题的方法抽象 关注一般问题的解决途径,以此指导特殊问题的

求解。注意用户描述的抽象级别,统一规划系统行为。

避免不一致性,减少分析的工作量。分解 根据问题的规模和复杂性进行分解,并对子问

题展开进一步的分析。 逐级分解,直至子问题的规模降至合适程度。 在问题分解过程中,要建立子问题之间的相互联

系。 必须遵循子问题内部紧藕合,子问题之间松藕合

的原则。

Page 19: 第四章  需求分析过程

视点分解法 在分析的初期,整体地把握一个大型问题的软

件需求是困难的。需要从各个角度分别对问题进行理解和分析,然后再综合,达到全面理解的目

需求分析视点 系统观点 用户观点 信息观点 功能观点 行为观点等。 整理、综合用户描述,应注意用户视点的变化,避免遗漏。

Page 20: 第四章  需求分析过程

4 .1.5 支持需求分析的快速原型技术

软件开发早期,快速建立目标软件系统原型,让用户对原型进行评估并提出意见。原型几经改进最终确定,设计和编码人员遵循原型确立的外部特征实现软件产品。

如果软件产品含有大量人机交互、可视输出、或者涉及复杂的算法,应采用快速原型技术。

对于复杂问题 , 可对某些子问题,尤其是用户界面,使用快速原型技术。

Page 21: 第四章  需求分析过程

4.1.6 需求规格说明与评审

产生需求规格说明并进行评审。

需求规格说明应成为开发过程必须遵循的指导原则。

Page 22: 第四章  需求分析过程

需求规格说明

1 引言

1.1 需求规格说明的目的

1.2 软件产品的作用范围

1.3定义、同义词与缩写

1.4参考文献

1.5 需求规格说明概览2 一般性描述

2.1 产品与其环境之间的关系 2.2 产品功能

2.3 用户特征

2.4 限制与约束

2.5假设与前提条件

3 特殊需求

附录

索引

Page 23: 第四章  需求分析过程

需求规格说明 -- 特殊需求描述

3特殊需求  3.1 功能或行为需求  3.1.1 功能或行为需求 1 3.1.1.1引言 3.1.1.2输入 3.1.1.3 处理过程描述 3.1.1.4输出 3.1.2 功能或行为需求 2…

3.1.n 功能或行为需求 n 3.2 外部界面需求 3.2.1 用户界面 3.2.2硬件界面 3.2.3 软件界面

3.3 性能需求 3.4 设计约束 3.4.1 标准化约束 3.4.2硬件约束… 3.5属性 3.5.1 可用性 3.5.2安全性 3.5.3 可维护性 3.5.4 可移植性… 3.6 其它需求 3.6.1数据库需求 3.6.2 用户操作需求 3.6.3工作场地需求

Page 24: 第四章  需求分析过程

需求评审

需求规格说明进入设计阶段之前,必须进行评审。如果发现错误或缺陷,应及时纠正或更改需求分析、模型,需求规格说明,并重新评审。

衡量需求规格说明的标准 正确性 无歧义性 完全性 可验证性 一致性 可理解性 可修改性 可追踪性

Page 25: 第四章  需求分析过程

4.2 需求分析建模

需求分析方法 结构化分析方法 面向对象的分析方法需求分析模型 数据建模 功能建模 行为建模

Page 26: 第四章  需求分析过程

4.2.1 需求分析方法

六十年代未、七十年代初结构化设计盛行,结构化分析以结构化设计附产品的身份出现。

七十年代未期 Douglas Ross 提出结构化分析的术语

DeMarco[DEM79] 进行推广,给出分析员可以创建信息流模型的主要图形记号,建议将“数据字典”和“处理说明”作为信息流模型的补充,並提供方法应用的实例;

结构化分析方法

Page 27: 第四章  需求分析过程

结构化分析方法 八十年代初期 Page-Jones[PAG80],Gane[GAN82]

等人提出结构化分析方法的一些变种,用于信息系统的开发;

八十年代中期 Ward、Mellor[WAR85]、 Hatiy和 Pirbhai[HAT87] 对结构化分析进行扩充支持实时、控制和嵌入式系统的开发 ;

Harel & Pnueli研制了面向复杂实时反应式系统(Complex Real-time Reactive System) 的 开 发环境 STATEMATE 。

Page 28: 第四章  需求分析过程

4.2.2 需求分析模型

结构化分析模型

实体关系图数据字典

CSPEC控制規约

-实体 关系图 数据流图

-状态 变迁图

Page 29: 第四章  需求分析过程

核心 数据字典 描述软件工程项目的所有数据对象中间层 实体 - 关系图、数据流图、状态 -变迁图 实体 - 关系图 描述数据对象之间的关系 数据流图 功能建模的基础 系统或子系统对数据实施的变换、变换的功能 提供信息分析的信息 状态 -变迁图 行为建模的基础 系统的行为模式(称“状态”)以及状态变迁的方式

4.2.2.1 结构化分析模型

Page 30: 第四章  需求分析过程

结构化的分析模型

最外层数据对象描述、加工规格说明 PSPEC 、控制规格

说明 CSPEC

数据对象

表示实体 - 关系图中每个数据对象的属性加工规格说明 PSPEC

描述数据流图的每个功能。

控制规格说明 CSPEC

描述软件控制的附加信息

Page 31: 第四章  需求分析过程

4.2.2.2 数据建模

数据对象、属性和关系

实体一关系图

实体—关系图是数据模型的基础,它描述数据对象、属性、及其关系。

Page 32: 第四章  需求分析过程

1 数据对象、属性与关系

数据对象 数据属性 数据关系 数据对象、属性与关系

Page 33: 第四章  需求分析过程

数据对象 现实世界具有不同特征和属性的实体或事务的标

识,计算机软件描述并处理的一组信息。如,事件、行为、角色、组织、地点、结构等。

数据对象只封装数据,包括:数据流、数据源、外部实体的数据部分,不封装操作。

数据对象是相互关联的。

Page 34: 第四章  需求分析过程

属性 用“标识符、符号串和值”标识,描述数据对象的性质。包括:( 1 )命名 标识数据对象( 2 )描述 描述数据对象的性质

( 3 )引用 建立数据对象之间的联系

数据对象的属性是原子数据项,不包含内部数据结构。 数据对象的任何属性有且仅有一个属性值。 现实世界的实体具有许多属性,分析人员只能考虑与应用问

题有关的属性。

Page 35: 第四章  需求分析过程

数据对象描述

例 汽车销售管理问题的数据对象描述表 .

汽车属性 制造商 型号 标识码 车体类型 颜色 买主

Page 36: 第四章  需求分析过程

关系 数据对象按照某种关系相互连接 用对象-关系偶描述数据对象 关系的命名及内涵应反映描述的问题 删除与问题无关的关系

Page 37: 第四章  需求分析过程

数据对象、属性与关系

例 汽车销售问题的数据对象、属性与关系

数据对象属性 数据对象 关系 制造商 汽车 生产 购车用户 汽车 购买

Page 38: 第四章  需求分析过程

描述系统所有数据对象的组成和属性,描述数据对象之间关系的图形语言。 “一对一”( 1 : 1 ) 一个对象 A 关联一个对象 B, 反之,一个对象 B 关联一个对象 A 。如,夫妻。

“一对多”( 1 : N ) 一个对象 A 关联多个对象 B, 反之,一个对象 B 关联一个对象 A 。如,父子。

“多对多”( N :M ) 一个对象 A 关联多个对象 B, 反之,一个对象 B 关联多个对象 A 。如,叔侄。

2 实体—关系图 ( E-R 方法, Entity-Relationship Approach )

Page 39: 第四章  需求分析过程

教师

职称性别 职务

姓名 教工号

学生

性别姓名 系

学号 年级

课程

学时 学分课名课程号

成绩1

N M

N

教师 -学生 -课程 E-R 图

Page 40: 第四章  需求分析过程

人与车关系 E-R 图

年龄地址 驾驶证号

姓名

拥有车

ID号制造模型 实体类型

制造商 颜色

拥有者

N M

Page 41: 第四章  需求分析过程

制造商

ID

类型制造 车型

ID号

模型

实体类型

引擎

传输

N

N

合同 货主

运输

许可证

销售关系

货栈

N

N

N

1

1

1

N M

M

汽车业务销售的 E-R图

Page 42: 第四章  需求分析过程

汽车的部分—整体关系

用实体—

关系图表示数据对象的层次结构及部分—整体关系

Page 43: 第四章  需求分析过程

汽车的层次表示

Page 44: 第四章  需求分析过程

4.2.2.3 功能建模

数据流图与数据字典

数据流图的实时系统扩充

(1). Ward & Mellor扩充 (2). Hatley & Pirhai扩充

Page 45: 第四章  需求分析过程

1 数据流图与数据字典

基于计算机的信息处理系统由数据流和一系列的加工构成,这些加工将输入数据流加工为输出数据流

数据流图描述数据流和加工 数据流图用图形符号表示数据流、加工、数据源及外部实体

数据流图具有层次结构,支持问题分解、逐步求精的分析方法

它是数据驱动的数据流图既可以表示基于计算机的系统,也可以表示软件

Page 46: 第四章  需求分析过程

数据流图标记

Page 47: 第四章  需求分析过程

顶层数据流图

随着需求分析活动的深入,较高抽象级别的复杂加工逐步精化为一系列相互关联的数据流和子加工。

Page 48: 第四章  需求分析过程

数据流图的精化与平衡

逐层精化必须保持数据流图的平衡

数据流与加工精化必须保持一致

需求分析活动只求对问题全面、清晰的理解,不考虑软件设计细节

Page 49: 第四章  需求分析过程

例子例子 :: 商店商店业务处理系统业务处理系统

Page 50: 第四章  需求分析过程

第一层数据流图第一层数据流图

Page 51: 第四章  需求分析过程

加细每一个加工框加细每一个加工框 销售细化销售细化

Page 52: 第四章  需求分析过程

采购细化采购细化

Page 53: 第四章  需求分析过程

数据字典

定义 数据字典由数据条目组成,数据字典描述、组织

和管理数据流图的数据流、加工、数据源及外部实体。

数据字典用简洁、清晰、易理解的文字描述条目,说明数据流图的加工功能、性能、要求及设计约束等。

数据流图与数据字典配套使用,完整地描述软件需求。

Page 54: 第四章  需求分析过程

数据字典的数据条目

定义内容

( 1 )名称与别名 数据流、数据源或外部实体的标识;( 2 )数据类型;

( 3 )何处使用/如何使用 输入流/输出流的加工表;

( 4 )内容描述;

( 5 )补充说明 如,取值范围与缺省值,有关的设计约束等。

Page 55: 第四章  需求分析过程

(( 11)数据流词条描述)数据流词条描述数据流名:数据流名:说明:简要介绍作用即它产生的原因说明:简要介绍作用即它产生的原因和结果和结果

数据流来源:来自何方数据流来源:来自何方数据流去向:去向何处数据流去向:去向何处数据流组成:数据结构数据流组成:数据结构数据量流通量:数据量,流通量数据量流通量:数据量,流通量

Page 56: 第四章  需求分析过程

(( 22)数据元素词条描述)数据元素词条描述数据元素名:数据元素名:类型:数字(离散值,连续值),类型:数字(离散值,连续值),文字(编码类型)文字(编码类型)

长度:长度:取值范围:取值范围:相关的数据元素及数据结构:相关的数据元素及数据结构:

Page 57: 第四章  需求分析过程

(( 33)数据文件词条描述)数据文件词条描述数据文件名:数据文件名:简述:存放的是什么数据简述:存放的是什么数据输入数据:输入数据:输出数据:输出数据:数据文件组成:数据结构数据文件组成:数据结构存储方式:顺序,直接,关键码存储方式:顺序,直接,关键码存取频率:存取频率:

Page 58: 第四章  需求分析过程

(( 44 )加工逻辑词条描述)加工逻辑词条描述

加工名:加工名:加工编号:反映该加工的层次加工编号:反映该加工的层次简要描述:加工逻辑及功能简述简要描述:加工逻辑及功能简述输入数据流:输入数据流:输出数据流:输出数据流:加工逻辑:简述加工程序,加工顺序加工逻辑:简述加工程序,加工顺序

Page 59: 第四章  需求分析过程

(( 55 ))源点及汇源点及汇 ((终终 ))点词条描述点词条描述

名称:外部实体名名称:外部实体名 简要描述:什么外部实体简要描述:什么外部实体 有关数据流:有关数据流: 数目:数目:

Page 60: 第四章  需求分析过程

数据字典的管理

大型软件项目的数据字典规模庞大,利用数据流分析的CASE工具对数据字典实施管理

( 1 )对新数据条目进行重名检查。

( 2 )维护数据字典和数据流图的一致性。( 3 )自动完成数据条目查询。 例如 : 该条目在何处使用? 修改数据流图会对哪些数据条目产生影响 ? 修改某个数据条目又会造成哪些影响?

Page 61: 第四章  需求分析过程

数据字典 定义数据条目原则 精确、简洁,容易理解。例 用形式语言的语法定义机制描述数据条目 ∷= 由………构成 A+B A、B的顺序连接 A|B A、B的选择连接 { A} n (n>=0) n个A的重复连接 ( ) 可选的数据 原子语法成分用简明的自然语言描述

Page 62: 第四章  需求分析过程

“家庭保安系统电话号码”的数据条目定义《电话号码 ∷》 =《分机号》|《外线号码》

《分机号 ∷》 =860 1 |860 2 |……|8699

《外线号码 ∷》 =9+ ( 《市话号码》|《长话号码》 )《长话号码 ∷》 =0+ (《区号》+《市话号码》 )《区号 ∷》 = 任何长度为 3 的数字串

《市话号码 ∷》 =《局号》+《分局号》

《局号 ∷》 = 4 55| 448|888| 552《分局号 ∷》 = 任何长度为 4 的数字串

Page 63: 第四章  需求分析过程

2 数据流图的实时系统扩充

实时系统 系统与现实世界实体交互具有时间特性。

数据流 时间连续的数据流 时间离散的数据流(控制信号或事件)

实时系统的状态随时间及相关事件的激励变化 。

Page 64: 第四章  需求分析过程

数据流图的实时系统扩充

实时系统响应事件的“加工”称“控制”,它在限定的时间内完成对事件的识别、输出,改变系统的状态。

实时系统软件对响应速度和可靠性的要求比非实时系

统软件高。

在软件开发的各个阶段都应关注实时控制部件的性能和可靠性。

Page 65: 第四章  需求分析过程

数据流图的实时系统扩充

传统数据流方法不能胜任实时系统的需求分析任务。为开发实时嵌入式系统,必须对传统方法进行扩充。

Ward & Mellor 在数据流图中引入实时图形记号 Hatley & Pirbhai 在数据流图中引进状态加工图描述系统的外部

行为

Page 66: 第四章  需求分析过程

实时嵌入式系统对软件的要求

在连续的时间域内采集並生成信息流 软件要及时处理控制信息 必须在規定的时间内完成与现实世界的交互 系统状态实时变化,存在状态迁移机制 多任务的场合,一个加工可能存在多个实例

Page 67: 第四章  需求分析过程

(1) Ward & Mellor扩充

符号的扩充 引入 表示事件 、连续数据 流 、控制 及事件源的 图 形符号。

引入 多 任 务 环 境 下 ,同 一控制 的 多 个 进程实例。

Page 68: 第四章  需求分析过程

Ward & Mellor扩充

计算机控制的水温监测与调节系统

水温测量仪传给温度监控子系统的测量数据是连续的。

温度监控子系统将水温数据与允许的波动范围进行比较,然后连续输出调节后的温度值。

Page 69: 第四章  需求分析过程

Ward & Mellor扩充

扩充的图形记号可以和传统的数据流图符号混合使用。

加工可接收事件作为输入,控制也可接收数据作为输入。

扩充数据字典,描述离散事件和连续数据流。 数据流图对控制的文字描述应包括响应时间、可靠性等约束。

Page 70: 第四章  需求分析过程

离散数据流 (事件 ) 与普通数据流

机器人装配机械部件 待装配部件处于就绪状态,“部件监控与操作员界面”过程读操作员命令

处理操作员命令,发送“启动信号”命令

“ 机器人 初始化 , 发送“进程活跃信号”启动“移位命令处理”完成装配工作。

Page 71: 第四章  需求分析过程

(2) Hatley & Pirhai扩充

建立实时系统的过程模型和控制模型

引进两个新的图形记号,用虚线表示控制流或事件流;

虚符号和实符号分开,专门定义控制流图CFD;

CFD定义控制流、表示控制加工並引入粗短线表示控制规格说明;

控制规格说明指明( 1 )当事件发生或控制信号被感知时,软

件的行为( 2 )当某一事件发生时,激活相关加工部

Page 72: 第四章  需求分析过程

Hatley & Pirhai扩充

传统的数据流图 描述实时系统的静态

过程模型 表示数据和数据的加工

数据流图的元素没有时间意义

控制流图 描述实时系统的动态

过程模型 表示事件在加工过程

中的变化, 控制流图的元素有时间意义

Page 73: 第四章  需求分析过程

Hatley & Pirhai扩充

实时系统或子系统的数据流图和控制流图具有同名“加工”

控制流图的“加工”称“进程” “加工激活表”指明加工导致必须激活的外部事

件 控制规格说明包括一系列的建模工具

Page 74: 第四章  需求分析过程

Hatley & Pirhai扩充 实时系统模型

Page 75: 第四章  需求分析过程

Hatley & Pirhai扩充 过程模型和控制模型

数据流图(过程模型)用来表示实时系统的数据以及对数据进行操作的过程

控制流图用来描述进程之间的控制流并刻画系统的行为特征:每个事件所引发的系统状态变更和进程活跃情况。

过程模型和控制模型以数据流图和控制流图之间的简单对应关系互为关联。

过程模型的过程规格说明可能产生事件输出,引发控制规格说明所描述的状态加工。

进程规格说明可以产生进程活跃信号,作用于数据流图。

Page 76: 第四章  需求分析过程

Hatley & Pirhai扩充 数据流图和控制流图的对应关系例 复印机控制软件的 数据流图和控制流图

Page 77: 第四章  需求分析过程

状态加工图

Page 78: 第四章  需求分析过程

进程活跃表

Page 79: 第四章  需求分析过程

4.2.2.4 行为建模

基于结构化分析的扩展版本提出这种建模的符号。状态 -变迁图通过描述状态以及导致系统改变状态的事件来表示系统的行为。每个状态代表系统的一种行为模式

Page 80: 第四章  需求分析过程

控制流图

Page 81: 第四章  需求分析过程

状态变迁图

Page 82: 第四章  需求分析过程

4.2.2.5 实例分析 --- 以“家庭保安系统”为例展示结构化分析方法的使用过程

实体 -关系图 创建数据流模型 创建控制流模型 过程规格说明

Page 83: 第四章  需求分析过程

0 实体 -关系图

步骤 :

列出应用或业务过程涉及的”事物” , 同时以数据对象的形式给出。 分析各对象及对象之间的关联,构件一个或多个对象 - 关系对。 给出各对象对的基数和形态。 迭代执行以上步骤,直到将所有的关系对分析完毕。 定义各对象实体的属性。 形式化并评审实体 - 关系图。 重复以上步骤,直到数据建模完成。

Page 84: 第四章  需求分析过程

家庭安防系统部分数据对象如下:

房主

控制面板 传感器

安全系统 监控服务

•房主•控制面板•传感器•安全系统•监控服务

对象连接图

Page 85: 第四章  需求分析过程

1 创建数据流模型

数据流图是目标软件系统中各个处理子功能以及它们之间的数据流动的图形表示。

数据流图的精化过程是处理子功能和数据流的细化过程。 随着这一过程的进行,用户需求逐步精确化、一致化、完

全化。 利用数据流图 DFD 开发信息域和功能域模型。 当 DFD 精化到较细级别时,分析员进行隐式功能分解,並导致相应数据的精化。

加工规格说明 PSPEC 描述输入信息、加工算法、产生输出结果,指明

加工的约束和限制、产品的性能特征和工作环境等。

Page 86: 第四章  需求分析过程

过程(1) 用一个园盘描述第 0层软件 / 系统的 DFD 图(2) 标记系统的输入 /输出(3) 精化 描述第 I层的数据对象、存储和加工

(4) 标记箭头和园盘(5) 对第 I层信息流进行一致性维护(6) 对加工园盘逐个进行精化(7) 当第 n层 DFD 图园盘己精化为容易实现的简单操作时,创建数据流模型的过程仃止。

Page 87: 第四章  需求分析过程

创建用户需求数据流模型应遵循的规则

( 1 )首先建立顶级数据流图

顶级数据流图只有一个代表目标软件系统的功能加工

根据软件系统与外部环境的关系确定顶级数据流图的外部实体以及它们与软件系统之间的数据流。

Page 88: 第四章  需求分析过程

“家庭保安系统” 1 级数据流图

(2 )对需求描述进行语法分析

名词和名词短语构 成 潜 在 的 外 部实体

数据源或数据 流 、动词构 成 潜 在 的处理功能。

结 合 分 析 人 员 对问 题域和 用 户 需求 的 理 解 , 确定软 件 系 统 的 主 要功 能 以 及它们之间的数据流。

Page 89: 第四章  需求分析过程

( 3 )功能分解按照“强内聚、松藕合”原则,对处理功能进行精化;对数据流进行精化,针对被精化的处理功能生成下一级数据

流图。数据流精化的意义 数据流的内容及各项特征将逐步彰现,所以要将其作为数

据字典的一个条目,并不断精化、调整内容。 在父数据流图中的复合数据项可被分解为子数据项,这种数据流分解并不违背平衡准则。

如,如果将图 5.16 中的“启动/停止系统”功能分解为“启动系统”和“停止系统”,那么“启动/停止命令”应相应地精化为“启动命令”和“停止命令”。

Page 90: 第四章  需求分析过程

“家庭保安系统” 2 级数据流图

( 4 )在精化过程中必须维持各级数据流图的平衡。

(5)精化过程应适可而止,避免涉及软件设计细节。

Page 91: 第四章  需求分析过程

2 创建控制流模型

实时嵌入式系统存在事件驱动机制,通过系统的加工产生控制信息。

系统对事件信息的加工必须在指定的时间内完成。 实时嵌入式系统的描述不仅需要数据流图,而且还需要控

制流图 CFD 。控制规格说明 用状态变迁图( STD )、加工激活表( PAT )描述系统

的行为。 状态变迁图是行为的“顺序规格说明” 加工激活表是行为的“组合规格说明”,它指明某一事件

发生时,流模型被激活的加工园盘。

Page 92: 第四章  需求分析过程

“家庭保安系统”控制流图

Page 93: 第四章  需求分析过程

“家庭保安系统”状态加工图

Page 94: 第四章  需求分析过程

过程(1) 列出系统的输入传感器(2) 列出系统的中断条件(3) 列出系统的操作开关(4) 列出数据条件(5) 考察加工中的动词和名词、考察控制规格说明

的数据项(6) 描述系统行为,标识状态和状态变迁(7) 关注可能的省略(如,是否还有其它的状态进

入或离开这个状态?)

Page 95: 第四章  需求分析过程

3 过程规格说明

对数据流图无须再分解的处理功能,可借助结构化的自然语言、 “程序设计的语言( PDL )”、数学方程、表、图或图表等工具进行描述。

必须为数据流流模型的每个加工园盘提供相应的加工过程规格说明。

Page 96: 第四章  需求分析过程

谢谢谢谢