OOAD & UML

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)


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注