OOA&D方法概貌
一、OOA&D方法的主要概念
面向对象的概念包括以下两种情况:
(1)用来构成系统模型的基本成分,称为建模元素
(2)在建模中需要遵守的某种原则,不代表任何模型成分
建模元素:
对象、类
属性、操作
继承关系(及一般-特殊结构)
聚合关系(及整体-部分结构)
关联
消息
主要原则
抽象
OO方法广泛地运用抽象原则,例如:
系统中的对象是对现实世界中事物的抽象
类是对象的抽象
一般类是对特殊类的进一步抽象
属性是事物静态特征的抽象
操作是事物动态特征的抽象
分类
分类就是把具有相同属性和操作的对象划分为一类,用类作为这些对象的抽象描述。强调:在类的抽象层次上建模
封装
属性与操作结合为一体,对外隐蔽对象内部的细节
继承
通过继承,使特殊类隐含地复制一般类的属性和操作,从而不必显式地(重复)定义它们
聚合
用聚合的概念描述事物之间的构成关系
关联
通过关联提供问题域中一组有意义的关系信息
消息通信
要求对象之间只能通过消息进行通讯,而不允许在对象之外直接地存取对象内部的属性。
粒度控制
引入包(package)的概念,把模型中的类按一定的规则进行组合,形成一些包,使模型具有大小不同的粒度层次,从而有利于人们对复杂性的控制。
行为分析
以对象为单位描述问题域中的各种事物行为,通过消息描述对象之间的行为依赖关系
二、模型及其规约
1.在分析阶段和设计阶段建立的系统模型分别称为OOA模型和OOD模型
2.建立OOA模型和OOD模型,包括需求模型、基本模型和辅助模型,通过模型规约对这些模型做详细说明
3.需求模型——用况图
每个用况是一项系统功能使用情况的说明,把每一类参与者对每一项系统功能的使用情况确切地描述出来,便全面地定义了系统的功能需求
4.基本模型——类图
面向对象的建模中最重要、最基本的模型图
集中而完整地体现了面向对象的概念
为面向对象的编程提供了最直接的依据
可以从三个层次来看
5.辅助模型——其他各种图
对类图起到辅助作用,从不同的视角来描述系统。例如包图、顺序图、活动图、状态机图等
6.模型规约
对上述各种模型图及其模型元素做详细而确切的定义和解释
OOA模型框架
OOD模型框架
——从两个侧面来描述
三、建模过程
1.OOA过程
2.OOD过程
四、OOA与OOD的关系
1.一致的概念与表示法
OOA和OOD采用一致的概念和表示法,从而不存在分析与设计之间的鸿沟。
不同的内容、目标和抽象层次
OOA:研究问题域和用户需求,运用面向对象的观点发现问题域中与系统责任有关的对象,以及对象的特征和相互关系。目标是建立一个直接映射问题域,符合用户需求的OOA模型。
OOD:在OOA模型基础上,针对选定的实现平台进行系统设计,按照实现的要求进行具体的设计,目标是产生一个能够在选定的软硬件平台上实现的OOD模型。
OOA模型:抽象层次较高,忽略了与现实有关的因素
OOD模型:抽象层次较低,包含了与现实平台有关的细节
2.OOA与OOD的分工——两种不同的观点
五、从MDA看OOA与OOD的关系
1.模型驱动体系结构(model-driven architecture,MDA)是OMG的一个技术规范,是一种加强模型能力的系统开发途径。模型驱动是指用模型来对系统的理解、设计、构造、部署、操作、维护和更新进行指导。MDA提倡:
在系统开发中首先建立平台无关模型(PIM)
然后将它转换为平台专用模型(PSM)
2.把MDA的观点运用于OOA和OOD
OOA:只针对问题域和责任系统,不涉及实现条件
因此可得到一个平台无关的OOA模型
OOD:在OOA模型基础上针对特定实现条件进行设计
转换成一个平台专用的OOD模型
好处:分析阶段得到的OOA模型可以在不同的实现平台上进行设计,得到多个的OOD模型;整个OOA模型可复用