OO学习之一——面向对象分析(OOA)的介绍

一、面向对象分析

 1【定义】

Object Oriented Analyzing 
OOA是一种将现实世界中的问题映射到问题域的方法。
2【目的、意义】
明确用户的功能需求,及满足用户所需的系统部件及其结构。
3 【输入】
用户需求。
4 【输出】
1 用例图:说明系统对外提供的功能及使用者
2 类图:说明系统应具有的对象,对象的属性、方法,及其对象之间的关系。
3 交互图:
3【标准】
1)为完成用户要求系统应提供哪些功能? 
2)系统应有哪些对象构成? 
3)每个对象应有哪些属性和服务? 
4)对象间应有怎样的联系?
4【手段】
详见[1]。
 
 5【边界】
 OOA 使用面向对象的建模技术,将现实世界映射为完整的面向对象的模型。
 

二、领域分析

1【概览】
面向对象系统的分析可以在不同的抽象层次上进行。
1在商业或企业级,OOA技术可以同信息工程方法,(第 10 章)结合,来定义模拟全部业务的类、对象、
关系和行为,这个层次的 OOA类似于信息策略计划;
2在业务范围层次,可以定义一个描述某特殊的业务范围(或某产品或系统范畴)的工作的对象模型;
3在应用层次,对象模型着重于特定的客户需求,因为那些需求将影响应用的实现。
2【领域分析方法】【2】
软件的领域分析是在特定应用领域中标识、分析和规约公共需求,典型地是
在应用领域中多个项目间的复用。面向对象领域分析是以公共对象、类、子集合
和框架等形式在特定应用领域中标识、分析和规约公共的可复用的能力。
3【目标】
发现或创建那些可广泛应用的类,使得它们可以被复用。 
4【过程】
1 界定将被调查的领域。分析员必须首先隔离感兴趣的业务范围、系统类型或产品范畴。接着,必须从中抽出OO 和非 OO 的“项”
2 将从领域中抽取出来的项分类。
3 收集领域中应用的代表性样本。
4 分析样本中的每个应用。
·标识候选的可复用对象。 
·指明对象被标识为可复用的理由。 
·定义对对象的适应性修改(可能也是可复用的)。 
·估算在领域中可利用对象复用的应用的百分率。 
·用名字标识对象,并运用配置管理技术(第 9 章)来控制它们。 

三、分析模型的类属成分 

包括  交互图、顺序图

四、OOA 过程 

从理解系统的使用方式开始,如果系统是人机交互的,则考虑被人使用的方式;
如果系统是涉及过程控制的,则考虑被机器使用的方式;或者如果系统协调和控制应用,
考虑被其他程序使用的方式。定义了使用场景后,即开始软件的建模过程。 
1 使用实例,确定角色。
2 类—责任—协作者建模 
制品:指定类名,类的职责(属性和方法)和协作者
Ambler[AMB95]对 CRC 建模的描述如下: 
CRC 模型实际上是一组表示类的标准的索引卡片的集合。卡片被分成三个部
分,在卡片的顶部为类的名字,在卡片体的左边列出类的责任,在右边列出协作者。 
3 定义(类之间的)层次和结构
层次(一般-特殊结构gen-spec)
结构(whole-part)结构
4 定义主题和子系统【划分library 类库】
当类的某个子集相互协作以完成一组内聚的责任时,它们常被称为主题(subjects)[COA91] 或子系统[WIR90]。
(类库之间协作,以实现契约,就其封装性来说,类似于类)

五 对象-关系模型(确定多重性关系)

1 利用CRC的类与协作确定是否有关系。
2 根据职责确定多重性

六 对象-行为模型(状态图)

1.评估所有的使用实例(20.4.1 节)以完全地理解系统中交互的序列。 
2.标识驱动交互序列的事件,理解这些事件如何和特定的对象相关联。
3.为每个使用实例创建事件轨迹[RAM91]。 
4.为系统建造状态—变迁图。
5.复审对象—行为模型以验证精确性和一致性。 
【1】 软件工程——实践者的研究方法
【2】Firesmith[FIR93]

  

本系列为整理实习期间的面向对象开发的学习笔记。流于浅薄,见笑之处还望斧正。

 


作者:撞破南墙
出处:http://www.cnblogs.com/facingwaller/
关于作者:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/facingwaller/p/OOA_Introduction.html