需求工程(考前整理)
第一部分(绪论)
1. 什么是需求
(1)用户为了解决问题或达到某些目标所需要的条件或能力;
(2)系统或系统部件为了满足合同、标准、规范或其它正式文档所规定的要求而需要具备的条件或能力;
(3)对1或2中的一个条件或一种能力的一种文档化描述
2. 需求的分类
[IEEE1998]将需求分为5种类别:
(1)功能需求:和系统主要工作相关的需求,即在不考虑物理约束的情况下,用户希望系统所能够执行的活动,这些活动可以帮助用户完成任务。功能需求主要表现为系统和环境之间的行为交互。
(2)性能需求:系统整体或系统组成部分应该拥有的性能特征,例如CPU使用率、内存使用率等。
(3)质量属性:系统完成工作的质量,即系统需要在一个“好的程度”上实现功能需求,例如可靠性程度、可维护性程度等。
(4)对外接口:系统和环境中其他系统之间需要建立的接口,包括硬件接口、软件接口、数据库接口等等。
(5)约束:进行系统构造时需要遵守的约束,例如编程语言、硬件设施等
3. 软件质量属性常见的有哪些
功能性、可靠性、可用性、效率、可维护性、可移植性
4. 需求工程过程
需求工程过程是系统开发当中需求开发活动的集成,它以用户面临的业务问题为出发点,进行分析和各种转换,最终产生一个能够在用户环境下解决用户业务问题的系统方案。并将其文档化为明确的规格说明。
5. 需求的困难
一.用户和开发人员的背景不同,立场不同
(1) (2)
知识理解的困难 默认知识现象
二.普通用户缺乏概括性、综合性的表述能力 三.用户存在认知困难 四.用户越俎代庖
(1) (2)
用户提出的不是需求,而是解决方案 用户执着地坚持某些特征和功能
五.缺乏用户参与
(1) (2) (3) (4)
6. 需求的内涵与外延
内涵:(1) 问题域与解系统
(2) (3) (4) (5)
共享现象 需求与规格说明 问题域特性
从问题域、需求和规格说明的关系看需求工程 用户数量太多,选择困难 用户认知不足,不愿参与 用户情绪抵制,消极参与 没有明确的用户
外延:(1)需求的分类
(2) (3) (4) (5) (6)
7. 什么是软件过程
用软件工程的方法解决软件的开发与实施
8. 软件生命周期
是软件的产生直到报废停止使用的生命周期,它包括开发期和运维期。
9. 软件危机(什么是软件危机,表现)
定义:软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
表现:
① 对软件开发成本和进度的估计常常不准确。
② 用户对“已完成”系统不满意的情况经常发生。
③ 软件产品的质量不可靠 ④ 软件的可维护程度非常低 ⑤ 软件通常没有适当的文档资料 ⑥ 软件的成本不断提高
⑦ 软件开发生产效率无法满足人们对软件的生产要求,软件开发生产效率的提高落后于硬件的发展
10. 几种常见的软件过程模型
1.惯例过程模型。
功能需求:①业务需求②用户需求③系统需求 性能需求:速度、容量、吞吐量、负载、实时性 质量属性 对外接口 约束
2.瀑布模型(又叫作生命周期模型)。 3.增量过程模型:包括增量模型、RAD模型。
4.演化过程模型:包括原型开发模型、螺旋模型、协同开发模型。
5.专用过程模型:包括基于构件的开发模型、形式化方法模型、面向方面的软件开发模型。
第二部分(需求获取)
1. 涉众,涉众的类型
概念:所有对软件系统的开发和应用具有发言权和决定权的人统称为涉众。 涉众的类型:用户、客户、开发者、管理者、领域专家、政府力量、市场力量。
2. 获取需求信息的方法
① ② ③ ④ ⑤ ⑥
3. 需求信息的来源
传统方法 集体获取方法 原型
模型驱动方法 认知方法
基于上下文的方法
相关推荐: