软件工程期末复习——第四章
软件工程期末复习——第四章
一、重要知识点
1. 软件需求的定义(IEEE)
软件需求就是用户对软件各种要求的统称,也就是表达出用户希望软件做什么事情,完成什么样的功能,达到什么样的性能。IEEE将软件需求定义如下:
- 用户解决问题或者达到目标所需的条件或能力;
- 系统或系统部件为满足合同、标准、规范或其他正式文档所需具有的条件或能力;
- 一种反映上述两种条件或能力的文档描述。
2. 需求的分类(FURPS+模型)
软件需求可以根据FURPS+模型来分类,其中FURPS是英文单词首字母的缩写:
- 功能性(Functional):特性、能力、安全性;
- 可用性(Usability):人性化因素、帮助、文档;
- 可靠性(Reliability):故障频率、可恢复性、可预测性;
- 性能(Performance):响应时间、吞吐量、准确性、有效性、资源利用率;
- 可支持性(Supportability):适应性、可维护性、国际化、可配置性。
“+”则是指一些辅助性的和次要的因素:
- 实现(Implementation):资源限制、语言和工具、硬件等;
- 接口(Interface):为外部系统接口所加的约束;
- 操作(Operations):系统操作环境中的管理,对其操作设置的系统管理等;
- 包装(Packaging):提供什么样的部署、移交介质和形式等;
- 授权(Legal):法律许可、授权或其它有关法律上的约束。
3. 需求工程的定义
需求工程是:建立并使用完善的工程化方法,以较为经济的手段获得准确表达用户需求的软件需求规格说明的一个学科。
4. 需求工程的内容
5. 两种常见的建模与分析方法
(1)结构化需求建模与分析
结构化需求分析大多使用自顶向下、逐层分解的系统分析方法来定义系统的需求。在结构化分析的基础上,可以做出系统的规约说明,并由此建立系统的一个自顶向下的任务分解模型。
这种方法通常需要用到数据流图DFD、数据字典DD、加工说明、状态变迁图和实体-关系图ERD等系统逻辑模型描述工具。
(2)面向对象需求建模与分析
面向对象的建模,会将系统看作是相互协作的对象,这些对象是结构和行为的封装,都属于某个类,且这些类都具有某种层次化的结构。也就是说,系统的所有功能都是通过对象之间相互发送消息来获得和实现的,这实质上就是从系统的组成上来分解整个模型。
面向对象的分析模型通常由三个独立模型组成:
- 功能模型:由用例图表示;
- 分析对象模型:由类图和对象图表示;
- 动态模型:由状态图和顺序图表示。
6. 需求规格说明书的作用
- 作为用户方和开发方之间的合同,为双方相互了解提供基础;
- 反映问题的结构,作为系统设计和编码的依据;
- 作为测试和验收目标系统的依据。
7. 需求规格说明书的内容
软件需求规格说明是需求开发的结果,它描述了一个软件系统必须实现的功能和性能,以及影响该系统开发的约束。
二、次重要知识点
1. 造成需求问题的根本原因
- 用户需求具有动态性,在整个软件生存周期内,软件的需求会随着时间的进展而有所变化;
- 用户需求具有模糊性,即需求不准确性;
- 设计多种不同类别的用户,他们的需求之间存在潜在的冲突;
- 开发者和用户要对需求达成完全一致的认识。
2. 需求的层次
- 业务需求
- 用户需求
- 功能需求
3. 需求工程的分类
- 系统需求工程(针对由软硬件共同组成的整个系统)
- 软件需求工程(专门针对纯软件部分)
- 需求开发
- 需求管理
4. 需求过程的两种模型
- 螺旋模型
- 线性迭代模型
5. 需求工程的方法
- 面向过程的分析方法
- 面向数据的分析方法
- 面向控制的分析方法
- 面向对象的分析方法
6. 需求开发过程
7. 需求获取技术
- 访谈
- 问卷调查
- 专题讨论会
- 建立快速原型
- 基于用例的方法
访谈覆盖面较广,但覆盖面不高,会有很多干扰因素,一般在最开始时采用;问卷调查和专题讨论会更有针对性,在中后期;建立快速原型和基于用例的方法最为直观和明确,便于形成最后的规格说明书,一般在后期用。
软件工程期末复习——第四章
http://example.com/2026/01/12/se04/