四章需求分析过程.ppt

上传人:本田雅阁 文档编号:3210976 上传时间:2019-07-31 格式:PPT 页数:96 大小:1.88MB
返回 下载 相关 举报
四章需求分析过程.ppt_第1页
第1页 / 共96页
四章需求分析过程.ppt_第2页
第2页 / 共96页
四章需求分析过程.ppt_第3页
第3页 / 共96页
四章需求分析过程.ppt_第4页
第4页 / 共96页
四章需求分析过程.ppt_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《四章需求分析过程.ppt》由会员分享,可在线阅读,更多相关《四章需求分析过程.ppt(96页珍藏版)》请在三一文库上搜索。

1、第四章 需求分析过程,需求分析基础 需求分析建模,软件需求 用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 需求分析阶段的任务 通过对问题及环境的理解、分析,将用户需求精确化、完全化,最终形成需求规格说明,描述系统信息、功能和行为。 技术和方法 初步需求获取技术 需求建模技术 快速原型技术 问题抽象、问题分解与多视点分析,4.1 需求分析基础 ,软件需求分析产品,用户需求 (系统分析的产品) 系统需求 软件需求规格说明(软件设计描述) 需求规格说明是软件设计、实现、测试、维护的基础。,用户需求、系统需求和软件设计描述,用户需求 用自然语言和图表描述 说明系统必须提供哪些服务、系统

2、运行要受哪些约束 系统需求 详细说明系统将要提供的服务以及系统受到的约束 精确的描述软件的功能 系统买方和软件开发者签订合同的重要内容 软件设计描述 在系统需求的基础上,加入更详细的内容,构成软件设计活动的概要描述,是软件设计和实现的基础,4.1.1 需求分析三个主要阶段,问题分析 需求描述 需求评审 ,1 问题分析,建立问题分析系统模型。从不同的角度、不同的抽象级别精确地说明对问题的理解、对目标软件的需求。 模型应帮助用户和分析人员发现、排除用户需求不一致,不合理的部分,挖掘潜在的用户需求。 模型是分析人员根据问题创建的软件系统结构,包括与问题和环境相关的信息流、处理功能、用户界面、行为及设

3、计约束。 模型是形成需求规格说明、进行软件设计的基础。,2 需求描述,以需求模型为基础,考虑软件问题的可解性,生成需求规格说明和初步的用户手册。 需求规格说明包含对目标软件系统的外部行为的完整描述、需求验证标准以及用户在性能、质量、可维护性等方面的要求。 用户手册包括用户界面描述以及有关目标软件使用方法的初步构想。,3 需求评审,对需求规格说明和初步的用户手册进行评审,确保软件需求的完全性、精确性和一致性,并使用户和软件设计人员对需求规格说明及用户手册的理解达成一致。 确认后的需求规格说明应成为用户方与软件开发方合同的一部分。,4.1.2 初步需求获取技术 ,1 访谈与会议 分析人员应精心准备

4、问题,通过用户对问题的回答,逐步理解用户对目标软件的要求。 (1) 循序渐进 首先关心一般性、整体性问题,然后再讨论细节问题。 (2)客观、公正 不应限制用户在回答问题过程中自由发挥。 (3) 总结 问题汇总后应能反映软件或其子系统的全貌,能覆盖用户对目标软件或其子系统在功能、行为、性能诸方面的要求。 细节问题留待以后解决。,2 考察用户软件或其子系统业务流程,学习用户的有关业务知识,在用户帮助下了解用户的软件或子系统业务流程,结合软件开发和应用的经验提出新的用户需求。,3 联合小组,建立软件开发方和用户方共同组成的联合小组,小组成员对分析负有相同的责任。 联合小组要制定自己的工作制度和计划,

5、确定专门的记录员,另设专人负责会议的议程和资料的综合、整理。 选择易于理解、比较简洁、精确的表示机制作为描述语言,如辅以文字说明的流程图。,实例分析 家庭保安系统 ,问题描述: 家庭保安市场正以每年40%的速度增长。希望建立一种基于微处理器的家庭保安系统,它能够识别异常事件并采取相应的防护措施。这些异常事件包括:非法侵入、火灾、水淹等。一旦异常情况被传感器探测出来,系统应自动通过电话向监控中心报警。此外,应允许户主对系统行为进行程序控制。,联合小组首先制定工作制度,明确议程。 经过会议讨论,明确问题的范围、问题与环境的关系,并就开发软件产品的必要性达成共识。 列出问题及环境中的有关对象,操作以

