乐于分享
好东西不私藏

系统集成项目管理工程师-软件工程基础与需求工程

系统集成项目管理工程师-软件工程基础与需求工程

一、软件工程定义(了解)

软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件生产率、提高软件质量、降低软件成本

软件工程由三部分组成:

组成

描述

方法

完成软件项目的技术手段,支持整个软件生命周期

工具

人们在开发软件活动中智力和体力的扩展与延伸,自动或半自动支持软件开发和管理,支持各种软件文档生成

过程

贯穿于软件开发的各个环节,指为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。管理人员要对软件开发的质量、进度、成本进行评估、管理和控制


二、软件需求(掌握)

软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。根据IEEE标准,软件需求是用户解决问题或达到目标所需的条件或能力,以及反映这些条件或能力的文档说明。

1. 需求的三个层次(掌握)

层次

描述

业务需求

反映组织机构或用户对系统、产品高层次的目标要求,从总体上描述为什么要达到某种效应,组织希望达到什么目标。通常来自项目投资人、客户管理人员、市场营销部门等

用户需求

描述用户的具体目标,或用户要求系统必须能完成的任务和想要达到的结果,构成用户原始需求文档的内容

系统需求

从系统角度说明软件需求,包括功能需求、非功能需求和约束

2. 质量功能部署QFD(掌握)

QFD是将用户要求转化成软件需求的技术,目的是最大限度提升用户满意度。将软件需求分为3类:

需求类型

描述

常规需求

用户认为系统应该做到的功能或性能,实现越多用户越满意

期望需求

用户想当然认为系统应具备的功能或性能,但并不能正确描述。若未实现,用户会不满意

意外需求(兴奋需求)

用户要求范围外的功能或性能,实现后用户更高兴,但不实现也不影响购买决策

3. 需求获取(掌握)

常见需求获取方法:用户访谈、问卷调查、采样、情节串联板、联合需求计划等。

4. 需求分析(掌握)

一个好的需求应具有:无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性。

(1)结构化分析(SA)

核心是数据字典,围绕它有3个层次的模型:

图形

表示模型

说明

实体关系图(E-R图)

数据模型

描述实体、属性及实体之间的关系

数据流图(DFD)

功能模型

从数据传递和加工角度,逐层细分描述系统功能

状态转换图(STD)

行为模型

描述系统状态及引起状态转换的事件

数据流图DFD示例图

结构化分析步骤

  1. 分析业务情况,做出当前物理模型的DFD

  2. 推导出等价的逻辑模型的DFD

  3. 设计新的逻辑系统,生成数据字典和基元描述

  4. 建立人机接口,提出目标系统物理模型的DFD

  5. 确定各种方案的成本和风险等级

  6. 选择一种方案

  7. 建立完整的需求规约

数据字典:对数据流图上每个元素加以定义和说明,包括数据项、数据结构、数据流、数据存储、处理过程。

数据字典示例表

(2)面向对象分析(OOA)

OOA模型由5个层次(主题层、对象类层、结构层、属性层、服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。

OOA基本原则(9个):

序号

原则

描述

(1)

抽象

舍弃个别、非本质特征,抽取共同、本质特征

(2)

封装

把对象的属性和服务结合为不可分的系统单位,隐藏内部细节

(3)

继承

特殊类的对象拥有一般类的全部属性与服务

(4)

分类

把具有相同属性和服务的对象划分为一类

(5)

聚合(组装)

把复杂事物看成若干简单事物的组装体

(6)

关联

通过一个事物联想到另外的事物

(7)

消息通信

对象之间只能通过消息进行通信

(8)

粒度控制

考虑全局时忽略细节,考虑细节时撇开其余部分

(9)

行为分析

处理复杂行为相互依赖、相互交织的问题

📌 记忆口诀:抽封继分聚,关消粒行(抽象、封装、继承、分类、聚合、关联、消息通信、粒度控制、行为分析)

OOA基本步骤

  1. 确定对象和类

  2. 确定结构

  3. 确定主题

  4. 确定属性

  5. 确定方法

5. 需求规格说明书SRS(掌握)

SRS是需求分析阶段完成的文档,是软件需求分析的最终结果。应包括:范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决的问题、注解和附录。通过需求评审需求测试进行验证。

6. 需求变更(掌握)

变更控制过程:问题分析和变更描述 → 变更分析和成本计算 → 变更实现。

变更策略

  • 所有需求变更必须遵循变更控制过程

  • 未获批准不应做设计和实现

  • 由项目变更控制委员会(CCB)决定实现哪些变更

  • 项目风险承担者应了解变更内容

  • 绝不能从配置库中删除或修改变更请求原始文档

  • 每个集成的需求变更必须能跟踪到一个经核准的变更请求

变更控制委员会CCB:项目所有者权益代表,负责裁定接受哪些变更,是决策机构不是作业机构。成员可包括产品/计划管理、项目管理、开发、测试、市场、用户文档、技术支持、配置管理等代表。

制定决策、交流情况、重新协商约定

7. 需求跟踪(掌握)

需求跟踪建立与维护“需求—设计—编程—测试”之间的一致性。

跟踪方式

描述

正向跟踪

检查SRS中每个需求是否都能在后继工作成果中找到对应

逆向跟踪

检查设计文档、代码、测试用例等工作成果是否都能在SRS中找到出处

两者合称双向跟踪。通过需求跟踪矩阵(表格)保存对应关系。


三、本章真题小测

Q1:()不是软件需求的常用层次。

A. 业务需求 B. 数据需求 C. 用户需求 D. 系统需求

Q2:()不属于软件需求规格说明书的内容。

A. 业务功能 B. 应用系统性能 C. 交互界面 D. 算法的详细过程

Q3:以下软件需求变更策略中,不正确的是:()。

A. 所有需求变更必须遵循变更控制过程

B. 对于未获得批准的变更,不应该做设计和实现工作

C. 应该由项目经理决定实现哪些变更

D. 项目风险承担者应该能够了解变更的内容

📩 答案:

Q1答案:解析:

软件需求经典三层划分是业务需求、用户需求、系统需求,数据需求属于系统需求下的细分内容,不属于独立的需求层次。

Q2答案:解析:

软件需求规格说明书侧重描述要实现的业务功能、性能指标、界面交互等对外需求;算法详细过程属于底层设计阶段的内容,不写入需求规格说明书。

Q3答案:解析:

需求变更不能由项目经理单独决定,需要走完整变更评审流程,由变更控制委员会(CCB)审批裁定是否采纳变更,其余 A、B、D 均是规范的变更管控原则。

✅汇总答案

Q1:B;Q2:D;Q3:C