第6章 面向对象分析(面向对象软件工程)

  • 结构化分析是第一代软件工程常用的分析技术,而面向对象分析属于第二代软件工程常用的分析技术

1. 软件分析概述

1.1 面向对象软件分析

  • UML是面向对象分析(object-oriented analysis,OOA)的重要表达工具

1.1.1 OOA的主要任务

  • OOA建模基本步骤:
    1. 标识类,定义属性和方法
    2. 刻画类的层次
    3. 表示对象以及对象之间的关系
    4. 对对象的行为建模

1.1.2 OOA的模型

  • 面向对象分析模型的组成结构
  • 处于OOA模型核心的是以用例模型为主体的需求模型
  • 进一步抽取OOA模型的3种子模型:
    1. 类/对象模型:描述系统所涉及的全部类和对象,每一个类和对象都可通过属性、操作和协作者进一步描述
    2. 对象/关系模型:描述对象之间的静态关系,同时定义系统中对象间所有重要的消息路径,也可以具体到对象的属性、操作和协作者
    3. 对象/行为模型:描述系统的动态行为,即在特定状态下对象间如何协作来响应外界的事件

1.1.3 OOA的优点

  1. 同时加强了对问题空间和软件系统的理解
  2. 改进了交流
  3. 适应需求的变化
  4. 支持软件复用
  5. 确保需求模型到设计模型的一致性

1.1.4 分析模型的特点

  • 分析模型本质上是一种概念模型
    1. 全面覆盖软件的功能需求
    2. 与软件的实现无关
    3. 分析模型的表述方法和分析技术有关

1.2 面向对象分析模型

1.2.1 典型的五层次结构

  • 五层次的OOA模型是典型的OOA方法
    1. 建立类/对象层
    2. 建立属性层
    3. 建立服务层
    4. 建立结构层
    5. 建立主题层

1.2.2 OOA方法的共同特征

  • 共同特征:类和类层次的表示;建立对象-关系模型、建立对象-行为模型
  • 面向对象开发的全过程实际上是OOA、OOD、OOP、OOT的迭代过程
  • 面向对象分析(OOA)是一种从问题空间中提取类和对象来进行分析的方法,用来建立一个与具体实现无关的面向对象分析模型
  • 面向对象设计(OOD)从问题空间转移到解空间,在分析模型的基础上考虑实现细节,形成面向对象的设计模型
  • 面向对象编程(OOP)将设计模型转换成实现模型,可获得源代码和相应的可执行代码
  • 面向对象测试(OOT)通过运行可执行代码来检测程序存在的问题

2. 面向对象分析建模

  • 用例模型是面向对象分析最常采用的一种模型

  • 用例分析的一般步骤:

    1. 检查需求阶段产生的用例规约,补充详细信息
    2. 研究用例事件流,将职责分配给分析类 
    3. 对分析类间的关系建模
    4. 详细描述所确定的类
    

2.1 识别与确定分析类

  • 分析类:从用例开始的分析过程称为用例分析,在这一阶段定义的类称为分析类

  • 分析类的类型:

    1. 边界类:<< boundary >>,代表系统与外部环境之间交互的边界
      • 边界类提供了对参与者或外部系统交互协议的接口
      • 边界类将系统和外界的变化隔离
    如果更改GUI或通信协议,将只更改边界类
    
    1. 控制类:<< control >>,系统在运行中的控制逻辑,用于封装一个或几个用例所特有的流程控制行为

      • 有效地分离了边界类对象和实体类对象,使系统更能承受边界的变更
      • 用例所特有的行为与实体类对象分开,使实体类对象具有更高可复用性
    2. 实体类:<< entity >>,用于对必须存储的信息和相关的行为建模,主要职责是存储和管理系统中的信息,具有持久性,实体类对象独立于外部环境

2.2 建立对象行为模型(动态模型)

  1. 时序图:按时间顺序描述系统元素之间的交互
  • 首先,在时序图中加入触发这个用例的参与者,然后加入边界类对象,接着加入控制类对象,最后是实体类对象
  1. 协作图:按时间和空间顺序描述系统元素之间的交互

  2. 为分析类分配职责:

  • 动态图将用例所要求的行为分派到分析类的过程,是从软件需求过渡到OOD设计的重要环节,核心概念就是消息和职责的对应关系
  • 职责大多沿用消息的名称,但它还不是类的操作,故习惯上用“//”作为前缀
  1. 状态图
  • 专门针对一个类的状态变化,研究该类的动态行为

2.3 建立对象关系模型(静态模型)

  1. 分析类的属性

  2. 分析类的关联

  3. 分析类图

  4. 分析类的合并

posted @ 2024-12-19 16:47  awei040519  阅读(471)  评论(0)    收藏  举报