6、及对象间的相互作用。 对象: 控制面板、电话机、监控中心、烟雾传感器、门窗监视器、警报器等 操作:接收传感器事件、用户编程控制、电话拔号、报警等。 ,分析初期联合小组的工作程序,对接收传感器事件、用户编程控制、电话报警等操作进行详细的描述,可用流程图表示。 提出约束,比如:造价不能超过3,000元,对传感器事件必须在1秒内作出响应,事件必须按优先级进行处理等。 会后小组负责人对这些信息进行综合、整理,形成文档,该文档应能反映“家庭保安系统”的全貌。,划分小组,分别处理用户编程控制和传感器监测两个子系统。目的是对子系统的软件需求进行细化。对出现的新对象、新操作、新约束应及时添加到相应的子系统。

7、确定子系统需求并形成文档 讨论子系统的集成及需求验证标准。初步分析活动应形成结论性文档,该文档将作为后续分析活动的基础。,划分小组完成需求,初步分析生成的“家庭保安系统”部分需求文档 “家庭保安系统”的软件允许用户在安装时进行系统配置,实施对传感器的监控并通过控制面板与用户进行信息交互。 配置操作 (1)指定每一传感器的种类和编号; (2)设置开、关机密码; (3)指定报警电话号码; (4)指定报警延迟和电话重拔延迟时间(以秒为单位)。,当软件系统接收到传感器发出的数据后,判别是否出现异常事件。如果是,则在指定的延迟时间内拔报警电话号码,拔号操作将按照重拔延迟反复进行,直至电话接通。然后软件系

8、统负责报告时间、地点和异常事件的性质。 开机后软件系统负责显示当前工作状态,接收并处理用户指令。,4.1.3 需求建模,建立软件模型是分析活动的关键。 目标软件系统的模型用来刻划系统所涉及的信息、处理功能及系统运行时的外部行为。 模型不应涉及软件实现细节。 选择图形符号表示信息流、处理功能及系统行为,以此来描述软件需求模型。,4.1.4 分析问题的方法,抽象 关注一般问题的解决途径,以此指导特殊问题的求解。注意用户描述的抽象级别,统一规划系统行为。 避免不一致性,减少分析的工作量。 分解 根据问题的规模和复杂性进行分解,并对子问题展开进一步的分析。 逐级分解,直至子问题的规模降至合适程度。 在

9、问题分解过程中,要建立子问题之间的相互联系。 必须遵循子问题内部紧藕合,子问题之间松藕合的原则。,视点分解法 在分析的初期,整体地把握一个大型问题的软件需求是困难的。需要从各个角度分别对问题进行理解和分析,然后再综合,达到全面理解的目 需求分析视点 系统观点 用户观点 信息观点 功能观点 行为观点等。 整理、综合用户描述,应注意用户视点的变化,避免遗漏。,4 .1.5 支持需求分析的快速原型技术,软件开发早期,快速建立目标软件系统原型,让用户对原型进行评估并提出意见。原型几经改进最终确定,设计和编码人员遵循原型确立的外部特征实现软件产品。 如果软件产品含有大量人机交互、可视输出、或者涉及复杂的

10、算法,应采用快速原型技术。 对于复杂问题,可对某些子问题,尤其是用户界面,使用快速原型技术。,4.1.6 需求规格说明与评审,产生需求规格说明并进行评审。 需求规格说明应成为开发过程必须遵循的指导原则。,需求规格说明,1 引言 1.1需求规格说明的目的 1.2软件产品的作用范围 1.3定义、同义词与缩写 1.4参考文献 1.5需求规格说明概览 2 一般性描述 2.1产品与其环境之间的关系 2.2产品功能,2.3用户特征 2.4限制与约束 2.5假设与前提条件 3 特殊需求 附录 索引,需求规格说明- 特殊需求描述,3特殊需求 3.1功能或行为需求 3.1.1功能或行为需求1 3.1.1.1引言

