软件项目管理_软件项目需求管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
与能力
2.1.1软件需求概念
➢软件需求在软件项目的作用(如图2.1所示)
制定项目计划
系统构建
基础
产品可 追溯到
用户编制
基础
文档过程
作为 基线确定前 输入 缩小范围
跟踪
状态
项目跟踪和 控制过程
需求管理
验证实现 作为 的正确性 参考
进行 变更 作为 基线
请求范围 缩减
变更控制过程
系统测试过程
图2.1 软件需求与其他软件过程的关系
2.1.2软件需求层次
使用自然语言可能出现如下问题 描述困难 需求混乱
因此写需求文档应遵守一些简单原则: 标准的格式 使用一致的语言 使用特殊文本 尽量避免专业术语
2.1.2软件需求层次
➢系统需求
系统需求是比用户需求更为详细和专业的需求描述,是 系统实现的依据.一个完整且一致的系统需求描述,是 软件设计的起点.
系统需求描述通常采用结构化语言和过程设计语言PDL.
2.1.2软件需求层次
系统需求的描述语言:
表2.1系统需求的描述语言
名称 说明
结构化 是对自然语言格式化, 语言 依赖于定义标准格式或
模板来表达需求描述
优点
缺点
表现能力强、易 于理解 、一致性 约束 、控制结 构 、图形化显示
仍然有一定程度的 二义性;细致程度 欠缺
需求工程是一个包括创建和维护需求文档所必需的所有活动的过程, 是将用户非形式化的软件需求转变为形式化的需求规格说明的过程。
需求规格说明又是软件设计、实现、测试直至维护的主要基础。
2.1.4 需求工程发展历程
➢ 发展
需求工程的发展趋势是对象化、形式化和自动化, 并将向着纵深发展和综合发展。 (1)对象化
PDL 源于像Java或Ada这样 可通过软件工具 表达系统功能的能
的程序设计语言,包含 进行语法和语义 力不足、使用的符
附加的、更抽象的构造 检查
号只有具有程序设
来提高其表达能力
计背景的人才能理
解
2.1.2软件需求层次
➢系统需求的分类
功能需求 非功能需 领域需求
2.1.2软件需求层次
(1) 功能需求
2.1.3 软件需求质量评价
一个好的需求集应该满足用户解决问题需要的功能和服务,而且尽 量避免软件设计与软件实现的细节.
软件需求质量度量的九个元素:
正确性 无歧义 完备性 一致性 根据重要性和稳定性分级 可验证性 可修改性 可跟踪性 可理解性
2.1.4 需求工程发展历程
➢ 产生
人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,而 是贯穿于软件项目开发的整个生命周期。
可用性需求 效率需求
可靠性需求 可移植性需求 交付需求 实现需求 标准需求 互操作需求 道德需求 立法需求
性能需求 空间需求
隐私需求安全性需求
2.1.2软件需求层次
(3) 领域需求
领域需求的来源不是系统的用户,而是系统应用的领域,反应 了该领域的特点。
领域需求可能是功能需求,也可能是非功能需,其确定需要领 域知识。
2.1.2软件需求层次
➢软件需求的四个抽象层次
原始问题描述 用户需求 系统需求 软件设计描述
2.1.2软件需求层次
软件需求的抽象层次如图2.2所示:
图2.2 软件需求的抽象层次
2.1.2软件需求层次
① 原始问题:描述是对要解决问题的叙述 ② 用户需求:是用自然语言和图表给出的关于系统需要提供
第2章 软件项目需求管理
2.1需求工程 2.2需求开发 2.3需求管理 2.4案例故事解析 2.5总结
2.1需求工程
2.1.1 软件需求概念 2.1.2 软件需求层次 2.1.3 软件需求质量评价 2.1.4 需求工程发展历程 2.1.5 需求工程研究内容
2.1.1软件需求概念
定义:
简单地说,软件需求就是确定系统需要做什么. 严格意义上,软件需求是系统或软件必须达到的目标
按照非功能需求的起源,可将其分为三大类:产品需求,机构需 求,外部需求;产品需求对产品的行为进行描述;机构需求描述 用户与开发人员所在机构的政策和规定;外部需求范围比较广, 包括系统的所有外部因素和开发过程。
2.1.2软件需求层次
表2.2 非ห้องสมุดไป่ตู้能需求的类别
产品需求
非 功 能 需 机构需求 求
外部需求
功能需求描述系统所应提供的功能和服务,包括系统 应该提供的服务,对输入如何响应及特定条件下系统 行为的描述.
系统的功能需求应该具备全面性和一致性.要做到全 面和一致几乎是不可能的.原因有二,其一是系统本 身固有的复杂性;其二是用户和开发人员站在不同的 立场上,导致他们对需求的理解有偏颇,甚至出现矛 盾
系统需求和软件设计描述则是具体的,可以根据它 们来进行编码实现.
通常情况下,经常提到的是用户需求和系统需求.
2.1.2软件需求层次
➢ 用户需求
用户需求从用户的角度描述系统的需求,以便没有专业技术 背景的用户能看懂.它只描述系统的外部行为,尽量避免涉及系 统内部的设计特性,因而用户需求就不可能使用任何实现模型来 描述,而只能通过自然语言,图表,图形等来叙述.
为保证软件项目的成功,无论在哪个阶段,只要发现 问题,都必须修正需求文档.
2.1.2软件需求层次
(2) 非功能需求
非功能需求是指那些不直接与系统的具体功能相关的一类需求, 但它们与系统的总体特性相关,如可靠性,响应时间,存储空间 等。
非功能需求定义了对系统提供的服务或功能的约束,包括时间约 束,空间约束,开发过程约束及应遵循的标准等。
的服务及系统的操作约束 ③ 系统需求:用详细的术语给出系统要提供的服务及受到的
约束,因而系统需求文档也称为功能描述. ④ 软件设计:描述是在系统需求的基础上加入更详细的内容
构成的,它作为软件详细设计和实现的基础,是对软件设
计活动的概要描述.
2.1.2软件需求层次
原始问题描述和用户需求的抽象层次比较高.能帮 助我们在较高的抽象层次上进行交流,便于用户和 软件开发人员之间的理解和沟通.
需求工程的对象化主要是指需求模型及其构造方 法的对象化,面向对象需求模型及需求定义语言是其 研究的关键。
2.1.4 需求工程发展历程
(2)形式化 需求规格描述方法有三种: 形式化方法、非形式化
方法和半形式化方法。 形式化方法:是具有严格数学基础的描述系统特征
的方法,具有准确、无二义性的特点,有助于验证有效 性和完整性。
2.1.1软件需求概念
➢软件需求在软件项目的作用(如图2.1所示)
制定项目计划
系统构建
基础
产品可 追溯到
用户编制
基础
文档过程
作为 基线确定前 输入 缩小范围
跟踪
状态
项目跟踪和 控制过程
需求管理
验证实现 作为 的正确性 参考
进行 变更 作为 基线
请求范围 缩减
变更控制过程
系统测试过程
图2.1 软件需求与其他软件过程的关系
2.1.2软件需求层次
使用自然语言可能出现如下问题 描述困难 需求混乱
因此写需求文档应遵守一些简单原则: 标准的格式 使用一致的语言 使用特殊文本 尽量避免专业术语
2.1.2软件需求层次
➢系统需求
系统需求是比用户需求更为详细和专业的需求描述,是 系统实现的依据.一个完整且一致的系统需求描述,是 软件设计的起点.
系统需求描述通常采用结构化语言和过程设计语言PDL.
2.1.2软件需求层次
系统需求的描述语言:
表2.1系统需求的描述语言
名称 说明
结构化 是对自然语言格式化, 语言 依赖于定义标准格式或
模板来表达需求描述
优点
缺点
表现能力强、易 于理解 、一致性 约束 、控制结 构 、图形化显示
仍然有一定程度的 二义性;细致程度 欠缺
需求工程是一个包括创建和维护需求文档所必需的所有活动的过程, 是将用户非形式化的软件需求转变为形式化的需求规格说明的过程。
需求规格说明又是软件设计、实现、测试直至维护的主要基础。
2.1.4 需求工程发展历程
➢ 发展
需求工程的发展趋势是对象化、形式化和自动化, 并将向着纵深发展和综合发展。 (1)对象化
PDL 源于像Java或Ada这样 可通过软件工具 表达系统功能的能
的程序设计语言,包含 进行语法和语义 力不足、使用的符
附加的、更抽象的构造 检查
号只有具有程序设
来提高其表达能力
计背景的人才能理
解
2.1.2软件需求层次
➢系统需求的分类
功能需求 非功能需 领域需求
2.1.2软件需求层次
(1) 功能需求
2.1.3 软件需求质量评价
一个好的需求集应该满足用户解决问题需要的功能和服务,而且尽 量避免软件设计与软件实现的细节.
软件需求质量度量的九个元素:
正确性 无歧义 完备性 一致性 根据重要性和稳定性分级 可验证性 可修改性 可跟踪性 可理解性
2.1.4 需求工程发展历程
➢ 产生
人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,而 是贯穿于软件项目开发的整个生命周期。
可用性需求 效率需求
可靠性需求 可移植性需求 交付需求 实现需求 标准需求 互操作需求 道德需求 立法需求
性能需求 空间需求
隐私需求安全性需求
2.1.2软件需求层次
(3) 领域需求
领域需求的来源不是系统的用户,而是系统应用的领域,反应 了该领域的特点。
领域需求可能是功能需求,也可能是非功能需,其确定需要领 域知识。
2.1.2软件需求层次
➢软件需求的四个抽象层次
原始问题描述 用户需求 系统需求 软件设计描述
2.1.2软件需求层次
软件需求的抽象层次如图2.2所示:
图2.2 软件需求的抽象层次
2.1.2软件需求层次
① 原始问题:描述是对要解决问题的叙述 ② 用户需求:是用自然语言和图表给出的关于系统需要提供
第2章 软件项目需求管理
2.1需求工程 2.2需求开发 2.3需求管理 2.4案例故事解析 2.5总结
2.1需求工程
2.1.1 软件需求概念 2.1.2 软件需求层次 2.1.3 软件需求质量评价 2.1.4 需求工程发展历程 2.1.5 需求工程研究内容
2.1.1软件需求概念
定义:
简单地说,软件需求就是确定系统需要做什么. 严格意义上,软件需求是系统或软件必须达到的目标
按照非功能需求的起源,可将其分为三大类:产品需求,机构需 求,外部需求;产品需求对产品的行为进行描述;机构需求描述 用户与开发人员所在机构的政策和规定;外部需求范围比较广, 包括系统的所有外部因素和开发过程。
2.1.2软件需求层次
表2.2 非ห้องสมุดไป่ตู้能需求的类别
产品需求
非 功 能 需 机构需求 求
外部需求
功能需求描述系统所应提供的功能和服务,包括系统 应该提供的服务,对输入如何响应及特定条件下系统 行为的描述.
系统的功能需求应该具备全面性和一致性.要做到全 面和一致几乎是不可能的.原因有二,其一是系统本 身固有的复杂性;其二是用户和开发人员站在不同的 立场上,导致他们对需求的理解有偏颇,甚至出现矛 盾
系统需求和软件设计描述则是具体的,可以根据它 们来进行编码实现.
通常情况下,经常提到的是用户需求和系统需求.
2.1.2软件需求层次
➢ 用户需求
用户需求从用户的角度描述系统的需求,以便没有专业技术 背景的用户能看懂.它只描述系统的外部行为,尽量避免涉及系 统内部的设计特性,因而用户需求就不可能使用任何实现模型来 描述,而只能通过自然语言,图表,图形等来叙述.
为保证软件项目的成功,无论在哪个阶段,只要发现 问题,都必须修正需求文档.
2.1.2软件需求层次
(2) 非功能需求
非功能需求是指那些不直接与系统的具体功能相关的一类需求, 但它们与系统的总体特性相关,如可靠性,响应时间,存储空间 等。
非功能需求定义了对系统提供的服务或功能的约束,包括时间约 束,空间约束,开发过程约束及应遵循的标准等。
的服务及系统的操作约束 ③ 系统需求:用详细的术语给出系统要提供的服务及受到的
约束,因而系统需求文档也称为功能描述. ④ 软件设计:描述是在系统需求的基础上加入更详细的内容
构成的,它作为软件详细设计和实现的基础,是对软件设
计活动的概要描述.
2.1.2软件需求层次
原始问题描述和用户需求的抽象层次比较高.能帮 助我们在较高的抽象层次上进行交流,便于用户和 软件开发人员之间的理解和沟通.
需求工程的对象化主要是指需求模型及其构造方 法的对象化,面向对象需求模型及需求定义语言是其 研究的关键。
2.1.4 需求工程发展历程
(2)形式化 需求规格描述方法有三种: 形式化方法、非形式化
方法和半形式化方法。 形式化方法:是具有严格数学基础的描述系统特征
的方法,具有准确、无二义性的特点,有助于验证有效 性和完整性。