高级系统架构师笔记——软件工程基础知识(3)逆向工程与需求工程
(3)逆向工程与需求工程
- 逆向工程
- 相关概念
- 需求工程
- 软件需求包括3个不同的层次:
- 需求工程的活动:
- 需求获取
- 需求获取基本步骤
- 需求获取的方法
- 需求变更
- 变更控制过程
- 需求变更策略
- 需求追踪
逆向工程
逆向工程是设计的恢复过程
- 实现级:包括程序的抽象语法树、符号表、过程的设计表示
- 结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图、程序和数据结构
- 功能级:包括反映程序段功能及程序段之间关系的信息,例如数据和控制流模型
- 领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息,例如实体模型
相关概念
- 重构/重组:指在同一抽象级别上转换系统描述行式
- 设计恢复:指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计等方面的信息
- 逆向工程:分析程序,力图在比源码更高抽象层次上建立程序的表示过程,逆向工程是设计恢复过程
- 正向工程:指不仅从现有系统中恢复设计信息,而且使用该信息去改变或重构现有系统,以改善其整体质量
- 再工程/重构工程:再工程是对现有系统的重新开发过程,包括逆向工程、新需求的考虑过程和正向工程三个步骤。
需求工程
软件需求包括3个不同的层次:
- 业务需求:反映了组织机构或客户对系统,产品高层次的目标要求
- 用户需求:描述了用户使用产品必须要完成的任务,是用户对该软件产品的期望
- 功能需求:开发人员必须实现的软件功能
需求工程的活动:
需求获取
需求获取基本步骤
需求获取的方法
- 用户面谈
- 需求专题讨论会
- 问卷调查
- 现场观察
- 原型化方法
- 头脑风暴法
需求变更
变更控制过程
需求变更策略
- 所有需求变更必须遵循变更控制过程
- 对于未获得批准的变更,不应该作设计和实现工作
- 变更应该由项目变更控制委员会(CCB Change Control Board)决定实现哪些变更
- 项目风险承担者应该能够了解变更的内容
- 绝不能从项目配置库中删除或者修改变更请求的原始文档
- 每一个集成的需求变更必须能跟踪到一个经核准的变更请求,以保持水平可追踪性
需求追踪
需求跟踪的目的是建立与维护"需求-设计-编程-测试"之间的一致性,确保所有的工作成果符合用户需求。
需求跟踪有两种方式:
- 正向跟踪:检查《产品需求规格说明书》中的每个需求是否都能在后继工作成果中找到对应点。
- 逆向跟踪:检查设计文档、代码、测试用例等工作成果是否都能在《产品需求规格说明书》中找到出处。