11、 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工作场地需求,需求评审,需求规格说明进入设计阶段之前,必须进行评审。如果发现错误或缺陷,应及时纠正或更改需求分析、模型,需求规格说明,并重新评审。 衡量需求规格

12、说明的标准 正确性 无歧义性 完全性 可验证性 一致性 可理解性 可修改性 可追踪性,4.2 需求分析建模,需求分析方法 结构化分析方法 面向对象的分析方法 需求分析模型 数据建模 功能建模 行为建模,4.2.1 需求分析方法,六十年代未、七十年代初结构化设计盛行,结构化分析以结构化设计附产品的身份出现。 七十年代未期 Douglas Ross提出结构化分析的术语 DeMarcoDEM79 进行推广,给出分析员可以创建信息流模型的主要图形记号,建议将“数据字典”和“处理说明”作为信息流模型的补充,並提供方法应用的实例;,结构化分析方法,结构化分析方法,八十年代初期Page-JonesPAG80

13、,GaneGAN82等人提出结构化分析方法的一些变种,用于信息系统的开发; 八十年代中期 Ward、MellorWAR85、Hatiy和PirbhaiHAT87对结构化分析进行扩充支持实时、控制和嵌入式系统的开发; Harel Pnueli研制了面向复杂实时反应式系统(Complex Real-time Reactive System)的开发环境 STATEMATE。,4.2.2 需求分析模型,结构化分析模型,核心 数据字典 描述软件工程项目的所有数据对象 中间层 实体-关系图、数据流图、状态-变迁图 实体-关系图 描述数据对象之间的关系 数据流图 功能建模的基础 系统或子系统对数据实施的变换

14、、变换的功能 提供信息分析的信息 状态-变迁图 行为建模的基础 系统的行为模式(称“状态”)以及状态变迁的方式,4.2.2.1 结构化分析模型,结构化的分析模型,最外层 数据对象描述、加工规格说明PSPEC、控制规格说明CSPEC 数据对象 表示实体-关系图中每个数据对象的属性 加工规格说明PSPEC 描述数据流图的每个功能。 控制规格说明CSPEC 描述软件控制的附加信息,4.2.2.2 数据建模,数据对象、属性和关系 实体一关系图 实体关系图是数据模型的基础,它描述数据对象、属性、及其关系。,1 数据对象、属性与关系,数据对象 数据属性 数据关系 数据对象、属性与关系,数据对象 现实世界具

15、有不同特征和属性的实体或事务的标识,计算机软件描述并处理的一组信息。如,事件、行为、角色、组织、地点、结构等。 数据对象只封装数据,包括:数据流、数据源、外部实体的数据部分,不封装操作。 数据对象是相互关联的。,属性 用“标识符、符号串和值”标识,描述数据对象的性质。包括: (1)命名 标识数据对象 (2)描述 描述数据对象的性质 (3)引用 建立数据对象之间的联系 数据对象的属性是原子数据项,不包含内部数据结构。 数据对象的任何属性有且仅有一个属性值。 现实世界的实体具有许多属性,分析人员只能考虑与应用问题有关的属性。,数据对象描述,例 汽车销售管理问题的数据对象描述表. 汽车属性 制造商

16、型号 标识码 车体类型 颜色 买主,关系 数据对象按照某种关系相互连接 用对象关系偶描述数据对象 关系的命名及内涵应反映描述的问题 删除与问题无关的关系,数据对象、属性与关系,例 汽车销售问题的数据对象、属性与关系 数据对象属性 数据对象 关系 制造商 汽车 生产 购车用户 汽车 购买,描述系统所有数据对象的组成和属性,描述数据对 象之间关系的图形语言。 “一对一”(1:1) 一个对象A关联一个对象B,反之,一个对象B关联一个对象A。如,夫妻。 “一对多”(1:N) 一个对象A关联多个对象B,反之,一个对象B关联一个对象A。如,父子。 “多对多”(N:M) 一个对象A关联多个对象B,反之,一个

