软件项目需求管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机械学院CAD中心
软件需求在软件项目中的作用
机械学院CAD中心
软件需求在软件项目中的作用
项目计划过程:需求是项目计划的基础 跟踪控制过程:监控每项需求的状态,以发现设计是否达到了
预期的要求 变更控制过程:需求文档确定并制定基线后的变更都要通过确
定的变更控制过程来实现 系统测试过程:需求是测试的重要参考文档编制过程:需求是
编写文档的重要参考 系统构建过程:需求决定模块设计,模块设计是代码实现的依
据
机械学院CAD中心
软件需求的类别
原始问题描述:对要解决问题的叙述 ,它是软件需求的基础
用户需求:用自然语言和图表给出的 关于系统需要提供的服务及操作的约 束
系统需求:用详细的术语给出系统要 提供的服务及受到的约束
软件设计描述:在系统需求的基础上 加入更详细的内容,它是软件详细设 计和实现的基础
机械学院CAD中心
用户需求
从用户的角度描述系统的需求,以便没有计算机专业技 术背景的用户能看懂
只描述系统的外部行为,避免涉及系统内部设计特征 编写用户需求文档时应遵守的一些简单原则:
标准的格式:标准格式有利于避免遗漏 使用一致的语言 使用特殊文本 尽量避免专业术语
机械学院CAD中心
源可追溯性信息:连接需求与提出需求的人员及产生需求的原因 需求可追溯性信息:连接需求文档中彼此依赖的信息 设计可追溯性信息:连接需求到其实现的设计模块
机械学院CAD中心
需求跟踪的作用
在需求验证中,便于确保所有需求被应用 有助于变更影响分析 便于需求的维护 便于测试时找出问题所在 便于项目跟踪和减少项目风险 简化了系统再设计,易于软件重用
变更描述:始于一个被识别的需求问题或一份明确 的变更提议
变更分析:评估被提议的变更产生的影响 变更实现:执行变更,需求文档、系统设计和实现
都要修改
机械学院CAD中心
变更控制流程
机械学院CAD中心
需求状态
定义:某时间点需求的情况Βιβλιοθήκη Baidu映。 客户需求的四种情况:
客户可以明确且清楚地提出的需求 客户知道需要做什么,但却不能确定的需求 客户提出需求,但需求的业务不明确 客户自己也说不清楚的需求
形式,需求获取、需求分析、需求验证等是内容
机械学院CAD中心
需求管理的规划
进行需求管理的第一步是建立需求管理规划: 需求识别:给需求以惟一的标识 变更过程管理:确定一个选择、分析和决策需求变更的过程 需求跟踪:定义需求之间的关系及需求和设计之间的关系,记
录并维护这些关系 自动化工具:即选择使用何种CASE工具
2. 编写SRS:按照软件组织定义的SRS大纲,采用某种需求描述 语言来完成
机械学院CAD中心
需求工程的分解层次
机械学院CAD中心
需求开发与管理的界限
机械学院CAD中心
2.3 需求管理
必要性: 需求供求双方固有的矛盾
需求具有易变性和难以表 述性
需求错误出现的高频性和 修改的高昂成本
软件缺陷修复成本
机械学院CAD中心
需求管理存在的问题
1. 需求不总是显而易见的,它可来自各个方面。 2. 需求并不总是容易用文字明白无误地表达。 3. 存在不同种类的需求,其详细程度各不相同。 4. 如果不加以控制,需求是无止境的,需求数量
将难以管理。 5. 需求相互之间以及与流程的其他可交付工件之
间以多种方式相关联。 6. 需求既非同等重要,处理的难度也不同。 7. 需求涉及众多相关利益责任方,这意味着需求
02软件项目需求管理
机械学院CAD中心
为什么要进行需求管理?
评测和验证有效的软件开发流程标准得到了推广 和普及
➢为什么现在仍然频繁发生的软件项目失败的事件 ?
➢为什么仍有那么多的项目受到延期、预算超支和 质量问题的困扰?
➢如何才能提高系统的质量?
机械学院需CAD中求心 与需求管理的概念
为什么要管理需求? 简单地说,系统开发团队之所以管理需求是为了获得 项目成功。 好的需求管理是项目成功的第一要素。
机械学院CAD中心
系统需求的分类
比用户需求更详细和专业的描述,是系统实现的依据
功能需求:描述系统应提供的功能和服务,是对如何响应 输入及特定条件下行为的描述
非功能需求:是功能需求的补充,是不直接与系统具体功 能相关的一类需求,如可靠性、响应时间、存储空间。非 功能需求反映的是系统的整体特性,因此更关键
5.8 可测试性需求
5.9 安装性需求
6 附录
机械学院CAD中心
软件需求度量
Dean Leffingwell和Don Widrig总结了软件需求质量度量的九个元素 :正确、无歧义、完备、一致、分级、可验证、可修改、可跟踪 和可理解
正确:当且仅当需求都代表了构建软件系统所要完成的事情 无歧义:当且仅当需求只有一种解释 完备性:当且仅当需求集描述了用户关心的所有有意义的需求 一致性:当且仅当任意两个需求的子集间没有矛盾 分级:根据重要性和稳定性分级,尤其当现有资源不足以实现所
机械学院CAD中心
2.4 需求质量保证
需求验证过程 审查需求文档:由分析人员、客户、设计人员和测
试人员等组成的审查小组 编写测试用例:根据用户要求的产品功能写出黑盒
测试用例。如果测试的设计很可能或不可能,说明 需求的实现很困难 编写用户手册:用户手册初稿 确定合格的标准:合格的测试是建立在使用情景描 述或使用实例基础上的
机械学院CAD中心
现代软件工程对需求工程的定义
提供一种适当的机制,以了解用户想要什么(分析需求 )、评估可行性、协商合理的解决方案、无歧义地规约 解决方案、确认规约以及在开发过程中管理这些被确认 的需求规约。包括6个步骤:
获取(需求诱导) 分析(需求分析和谈判) 规定(规约) 系统建模 验证(需求确认) 需求管理(控制与变更管理)
达将引起需求的不可验证 …
机械学院CAD中心
软件需求规格说明
需求文档通常采用软件需求规格说明SRS (Software Requirement Specification)的形式
软件需求规格精确地阐述软件系统必须提供的功能 和性能,以及它需要考虑的限制条件,是对外部行 为和系统环境接口的简洁完整的描述性文档;
系统需求
比用户需求更详细和专业的描述,是系统实现的依据 系统需求通常采用结构化语言和过程设计语言PDL 结构化语言的特定是表现力强、易于理解,缺点是有一
定程度的二义性 PDL源于Java或Ada,可借助软件工具进行语法和语义检
查,缺点是表达系统功能的能力不足,只有具有程序设 计背景的人才能理解
要由跨职能的各组人员来管理。 8. 需求会发生变更。 9. 需求可能对时间敏感。
机械学院CAD中心
软件工程的需求分析过程
(1)对系统的综合要求: ➢功能要求:包括系统应该实现的功能; ➢性能要求:包括系统响应时间、资源限制、数据 精确性、系统适应性等; ➢运行要求:包括系统硬件环境、网络环境、系统 软件、接口等的具体要求; ➢其他要求包括:安全保密、可靠性、可维护性、 可移植性、可扩展性等等。
IEEE标准830-1998是关于需求说明的标准,它可以 为需求规格提供很好的建议,但却因为过于一般化 而无法采纳为软件组织的具体标准
机械学院CAD中心
示例性的SRS大纲
1. 软件项目概述
1.1 软件项目展望:前景展望、与其它项目相关性表述
1.2 产品功能:简介产品功能
2. 一般性限制:如硬件、集成接口、通信协议等
可理解性:需求集是可理解的是指用户和开发人员都完全理解它 的整体行为、所提供的功能及其中每条需求的含义
机械学院CAD中心
2.2 需求工程
定义 包括创建和维护需求文档所必须的所有活动的过程,是将用户非
形式化的软件需求转变为形式化的需求规格说明的过程。 发展趋势: 对象化:指需求模型及其构造方法的对象化,其研究关键是面向
机械学院CAD中心
为什么要管理需求?
需求分析在启动和计划阶段,占有相当大的比例。
机械学院CAD中心
什么是需求管理?
一种获取、组织并记录系统需求的系统化方案,以及 一个使客户与项目团队对不断变更的系统需求达成并 保持一致的过程。
这个定义与 Dorfman 与 Thayer 以及 IEEE 的“ 软件需求工程”的定义相似。需求工程包括获取、分析 、规定、验证和管理软件需求,而“软件需求管理”则 是对所有相关活动的规划和控制。
机械学院CAD中心
需求管理的目标
需求管理是一种获取、组织并记录软件需求的系统化 方案,也是使客户与项目团队对不断变更的软件需求 保持一致的过程
需求管理的目的:在客户和处理客户需求的软件项目 组之间建立对客户需求的共同理解
1. 使软件受控,并建立供软件工程和管理使用的需求基线 2. 使软件计划、产品和活动与软件需求保持一致
3. 假设与相关性:确定影响需求的具体假设与相关性
4. 用户界面:包括屏幕布局、预期的用户交互与输入设备
5. 具体需求:包括软件的功能需求
5.1 系统行为 5.1.1 输入 5.1.2 处理 5.1.3 输出
5.2 性能需求
5.3 诊断需求
5.4 安全性需求
5.5 可维护性需求
5.6 可配置性需求 5.7 可升级性需求
需求状态: 已建议 □ 已批准 □已拒绝 已设计 □ 已实现 □ 已验证 已交付 □ 已删除
机械学院CAD中心
需求跟踪
目的:建立和维护从用户需求到测试的一致性与完整性,确保 实现都以客户需求为基础,实现的需求覆盖了预期的需求,并 确保输出与用户需求的符合性
需求跟踪就要追溯需求间以及需求与系统设计间的联系,可追 溯性是需求描述的一个总体特性,反映了发现相关需求的能力 。三类可追溯性信息:
对象模型和需求定义语言 形式化:形式化方法是具有严格数学基础的描述系统特征的方法
,具有准确、无歧义的特定 自动化:CASE工具的研究
机械学院CAD中心
需求工程的目标
目标:通过对问题及其环境的理解建立分析模型,在完全理解用户 需求的基础上用SRS表达用户需求
1. 建立分析模型:它包含问题及其环境所涉及的信息流、处理 功能、用户界面、行为模型及设计约束
机械学院CAD中心
需求验证的内容
有效性检查:每项需求都是正确有效的,能解决用 户面对的问题
一致性检查:需求不应该冲突 完备性检查:应包含所有用户想要的功能和约束 现实性检查:保证能利用现有技术实现 可检验性检查:描述的需求能够实际测试 可跟踪性检查:需求的出处被清晰记录 可调节性检查:需求变更不会对其它部分造成大规
领域需求:来自系统应用领域,反映领域特点的需求,它 可能是功能需求也可能是非功能需求
机械学院CAD中心
编制需求文档的基本原则
语句和段落尽量简短 语句要完整,语法、标点等要正确 使用的术语与词汇表中的定义保持一致 避免使用模糊、主观的术语,如性能“优越” 避免使用比较性词汇,尽量给出定量的说明,含糊的表
机械学院CAD中心
需求变更管理
需求变更的原因
软件需求定义不完整 随着项目的进行,对问题的理解发生了变化
此外,对大型项目,还可能:
不同类型用户的需求是冲突或矛盾的 系统购买者与最终用户往往不同,其需求与理解
很难完全一致
机械学院CAD中心
变更管理过程
进行变更管理,首先要建立变更控制委员会,变更管理 过程包括变更描述、变更分析和变更实现三个阶段 :
有的需求时
机械学院CAD中心
软件需求度量(续)
可验证性:可验证的需求就是在以后的过程中可以测试它是否得 到满足
可修改性:当且仅当每条需求都易于完整和一致地进行变更,且 不改变需求集的结构和风格。此时需求集以适当的目录、索引及 交叉引用组织,冗余程度低
可跟踪性:当且仅当每条需求都是可溯源的,并存在一种机制使 得以后工作中引用该需求是可行的
机械学院CAD中心
软件工程的需求分析过程
(2)分析系统的数据要求 数据定义、数据逻辑关系、输入/出数据定义、数据采 集方式等 (3)抽象出并确立目标系统的逻辑模型 如用例图、设计模型、实施模型和实现模型等 (4)编写需求规格说明书 如数据流图(Data flow diagram ,DFD)、面向对象 的分析等。
机械学院CAD中心
需求管理的原则
一定要分类管理:高层领导的目标性需求、中层管理的具体业 务流程需求和作业人员对操作性的需求等
必须分优先级 必须文档化:文档必须是正确的、最新的、可管理的、可理解
和经过验证的 需求一旦变化,就必须对需求变更的影响进行评估,每个项目
都必须有需求管理员或组 需求管理必须与需求工程的其他活动机密结合:需求管理是