面对对象分析与设计

  • 为学堂在线清华大学《软件工程》第十章部分视频笔记

  • 目录

    10.1 面向对象分析

    面向对象分析

    面向对象的起源

    面向对象分析方法

    面向对象的分析方法学

    面向对象分析常用术语对照表

    10.2 CRC卡片法

    视频一

    识别类的方法

    对象无处不在

    当需要根据故事筛选类时:

    视频二

    类识别

    识别类的功能职责

    识别类交互协作关系∶用UML

    10.4 UML类图建模

    视频一

    类图建模

    视频二

    继承/泛化

    继承/泛化关系建模的过程

    类图的抽象层次

    总结建立类图的步骤

    类图建模风格


  • 10.1 面向对象分析

    • 面向对象分析

      • ①面向对象分析技术关注应用领域中的实体,并将其建模为对象
      • ②面向对象分析技术主要基于分类、泛化、聚合关系在对象集合之间建立结构
      • ③对象的行为是执行预定的动作(服务/活动) ④对象通过执行动作来完成状态变迁
    • 面向对象的起源

    • 面向对象分析方法

      • “对象”是问题领域中真实存在的实体,有“定义清晰的边界” 对象中封装有属性和行为
      • 面向对象分析的五个核心概念∶·对象、属性、结构、服务和主题
        服务又叫做行为
        • 一般-特殊结构
          即继承。子类到父类为特殊到一般,父类到子类为一般到特殊。
        • 整体—部分结构
          描述对象间的组合关系.
      • 服务建模
        对象为其周遭的其他对象提供服务
        ​Coad 的OOA方法中,定义了三种类型的服务∶
        • 瞬时服务(Occurrence services ) :对象的创建、结束,修改等等
        • 计算服务(Calculate services ) :对象为其他对象完成计算任务等
        • 监控服务(Monitor services ) :对象持续监控流程,检查预设条件是否满足
    • 面向对象的分析方法学

      • ·识别对象和类(类是对象的抽象定义)
      • ·识别类之间的关系,建立由继承和组合关系组成的类层次结构
      • ·定义主题,通过主题将对象模型组织成多个抽象层次或视角,一般说来通过继承关系或整体部分关系联系起来的类同属于一个主题
      • ·识别各个对象内部的属性信息,并将其赋予相应抽象层次的类
      • ·为每个类定义服务
    • 面向对象分析常用术语对照表


      对象=实例,一般特殊关系=继承关系=泛化关系,组成关系=部分整体关系=聚合关系,消息=刺激=事件,服务=操作,​主题=视角
  • 10.2 CRC卡片法

    • 视频一

      • 识别类的方法

        • ·根据用例描述中的名词确定类的候选者
        • ·使用CRC分析法寻找类。
          CRC是类(Class )、责任( Responsibility )和协作( Collaboration )的简称,CRC分析法根据类所要扮演的职责来确定类
          • CRC卡片

        • ·根据边界类、控制类和实体类的划分来帮助发现系统中的类
        • ·对领域进行分析,或利用已有的领域分析结果得到类
        • ·参考分析、设计模式来确定类
      • 对象无处不在

      • 当需要根据故事筛选类时:

        • 类对象通常对应一个命名实体,因此,用名词表达,于是我们先从名词开始
        • 通过名词过滤识别出的对象类
        • 类筛选

    • 视频二

      • 类识别

      • 识别类的功能职责

        • 功能职责关乎行为动作,因此是问题描述中的动词
        • 1.并非所有动词均将成为类职责
        • 2.有时多个动作合并为一个职责
        • 3.随着分析过程深入会发现新的职责
        • 4.不断修正类定义和职责定义
        • 5.当两个类分享职责时,为二者同时添加该职责
      • 识别类交互协作关系∶用UML

        • 目的并非写出所有场景,而是对类和职责定义进行精化
  • 10.4 UML类图建模

    • 视频一

      • 类图建模

        • 什么是类
          ·类是具有以下特征的对象集合
          • ·相同性质(attributes)
          • ·相同行为(operations)
          • ·相同的对象关系
          • ·相同语义(“semantics” )
        • 对象
          • 对象是类的实例
          • 对象与其他对象之间发生关联关系,但这个关联关系要定义为类之间的关系
          • ·注意将属性划归正确的类
        • 类关系
          ·对象并非遗世独立,对象间存在千丝万缕的联系
          • ·关联关系( Association )
            按照关联所连接的类的数量,对象类之间的关联可分为︰自返关联,二元关联,N元关联
            • 关联类
              ·有时要为关联相关信息的存储定义一个专门的类,称为“关联类”·
              保存与关联关系本身相关的信息,这些信息不属于关联所连接的两端的类
            • 限定关联


              在关联端紧靠源类图标处可以有限定符(Qualifier)。带有限定符的关联称为限定关联(Qualified Association)。
              • 限定符是关联的属性。
              • 限定符的作用是,给定关联一端的一个对象和限定符值,可确定另一端的一个对象或对象集。
            • 关联关系的多样性和维度

            • 关联关系图例


              关联至少有两个关联端,每个关联端连接到一个类,关联可以有方向,有方向的关联类称为单向关联,没方向的类称为双向关联,。关联的名字通常用动词表示。
            • 聚合与组合的关系

          • ·泛化关系(Generalization )
          • ·依赖关系(Dependency )
          • ·实现关系( Realization )
    • 视频二

      • 继承/泛化

        • ·子类继承父类的属性、关联和操作
        • ·子类可以覆盖继承来的内容
        • 父类可以声明为抽象类{abstract} ,则将不会为它直接创建实例对象·意味着现有子类覆盖了该类对象的全集
      • 继承/泛化关系建模的过程

        • ·自顶向下
          • ·将某个类分割为属性和操作不同的子类,或者发现关联关系定义的是分类关系“kind of"
        • ·自底向上
          • 为现有的多个具有公共属性乃方法的类定义一个父类
      • 类图的抽象层次

        • 概念类
          可以含有属性
        • 设计说明类
        • 实现类
      • 总结建立类图的步骤

      • 类图建模风格

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值