17、对象B关联多个对象A。如,叔侄。,2 实体关系图(E-R方法,Entity-Relationship Approach),教师-学生-课程E-R 图,人与车关系E-R 图,制造商,ID,类型,制造,车型,ID号,模型,实体类型,引擎,传输,N,N,合同,货主,运输,许可证,销售关系,货栈,N,N,N,1,1,1,N,M,M,汽车业务销售的E-R图,汽车的部分整体关系,用实体关系图表示数据对象的层次结构及部分整体关系,汽车的层次表示,4.2.2.3 功能建模,数据流图与数据字典 数据流图的实时系统扩充 (1). Ward & Mellor扩充 (2). Hatley & Pirhai扩充,1 数

18、据流图与数据字典,基于计算机的信息处理系统由数据流和一系列的加工构成,这些加工将输入数据流加工为输出数据流 数据流图描述数据流和加工 数据流图用图形符号表示数据流、加工、数据源及外部实体 数据流图具有层次结构,支持问题分解、逐步求精的分析方法 它是数据驱动的数据流图既可以表示基于计算机的系统,也可以表示软件,数据流图标记,顶层数据流图,随着需求分析活动的深入,较高抽象级别的复杂加工逐步精化为一系列相互关联的数据流和子加工。,数据流图的精化与平衡,逐层精化必须保持数据流图的平衡 数据流与加工精化必须保持一致 需求分析活动只求对问题全面、清晰的理解,不考虑软件设计细节,例子:商店业务处理系统,第一

19、层数据流图,加细每一个加工框 销售细化,采购细化,数据字典,定义 数据字典由数据条目组成,数据字典描述、组织和管理数据流图的数据流、加工、数据源及外部实体。 数据字典用简洁、清晰、易理解的文字描述条目,说明数据流图的加工功能、性能、要求及设计约束等。 数据流图与数据字典配套使用,完整地描述软件需求。,数据字典的数据条目,定义内容 (1)名称与别名 数据流、数据源或外部实体的标识; (2)数据类型; (3)何处使用如何使用 输入流输出流的加工表; (4)内容描述; (5)补充说明 如,取值范围与缺省值,有关的设计约束等。,(1)数据流词条描述,数据流名: 说明:简要介绍作用即它产生的原因和结果

20、数据流来源:来自何方 数据流去向:去向何处 数据流组成:数据结构 数据量流通量:数据量,流通量,(2)数据元素词条描述,数据元素名: 类型:数字(离散值,连续值),文字(编码类型) 长度: 取值范围: 相关的数据元素及数据结构:,(3)数据文件词条描述,数据文件名: 简述:存放的是什么数据 输入数据: 输出数据: 数据文件组成:数据结构 存储方式:顺序,直接,关键码 存取频率:,(4)加工逻辑词条描述,加工名: 加工编号:反映该加工的层次 简要描述:加工逻辑及功能简述 输入数据流: 输出数据流: 加工逻辑:简述加工程序,加工顺序,(5)源点及汇(终)点词条描述,名称:外部实体名 简要描述:什么

21、外部实体 有关数据流: 数目:,数据字典的管理,大型软件项目的数据字典规模庞大,利用数据流分析的工具对数据字典实施管理 (1)对新数据条目进行重名检查。 (2)维护数据字典和数据流图的一致性。 (3)自动完成数据条目查询。 例如 : 该条目在何处使用? 修改数据流图会对哪些数据条目产生影响? 修改某个数据条目又会造成哪些影响?,数据字典 定义数据条目,原则 精确、简洁,容易理解。 例 用形式语言的语法定义机制描述数据条目 由构成 、的顺序连接 、的选择连接 An (=) 个的重复连接 ( ) 可选的数据 原子语法成分用简明的自然语言描述,“家庭保安系统电话号码”的数据条目定义,电话号码分机号外

