OOAD & UML
1.OOAD(Object Oriented Analysis and Design),面向对象的分析与设计
— OOA 分析阶段
— OOD 设计阶段
OOA阶段要解决以下问题:
建立针对业务问题域的清晰视图
列出系统必须要完成的核心任务
针对问题域建立公共的词汇表
列出针对此问题域的最佳解决方案
此阶段要解决的核心问题是:“What to do ?”
OOD阶段主要解决以下问题:
如果解决具体的业务问题
引入系统工作所需的支持元素
定义系统的实现策略
此阶段要解决的核心问题是:“How to do ?”
OOP的主要特征:
• 抽象(abstract)• 封装(encapsulation)• 继承(inheritance)• 多态(polymorphism)• 关联(association)• 聚合(aggregation)• 组合(composition)• 内聚与耦合(cohesion & coupling)
域对象之间关系
• 关联(Association)
• 依赖(Dependency)
• 聚集(Aggregation)
• 一般化(Generalization)
内聚 & 耦合
• 内聚:度量一个类独立完成某项工作的能
力
• 耦合:度量系统内或系统之间依赖关系的
复杂度
• 设计原则:增加内聚,减少耦合
性能调优,前期开发不要在此耗费太多精力。后期经过测试再调优,否则容易影响项目进度
UML图的分类:
• 静态模型(static model)
• 创建并记录一个系统的静态特征
• 反映一个软件系统基础、固定的框架结构• 创建相关问题域主要元素的视图• 静态建模包括:—— 用例图(use case diagrams)—— 类图(class diagrams)—— 对象图(object diagrams)—— 组件图(component diagrams)—— 部署图(deployment diagrams)
• 动态模型(dynamic model)
• 动态建模用以展示系统的行为
• 动态建模包括:—— 时序图(sequence diagrams)—— 协作图(collaboration diagrams)—— 状态图(state chart diagrams)—— 活动图(activity diagrams)
用例图:
展示系统的核心功能及与其交互的用户
用户被称之为“活动者”(Actor)用例使用椭圆表示为简化建模过程,用例图可标注优先级
类图:
• 表现类的特征
• 类图描述了多个类、接口的特征,以及对象之间的协作与交互• 由一个或多个矩形区域构成,内容包括:—— 类型(类名)—— 属性(可选)—— 操作(可选)
对象图:
• 表现对象的特征
• 对象图展现了多个对象的特征及对象之间的交互
对象图:
• 表现对象的特征
• 对象图展现了多个对象的特征及对象之间的交互
组件图:
• 表现软件组件之间的关系
部署图:
• 表现用于部署软件应用的物理设备信息
时序图:
• 捕捉一段时间范围内多个对象之间的交互信息
• 强调消息交互的时间顺序
协作图:
• 表现一定范围内对象之间协作的信息
• 强调参与信息交流的对象之间的组织结构
状态转换图:
• 强调一个对象在不同事件触发时,其内部状态的转变过程
活动图:
• 描述活动的流程,有点类似工作流。
包:
• 引用一组相关实体
• 通常可用于划分类的命名空间• 包可用于—— 命名(Naming)—— 成员可见度(Member visibility)—— 导入(Importing)—— 继承(Extending)—— 泛化(Generalization)