面向对象建模方法比较研究

时间:2022-07-28 06:12:55

面向对象建模方法比较研究

摘要:该文比较分析了几种主流的面向对象建模方法(如Booch方法、Coad 方法、OMT 方法和UML方法),对相关方法的优缺点进行了比较探讨,并对建模方法做了展望。

关键词: 面向对象;建模方法;比较

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)25-6137-03

Comparative Study of Object-oriented Modeling Approach

SHAO Guo-rong1,2

(1.Nanjing University of Finance & Economics, Nanjing 210046, China; 2.Nanjing University of Industry, Nanjing 211816, China)

Abstract: Several mainstream object-oriented modeling methods(Methods such as Booch, Coad method, OMT method and UML methods)were compared and analysized. The relevant methods were compared to explore the advantages and disadvantages, and the prospect to do modeling.

Key words: object-oriented; modeling; comparative

1 面向对象建模方法现状描述

80年代,面向对象程序设计语言趋于成熟,作为一种新的程序设计模式开始为社会所关注,为更多的人们所理解和接受,这一成就促使研究者把一部分注意力转向更广、更深层次的研究。首先把面向对象的思想用于设计阶段,于是有了面向对象设计。更进一步,又把面向对象的思想用于分析阶段,产生了面向对象的分析。因而,随着面向对象的系统开发过程等方面不断取得进展,一种新的软件设计方法面向对象的开发方法产生了,虽然尚不充分,但逐步处于主流开发方法的地位了。相对比较有名的面向对象方法有BOOCH方法、COAD-YOURDON方法、FUSION方法、MARTIN-ODELL方法、JACOBSON方法、RUMBAUGH方法、SHLAER-MELLOR方法、WIRFS-BROCK方法等。后来,面向对象方法逐步形成三个主要流派:面向对象的Booch方法 、Coad方法 和OMT方法。下面就常用的面向对象方法做一个介绍比较分析。

2 面向对象建模方法比较

2.1 Booch方法

Booch最先描述了面向对象的软件开发的基本问题,指出面向对象开发是不同于传统的功能分解的设计方法。面向对象的软件分解更接近人对客观事物的理解,而功能分解只能通过问题空间的转换来获得。Booch方法包括各种类型的模型,涉及软件系统的对象、动态及功能等各方面,其中对类及继承的阐述特别值得借鉴。最早于1983年提出了对象认定的基于词法分析的方法:Booch通过分析正文描述,将其中的名词映射为对象,将其中的动词映射为方法。从而为对象和方法的认定提供了一种简单的策略,为面向对象的分析中的对象认定方法奠定了基础。虽然, Booch方法原来是面向Ada语言的,但仍处于面向对象开发方法的奠基性地位。从20世纪80年代开始,Booch就进行面向对象的开发研究。Booch认为:软件开发是一个螺旋上升的过程,上升的每个周期有固定的步骤。 首先发现应用领域的对象和类,然后确定其含义,找出类之间的关系,说明界面和实现。这些步骤完成之后,又开始发现新的对象和类等。

2.1.1 Booch方法分类

可分为逻辑设计和物理设计,其中逻辑设计包含类图文件和对象图文件,物理设计包含模块图文件和进程图文件,用以描述软件系统结构。

1)类图。描述类与类之间的关系。

2)对象图。描述实例和对象间传递消息。

3)模块图。描述构件。

4)进程图。描述进程分配处理器的情况。

Booch方法也可划分为静态模型和动态模型。其中静态模型表示系统的构成和结构,动态模型表示系统执行的行为。动态模型包含时序图和状态转换图。

1)时序图。描述对象图中不同对象之间的动态交互关系。

2)状态图。描述一个类的状态变化。

2.1.2 Booch方法的设计过程

1)在一定抽象层确定类。从问题的陈述中的术语和概念中识别应用领域的对象,对具体的对象进行抽象,从抽象过程中发现类。

2)确定类和对象的含义。对已识别出来的类和对象,分析其在完成系统功能上应承担的责任和所起的作用,在此基础上确定每个类的属性和行为。

3)定义类与对象的关系。任何一个类在完成自己的责任时,往往需要其它类的协作,这些相关类的对象的协同作业,才能完成系统的部分功能,同时也构成系统的一个必要组成部分。

4)实现系统中的类与对象。

5)说明类的界面与实现。

2.1.3 Booch方法优缺点

Booch方法内涵丰富,涉及面向对象的软件系统的各个方面,是广为使用的几个面向对象的方法之一。 Booch不仅建立了开发方法,还提出了对设计人员的技术要求,以及在开发过程的不同阶段资源与人力的分配。但是 Booch方法偏重于设计,虽然也讨论了面向对象的分析,但未提供足够的指导。

2.2 Coad方法

Coad方法是1989年由Coad和Yourdon提出的面向对象的开发方法,该方法完成了从需求角度出发的对象和分类结构的认定工作,面向对象设计可以在此基础上,从设计的角度进一步进行类和类层次结构的认定。尽管Coad方法并没有列入类和类层次结构的术语,但事实上已经在分类结构、属性、服务及消息关联等概念中体现了类和类层次结构的特征。

面向对象的Coad方法使用统一的基本表示方法来组织数据及数据处理。面向对象的分析定义问题域的对象和类,反映系统的任务;面向对象的设计定义附加的类和对象,反映需求的实现。该方法中分析和设计符号无明显差别,不存在从分析到设计的转换。

2.2.1 Coad的层次和组元

面向对象的Coad方法由面向对象的分析和面向对象的设计构成,通过面向对象的分析,建立信息需求分析模型,在此基础上进行面向对象的设计,设计出具有5个层次4个组元的模型。在Coad方法的面向对象的分析中,有5种活动:1)标识对象;2)识别类的结构;3)确定主题;4)定义属性;5)定义服务。