22、线号码 分机号12 外线号码(市话号码长话号码) 长话号码(区号市话号码) 区号任何长度为3的数字串 市话号码局号分局号 局号444552 分局号=任何长度为4的数字串,2 数据流图的实时系统扩充,实时系统 系统与现实世界实体交互具有时间特性。 数据流 时间连续的数据流 时间离散的数据流(控制信号或事件) 实时系统的状态随时间及相关事件的激励变化 。,数据流图的实时系统扩充,实时系统响应事件的“加工”称“控制”,它在限定的时间内完成对事件的识别、输出,改变系统的状态。 实时系统软件对响应速度和可靠性的要求比非实时系统软件高。 在软件开发的各个阶段都应关注实时控制部件的性能和可靠性。,数据流图的

23、实时系统扩充,传统数据流方法不能胜任实时系统的需求分析任务。为开发实时嵌入式系统,必须对传统方法进行扩充。 Ward Mellor 在数据流图中引入实时图形记号 Hatley Pirbhai 在数据流图中引进状态加工图描述系统的外部行为,实时嵌入式系统对软件的要求,在连续的时间域内采集並生成信息流 软件要及时处理控制信息 必须在規定的时间内完成与现实世界的交互 系统状态实时变化,存在状态迁移机制 多任务的场合,一个加工可能存在多个实例,(1) Ward Mellor扩充,符号的扩充 引入表示事件、连续数据流、控制及事件源的图形符号。 引入多任务环境下,同一控制的多个进程实例。,Ward Mel

24、lor扩充,计算机控制的水温监测与调节系统 水温测量仪传给温度监控子系统的测量数据是连续的。 温度监控子系统将水温数据与允许的波动范围进行比较,然后连续输出调节后的温度值。,Ward Mellor扩充,扩充的图形记号可以和传统的数据流图符号混合使用。 加工可接收事件作为输入,控制也可接收数据作为输入。 扩充数据字典,描述离散事件和连续数据流。 数据流图对控制的文字描述应包括响应时间、可靠性等约束。,离散数据流(事件)与普通数据流,机器人装配机械部件 待装配部件处于就绪状态,“部件监控与操作员界面”过程读操作员命令 处理操作员命令,发送“启动信号”命令 “机器人初始化,发送“进程活跃信号”启动“

25、移位命令处理”完成装配工作。,(2) Hatley Pirhai扩充,建立实时系统的过程模型和控制模型 引进两个新的图形记号,用虚线表示控制流或事件流; 虚符号和实符号分开,专门定义控制流图CFD; CFD定义控制流、表示控制加工並引入粗短线表示控制规格说明; 控制规格说明指明 (1)当事件发生或控制信号被感知时,软件的行为 (2)当某一事件发生时,激活相关加工部件,Hatley Pirhai扩充,传统的数据流图 描述实时系统的静态过程模型 表示数据和数据的加工 数据流图的元素没有时间意义,控制流图 描述实时系统的动态过程模型 表示事件在加工过程中的变化, 控制流图的元素有时间意义,Hatle

26、y Pirhai扩充,实时系统或子系统的数据流图和控制流图具有同名“加工” 控制流图的“加工”称“进程” “加工激活表”指明加工导致必须激活的外部事件 控制规格说明包括一系列的建模工具,Hatley Pirhai扩充 实时系统模型,Hatley Pirhai扩充 过程模型和控制模型,数据流图(过程模型)用来表示实时系统的数据以及对数据进行操作的过程 控制流图用来描述进程之间的控制流并刻画系统的行为特征:每个事件所引发的系统状态变更和进程活跃情况。 过程模型和控制模型以数据流图和控制流图之间的简单对应关系互为关联。 过程模型的过程规格说明可能产生事件输出,引发控制规格说明所描述的状态加工。 进程

27、规格说明可以产生进程活跃信号,作用于数据流图。,Hatley Pirhai扩充 数据流图和控制流图的对应关系,例 复印机控制软件的 数据流图和控制流图,状态加工图,进程活跃表,4.2.2.4 行为建模,基于结构化分析的扩展版本提出这种建模的符号。 状态-变迁图通过描述状态以及导致系统改变状态的事件来表示系统的行为。 每个状态代表系统的一种行为模式,控制流图,状态变迁图,4.2.2.5 实例分析-以“家庭保安系统”为例展示结构化分析方法的使用过程,实体-关系图 创建数据流模型 创建控制流模型 过程规格说明,0 实体-关系图,步骤: 列出应用或业务过程涉及的”事物”,同时以数据对象的形式给出。 分

