1、第四章第四章 需求分析过程需求分析过程需求分析基础需求分析基础需求分析建模需求分析建模n软件需求软件需求 用户对目标软件系统在功能、行为、性能、设计约用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。束等方面的期望。n需求分析阶段的任务需求分析阶段的任务通过对问题及环境的理解、分析,将用户需求精确通过对问题及环境的理解、分析,将用户需求精确化、完全化,最终形成需求规格说明,描述系统信息、化、完全化,最终形成需求规格说明,描述系统信息、功能和行为。功能和行为。n技术和方法技术和方法 初步需求获取技术初步需求获取技术 需求建模技术需求建模技术 快速原型技术快速原型技术 问题抽象、问题分解
2、与多视点分析问题抽象、问题分解与多视点分析 4.1 需求分析基础需求分析基础 软件需求分析产品软件需求分析产品q用户需求用户需求 (系统分析的产品)(系统分析的产品) q系统需求系统需求q软件需求规格说明(软件设计描述)软件需求规格说明(软件设计描述)需求规格说明是软件设计、实现、测试、维护的基需求规格说明是软件设计、实现、测试、维护的基础。础。用户需求、系统需求和软件设计描述用户需求、系统需求和软件设计描述用户需求用户需求用自然语言和图表描述用自然语言和图表描述说明系统必须提供哪些服务、系统运行要受哪些约束说明系统必须提供哪些服务、系统运行要受哪些约束系统需求系统需求详细说明系统将要提供的服
3、务以及系统受到的约束详细说明系统将要提供的服务以及系统受到的约束精确的描述软件的功能精确的描述软件的功能系统买方和软件开发者签订合同的重要内容系统买方和软件开发者签订合同的重要内容软件设计描述软件设计描述在系统需求的基础上,加入更详细的内容,构成软件设计在系统需求的基础上,加入更详细的内容,构成软件设计活动的概要描述,是软件设计和实现的基础活动的概要描述,是软件设计和实现的基础4.1.1 需求分析三个主要阶段需求分析三个主要阶段n 问题分析问题分析n 需求描述需求描述n 需求评审需求评审1 问题分析问题分析n建立问题分析系统模型。从不同的角度、不同的建立问题分析系统模型。从不同的角度、不同的抽
4、象级别精确地说明对问题的理解、对目标软件抽象级别精确地说明对问题的理解、对目标软件的需求。的需求。n模型应帮助用户和分析人员发现、排除用户需求模型应帮助用户和分析人员发现、排除用户需求不一致,不合理的部分,挖掘潜在的用户需求。不一致,不合理的部分,挖掘潜在的用户需求。n模型是分析人员根据问题创建的软件系统结构,模型是分析人员根据问题创建的软件系统结构,包括与问题和环境相关的信息流、处理功能、用包括与问题和环境相关的信息流、处理功能、用户界面、行为及设计约束。户界面、行为及设计约束。n模型是形成需求规格说明、进行软件设计的基础。模型是形成需求规格说明、进行软件设计的基础。2 需求描述需求描述n以
5、需求模型为基础,考虑软件问题的可解性,生以需求模型为基础,考虑软件问题的可解性,生成需求规格说明和初步的用户手册。成需求规格说明和初步的用户手册。n需求规格说明包含对目标软件系统的外部行为的需求规格说明包含对目标软件系统的外部行为的完整描述、需求验证标准以及用户在性能、质量、完整描述、需求验证标准以及用户在性能、质量、可维护性等方面的要求。可维护性等方面的要求。n用户手册包括用户界面描述以及有关目标软件使用户手册包括用户界面描述以及有关目标软件使用方法的初步构想。用方法的初步构想。3 需求评审需求评审n对需求规格说明和初步的用户手册进行评对需求规格说明和初步的用户手册进行评审,确保软件需求的完
6、全性、精确性和一审,确保软件需求的完全性、精确性和一致性,并使用户和软件设计人员对需求规致性,并使用户和软件设计人员对需求规格说明及用户手册的理解达成一致。格说明及用户手册的理解达成一致。n确认后的需求规格说明应成为用户方与软确认后的需求规格说明应成为用户方与软件开发方合同的一部分。件开发方合同的一部分。4.1.2 初步需求获取技术初步需求获取技术 1 访谈与会议访谈与会议分析人员应精心准备问题,通过用户对问题的回答,逐步分析人员应精心准备问题,通过用户对问题的回答,逐步理解用户对目标软件的要求。理解用户对目标软件的要求。 (1) (1) 循序渐进循序渐进 首先关心一般性、整体性问题,然后再讨
7、论细首先关心一般性、整体性问题,然后再讨论细节问题。节问题。 (2)(2)客观、公正客观、公正 不应限制用户在回答问题过程中自由发挥。不应限制用户在回答问题过程中自由发挥。 (3) (3) 总结总结 问题汇总后应能反映软件或其子系统的全貌,问题汇总后应能反映软件或其子系统的全貌,能覆盖用户对目标软件或其子系统在功能、行为、性能覆盖用户对目标软件或其子系统在功能、行为、性能诸方面的要求。能诸方面的要求。 细节问题留待以后解决。细节问题留待以后解决。2 考考察用户软件或其子系统业务流程察用户软件或其子系统业务流程学习用户的有关业务知识,在用户帮助下了解用户的软件学习用户的有关业务知识,在用户帮助下
8、了解用户的软件或子系统业务流程,结合软件开发和应用的经验提出新的或子系统业务流程,结合软件开发和应用的经验提出新的用户需求。用户需求。3 联合小组联合小组建立软件开发方和用户方共同组成的联合小组,小组成员建立软件开发方和用户方共同组成的联合小组,小组成员对分析负有相同的责任。对分析负有相同的责任。联合小组要制定自己的工作制度和计划,确定专门的记录联合小组要制定自己的工作制度和计划,确定专门的记录员,另设专人负责会议的议程和资料的综合、整理。员,另设专人负责会议的议程和资料的综合、整理。选择易于理解、比较简洁、精确的表示机制作为描述语言,选择易于理解、比较简洁、精确的表示机制作为描述语言,如辅以
9、文字说明的流程图。如辅以文字说明的流程图。实例分析实例分析 家庭保安系统家庭保安系统 问题描述:问题描述: 家庭保安市场正以每年家庭保安市场正以每年40%的速度增长。希望的速度增长。希望建立一种基于微处理器的家庭保安系统,它能够建立一种基于微处理器的家庭保安系统,它能够识别异常事件并采取相应的防护措施。这些异常识别异常事件并采取相应的防护措施。这些异常事件包括:非法侵入、火灾、水淹等。一旦异常事件包括:非法侵入、火灾、水淹等。一旦异常情况被传感器探测出来,系统应自动通过电话向情况被传感器探测出来,系统应自动通过电话向监控中心报警。此外,应允许户主对系统行为进监控中心报警。此外,应允许户主对系统
10、行为进行程序控制。行程序控制。 n联合小组首先制定工作制度联合小组首先制定工作制度, ,明确议程。明确议程。n经过会议讨论,明确问题的范围、问题与环境的关系,并经过会议讨论,明确问题的范围、问题与环境的关系,并就开发软件产品的必要性达成共识。就开发软件产品的必要性达成共识。n列出问题及环境中的有关对象,操作以及对象间的相互作列出问题及环境中的有关对象,操作以及对象间的相互作用。用。对象对象: : 控制面板、电话机、监控中心、烟雾传感器、门窗监控制面板、电话机、监控中心、烟雾传感器、门窗监视器、警报器等视器、警报器等操作操作: :接收传感器事件、接收传感器事件、用户编程控制、电话拔号、报警等。用
11、户编程控制、电话拔号、报警等。分析初期联合小组的工作程序分析初期联合小组的工作程序n对接收传感器事件、用户编程控制、电话报警等对接收传感器事件、用户编程控制、电话报警等操作进行详细的描述,可用流程图表示。操作进行详细的描述,可用流程图表示。n提出约束,比如:造价不能超过提出约束,比如:造价不能超过3,000元,对传元,对传感器事件必须在感器事件必须在1秒内作出响应,事件必须按优先秒内作出响应,事件必须按优先级进行处理等。级进行处理等。会后小组负责人对这些信息进行综合、整理,形成会后小组负责人对这些信息进行综合、整理,形成文档,该文档应能反映文档,该文档应能反映“家庭保安系统家庭保安系统”的全貌
12、。的全貌。n划分小组,分别处理用户编程控制和传感器监测划分小组,分别处理用户编程控制和传感器监测两个子系统。目的是对子系统的软件需求进行细两个子系统。目的是对子系统的软件需求进行细化。对出现的新对象、新操作、新约束应及时添化。对出现的新对象、新操作、新约束应及时添加到相应的子系统。加到相应的子系统。n确定子系统需求并形成文档确定子系统需求并形成文档n讨论子系统的集成及需求验证标准。初步分析活讨论子系统的集成及需求验证标准。初步分析活动应形成结论性文档,该文档将作为后续分析活动应形成结论性文档,该文档将作为后续分析活动的基础。动的基础。划分小组完成需求划分小组完成需求 初步分析生成的初步分析生成
13、的“家庭保安系统家庭保安系统”部分需求文档部分需求文档n“家庭保安系统家庭保安系统”的软件允许用户在安装时进行系的软件允许用户在安装时进行系统配置,实施对传感器的监控并通过控制面板与用统配置,实施对传感器的监控并通过控制面板与用户进行信息交互。户进行信息交互。n配置操作配置操作(1)指定每一传感器的种类和编号;指定每一传感器的种类和编号;(2)设置开、关机密码;设置开、关机密码;(3)指定报警电话号码;指定报警电话号码;(4)指定报警延迟和电话重拔延迟时间指定报警延迟和电话重拔延迟时间(以秒为单位以秒为单位)。n当软件系统接收到传感器发出的数据后,判别是当软件系统接收到传感器发出的数据后,判别
14、是否出现异常事件。如果是,则在指定的延迟时间否出现异常事件。如果是,则在指定的延迟时间内拔报警电话号码,拔号操作将按照重拔延迟反内拔报警电话号码,拔号操作将按照重拔延迟反复进行,直至电话接通。然后软件系统负责报告复进行,直至电话接通。然后软件系统负责报告时间、地点和异常事件的性质。时间、地点和异常事件的性质。n开机后软件系统负责显示当前工作状态,接收并开机后软件系统负责显示当前工作状态,接收并处理用户指令。处理用户指令。4.1.3 需求建模需求建模建立软件模型是分析活动的关键。建立软件模型是分析活动的关键。n目标软件系统的模型用来刻划系统所涉及目标软件系统的模型用来刻划系统所涉及的信息、处理功
15、能及系统运行时的外部行的信息、处理功能及系统运行时的外部行为。为。n模型不应涉及软件实现细节。模型不应涉及软件实现细节。n选择图形符号表示信息流、处理功能及系选择图形符号表示信息流、处理功能及系统行为,以此来描述软件需求模型。统行为,以此来描述软件需求模型。4.1.4 分析问题的方法分析问题的方法抽象抽象 n关注一般问题的解决途径,以此指导特殊问题的关注一般问题的解决途径,以此指导特殊问题的求解。注意用户描述的抽象级别,统一规划系统求解。注意用户描述的抽象级别,统一规划系统行为。行为。n避免不一致性,减少分析的工作量。避免不一致性,减少分析的工作量。分解分解 n 根据问题的规模和复杂性进行分解
16、,并对子问题根据问题的规模和复杂性进行分解,并对子问题展开进一步的分析。展开进一步的分析。n逐级分解,直至子问题的规模降至合适程度。逐级分解,直至子问题的规模降至合适程度。n在问题分解过程中,要建立子问题之间的相互联在问题分解过程中,要建立子问题之间的相互联系。系。n必须遵循子问题内部紧藕合,子问题之间松藕合必须遵循子问题内部紧藕合,子问题之间松藕合的原则。的原则。视点分解法视点分解法 在分析的初期,整体地把握一个大型问题的软在分析的初期,整体地把握一个大型问题的软件需求是困难的。需要从各个角度分别对问题进件需求是困难的。需要从各个角度分别对问题进行理解和分析,然后再综合,达到全面理解的目行理
17、解和分析,然后再综合,达到全面理解的目需求分析视点需求分析视点 系统观点系统观点 用户观点用户观点 信息观点信息观点 功能观点功能观点 行为观点等。行为观点等。 整理、综合用户描述,应注意用户视点的变化,整理、综合用户描述,应注意用户视点的变化,避免遗漏。避免遗漏。4 .1.5 支持需求分析的快速原型技术支持需求分析的快速原型技术n软件开发早期,快速建立目标软件系统原型,软件开发早期,快速建立目标软件系统原型,让用户对原型进行评估并提出意见。原型几让用户对原型进行评估并提出意见。原型几经改进最终确定,设计和编码人员遵循原型经改进最终确定,设计和编码人员遵循原型确立的外部特征实现软件产品。确立的
18、外部特征实现软件产品。n如果软件产品含有大量人机交互、可视输出、如果软件产品含有大量人机交互、可视输出、或者涉及复杂的算法,应采用快速原型技术。或者涉及复杂的算法,应采用快速原型技术。n对于复杂问题对于复杂问题,可对某些子问题,尤其是用户可对某些子问题,尤其是用户界面,使用快速原型技术。界面,使用快速原型技术。4.1.6 需求规格说明与评审需求规格说明与评审n产生需求规格说明并进行评审。产生需求规格说明并进行评审。n需求规格说明应成为开发过程必须遵循的指导原需求规格说明应成为开发过程必须遵循的指导原则。则。需求规格说明需求规格说明1 引言引言 1.1需求规格说明的目的需求规格说明的目的 1.2
19、软件产品的作用范围软件产品的作用范围 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引言引言 3.1.1.2输入输入 3.1.1.3处理过程描述处理过程
20、描述 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工作场地需求工作场地需求需求评审需求评审
21、n需求规格说明进入设计阶段之前,必须进行评审。如果需求规格说明进入设计阶段之前,必须进行评审。如果发现错误或缺陷,应及时纠正或更改需求分析、模型,发现错误或缺陷,应及时纠正或更改需求分析、模型,需求规格说明,并重新评审。需求规格说明,并重新评审。 n衡量需求规格说明的标准衡量需求规格说明的标准 正确性正确性 无歧义性无歧义性 完全性完全性 可验证性可验证性 一致性一致性 可理解性可理解性 可修改性可修改性 可追踪性可追踪性4.2 需求分析建模需求分析建模需求分析方法需求分析方法n结构化分析方法结构化分析方法 n面向对象的分析方法面向对象的分析方法需求分析模型需求分析模型n数据建模数据建模n功能
22、建模功能建模n行为建模行为建模4.2.1 需求分析方法需求分析方法n六十年代未、七十年代初结构化设计盛行,六十年代未、七十年代初结构化设计盛行,结构化分析以结构化设计附产品的身份出现。结构化分析以结构化设计附产品的身份出现。n七十年代未期七十年代未期 Douglas Ross提出结构化分析提出结构化分析的术语的术语n DeMarcoDEM79 进行推广,给出分析员可进行推广,给出分析员可以创建信息流模型的主要图形记号,建议将以创建信息流模型的主要图形记号,建议将“数据字典数据字典”和和“处理说明处理说明”作为信息流模作为信息流模型的补充,並提供方法应用的实例;型的补充,並提供方法应用的实例;结
23、构化分析方法结构化分析方法结构化分析方法结构化分析方法n八十年代初期八十年代初期Page-JonesPAG80,GaneGAN82等等人提出结构化分析方法的一些变种,用于人提出结构化分析方法的一些变种,用于信息系信息系统的开发;统的开发;n八十年代中期八十年代中期 Ward、MellorWAR85、Hatiy和和PirbhaiHAT87对结构化分析进行扩充对结构化分析进行扩充支持实时、支持实时、控制和嵌入式系统的开发控制和嵌入式系统的开发;nHarel Pnueli研制了研制了面向复杂实时反应式系统面向复杂实时反应式系统(Complex Real-time Reactive System)的开
24、发环的开发环境境 STATEMATE。4.2.2 需求分析需求分析模型模型结结构构化化分分析析模模型型实 体 关 系 图数数 据据 字字 典典控控 制制 規規 约约 C CS SP PE EC C数数 据据 对对 象象 描描 述述加加 工工 規規 约约 P PS SP PE EC C实实 体体 - -关关 系系 图图数数 据据 流流 图图状状 态态 - -变变 迁迁 图图核心核心 数据字典数据字典 描述软件工程项目的所有数据对象描述软件工程项目的所有数据对象中间层中间层 实体实体-关系图、数据流图、状态关系图、数据流图、状态-变迁图变迁图 实体实体-关系图关系图 描述数据对象之间的关系描述数据
25、对象之间的关系 数据流图数据流图 功能建模的基础功能建模的基础 系统或子系统对数据实施的变换、变换的功能系统或子系统对数据实施的变换、变换的功能 提供信息分析的信息提供信息分析的信息 状态状态-变迁图变迁图 行为建模的基础行为建模的基础 系统的行为模式(称系统的行为模式(称“状态状态”)以及状态变迁的方)以及状态变迁的方式式4.2.2.1 结构化分析模型结构化分析模型结构化的分析模型结构化的分析模型 最外层最外层数据对象描述、加工规格说明数据对象描述、加工规格说明PSPEC、控制规格说、控制规格说明明CSPEC数据对象数据对象 表示表示实体实体-关系图关系图中每个数据对象的属性中每个数据对象的
26、属性加工规格说明加工规格说明PSPEC 描述描述数据流图数据流图的每个功能。的每个功能。 控制规格说明控制规格说明CSPEC 描述软件控制的附加信息描述软件控制的附加信息4.2.2.2 数据建模数据建模 n数据对象、属性和关系数据对象、属性和关系n实体一关系图实体一关系图 实体实体关系图是数据模型的基础,它描述数据对关系图是数据模型的基础,它描述数据对象、属性、及其关系。象、属性、及其关系。1 1 数据对象、属性与关系数据对象、属性与关系n数据对象数据对象n数据属性数据属性n数据关系数据关系n数据对象、属性与关系数据对象、属性与关系数据对象数据对象 现实世界现实世界具有不同特征和属性的具有不同
27、特征和属性的实体或事务实体或事务的标识,计算机软件描述并处理的一组信息。如,的标识,计算机软件描述并处理的一组信息。如,事件、行为、角色、组织、地点、结构等。事件、行为、角色、组织、地点、结构等。n数据对象只封装数据,包括:数据流、数据源、数据对象只封装数据,包括:数据流、数据源、外部实体的数据部分,不封装操作。外部实体的数据部分,不封装操作。n数据对象是相互关联的。数据对象是相互关联的。属性属性 用用“标识符、符号串和值标识符、符号串和值”标识,标识,描述数据对象的性质。描述数据对象的性质。包括:包括:(1 1)命名)命名 标识数据对象标识数据对象(2 2)描述)描述 描述数据对象的性质描述
28、数据对象的性质(3 3)引用)引用 建立数据对象之间的联系建立数据对象之间的联系n数据对象的属性是原子数据项,不包含内部数据结构。数据对象的属性是原子数据项,不包含内部数据结构。 n数据对象的任何属性有且仅有一个属性值。数据对象的任何属性有且仅有一个属性值。n现实世界的实体具有许多属性,分析人员只能考虑与应用现实世界的实体具有许多属性,分析人员只能考虑与应用问题有关的属性。问题有关的属性。数据对象描述数据对象描述例例 汽车销售管理问题汽车销售管理问题的数据对象描述表的数据对象描述表. . 汽车属性汽车属性 制造商制造商 型号型号 标识码标识码 车体类型车体类型 颜色颜色 买主买主 关系关系n数
29、据对象按照某种关系相互连接数据对象按照某种关系相互连接n用用对象关系偶对象关系偶描述数据对象描述数据对象n关系关系的命名及内涵应反映描述的问题的命名及内涵应反映描述的问题n删除与问题无关的删除与问题无关的关系关系 数据对象、属性与关系数据对象、属性与关系例例 汽车销售问题的数据对象、属性与关系汽车销售问题的数据对象、属性与关系 数据对象属性数据对象属性 数据对象数据对象 关系关系 制造商制造商 汽车汽车 生产生产 购车用户购车用户 汽车汽车 购买购买 描述系统所有数据对象的组成和属性,描述数据对描述系统所有数据对象的组成和属性,描述数据对象之间关系的象之间关系的图形语言。图形语言。n“一对一一
30、对一”(1 1:1 1) 一个对象一个对象A A关联一个对象关联一个对象B,B,反之,一个对象反之,一个对象B B关联一个对关联一个对象象A A。如,夫妻。如,夫妻。n“一对多一对多”(1 1:N N) 一个对象一个对象A A关联多个对象关联多个对象B,B,反之,一个对象反之,一个对象B B关联一个对关联一个对象象A A。如,父子。如,父子。n“多对多多对多”(N N:M M) 一个对象一个对象A A关联多个对象关联多个对象B,B,反之,一个对象反之,一个对象B B关联多个对关联多个对象象A A。如,叔侄。如,叔侄。2 2 实体实体关系图关系图(E-R方法,方法,Entity-Relation
31、ship Approach)教师教师职称职称性别性别职务职务姓名姓名教工号教工号教教学生学生性别性别姓名姓名系系学号学号年级年级学学课程课程学时学时学分学分课名课名课程号课程号成绩成绩1NMN教师教师-学生学生-课程课程E-R 图图人与车关系人与车关系E-R 图图人人年龄年龄地址地址驾驶证号驾驶证号姓名姓名拥有拥有车车ID号号制造模型制造模型实体类型实体类型制造商制造商颜色颜色拥有者拥有者NM制造商制造商ID类型类型制造制造车型车型ID号号模型模型实体类型实体类型引擎引擎传输传输NN合同合同货主货主运输运输许可证许可证销售关系销售关系货栈货栈NNN111NMM汽车业务销售的汽车业务销售的E-R
32、图图汽车的汽车的部分部分整体关系整体关系 用实体用实体关系图表示关系图表示数据对象的数据对象的层次结构及层次结构及部分部分整体整体关系关系汽车的层次表示汽车的层次表示 4.2.2.3 功能建模功能建模 n数据流图与数据字典数据流图与数据字典 n数据流图的实时系统扩充数据流图的实时系统扩充 (1). Ward & Mellor扩充扩充 (2). Hatley & Pirhai扩充扩充1 1 数据流图与数据字典数据流图与数据字典n基于计算机的信息处理系统由数据流和一系基于计算机的信息处理系统由数据流和一系列的加工构成,这些加工将输入数据流加工列的加工构成,这些加工将输入数据流加工为输出数据流为输出
33、数据流n数据流图描述数据流和加工数据流图描述数据流和加工n数据流图用图形符号表示数据流、加工、数数据流图用图形符号表示数据流、加工、数据源及外部实体据源及外部实体n数据流图具有层次结构,支持问题分解、逐数据流图具有层次结构,支持问题分解、逐步求精的分析方法步求精的分析方法n它是数据驱动的数据流图既可以表示基于计它是数据驱动的数据流图既可以表示基于计算机的系统,也可以表示软件算机的系统,也可以表示软件数据流图标记数据流图标记顶层数据流图顶层数据流图 随 着 需随 着 需求分析活动求分析活动的深入,较的深入,较高抽象级别高抽象级别的复杂加工的复杂加工逐步精化为逐步精化为一系列相互一系列相互关联的数
34、据关联的数据流和子加工。流和子加工。数据流图的精化与平衡数据流图的精化与平衡n逐层精化必须保逐层精化必须保持数据流图的平持数据流图的平衡衡n数据流与加工精数据流与加工精化必须保持一致化必须保持一致n需求分析活动只需求分析活动只求对问题全面、求对问题全面、清晰的理解,不清晰的理解,不考虑软件设计细考虑软件设计细节节数据字典数据字典定义定义 数据字典由数据条目组成,数据字典描述、数据字典由数据条目组成,数据字典描述、组织和管理数据流图的组织和管理数据流图的数据流、加工、数据源及数据流、加工、数据源及外部实体。外部实体。n数据字典用简洁、清晰、易理解的文字描述条目,数据字典用简洁、清晰、易理解的文字
35、描述条目,说明数据流图的加工功能、性能、要求及设计约说明数据流图的加工功能、性能、要求及设计约束等。束等。n数据流图与数据字典配套使用,完整地描述软件数据流图与数据字典配套使用,完整地描述软件需求。需求。数据字典的数据条目数据字典的数据条目定义内容定义内容(1 1)名称与别名)名称与别名 数据流、数据源或外部实体的标识;数据流、数据源或外部实体的标识;(2 2)数据类型;)数据类型;(3 3)何处使用如何使用)何处使用如何使用 输入流输出流的加工表;输入流输出流的加工表;(4 4)内容描述;)内容描述;(5 5)补充说明)补充说明 如,取值范围与缺省值,有关的设计约束等。如,取值范围与缺省值,
36、有关的设计约束等。数据字典的管理数据字典的管理 大型软件项目的数据字典规模庞大,利用数大型软件项目的数据字典规模庞大,利用数据流分析的工具对数据字典实施管理据流分析的工具对数据字典实施管理(1 1)对新数据条目进行重名检查。)对新数据条目进行重名检查。(2 2)维护数据字典和数据流图的一致性。)维护数据字典和数据流图的一致性。(3 3)自动完成数据条目查询)自动完成数据条目查询。 例如例如 : n该条目在何处使用?该条目在何处使用?n修改数据流图会对哪些数据条目产生影响修改数据流图会对哪些数据条目产生影响? ?n修改某个数据条目又会造成哪些影响?修改某个数据条目又会造成哪些影响? 数据字典数据
37、字典 定义数据条目定义数据条目原则原则 精确、简洁,容易理解。精确、简洁,容易理解。例例 用形式语言的语法定义机制描述数据条目用形式语言的语法定义机制描述数据条目n 由由构成构成n 、的顺序连接、的顺序连接n 、的选择连接、的选择连接nAn (=) 个的重复连接个的重复连接n( ) ( ) 可选的数据可选的数据n原子语法成分用简明的自然语言描述原子语法成分用简明的自然语言描述“家庭保安系统电话号码家庭保安系统电话号码”的数据条目定义的数据条目定义电话号码电话号码分机号分机号外线号码外线号码分机号分机号1 12 2外线号码外线号码( (市话号码市话号码长话号码长话号码) )长话号码长话号码( (
38、区号区号市话号码市话号码) )区号区号任何长度为任何长度为3 3的数字串的数字串市话号码市话号码局号局号分局号分局号局号局号4 44444552552分局号分局号=任何长度为任何长度为4 4的数字串的数字串2 2 数据流图的实时系统扩充数据流图的实时系统扩充实时系统实时系统 系统与现实世界实体交互具有时间特性。系统与现实世界实体交互具有时间特性。n数据流数据流 时间连续的数据流时间连续的数据流 时间离散的数据流(控制信号或事件)时间离散的数据流(控制信号或事件)n实时系统的状态随时间及相关事件的激励变化实时系统的状态随时间及相关事件的激励变化 。数据流图的实时系统扩充数据流图的实时系统扩充n实
39、时系统响应事件的实时系统响应事件的“加工加工”称称“控制控制”,它在,它在限定的时间内完成对事件的识别、输出,改变系限定的时间内完成对事件的识别、输出,改变系统的状态。统的状态。n实时系统软件对响应速度和可靠性的要求比非实实时系统软件对响应速度和可靠性的要求比非实时系统软件高。时系统软件高。n在软件开发的各个阶段都应关注实时控制部件的在软件开发的各个阶段都应关注实时控制部件的性能和可靠性。性能和可靠性。数据流图的实时系统扩充数据流图的实时系统扩充 传统数据流方法不能胜任实时系统的需求分析任传统数据流方法不能胜任实时系统的需求分析任务。务。为开发实时嵌入式系统,必须对为开发实时嵌入式系统,必须对
40、传统方法传统方法进进行扩充。行扩充。nWard Ward MellorMellor 在数据流图中引入实时图形记号在数据流图中引入实时图形记号nHatleyHatley PirbhaiPirbhai 在数据流图中引进状态加工图描述系统的外在数据流图中引进状态加工图描述系统的外部行为部行为实时嵌入式系统对软件的要求实时嵌入式系统对软件的要求n在连续的时间域内采集並生成信息流在连续的时间域内采集並生成信息流n软件要及时处理控制信息软件要及时处理控制信息n必须在規定的时间内完成与现实世界的交互必须在規定的时间内完成与现实世界的交互n系统状态实时变化,存在状态迁移机制系统状态实时变化,存在状态迁移机制n
41、多任务的场合,一个加工可能存在多个实例多任务的场合,一个加工可能存在多个实例 (1) Ward (1) Ward MellorMellor扩充扩充符号的扩充符号的扩充n引入表示事件、连引入表示事件、连续数据流、控制及续数据流、控制及事件源的图形符号。事件源的图形符号。n引入多任务环境下,引入多任务环境下,同一控制的多个进同一控制的多个进程实例。程实例。Ward Ward MellorMellor扩充扩充 计算机控制的水温监计算机控制的水温监测与调节系统测与调节系统n水温测量仪传给温度监控水温测量仪传给温度监控子系统的测量数据是连续子系统的测量数据是连续的。的。n温度监控子系统将水温数温度监控子
42、系统将水温数据与允许的波动范围进行据与允许的波动范围进行比较,然后连续输出调节比较,然后连续输出调节后的温度值。后的温度值。Ward Ward MellorMellor扩充扩充n扩充的图形记号可以和传统的数据流图符号混合扩充的图形记号可以和传统的数据流图符号混合使用。使用。n加工可接收事件作为输入,控制也可接收数据作加工可接收事件作为输入,控制也可接收数据作为输入。为输入。n扩充数据字典,描述离散事件和连续数据流。扩充数据字典,描述离散事件和连续数据流。n数据流图对控制的文字描述应包括响应时间、可数据流图对控制的文字描述应包括响应时间、可靠性等约束。靠性等约束。 离散数据流离散数据流(事件事件
43、)与普通数据流与普通数据流机器人装配机械部件机器人装配机械部件n待装配部件处于就绪状待装配部件处于就绪状态,态,“部件监控与操作部件监控与操作员界面员界面”过程读操作员过程读操作员命令命令n处理操作员命令,发送处理操作员命令,发送“启动信号启动信号”命令命令n“机器人初始化,发送机器人初始化,发送“进程活跃信号进程活跃信号”启动启动“移位命令处理移位命令处理”完成完成装配工作。装配工作。(2) (2) HatleyHatley PirhaiPirhai扩充扩充建立实时系统的过程模型和控制模型建立实时系统的过程模型和控制模型n引进两个新的图形记号,引进两个新的图形记号,用虚线表示控制用虚线表示控
44、制流或事件流;流或事件流;n虚符号和实符号分开,专门定义控制流图虚符号和实符号分开,专门定义控制流图CFD;nCFD定义定义控制流、表示控制加工並引入控制流、表示控制加工並引入粗短线表示控制规格说明;粗短线表示控制规格说明;n控制规格说明指明控制规格说明指明(1 1)当事件发生或控制信号被感知时,软)当事件发生或控制信号被感知时,软件的行为件的行为(2 2)当某一事件发生时,激活相关加工部)当某一事件发生时,激活相关加工部件件HatleyHatley PirhaiPirhai扩充扩充传统的数据流图传统的数据流图n描述实时系统的静态描述实时系统的静态过程模型过程模型n表示数据和数据的加表示数据和
45、数据的加工工n数据流图的元素没有数据流图的元素没有时间意义时间意义控制流图控制流图n描述实时系统的动态描述实时系统的动态过程模型过程模型n表示事件在加工过程表示事件在加工过程中的变化,中的变化,n控制流图的元素有时控制流图的元素有时间意义间意义HatleyHatley PirhaiPirhai扩充扩充n实时系统或子系统的数据流图和控制流图具有同实时系统或子系统的数据流图和控制流图具有同名名“加工加工”n控制流图的控制流图的“加工加工”称称“进程进程”n“加工激活表加工激活表”指明加工导致必须激活的外部事指明加工导致必须激活的外部事件件n控制规格说明包括一系列的建模工具控制规格说明包括一系列的建
46、模工具HatleyHatley PirhaiPirhai扩充扩充 实时系统模型实时系统模型HatleyHatley PirhaiPirhai扩充扩充 过程模型和控制模型过程模型和控制模型n数据流图(过程模型)用来表示实时系统的数据数据流图(过程模型)用来表示实时系统的数据以及对数据进行操作的过程以及对数据进行操作的过程n控制流图用来描述进程之间的控制流并刻画系统控制流图用来描述进程之间的控制流并刻画系统的行为特征:每个事件所引发的系统状态变更和的行为特征:每个事件所引发的系统状态变更和进程活跃情况。进程活跃情况。n过程模型和控制模型以数据流图和控制流图之间过程模型和控制模型以数据流图和控制流图
47、之间的简单对应关系互为关联。的简单对应关系互为关联。n过程模型的过程规格说明可能产生事件输出,引过程模型的过程规格说明可能产生事件输出,引发控制规格说明所描述的状态加工。发控制规格说明所描述的状态加工。n进程规格说明可以产生进程活跃信号,作用于数进程规格说明可以产生进程活跃信号,作用于数据流图。据流图。HatleyHatley PirhaiPirhai扩充扩充 数据流图和控制流图的对应关系数据流图和控制流图的对应关系例例 复印机控制软件的复印机控制软件的 数据流图和控制流数据流图和控制流图图状态加工图状态加工图进程活跃表进程活跃表4.2.2.4 行为建模行为建模 n基于结构化分析的扩展版本提出
48、这种建模的符基于结构化分析的扩展版本提出这种建模的符号。号。n状态状态-变迁图通过描述变迁图通过描述状态状态以及导致系统改变以及导致系统改变状态的状态的事件事件来表示系统的行为。来表示系统的行为。n每个状态代表系统的一种行为模式每个状态代表系统的一种行为模式控制流图控制流图状态变迁图状态变迁图4.2.2.5 4.2.2.5 实例分析实例分析-以以“家庭保安系统家庭保安系统”为例展为例展示结构化分析方法的使用过程示结构化分析方法的使用过程n实体实体- -关系图关系图n创建数据流模型创建数据流模型n创建控制流模型创建控制流模型n过程规格说明过程规格说明0 0 实体实体- -关系图关系图步骤步骤:
49、列出应用或业务过程涉及的列出应用或业务过程涉及的”事物事物”,同时以数据对象同时以数据对象的形式给出。的形式给出。 分析各对象及对象之间的关联,构件一个或多个对象分析各对象及对象之间的关联,构件一个或多个对象-关系对。关系对。 给出各对象对的基数和形态。给出各对象对的基数和形态。 迭代执行以上步骤,直到将所有的关系对分析完毕。迭代执行以上步骤,直到将所有的关系对分析完毕。 定义各对象实体的属性。定义各对象实体的属性。 形式化并评审实体形式化并评审实体-关系图。关系图。 重复以上步骤,直到数据建模完成。重复以上步骤,直到数据建模完成。家庭安防系统部分数据对象如下:家庭安防系统部分数据对象如下:房
50、主房主控制面板控制面板传感器传感器安全系统安全系统监控服务监控服务房主房主控制面板控制面板传感器传感器安全系统安全系统监控服务监控服务对象连接图对象连接图1 1 创建数据流模型创建数据流模型n数据流图是目标软件系统中各个处理子功能以及它们之间数据流图是目标软件系统中各个处理子功能以及它们之间的数据流动的图形表示。的数据流动的图形表示。n数据流图的精化过程是处理子功能和数据流的细化过程。数据流图的精化过程是处理子功能和数据流的细化过程。n随着这一过程的进行,用户需求逐步精确化、一致化、完随着这一过程的进行,用户需求逐步精确化、一致化、完全化。全化。n利用数据流图利用数据流图DFD开发信息域和功能