什么是面向对象的建模

面向对象建模语言问世于20世纪70年代中期。从1989年到1994年,其数量从不到10种迅速增加到了50多种。各种建模语言的设计者都努力推广自己的语言产品,并在实践中不断完善。然而,面向对象方法的用户并不了解不同建模语言的优缺点以及相互之间的差异,因而很难根据应用的特点选择合适的建模语言。于是,爆发了一场“方法大战”。

Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991年,他将以前所进行的面向Ada的工作扩展到整个面向对象设计领域。1993年,Booch对其先前的方法做了一些改进,使之适合于系统的设计和构造。Booch在其OOAda中提出了面向对象开发的4个模型:逻辑视图、物理视图及其相应的静态和动态语义。对逻辑结构的静态视图,OOAda提供对象图和类图;对逻辑结构的动态视图,OOAda提供了状态变迁图和交互图;对于物理结构的静态视图,OOAda提供了模块图和进程图。

Jacobson于1994年提出了面向对象的软件工程(OOSE)方法,该方法的最大特点是面向用案(Use Case)。OOSE是由用案模型、域对象模型、分析模型、设计模型、实现模型和测试模型组成的。其中用案模型贯穿于整个开发过程,它驱动所有其他模型的开发。

Rumbaugh等人提出了OMT方法。在OMT方法中,系统是通过对象模型、动态模型和功能模型来描述的。其中,对象模型用来描述系统中各对象的静态结构以及它们之间的关系;功能模型描述系统实现什么功能(即捕获系统所执行的计算),它通过数据流图来描述如何由系统的输入值得到输出值。功能模型只能指出可能的功能计算路径,而不能确定哪一条路径会实际发生。动态模型则描述系统在何时实现其功能(控制流),每个类的动态部分是由状态图来描述的。

Coad与Yourdon提出了OOA/OOD方法。一个OOA模型由主题层、类及对象层、结构层、属性层和服务层组成。其中,主题层描述系统的划分,类及对象层描述系统中的类及对象,结构层捕获类和对象之间的继承关系及整体—部分关系,属性层描述对象的属性和类及对象之间的关联关系,服务层描述对象所提供的服务(即方法)和对象之间的消息链接。OOD模型由人机交互(界面)构件、问题域构件、任务管理构件和数据管理构件组成。

Fusion方法自认为是“第2代”开发方法。它是在OMT方法、Objectory方法、形式化方法、CRC方法和Booch方法的基础上开发的。面向复用/再工程以及基于复用/再工程的需求开发是Fusion的一大特点。Fusion方法中用于描述系统设计和分析的图形符号虽然不多,但较全面。Fusion方法将开发过程划分为分析、设计和实现3个阶段,每个阶段由若干步骤组成,每一步骤的输出都是下一步骤的输入。

OL是Shlaer/Mellor重新修订其先前开发的面向对象系统分析方法(OOSA)后所得到的一种建模方法。OL方法中的OOA使用了信息建模、状态建模和进程建模技术。OOD中使用类图、类结构图、依赖图和继承图对系统进行描述。

Martin与Odell提出的OOAD方法的理论基础是逻辑和集合论。尽管面向对象的分析通常被划分成结构(静态)和行为(动态)两部分,但Martin与Odell的OOAD却试图将它们集成在一起。他们认为面向对象分析的基础应该是系统的行为,系统的结构是通过对系统行为的分析而得到的。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/516.html
返回顶部