28、析各对象及对象之间的关联,构件一个或多个对象-关系对。 给出各对象对的基数和形态。 迭代执行以上步骤,直到将所有的关系对分析完毕。 定义各对象实体的属性。 形式化并评审实体-关系图。 重复以上步骤,直到数据建模完成。,家庭安防系统部分数据对象如下:,房主 控制面板 传感器 安全系统 监控服务,对象连接图,1 创建数据流模型,数据流图是目标软件系统中各个处理子功能以及它们之间的数据流动的图形表示。 数据流图的精化过程是处理子功能和数据流的细化过程。 随着这一过程的进行,用户需求逐步精确化、一致化、完全化。 利用数据流图DFD开发信息域和功能域模型。 当DFD精化到较细级别时,分析员进行隐式功能分

29、解,並导致相应数据的精化。 加工规格说明 PSPEC 描述输入信息、加工算法、产生输出结果,指明加工的约束和限制、产品的性能特征和工作环境等。,过程 (1) 用一个园盘描述第0层软件/系统的DFD图 (2) 标记系统的输入/输出 (3) 精化 描述第I层的数据对象、存储和加工 (4) 标记箭头和园盘 (5) 对第I层信息流进行一致性维护 (6) 对加工园盘逐个进行精化 (7) 当第n层DFD图园盘己精化为容易实现的简单操作时,创建数据流模型的过程仃止。,创建用户需求数据流模型应遵循的规则,(1)首先建立顶级数据流图 顶级数据流图只有一个代表目标软件系统的功能加工 根据软件系统与外部环境的关系确

30、定顶级数据流图的外部实体以及它们与软件系统之间的数据流。,“家庭保安系统”1级数据流图,(2)对需求描述进行语法分析 名词和名词短语构成潜在的外部实体 数据源或数据流、动词构成潜在的处理功能。 结合分析人员对问题域和用户需求的理解,确定软件系统的主要功能以及它们之间的数据流。,(3)功能分解 按照“强内聚、松藕合”原则,对处理功能进行精化; 对数据流进行精化,针对被精化的处理功能生成下一级数据流图。 数据流精化的意义 数据流的内容及各项特征将逐步彰现,所以要将其作为数据字典的一个条目,并不断精化、调整内容。 在父数据流图中的复合数据项可被分解为子数据项,这种数据流分解并不违背平衡准则。 如,如

31、果将图5.16中的“启动停止系统”功能分解为“启动系统”和“停止系统”,那么“启动停止命令”应相应地精化为“启动命令”和“停止命令”。,“家庭保安系统”2级数据流图,(4)在精化过程中必须维持各级数据流图的平衡。 ()精化过程应适可而止,避免涉及软件设计细节。,2 创建控制流模型,实时嵌入式系统存在事件驱动机制,通过系统的加工产生控制信息。 系统对事件信息的加工必须在指定的时间内完成。 实时嵌入式系统的描述不仅需要数据流图,而且还需要控制流图CFD。 控制规格说明 用状态变迁图(STD)、加工激活表(PAT)描述系统的行为。 状态变迁图是行为的“顺序规格说明” 加工激活表是行为的“组合规格说明

32、”,它指明某一事件发生时,流模型被激活的加工园盘。,“家庭保安系统”控制流图,“家庭保安系统”状态加工图,过程 (1) 列出系统的输入传感器 (2) 列出系统的中断条件 (3) 列出系统的操作开关 (4) 列出数据条件 (5) 考察加工中的动词和名词、考察控制规格说明的数据项 (6) 描述系统行为,标识状态和状态变迁 (7) 关注可能的省略(如,是否还有其它的状态进入或离开这个状态?),3 过程规格说明,对数据流图无须再分解的处理功能,可借助结构化的自然语言、 “程序设计的语言(PDL)”、数学方程、表、图或图表等工具进行描述。 必须为数据流流模型的每个加工园盘提供相应的加工过程规格说明。,谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1