面向对象的软件分析与设计 (OOAD)
一 面向对象的分析 OOA
由领域专家和分析师分析业务需求,得到场景列表,进而产生用例,生成用例图。通过分析业务需求,还可以建立软件顶层设计,以及领域概念模型,进而生成类图。
1. 生成用例图
- 区分执行者与目标系统
- 用例的完整性描述
- 用例来源于分析人员对场景的分类和抽象
- 可以用活动图表示一个用例
2 建立顶层架构
- 随着设计和开发过程的推进,架构的内容会不断丰富,翔实,最终演进成完整的软件架构
- 用UML包图及其之间的关系来描述顶层架构
- 根据经验选择架构风格,再进行微调和局部改进
- 选择架构应综合考虑以下方面:包的数量;包之间的耦合度;物理网络拓扑结构;性能;安全性;可用性;可修改性;团队技术
3 建立领域概念模型
从业务需求描述中提取关键概念,常用“名词动词法”发现概念类,形成领域概念模型。
4 生成类图
从概念模型和用例出发,研究系统中主要的类之间的关系,生成类图。
二 面向对象的设计 OOD
1. 设计用例实现方案 - UML交互图
1.1 提取边界类,实体类,控制类
边界类 <<boundary>>用于界面控制,外部接口,环境隔离
实体类 <<entity>>描述系统中具有持久意义的信息项及其操作
控制类 <<control>>是完成用例任务的责任承担着
1.2 构造交互图
- 让控制类委托一些任务给辅助类完成
- 顺序图中不应该出现穿越控制类生命线的消息
- 顺序图中从左到右分别是用例的主动执行者,边界类,控制类,(辅助类),实体类
1.3 根据交互图精华类图
将交互图中出现的新类添加到原有类图中,定义其属性和操作。
2 设计技术支撑方案
技术支撑方案应该成为整个目标软件系统中全局性的公共技术平台。建议顶层架构风格为分层架构,则技术支撑方案位于层次结构中的较低层次。
3 精化设计模型
3.1 粗粒度组件
根据需求和架构原则划分不同的粗粒度组件。粗粒度组件来源于分析活动中的业务实体,把有很强相关性的业务实体组合起来,形成一个集合,集合内部存在错综复杂的关系,同时集合向外部提供服务接口。
3.2 细粒度组件
从软件的目标领域中识别出关键性的实体,细粒度组件具有更好的重用性,它可以进一步精化架构设计。
三 UML图
1. 用例图
2. 静态图
2.1 类图
2.2 对象图
2.3 包图
3 动态图
3.1 交互图
3.1.1 顺序图
3.1.2 协作图
3.2 活动图
3.3 状态图
4 实现图
4.1 部署图
4.2 构件图