按上述活动建立信息需求的分析模型,并按下列5个层次整理提交文档:

1)主题层:控制一次分析所考虑的范围,即对相关的类进行归并;

2)对象层:在分析的范围内找出全部的对象;

3)结构层:分析对象的分类结构和组装结构;

4)属性层:描述每个对象的状态特征;

5)服务层:描述每个对象所具有的操作。

在Coad方法中,面向对象的设计模型是在面向对象的分析模型的5个层次上由4个组元构成。5个层次从纵向反映模型是透明重叠的,一级比一级更详细; 4个组元从横向反映模型的组成。 4个组元对应于面向对象设计的4个主要活动及内容:

1)问题域组元:设计构造一组为底层应用建立模型的类和对象,细化分析结果;

2)人机界面组元:设计一组有关类接口视图的用户模型的类和对象,设计用户界面;

3)任务管理组元:确定系统资源的分配,设计用于系统中类的行为控制的对象和类;

4)数据管理组元:确定持久的对象存储,将对象转换成数据库记录或表格。

2.2.2 Coad方法建立系统分析模型案例

以传感器控制系统为例, 用Coad方法建立该系统的分析模型。

首先,问题陈述:传感器控制系统控制传感器和临界传感器,报告问题情况。各传感器都通过类型(生产厂,型号)、触发序列(发往被触发的传感器)、转换(偏移,测量单位,比例系数)、 脉冲调幅、地址、状态(开,关,等待)、当前值及报警阈值来描述。传感器装在建筑物中,系统跟踪各个建筑物中的传感器、 建筑物地址及紧急接触点。另外,临界传感器用容限(脉冲调幅容限)来描述。每当超出或满足传感器阈值时,控制系统就触发相应的报警设备, 报警设备的活动受设备状态持续时间的影响。控制系统跟踪日期、时间、严重程度、修理时间及各个报警装置的状态。

其次,传感器控制系统的分析模型,图1给出传感器控制系统的分析模型。

2.2.3 Coad方法优缺点

该方法的主要优点是通过多年来大系统开发(如美国的一个航空管制系统)的经验与面向对象的概念有机结合,在对象、结构、属性和服务的认定方面,提出了一套系统的原则,它们是作者经验的总结和升华。该方法比较适合一般的中小规模系统,但是由于其缺少对功能语义、全局控制的支持,应用OOD时需加以修正。

2.3 OMT方法

OMT方法是1991年由James Rumbaugh等5人提出来的,其经典著作为《面向对象的建模与设计》。该方法是一种新兴的面向对象的开发方法,开发工作是建立在对真实世界的对象建模上,然后围绕这些对象使用这个模型来构造独立于语言的设计。面向对象的建模和设计促进了对需求的理解,有利于开发得到更清晰、更容易维护的软件系统。

2.3.1 OMT方法主要特点

该方法将面向对象的概念应用于软件生存期的各个阶段,并说明了如何在软件开发的整个生存周期中贯穿运用面向对象的概念、方法及技术进行分析、设计和实现。

该方法特别强调面向对象的构造是真实事物的模型,而不是一种程序设计技术,将对象间的关系上升为相同的语义级(类),并详细说明了继承机制、类、模型化及高级策略。

该方法是作者多年来在大量应用领域中使用了面向对象分析、面向对象设计、面向对象程序设计及面向对象数据建模技术,同时研究并实现了一套面向对象的符号表示和方法学,开发了一个面向对象的支持工具。

2.3.2 OMT方法优缺点分析

该方法不仅在理论上,而且在实际中都熟练掌握和使用了面向对象技术。该方法的图表和模型规定详细、描述能力强、工作程序细致、从某种意义上说它是偏向分析的方法,但是仅因预备的文档,其对大型系统的描述是远远不够的。

2.4 UML方法

UML(Unified Modeling Language的缩写)统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML不仅适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。它是非专利的第三代建模和规约语言。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML被OMG采纳作为业界的标准。UML最适于数据建模,业务建模,对象建模,组件建模。

2.4.1 UML简单结构图

如图2所示。

2.4.2 UML的主要特点分析

UML在演变过程中提出了一些新的概念,在UML标准中新加了模板(Stereotyp es)、职责(Responsibilities)、扩展机制(Extensibility mechanisms)、线程(Thread s)、过程(Processes)、分布式(Distribution)、并发(Concurrency)、模式(Patterns) 、合作(Collaborations)、活动图(Activity diagram)等新概念,并清晰地区分类型(Type)、类(Class)和实例(Instance)、细化(Refinement)、接口(Interfaces)和组件(Com ponents)等概念。UML统一了Booch、OMT和OOSE等方法中的基本概念,已成为OMG的正式标准,提供了标准的面向对象的模型元素的定义和表示。UML还吸取了面向对象技术领域中其它流派的精华。删除了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。UML方法可视化、表示能力强系统的逻辑模型或实现模型都能用UML模型清晰的表示,可用于复杂软件系统的建模。其易掌握、易用, UML的概念明确,建模表示法简洁明了,图形结构清晰,易于掌握使用。

3 面向对象建模方法展望

面向对象建模方法在八十年代、九十年代已经有了很大的发展,我们可以展望面向对象的建模方法在二十一世纪有更高更广更深的发展,期待它在全球各个领域(如计算机科学,信息科学等)得到更好的应用。

参考文献:

[1] 马光毅, 郭荷清, 黎伟健, 等. 面向对象建模方法研究[J].华南师范大学学报,1999(1).

[2] 钱乐秋. 面向对象分析建模策略及相关讨论[J]. 浙江师范大学学报,2005(28).

上一篇:利用Microsoft Graph绘制函数图形 下一篇:基于数据挖掘的网络日志分析