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

文章目录

  • 软件工程
    • 第6章 面向对象分析
      • 6.1 面向对象分析过程
        • 获取需求
        • 整理需求
        • 建立模型
      • 6.2 建立功能模型
      • 6.3 建立对象模型
        • 1.确定分析类
        • 2.确定类的关联
        • 3.划分主题
        • 4.确定属性
        • 5.识别继承
        • 6.反复修改
      • 6.4 建立动态模型
        • 1.编写典型交互行为脚本
        • 2.从脚本中提取事件及相关对象,用顺序图表达
        • 3.确定对象状态及状态间转换关系,用状态图描绘

软件工程

第6章 面向对象分析

6.1 面向对象分析过程

  • 获取需求
  • 整理需求
  • 建立模型
  • 书写需求规格说明书
  • 复审

获取需求

  • 与用户交谈,向用户提问题;
  • 参观用户的工作流程,观察用户的操作;
  • 向用户群体发调查问卷;
  • 与同行、专家交谈,听取他们的意见;
  • 分析已经存在的同类软件产品,提取需求;
  • 从行业标准、规则中提取需求;
  • 从Internet上搜查相关资料等。

整理需求

书写需求陈述。
需求陈述内容包括:问题范围,功能需求,性能需求,应用环境及假设条件。

建立模型

抽取整理用户需求建立问题域精确模型。

面向对象分析模型由三个独立模型组成:

  • 功能模型:指明系统应“做什么”,由用例图表示。
  • 对象模型:描述静态结构, 定义做事情实体,类图和对象图表示。
  • 动态模型:描述交互过程, 由状态图和顺序图表示。

6.2 建立功能模型

功能模型用用例图表达,研究需求陈述建立用例图。其步骤如下:

  1. 识别外部执行者;
  2. 识别用例;
  3. 建立用例图;
  4. 补充用例描述:为建立对象模型和动态模型打基础。

6.3 建立对象模型

对象模型描述类及相互关系,表达目标系统静态结构。建立对象模型步骤:

1.确定分析类

分析模型中,分析类是概念层次上内容,类直接与应用逻辑相关,不关注技术实现。

  • 找出候选分析类
    • 确定边界类:通常,一参与者与一用例间交互或通信关联对应一边界类。
    • 识别控制类:控制类负责协调边界类和实体类,通常在现实世界没有对应的事物。 一般来说,一个用例对应一个控制类。
    • 识别实体类:实体类通常是用例中的参与对象,对应着现实世界中“事物”。
  • 筛选出正确的类
    • 冗余
    • 无关
    • 笼统
    • 属性
    • 操作:需求陈述中既作名词又作动词的词,慎重考虑是作类合适,还是作类中操作合适。
    • 实现:事务日志、通信链路。

2.确定类的关联

  • 初步确定关联
    • 动词或动词词组:直接提取动词短语。
    • 需求陈述中隐含的关联;
    • 与用户及领域专家讨论补充。
  • 筛选
    • 已删去类之间关联:删掉某候选类,与这个类有关的关联也删去,或重新表达。
    • 与问题无关或与实现密切相关的关联删去。
    • 瞬时事件
    • 三元关联:三个或三个以上对象关联,可分解为二元关联或限定关联。
  • 进一步完善
    • 正名
    • 分解
    • 补充

3.划分主题

4.确定属性

需求陈述中的名词

  1. 误把类当属性
    独立存在更重要,则应为类。
  2. 误把链属性作为属性
    属性要依赖某关联链存在,则为关联类的属性。
  3. 误把限定当属性
    属性值固定下来可减少重数,则应为限定。
  4. 误把内部状态当属性
    对象的非公开内部状态不作属性。
  5. 过于细化
    忽略对大多数操作都没有影响的属性。
  6. 存在不一致属性
    分解两个类。

5.识别继承

6.反复修改

6.4 建立动态模型

开发交互式系统,动态模型非常重要。其步骤如下:

1.编写典型交互行为脚本

脚本描述用户与目标系统间的一个或多个典型交互过程。

  • 正常情况脚本
  • 异常情况脚本
  • 错误情况脚本

2.从脚本中提取事件及相关对象,用顺序图表达

从脚本提取所有外部事件,确定每类事件发送和接收对象。针对系统中的典型功能,画出顺序图。

3.确定对象状态及状态间转换关系,用状态图描绘

用一张状态图描绘类的行为,集中考虑具有交互行为类。画出系统中重点类的状态图。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月20日
下一篇 2021年2月20日

相关推荐