第一讲:绪论—需求工程与软件需求 ..................................................... 4
软需缺陷纠正的成本 .........................................................4
1.
软件开发和维护方法的不正确性主要体现在: ...................................4
2.
需求工程的概念 .............................................................4
3.
软件需求工程的概念 .........................................................4
4.
HerbKrasner 定义的需求工程的五阶段生命周期: ............................... 4
5.
Matthias Jarke 和 Klaus Pohl 提出的三阶段周期的说法: ....................... 5
6.
综合几种观点对需求工程活动的划分: ..........................................5
7.
IEEE 软件工程标准词汇表(1997 年)中定义需求为: ..............................5
8.
9.
本课程对软件需求的定义 .....................................................5
10. 软件需求的层次划分 .........................................................5
11. 非功能性需求: .............................................................6
12.
McCall 提出的 11 个质量特性: ............................................... 6
13. 设计约束: .................................................................6
14. 需求工程的构成 .............................................................6
15. 需求开发过程包括: .........................................................7
16. 需求获取 ...................................................................8
(1)需求获取包括的主要活动 .................................................. 8
(2)需求获取的方法和技能 .................................................... 8
(3)主要任务 ................................................................ 8
(4)可能出现的主要问题 ...................................................... 8
17. 需求分析的主要任务 .........................................................9
18. 编写需求规格说明 ...........................................................9
19. 需求验证 ...................................................................9
20. 需求管理 ..................................................................10
21. 导致发生不合格需求说明的情况: ............................................10
22. 良好需求具有的特性 ........................................................10
(1)每一项需求都应该具备下列特性: ......................................... 10
(2)整个需求规格说明必须具备的特性 ......................................... 10
第二讲:需求获取 .................................................................... 11
23. 建立项目视图与范围 ........................................................11
(1)通过业务需求确定项目视图 ............................................... 11
(2)项目视图和范围文档 ..................................................... 11
24. 需求的来源 ................................................................11
25. 用户类 ....................................................................12
26. 涉众、客户、用户、用户类的关系 ............................................12
27. 用户代表 ..................................................................12
(1)寻找用户(产品)代表 ................................................... 12
(2)用户(产品)代表 ....................................................... 13
(3)对产品代表的要求 ....................................................... 13
28. 用例化方法:什么是用例化方法,用例的模型 ..................................13
(1)用例和用法说明 ......................................................... 13
(2)确定用例并编写用例文档 ................................................. 14
(4)用例的益处 ............................................................. 14
(5)在用例的方法中应注意如下的陷阱: ....................................... 14
29. 质量属性 ..................................................................15
1
第三讲:需求分析 .................................................................... 15
30. 需求分析中的主要任务包括: ................................................15
31. 系统关联图 ................................................................15
32. 原型法:构成,在需求开发过程中原型法的种类划分,有哪些风险,什么是原型,原型
化的作用 ........................................................................ 16
(1)什么是原型? ........................................................... 16
(2)为什么要建立原型? ..................................................... 16
(3)在需求开发过程中原型法的种类划分 ....................................... 16
(4)原型化的作用 ........................................................... 17
(5)原型法的风险 ........................................................... 17
33. (原整理内容)软件原型是一种技术,可以利用这种技术减少客户对产品不满意的风险。
原型可以使新产品实在化,为用例带来生机,并消除在需求理解上的差异。一个软件原型通常仅
仅是真实系统的一部分或一个模型,并且它可能根本不能完成任何有用的事。 ............ 18
34. 原型法成功的因素: ........................................................18
35. 需求建模 ..................................................................19
36. 数据流图 ..................................................................19
37. 实体-关系图 ...............................................................19
38. 状态转换图 ................................................................20
39. 对话图 ....................................................................21
40. 类图 ......................................................................22
41. 数据字典 ..................................................................22
第四讲:编写需求文档:需求规格说明 .................................................. 22
42. 可以用三种方法编写软件需求规格说明: ......................................23
43. 软件需求规格说明 ..........................................................23
44. 不同读者使用 SRS 来达到不同的目的: ........................................24
45. 把用户界面的设计编入软件需求规格说明既有好处也有坏处 ......................24
第五讲:需求验证 .................................................................... 25
46. 需求验证的主要方法 ........................................................25
47. 需求评审 ..................................................................25
48. 评审员检查的内容有: ......................................................25
49.
6 种评审方法 .............................................................. 26
50. 审查过程 ..................................................................26
(1)参与者 ................................................................. 26
(2)审查中每个成员扮演的角色 ............................................... 26
(3)审查阶段 ............................................................... 27
1)规划(planning) ............................................................ 27
2)总体会议(overview meeting) ................................................ 27
3) 准备(preparation) ........................................................ 27
4)审查会议(inspection meeting) .............................................. 27
5)重写(rework) .............................................................. 28
6)重审(follow-up) ........................................................... 28
(4)进入和退出审查的标准 ................................................... 28
(5)需求评审的困难 ......................................................... 28
第六讲:需求管理 .................................................................... 29
51. 什么是基线?什么是需求基线? ..............................................29
52. 评估需求管理的工作量 ......................................................30
2
53. 配置管理 ..................................................................30
54. 需求蔓延 ..................................................................30
55. 变更控制过程 ..............................................................30
56. 变更控制委员会(change control board, CCB) .................................31
57.
CCB 的职责 ................................................................ 31
58. 影响分析 ..................................................................32
59. 影响分析的过程,怎么做影响分析 ............................................32
60. 需求跟踪 ..................................................................32
(1)需求的链接链 ........................................................... 32
(2)跟踪联系链可能的信息源 ................................................. 33
(3)什么是需求跟踪矩阵 ..................................................... 33
61. 使用需求管理工具的益处 ....................................................34
第七讲:需求风险管理及超越需求开发 .................................................. 34
答案 ................................................................................ 34
一、填空题 ...................................................................... 34
二、单选题 ...................................................................... 34
三、多项选择题 .................................................................. 34
四、为什么在软件开发项目中维护阶段发现错误的修复成本是需求阶段发现错误修复成本的 100
倍到 200 倍(3-5)?详细说明这些成本的主要构成(10-12)? ....................... 36
五、图示并论述软件需求的组成层次及其相互关系。 .................................. 37
六、简述软件需求的几种典型来源 .................................................. 37
七、分别说明每项需求和整个需求规格说明书应具有哪些主要特征?图示并论述需求审查的过程,
并说明需求规格说明书进入和退出审查的标准。 ...................................... 38
1. 每项需求和整个需求规格说明书应具有哪些主要特征? ......................... 40
2. 图示并论述需求审查的过程 ................................................. 40
3. 需求规格说明书进入和退出审查的标准 ....................................... 41
八、论述变更管理中的主要活动 .................................................... 41
3
第一讲:绪论—需求工程与软件需求
1. 软需缺陷纠正的成本
重新进行规格说明;重新设计;重新编码;重新测试;
版本升级;纠正活动;报废;回收成本;
保修成本;产品赔偿;服务成本;建档成本;
2. 软件开发和维护方法的不正确性主要体现在:
忽视软件开发前期的需求分析,包括缺乏先进的需求开发技术和规范的需求管理过程等;
开发过程缺乏统一的、规范化的方法论的指导;
文档资料不齐全或不准确;
忽视与用户之间、开发组员之间的交流;
忽视测试的重要性;
不重视维护或由于上述原因造成维护工作的困难。
3. 需求工程的概念
需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并
定义目标系统的所有外部特征的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为
特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。RE 可分为系统需求工程
和软件需求工程。
需求工程是一个不断反复的需求定义、文档记录、需求演进的过程,并最终在验证的基础上冻结需求。
4. 软件需求工程的概念
软件需求工程是一门分析并记录软件需求的学科,它把系统需求分解成一些主要的子系统和任务,把
这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开发过程把这些系
统需求转换成软件的需求描述和一些性能参数。
5. HerbKrasner 定义的需求工程的五阶段生命周期:
需求定义和分析、需求决策、形成需求规格、需求实现与验证、需求演进管理。
4
6. Matthias Jarke 和 Klaus Pohl 提出的三阶段周期的说法:
获取、表示和验证。
7. 综合几种观点对需求工程活动的划分:
需求获取、需求建模、形成需求规格、需求验证、需求管理
8.
IEEE 软件工程标准词汇表(1997 年)中定义需求为:
1) 用户为解决某个问题或达到某种目标而需具备的条件或能力
2) 系统或系统部件要满足合同、标准、规范或其它正式规定文档而必须满足的条件或必须具备的能
力。
3) 一种反映上面(1)或(2)所描述的条件或能力的文档说明。
9. 本课程对软件需求的定义
软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通过对应问题及其
环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化,最
终形成需求规格说明,这一系列的活动即构成软件开发生命周期的需求分析阶段。
10. 软件需求的层次划分
软件需求包括三个不同的层次:
业务需求 (business requirement):反映了组织机构或客户对系统、产品高层次的目标要求,
它们在项目视图与范围文档中予以说明。
用户需求(user requirement):描述的是用户的目标,或用户要求系统必须要完成的任务。用
例(use case)文档、场景描述(scenario)和事件—响应表均用于表达用户需求。
功能需求(functional requirement):定义了开发人员必须实现的软件功能,使得用户能利用
这些功能完成他们的任务,从而满足了业务需求。
作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执
行的操作等。
5
在项目中它们在不同的时间来自不同的来源,也有着不同的目标和对象,并需以不同的方式编写成文
档。
业务需求(或产品视图和范围)不应包括用户需求(或使用实例)。
而所有的功能需求都应该源于用户需求。
同时也需要获取非功能需求,如质量属性 。
11. 非功能性需求:
作为功能需求的补充,它描述了系统展现给用户的行为和执行的操作等。包括外部界面细节、性能要
求及质量属性。
12. McCall 提出的 11 个质量特性:
运行:正确性,可靠性,效率,完整性,易用性;
修正:可维护性,测试性,灵活性;
转移:可移植性,可重用性,互操作性
13. 设计约束:
所谓约束是指对开发人员在软件产品设计和构造上的限制。
14. 需求工程的构成
需求工程是由一系列与软件需求有关的活动组成,包括软件需求开发活动和需求管理活动两部分,如
图所示(书中图 2.1):
6
(1)需求开发中的问题获取(elicitation)、需求分析(analysis)、编写规格说明 (specification)
和需求验证(verification)四个阶段包括了软件产品中需求收集、评价、编写文档等所有活动。需求
开发活动包括以下几个方面:
确定产品所期望的用户类。
获取每个用户类的需求。
了解实际用户任务和目标以及这些任务所支持的业务需求。
分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决、方
法和附加信息。
(2)需求管理包括需求跟踪、变更需求和基线管理。需求管理的任务是“与客户就软件项目的需求
达成并保持一致”。
掌握:
15. 需求开发过程包括:
确定产品所期望的用户类;
获取每个用户类的需求;
了解实际用户任务和目标以及这些任务所支持的业务需求;
分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决、方法和附加
信息。
7
16. 需求获取
(1)需求获取包括的主要活动
确定需求开发过程;
编写项目视图和范围文档;
用户群分类;
选择产品代表;
建立核心队伍;
确定用例;
召开应用程序开发联系会议;
分析用户工作流程;
确定质量属性和其他非功能性需求;
检查问题报告;
需求重用;
……
(2)需求获取的方法和技能
项目范围确定;用户确定;用例确定;系统事件和响应;
获取方法: 讨论会议、观察工作过程、问答式对话、启发式诱导等
(3)主要任务
收集材料、定义项目视图和范围、选择信息来源、选择获取方法并执行获取、记录获取结果。
(4)可能出现的主要问题
捕获范围不足
缺乏计划性
缺乏科学性
获取对象不明确
8