OOAD(Object Oriented Analysis and Design) 面向对象的分析与设计
OOA 分析阶段
建立针对业务问题域的清晰视图
列出系统必须要完成的核心人物
针对问题域建立公共词汇表
列出针对此问题域的最佳解决方案
核心问题:What to do ? 要做什么?
OOD 设计阶段
如何解决具体的业务问题
引入系统工作所需的支持元素
定义系统的实现策略
核心问题:How to do ? 如何做?
关系
关联关系 (Association)
用户和订单之间是关联关系
一个用户对应多个订单(一对多)
订单和用户之间是多对一
用户和订单是一对多双向关联
依赖关系 (Dependency)
某个类依赖某个类的某个方法
A类new B类实例
聚集关系 (Aggregation)
整体与部分之间的关系
人和手之间
一般化关系 (Generalization)
指的是类之间继承关系
内聚和耦合
设计原则:增加内聚,减少耦合
内聚
度量一个类独立完成某项工作的能力
耦合
度量系统内或系统之间依赖关系的复杂度
软件开发采取迭代,递增生命周期
每一个周期包含一次或多次迭代
一个阶段的结束称之为**“里程碑”**(milestone) :M1 M2 M3 版本
UML(Unified Modeling Language) 统一建模语言
图形化的语言表示
静态模型(static model)
创建并记录一个系统的静态特征
反映一个软件系统基础,固定的框架结构
创建相关问题域主要元素的视图
该模型包含:
- 用例图 (use case diagrams)
- 类图 (class diagrams)
- 对象图 (object diagrams)
- 组件图 (component diagrams)
- 部署图 (deployment diagrams)
用例图 (use case diagrams)
展示系统的核心功能及与其交互的用户
用户被称之为"活动者" (Actor)
用例使用椭圆表示
为简化建模过程,用例图可标注优先级
类图 (class diagrams)
表现类的特征
类图描述了多各类,接口的特征,以及对象之间的协作与交互
由一个或多个矩形区域构成,内容包括:
- 类型(类名)
- 属性(可选)
- 操作(可选)
对象图 (object diagrams)
表现对象的特征
对象图展示了多个对象的特征及对象之间的交互
组件图 (component diagrams)
表现软件组件之间的关系
部署图 (deployment diagrams)
用于部署软件应用的物理设备信息
动态模型(dynamic model)
用以展示系统的行为
时序图 (sequence diagrams)
协作图 (collaboration diagrams)
状态图 (state chart diagrams)
活动图 (activity diagrams)
时序图 (sequence diagrams)
捕捉一段时间范围内多个对象之间的交互信息
强调消息交互的时间顺序
协作图 (collaboration diagrams)
表现一定范围内对象之间协作的信息
强调参与信息交流的对象之间的组织结构
状态图 (state chart diagrams)
强调一个对象在不同事件触发时,其内部状态的转变过程
活动图 (activity diagrams)
描述活动的流程