1、渤海大学信息科学与工程学院,软件工程 Software Engineering,面向21世纪课程,渤海大学信息科学与工程学院,第四章 需求分析基础 ,需求分析的任务与原则 需求分析的方法 需求建模 支持需求分析的快速原型技术 需求规格说明与评审,渤海大学信息科学与工程学院,教学目标,掌握需求分析的任务与原则,掌握需求分析的方法。 了解需求建模及支持需求分析的快速原型技术 掌握需求规格说明与评审,渤海大学信息科学与工程学院,重点、难点,需求分析的任务与原则 需求分析的方法 需求规格说明,渤海大学信息科学与工程学院,需求分析基础 ,软件需求 用户对目标软件系统在功能、行为、性能、设计约束等方面的期
2、望。 软件需求分析阶段的任务,通过对问题及环境的理解、分析,将用户需求精确化、完全化,最终形成需求规格说明,描述系统信息、功能和行为。,渤海大学信息科学与工程学院,需求分析基础,主要内容 三个主要阶段:问题分析、需求描述、需求评审 技术和方法初步需求获取技术 需求建模技术 快速原型技术问题抽象、问题分解与多视点分析 例 “家庭保安系统” 展示部分方法的使用过程。 面向数据流的分析 面向对象的分析,第四章 需求分析基础,渤海大学信息科学与工程学院,软件需求的产品和过程,软件需求分析产品 用户需求 (系统分析的产品) 系统需求 软件需求规格说明(软件设计描述)需求规格说明是软件设计、实现、测试、维
3、护的基础。,第四章 需求分析基础,渤海大学信息科学与工程学院,第四章 需求分析基础,渤海大学信息科学与工程学院,用户需求、系统需求和软件设计描述,用户需求 用自然语言和图表描述 说明系统必须提供哪些服务、系统运行要受哪些约束 系统需求 详细说明系统将要提供的服务以及系统受到的约束 精确的描述软件的功能 系统买方和软件开发者签订合同的重要内容 软件设计描述 在系统需求的基础上,加入更详细的内容,构成软件设计活动的概要描述,是软件设计和实现的基础。,第四章 需求分析基础,渤海大学信息科学与工程学院,4.1 分析的任务与原则,任务 问题分析需求描述需求评审,第四章 需求分析基础,渤海大学信息科学与工
4、程学院,1 问题分析,分析人员应了解问题及环境,应与用户合作清除用户需求的模糊性、岐义性和不一致性,并对相互冲突的需求进行折衷。 分析人员与用户合作对问题进行分析、综合,结合软件的特点及开发经验,寻求软件需求。,4.1分析的任务与原则,渤海大学信息科学与工程学院,问题分析系统模型,为用户的问题及准备开发的软件建立模型,从不同的角度、不同的抽象级别精确地说明对问题的理解、对目标软件的需求。,4.1分析的任务与原则,渤海大学信息科学与工程学院,问题分析系统模型,模型应帮助用户和分析人员发现、排除用户需求不一致,不合理的部分,挖掘潜在的用户需求。 模型是分析人员根据问题创建的软件系统结构,包括与问题
5、和环境相关的信息流、处理功能、用户界面、行为及设计约束。 模型是形成需求规格说明、进行软件设计的基础。 需求建模方法 面向数据流的分析方法 面向对象的分析方法,4.1分析的任务与原则,渤海大学信息科学与工程学院,2 需求描述,任务 以需求模型为基础,考虑到软件问题的可解性,生成需求规格说明和初步的用户手册。 需求规格说明包含对目标软件系统的外部行为的完整描述、需求验证标准以及用户在性能、质量、可维护性等方面的要求。 用户手册包括用户界面描述以及有关目标软件使用方法的初步构想。,4.1分析的任务与原则,渤海大学信息科学与工程学院,需求描述,文档 遵循规范,内容全面、结构清晰、措辞准确、格式严谨。
6、将初步用户手册作为分析文档,有助于分析人员从用户角度考虑软件需求,并鼓励用户尽早参予软件开发活动。,4.1分析的任务与原则,渤海大学信息科学与工程学院,3 需求评审,分析人员在用户和软件设计人员的配合下,对自己生成的需求规格说明和初步的用户手册进行评审,确保软件需求的完全性、精确性和一致性,并使用户和软件设计人员对需求规格说明及用户手册的理解达成一致。 需求规格说明得到用户和软件开发方的确认后,应成为用户方与软件开发方合同的一部分。,4.1分析的任务与原则,渤海大学信息科学与工程学院,需求评审,分析活动对于大型软件项目,分析人员可以先对问题的某些子系统进行需求分析、描述与评审,子系统完成后,再
7、对其它子系统进行分析,进而构筑整个系统的需求模型。,4.1分析的任务与原则,渤海大学信息科学与工程学院,4.2 初步需求获取技术,访谈与会议观察用户工作流程用户和开发人员共同组成联合小组,第四章 需求分析基础,渤海大学信息科学与工程学院,4.2.1 访谈与会议,个别访谈或小组会议 分析人员应精心准备问题,通过用户对问题的回答,逐步理解用户对目标软件的要求。 (1) 循序渐进 首先关心一般性、整体性问题,再讨论细节问题。 (2)客观、公正 不应限制用户在回答问题过程中自由发挥。 (3) 总结 问题汇总后应能反映软件或其子系统的全貌,能覆盖用户对目标软件或其子系统在功能、行为、性能诸方面的要求。细
8、节问题留待以后解决。,4.2初步需求获取技术,渤海大学信息科学与工程学院,4.2.2 考察用户软件或其子系统业务流程,调查研究 学习用户的有关业务知识,在用户帮助下了解用户的软件或子系统业务流程,结合软件开发和应用的经验提出新的用户需求。,4.2初步需求获取技术,渤海大学信息科学与工程学院,4.2.3 联合小组,建立软件开发方和用户方共同组成的联合小组,小组成员对分析负有相同的责任。 联合小组要制定自己的工作制度和计划,确定专门的记录员,另设专人负责会议的议程和资料的综合、整理。 选择易于理解、比较简洁、精确的表示机制作为描述语言,如辅以文字说明的流程图。,4.2初步需求获取技术,渤海大学信息
9、科学与工程学院,4.2.4 例 家庭保安系统 ,问题描述: 家庭保安市场正以每年40%的速度增长。希望建立一种基于微处理器的家庭保安系统,它能够识别异常事件并采取相应的防护措施。这些异常事件包括:非法侵入、火灾、水淹等。一旦异常情况被传感器探测出来,系统应自动通过电话向监控中心报警。此外,应允许户主对系统行为进行程序控制。,4.2初步需求获取技术,渤海大学信息科学与工程学院,家庭保安系统 ,分析初期联合小组的工作程序 联合小组首先制定工作制度:每次会议开始前必须有确定的议程,参加者必须针对各项议程进行充分的准备,并用文字表示。,4.2初步需求获取技术,渤海大学信息科学与工程学院,例 家庭保安系
10、统 ,经过会议讨论,明确问题的范围、问题与环境的关系,并就开发软件产品的必要性达成共识。 小组负责人要求每位参加者列出问题及环境中的有关对象,对这些对象施行的操作以及对象间的相互作用。列出的操作和对象尽可能完全,如,控制面板、电话机、监控中心、烟雾传感器、门窗监视器、警报器等对象,以及用户编程控制、电话拔号、报警等操作。,4.2初步需求获取技术,渤海大学信息科学与工程学院,例 家庭保安系统 ,负责人应要求小组成员对接收传感器事件、用户编程控制、电话报警等操作进行更详细的描述,必要时可用流程图表示。 用户可能提出一些条件,如造价不能超过3,000元,对传感器事件必须在1秒内作出响应,事件必须按优
11、先级进行处理等。会后小组负责人对这些信息进行综合、整理,形成文档,该文档应能反映“家庭保安系统”的全貌。,4.2初步需求获取技术,渤海大学信息科学与工程学院,例 家庭保安系统 ,联合小组分成两个小组,分别处理用户编程控制和传感器监测两个子系统。目的是对子系统的软件需求进行细化。确定子系统需求并形成文档 联合小组讨论子系统的集成及需求验证标准。子系统集成包括子系统接口的一致性检查、系统功能和行为的完整性检查。需求验证标准应该是可测试的,以便开发人员在代码生成后能够通过测试结果向用户表明软件系统已完整地实现了用户需求。 初步分析活动应形成结论性文档,该文档将作为后续分析活动的基础。,4.2初步需求
12、获取技术,渤海大学信息科学与工程学院,例 家庭保安系统 ,初步分析生成的“家庭保安系统”部分需求文档 (不包括约束条件和测试标准) “家庭保安系统”的软件允许用户在安装时进行系统配置,实施对传感器的监控并通过控制面板与用户进行信息交互。 配置操作 (1)指定每一传感器的种类和编号; (2)设置开、关机密码; (3)指定报警电话号码; (4)指定报警延迟和电话重拔延迟时间(以秒为单位)。,4.2初步需求获取技术,渤海大学信息科学与工程学院,例 家庭保安系统 ,当软件系统接收到传感器发出的数据后,判别是否出现异常事件。如果是,则在指定的延迟时间内拔报警电话号码,拔号操作将按照重拔延迟反复进行,直至
13、电话接通。然后软件系统负责报告时间、地点和异常事件的性质。 开机后软件系统负责显示当前工作状态,接收并处理用户指令。,4.2初步需求获取技术,渤海大学信息科学与工程学院,4.3 需求建模,建立软件模型是分析活动的关键。 目标软件系统的模型用来刻划系统所涉及的信息、处理功能及系统运行时的外部行为。 模型不应涉及软件实现细节,这样会分散分析人员的注意力,限制软件设计人员的聪明才智。 分析人员应以简洁、准确、清晰的方式,系统地描述软件需求模型,如,选择图形符号表示信息流、处理功能及系统行为,利用受限的自然语言给出用户需求描述。 为了处理大型问题,模型表示机制应具备良好的结构化能力。,第四章 需求分析
14、基础,渤海大学信息科学与工程学院,4.4 问题的抽象、分解与多视点分析,抽象 关注一般问题的解决途径,以此指导特殊问题的求解。 分析人员应该注意用户描述的抽象级别,统一规划系统行为 避免不一致性,减少分析的工作量。,第四章 需求分析基础,渤海大学信息科学与工程学院,问题的抽象、分解与多视点分析,分解 根据问题的规模和复杂性进行分解,并对子问题展开进一步的分析。 逐级分解,直至子问题的规模降至合适程度。 在问题分解过程中,要建立子问题之间的相互联系。 必须遵循子问题内部紧藕合,子问题之间松藕合的原则。,4.4问题抽象、问题分解与多视点分析,渤海大学信息科学与工程学院,问题的抽象、分解与多视点分析
15、,视点分解法 在分析的初期,整体地把握一个大型问题的软件需求是困难的。需要从各个角度分别对问题进行理解和分析,然后再综合,达到全面理解的目 需求分析视点系统观点 用户观点 信息观点 功能观点 行为观点等。 整理、综合用户描述,应注意用户视点的变化,避免遗漏。,4.4问题抽象、问题分解与多视点分析,渤海大学信息科学与工程学院,4 .5 支持需求分析的快速原型技术,传统方法问题: 按照传统的方法,目标软件要等到木已成舟才能交用户认可。 分析、设计及编码积累的各种问题,导致用户对目标软件提出诸多修改,甚至全盘否决,造成人力、物力的巨大浪费。,第四章 需求分析基础,渤海大学信息科学与工程学院,支持需求
16、分析的快速原型技术,软件开发早期,快速建立目标软件系统原型,让用户对原型进行评估并提出意见。 原型几经改进最终确定,它将进化成软件产品。 设计和编码人员遵循原型确立的外部特征实现软件产品。 如果软件产品含有大量人机交互、可视输出、或者涉及复杂的算法,应采用快速原型技术。,第四章 需求分析基础,渤海大学信息科学与工程学院,支持需求分析的快速原型技术,分析阶段使用快速原型技术与问题本身的复杂度以及可用的开发工具、环境有关。 如果问题非常复杂,在当前工具、环境的支持下开发可运行的原型需要投入太多人力或占用太多时间,那么可对某些子问题,尤其是用户界面,使用快速原型技术进行部分分析。 某些软件项目,虽不
17、能构造实际可运行的快速原型,但可以采用幻灯片演示等方法,向用户直观描述目标软件系统的外部行为。,4.5支持需求分析的快速原型技术,渤海大学信息科学与工程学院,快速建造原型,(1)利用需求分析技术、方法,生成简化的需求规格说明 (2)对简化的需求规格说明进行检查、修订,生成设计规格说明。为了快速生成原型,只关心软件的总体结构、用户界面和数据设计,而不注重过程内部的控制流。 (3)在快速原型工具或环境的帮助下,快速生成可运行的软件原型并进行测试、改进。主要工具有:可重用软部件库、用户界面自动生成器等。,4.5支持需求分析的快速原型技术,渤海大学信息科学与工程学院,快速建造原型,(4)将原型提交用户
18、评估并征求改进意见。 (5)迭代上述过程,直到用户满意。通过评审的原型应全面、准确地反映用户对目标软件在外部行为方面的需求,可以作为需求规格说明的一部分并成为软件设计和编码的基础。,4.5支持需求分析的快速原型技术,渤海大学信息科学与工程学院,4.6 需求规格说明与评审,产生需求规格说明并进行评审。需求规格说明应成为开发过程必须遵循的指导原则。,第四章 需求分析基础,渤海大学信息科学与工程学院,4.6.1 需求规格说明,目标 (1) 用户通过需求规格说明可初步判定目标软件能否满足需求,设计人员将需求规格说明作为软件设计的基础。 (2)支持目标软件系统的确认,需求规格说明的各项需求应该是可测试的
19、。 (3)控制系统进化过程,需求分析完成后,如果用户追加需求,开发人员再次进行需求分析,扩充需求规格说明,进行软件设计等。,4.6需求规格说明与评审,渤海大学信息科学与工程学院,需求规格说明,内容 功能、行为需求 描述系统的输入、输出及相互关系 非行为需求 描述软件系统工作时应具备的各种属性,如效率、可靠性、安全性、可维护性、可移植性等。 为使需求规格说明更加简洁,其它内容不应写入,如人员、成本、进度、设计方案、质量控制等。这些内容单独形成文档。,4.6需求规格说明与评审,渤海大学信息科学与工程学院,需求规格说明,1 引言1.1需求规格说明的目的1.2软件产品的作用范围1.3定义、同义词与缩写
20、1.4参考文献1.5需求规格说明概览 2 一般性描述2.1产品与其环境之间的关2.2产品功能,2.3用户特征2.4限制与约束2.5假设与前提条件 3 特殊需求 附录 索引,4.6需求规格说明与评审,渤海大学信息科学与工程学院,需求规格说明特殊需求描述,3特殊需求3.1功能或行为需求3.1.1功能或行为需求13.1.1.1引言3.1.1.2输入3.1.1.3处理过程描述3.1.1.4输出 3.1.2功能或行为需求2 3.1.n功能或行为需求n3.2外部界面需求3.2.1用户界面3.2.2硬件界面3.2.3软件界面,3.3性能需求3.4设计约束3.4.1标准化约束3.4.2硬件约束 3.5属性3.
21、5.1可用性3.5.2安全性3.5.3可维护性3.5.4可移植性 3.6其它需求3.6.1数据库需求3.6.2用户操作需求3.6.3工作场地需求,4.6需求规格说明与评审,渤海大学信息科学与工程学院,4.6.2 需求评审,需求规格说明进入设计阶段之前,必须进行评审。如果发现错误或缺陷,应及时纠正或更改需求分析、模型,需求规格说明,并重新评审。 衡量需求规格说明的标准正确性 无歧义性 完全性可验证性 一致性 可理解性可修改性 可追踪性,4.6需求规格说明与评审,渤海大学信息科学与工程学院,需求评审,(1)正确性。 需求规格说明书的功能、行为、性能描述必须与用户对目标软件产品的期望相吻合。 (2)
22、无歧义性。 需求规格说明的任何语法单位只能有唯一的语义解释。确保无歧义性的一种有效措施是在需求规格说明中使用标准化术语,并对术语的语义进行显式的、统一解释。,4.6需求规格说明与评审,渤海大学信息科学与工程学院,需求评审,(3)完全性。 需求规格说明书不能遗漏任何用户需求。具体地说,目标软件产品的所有功能、行为、性能约束,以及它在所有可能情况下的预期行为均应完整地包含在需求规格说明。 (4)可验证性。 对于规格说明书中的任意需求,均应存在技术和经济上可行的手段进行验证和确认。,4.6需求规格说明与评审,渤海大学信息科学与工程学院,需求评审,(5)一致性。 需求规格说明书的各部分之间不能相互矛盾
23、。这些矛盾可以表现为术语使用方面的冲突,功能和行为特征方面的冲突以及时序方面的前后不一致。 (6)可理解性。 追求上述目标不应妨碍需求规格说明书对于用户、设计人员和测试人员的易理解性。特别是对于非计算机专业的用户而言,不宜在说明书中使用太多的专业化词汇。,4.6需求规格说明与评审,渤海大学信息科学与工程学院,需求评审,(7)可修改性。 需求规格说明的格式和组织方式应支持内容的增、删和修改。 (8)可追踪性。 需求规格说明的每项需求必须与用户的原始需求相对应,为后续开发和其它文档引用这些需求提供方便。,4.6需求规格说明与评审,渤海大学信息科学与工程学院,需求评审,需求评审采用会议形式,用户、分
24、析人员和系统设计人员共同参加。 分析人员介绍软件产品的总体目标,包括产品的主要功能、与环境的交互行为,以及其它性能指标。 评估需求模型,讨论需求模型及需求规格说明是否具备良好的属性,能否构成良好的软件设计基础。,4.6需求规格说明与评审,渤海大学信息科学与工程学院,需求评审,讨论软件求解的其它途径,对影响软件设计和软件质量的因素进行折衷,决定需求规格说明采用的方案是否合理。讨论软件的质量确认方法,形成用户和开发人员均能接受的各项测试指标。,4.6需求规格说明与评审,渤海大学信息科学与工程学院,小结,需求分析的主要任务是实现用户需求的一致化、精确化和完全化。 需求分析活动可按照问题分析、需求描述
25、及需求评审三个子阶段逐步进行。 初始需求可用访谈、会议、考察用户工作流程的方式导出。 问题分析阶段的核心技术是问题抽象、问题分解及需求建模。 使用快速原型可以让用户更多、更早地参与需求分析过程。,第四章 需求分析基础,渤海大学信息科学与工程学院,小结,在需求描述阶段生成的需求规格说明应遵循标准的格式。问题分析阶段生成的需求模型构成需求规格说明的主体。 需求评审阶段,分析人员审查需求规格说明的标准:正确性、 无歧义性、 完全性、可验证性、 一致性、 可理解性、可修改性、 可追踪性。,第四章 需求分析基础,渤海大学信息科学与工程学院,作业,P4.8(A),第一章 软件与软件工程,渤海大学信息科学与工程学院,丹麦人,Turbo Pascal编译器的主要作者,Delphi之父 海尔斯伯格最初受雇于Borland,后来加入微软。比尔盖茨曾三顾茅庐,对他开出的价格为130万美元年薪外加股票期权和分红,总计每年超过300万美元,安德斯海尔斯伯格,.NET战略构架的重要参与决策者 、C#之父!,渤海大学信息科学与工程学院,随语,唐僧说:“妖要是有了仁慈之心,就不再是妖,是人妖。”(大话西游之大圣娶亲) 没有一个软件的需求改动少于三次。唯一只改动需求两次的客户是个死人。这个可怜的家伙还是在运送第三次需求的路上被车子撞死的。,第一章 软件与软件工程,