软件工程-需求分析
问题1
问题2
问题3
2、抽象 自顶向下 类识别/设计是关键 1、抽象 自底向上
问题4
分析工具:自顶向下、自底向上
用例图use case:用例模型 场景描述 状态图、活动图、时序图:动态模型,和“结构化”相同 类/对象关系图 HIPO图: 和“结构化”相同 数据字典DD:属性、取值范围等,和“结构化”相同 IPO图/表:和“结构化”相同 UI原型,有时会有技术原型:和“结构化”相同 部署图、构件图:静态模型 类图、对象图、包:静态模型
抽象
简单映射
解决问题1
简单演进
解决问题2
解决问题3
支持迭代 核心逐步稳定并扩大 次要问题可以逐步明确 不断发布新版本,客户不断确认
不断确认变更,影响范围有限
2
结构化思维,OO编程语言 类识别错误 类继承错误 仍不支持迭代 无法形成稳定的核心 变更将导致全局影响 2
中国电信广东公司人力资源部
一、软件工程(4):解决方法
尽快START
客户确认
PM
SA
REQ0.6 REQ0.7 REQ0.8 REQ0.9 REQ1.0
AD
AD0.6 AD0.7 AD0.8 AD0.9 AD1.0
DEV
V0.6 V0.7 V0.8 V0.9 V1.0
QC
QC0.6 QC0.7 QC0.8 QC0.9 QC1.0
QA
4
4
中国电信广东公司人力资源部
5
中国电信广东公司人力资源部
5
三、需求分析(1):建立逻辑模型
工作内容: 需求规格说明书要素: 最核心问题必须明确,次要问题可以迭代 项目目标、组织架构、功能需求、性能 需求、部署环境、可靠性需求、安全性要求 采用合适的分析工具 及权限模型、UI需求、进度要求、资源投入、 编制需求规格说明书
二、可行性分析
可行性分析的目的,使项目: 成本可行、效益可行 进度可行 资源配置可行 客户需求可行 技术要求可行、质量可行 社会环境、市场、政策可行 同时识别出项目风险,加以控制
工作内容: 进度安排/里程碑确定 人员配置、资源投入 开发环境、配置管理 项目规范、沟通管理 风险识别及规避措施 关键点: 和客户确定阶段性成果的交付、内部评审、客户评审 识别项目风险,针对技术风险和客户进行沟通 明确项目范围 去除不可行的需求或技术 对不明确需求进行调研
成本约束、边界/接口、使用者、现状
需求调研 :收集、细化
需求迭代
关键点: 进一步明确项目范围 去除不可行的需求或技术 对不明确需求进行调研
需求分析 :原型、优化 需求评审、客户确认 :改进、认同
需求评审
需 求说明 书
完整、清晰:需求覆盖、描述完整 一致性:上下文无冲突,无二义性 可行性:需求可行、技术可行 接口:识别系统边界 需求覆盖 限制、假设 风险识别
问题2
问题3
问题4
简单映射
IPO表
分析工具:自顶向下
解决问题1
解决问题2
解决问题3
数据流图 1:N 1:1 M:N
ER图
活动图
层次图HIPO
数据字典
7
时序图
中国电信广东公司人力资源部
7
三、需求分析(3):面向对象分析方法
支持迭代 核心逐步稳定并扩大 次要问题可以逐步明确 不断发布新版本,客户不断确认 不断确认变更,影响范围有限
目的: 目标一致 需求覆盖 通过UI原型更容易需求理解 通过UI原型更容易客户确认需求 识别、控制风险 作为项目计划的输入
6
中国电信广东公司人力资源部
6
三、需求分析(2):结构化分析方法
一般采用瀑布模型 存在交叉 问题1 问题变更可能导致系统崩溃 不支持迭代 所有问题必须事前明确 开发过程中,无法和客户确认 基本要到开发完成,才能确定是否解决问题 很多到最后才发现需要变更,影响全局 数据流图DFD 场景描述 活动图、状态图、时序图 E-R图ERD 层次图HIPO 数据字典DD:属性、取值范围等 IPO图/表 UI原型 物理部署
一、软件工程(2) :迭代模型
软件过程模型—典型
迭代模型:不断迭代
用例驱动、架构优先 优先完成核心部分 不断向外扩展,可能要修正部分核心代码,但总体而言, 核心逐步稳定,并不断扩大范围 统一分析、设计、编码理念:OOA、OOD、OOP 统一建模语言:UML
采用瀑布模型:需求分析 客户确认设计 客户确认 编码单元测试集成客户确认
设计,客户确认
编码 集成
码 集成
构
需求规格说明书迭代 详细设计说明书迭代 关键是类图、对象关系图 DB、UI 类代码及单元测试报告 集成
集成测试
集成测试 功能测试 部署、维护
3
3
建
集成测试报告
功能测试报告QC 评审 部署方案、维护计划
中国电信广东公司人力资源部
一、软件工程(4):解决方法
DB
低耦合:不要逻辑耦合 类 类
高内聚 包
物理部署图
类关系图
用例图
顶层用例图
8
中国电信广东公司人力资源部
8
三、需求分析(4):面向对象分析DEMO
项目目标 项目范围 Actor及接口 组织架构图 功能图/树 功能:用例图 查询:IPO表 统计:IPO表 权限模型 数据字典DD 数据流图 场景描述 流程:活动图、时序图、状态转换图 UI原型 部署图 其他:性能需求、运行环境、可靠性需求、安全性要求、进度要求、资源投入、成本约束、现状
9
中国电信广东公司人力资源部
9
四、架构设计
描述了框架和一般性规范 技术路线 物理、逻辑分布 逻辑架构及包设计 会话安全 权限设计 事务处理 日志处理 异常处理 UI框架 边界/接口 扩展性
问题定义及可行性研究
可行性研究 评审 评审 评审
核心需求分析OOA 架构指导
关键需求1 设计,客户确认 编码 集成 集成测试
关键: 迭代,含需求迭代 类识别 核心识别 每日构建,阶段性确认 核心逐步稳定并扩大
核心需求规格说明书、UI原型 关键是用例图、活动图 架构指导书 关键是逻辑架构图和规范
关键需求2
用例图:表示系统的功能,并支持其操作者 1
1
中国电信广东公司人力资源部
一、软件工程(3):结构化与面向对象的理念区别
理念区别:考虑问题的视角完全不同
问题1 问题2 问题3 问题4
存在交叉 问题变更可能导致系统崩溃 不支持迭代 所有问题必须事前明确 开发过程中,无法和客户确认 基本要到开发完成, 才能确定是否解决问题 很多到最后才发现需要变更 影响全局