面向对象的软件分析与设计 (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 构件图

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页