软件工程需求分析
第1页,本讲稿共29页
*
一、软件工程(2) :迭代模型
迭代模型:不断迭代
用例驱动、架构优先
软件过程模型—典型
优先完成核心部分
不断向外扩展,可能题1
问题2
问题3
问题4
解决问题1
解决问题2
解决问题3
简单映射
IPO表
一般采用瀑布模型
存在交叉
问题变更可能导致系统崩溃
不支持迭代
所有问题必须事前明确
开发过程中,无法和客户确认
基本要到开发完成,才能确定是否解决问题
很多到最后才发现需要变更,影响全局
分析工具:自顶向下
数据流图DFD
场景描述
活动图、状态图、时序图
E-R图ERD
层次图HIPO
数据字典DD:属性、取值范围等
IPO图/表
UI原型
物理部署
层次图HIPO
数据字典
ER图
1:1
M:N
1:N
数据流图
时序图
活动图
第8页,本讲稿共29页
*
三、需求分析(3):面向对象分析方法
问题1
问题2
问题3
问题4
支持迭代
核心逐步稳定并扩大
次要问题可以逐步明确
不断发布新版本,客户不断确认
不断确认变更,影响范围有限
分析工具:自顶向下、自底向上
用例图use case:用例模型
场景描述
状态图、活动图、时序图:动态模型,和“结构化”相同
类/对象关系图
HIPO图: 和“结构化”相同
数据字典DD:属性、取值范围等,和“结构化”相同
IPO图/表:和“结构化”相同
UI原型,有时会有技术原型:和“结构化”相同
部署图、构件图:静态模型
类图、对象图、包:静态模型
2、抽象
自顶向下
DB
1、抽象
自底向上
类识别/设计是关键
低耦合:不要逻辑耦合
类
类
高内聚
用例图
顶层用例图
包
类关系图
物理部署图
第9页,本讲稿共29页
*
三、需求分析(4):面向对象分析DEMO
项目目标
项目范围
Actor及接口
组织架构图
功能图/树
功能:用例图
查询:IPO表
统计:IPO表
权限模型
数据字典DD
数据流图
场景描述
流程:活动图、时序图、状态转换图
UI原型
部署图
其他:性能需求、运行环境、可靠性需求、安全性要求、进度要求、资源投入、成本约束、现状
第10页,本讲稿共29页
*
四、架构设计
表示层WEB
业务逻辑层IBLL
数据访问层IDAL
数据存储层DB
实体类Entity
公共类Utility
描述了框架和一般性规范
技术路线
物理、逻辑分布
逻辑架构及包设计
会话安全
权限设计
事务处理
日志处理
异常处理
UI框架
边界/接口
扩展性
中大型系统的架构设计尤为重要,
架构设计不合理,将导致迭代失败
应重点考虑应用扩展性、逻辑架构和分布
第11页,本讲稿共29页
*
五、概要设计
类识别
类之间的联系:类图及包设计
数据存储层/数据访问层/业务逻辑层/界面层的设计
实体类/公共类的设计
数据流识别
DB
第12页,本讲稿共29页
*
六、详细设计
UI设计
DB设计
各层类的伪代码及包
外部接口设计
第13页,本讲稿共29页
*
七、测试&部署&维护
测试:
代码审查:技术主管、PM或程序员交叉检查
单元测试:程序员自身
集成测试:程序员自身
功能测试:QC,界面、功能正确性、需求满足度
每日构建
部署:
编制部署计划、数据迁移、部署、试用情况
维护:
BUG修正、代码/界面微调
QA:
过程管控:规范、文档、质量、进度、成本等
第14页,本讲稿共29页
*
八、常见困难(1):结构化思维,OO编程语言
结构化思维以功能划分作为解决问题的主线,基本上不会分析功能之间的关系,
即思考的是某项功能的实现来解决某些问题
结构化思维不存在“对象抽象”的思考过程
结构化思维中编程的先后次序是以功能优先级排序,和迭代开发的核心确定方法
和结果不一定相同
成功进行迭代开发的前提是:核心的确定,而结构化思维将导致核心偏离,
从而不真正支持迭代
低耦合
类
类
高内聚
交
叉
1
2
3
4
没
有
核
心
抽象失败
类识别错误
无法形成稳定的核心
变更将导致全局影响
仍不支持迭代
类继承错误
结构化思维
OO编程语言
第15页,本讲稿共29页
*
八、常见困难(2):迭代概念错误
软件工程需求分析 来自淘豆网m.daumloan.com转载请标明出处.