软件工程复习——第6章


本文总结于《软件工程——原理、方法与应用》第三版


第六章 面向对象分析

1. 软件分析概述

·软件需求和软件分析
·软件需求:用户角度,注重软件外在表现
·软件分析:开发者角度,注重软件内部逻辑结构

2. 面向对象软件分析

(1) OOA的主要任务

·理解用户需求
·进行分析,提取类和对象,并结合分析进行建模。其基本步骤是:标识类,定义属性和方法;刻画类的层次;表示对象以及对象与对象之间的关系;为对象的行为建模。这些步骤反复进行,直至完成建模。

(2) OOA的模型

①处于OOA模型核心的是以用例模型为主体的需求模型,抽取和定义OOA模型的3种子模型:
②类/对象模型,描述系统所涉及的全部类和对象,每一类/对象都可通过属性、操作和协作者来进一步描述;
③对象-关系模型,描述对象之间的静态关系,同时定义了系统中对象间所有重要的信息路径,也可以具体到对象的属性、操作和协作者;
④对象-行为模型,描述了系统的动态行为,即在特定的状态下对象间如何协作来响应外界的事件。

在这里插入图片描述

(3) OOA的优点

①同时加强了对问题域和软件系统的理解
②改进包括用户在内的与软件分析有关的各类人员之间的交流
③对需求的变化具有较强的适应性
④很好地支持软件复用
⑤确保从需求模型到设计模型的一致性

(4) 分析模型的特点

·全面覆盖软件的功能需求
·分析模型与软件的实现无关
·分析模型的表述方法与所采用的分析技术有关

(5) OOA的共同特征

·共同特征:
·类和类层次的表示
·建立对象-关系模型
·建立对象-行为模型

(6) OOA的建模步骤

·需求理解
·定义类和对象
·标识对象的属性和操作
·标识类的结构和层次
·建立对象-关系模型
·建立对象-行为模型

·评审OOA模型
在这里插入图片描述

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

3. 面向对象分析建模

(1) 识别与确定分析类

·边界类< < boundary>>
·用户界面
·系统接口
·硬件接口
负责和用户进行交互的界面即用户界面
·控制类<< control>>
·封装用例所特有的控制行为
负责实体类和边界类之间的交互
·实体类<< entity>>
·系统存储的信息及其相关行为
主要负责数据和业务逻辑
在这里插入图片描述

·为每对参与者/用例确定一个边界类
在这里插入图片描述

·为每个用例设置一个控制类
在这里插入图片描述

·确定相关的各个实体(包括属性与方法)
在这里插入图片描述

(2) 建立对象-行为模型

·时序图(以选课用例中创建课表事件流的时序图)
在这里插入图片描述

·协作图(以选课用例为例创建课表事件流的协作图)

在这里插入图片描述

(3) 建立对象-关系模型

·分析类的属性:分析类本身具有的信息
·分析类的关联:通过关联可以找到其他分析类,链与关联的对应关系
·分析类图:表现分析类及其关系
描述用例的分析类图称为参与类图(VOPC)
每个用例可对应一张完整的参与类图,参与类图可以显示类的实例之间的数量关系。
在这里插入图片描述

100个用例->100个VOPC类图(每个类图有3个类)->全类图(<=300)个类
·分析类的合并:
每个分析类都代表一个明确定义的概念,具有不相重叠的职责。一个类可以参与不同数量的用例,因此就整个系统而言,需要合并分析类,把具有相似行为的类合并为一个。每当更新了一个类,就要更新或补充用例规约,必要时还有更新原始的需求。
在这里插入图片描述

·控制类(很少合并)
·实体类(基本都合并)
·边界类(部分合并)

  • 软件分析将软件需求阶段产生的需求模型转变为软件分析模型。分析模型其实就是从软件开发者的角度,在静态组成结构和动态行为两个方面来描述的待开发的软件系统。
  • 面向对象分析利用面向对象的技术来分析问题、建立问题域的静态模型和动态模型,并用UML等工具来表示这一需求对应的类对象模型、对象–关系模型和对象–行为模型等,从而完成对问题域建模,形成面向对象的分析模型。
  • 软件分析通常从用例分析开始,建立系统需求的静态结构模型和动态行为模型。
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来lai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值