首页 理论教育 软件工程:面向对象建模(UML)

软件工程:面向对象建模(UML)

时间:2023-11-06 理论教育 版权反馈
【摘要】:对于UML视图种类的说法,各种参考书上根据描述的角度的不同而有所不同。我们需要通过自己对对象的理解和使用面向对象分析设计技术来进行系统的分析和设计,然后通过UML的形式进行表述。而前向工程则是基于UML对问题描述的规则,通过工具的应用自动生成代码框架的过程。

软件工程:面向对象建模(UML)

无论是结构化方法还是面向对象方法,在进行系统分析和设计的过程中都需要对分析得到的结果进行描述,让其他相关人员能够理解你的想法,这就需要一种简洁直观的描述方式,这让我们马上想到了图形符号,它能让我们对问题的认识更快地进行统一,减少了文字描述带来的复杂性,可以把知识规范地表示出来。

软件工程中,这种主要以图形的方式来达成共识的方式称为构建模型,简称建模。建模并不只是单纯地由图形构成,而是由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。模型是对事物的一种无歧义的书面描述,是现实的简化,它提供了系统的设计图。模型可以包含详细的规划,也可以包含概括性的规划,这种规划高度概括了正在考虑的系统。好的模型包括那些具有高度抽象性的元素。

回顾前面学习过的内容,结构化建模主要是通过数据流图、实体关系图和软件结构图来实现。面向对象技术中,通常需要建立三种形式的模型,它们分别是对象模型、动态模型和功能模型。对象模型用来描述系统的数据结构,动态模型用来描述系统的控制结构,功能模型用来描述系统的功能。一个典型的软件系统组合了上述三方面内容。

面向对象建模的形式自其产生以来,出现了许多自成体系的表示方法,这些表示法表达了相同的概念,但符号不同,令开发者混淆,使得开发者之间的交流反而更加困难。

为了能够解决这种混乱的局面,软件界开始集中力量合并这些不同的表示法。1994年,Jim Rumbaugh加入了Rational公司,与Grady Booch一起统一了OMT和Booch表示法。1995年,Ivar Jacobson也加入了Rational公司,并把用例加入统一化工作中。Rational公司在1996年向对象管理组织(OMG)发出请求,提议完成一套标准面向对象建模表示法。

对于UML视图种类的说法,各种参考书上根据描述的角度的不同而有所不同。典型的是UML 4+1视图,如图5-3所示,包括用例视图、逻辑视图、实现视图、进程视图和部署视图。主要是从应用的角度进行描述在什么阶段对某一问题进行建模时,使用什么视图,这个视图都包括哪些具体的UML图,即通过哪几种图形能够描述这个问题。

图5-3 UML4+1视图

1.用例视图(Scenarios)

用例视图描述了从外部参与者来看系统应该完成的功能以及系统的需求。它是为用户、系统分析人员、设计者、开发者和测试人员设计的。用例视图是其他视图的中心,其内容驱动了其他视图的开发。从技术角度看,用例应该是中立的,不包含对象,也就是说,其内容集中在系统解决方案能够完成哪些功能,而不是如何构建系统,强调了需求阶段的任务。

2.逻辑视图(Logical View)

逻辑视图描述了如何提供系统功能,该视图主要使用者是系统的设计者和开发者。它着眼于系统的内部,与更为宏观的用例视图形成对比。它描述了静态结构(类、对象及其关系),也描述了对象为响应外部或内部事件而发送消息时的动作协作序列。

3.实现视图(Development View)(www.xing528.com)

实现视图描述了各个实现模块以及它们之间的依赖关系。这些模块可以和其他交付产品进行交叉检验,以确保所有的需求最终都实现为代码。它主要用于开发者,由组件图组成。

4.进程视图(Process View)

进程视图也称为并发性视图。它描述了如何将系统划分为各个进程和处理器。这种划分考虑到了有效的资源使用、并行执行以及对异步事件的处理。它是为开发者和系统集成人员设计的。包括状态图序列图、协作图、活动图、组件图和部署图。

5.部署视图(Physical View)

部署视图通过组件图和部署图描述系统物理部署情况,开发者、系统集成人员和测试人员要求会使用该视图。

UML并不是面向对象分析和设计的全部,它只是一种手段,一种工具。我们需要通过自己对对象的理解和使用面向对象分析设计技术来进行系统的分析和设计,然后通过UML的形式进行表述。

UML可以作为草图,作为一种非正式的、不完整的图,借助可视化语言的功能,用于探讨问题或解决方案空间的复杂部分。

UML可以作为蓝图,来描述相对详细的设计图。逆向工程就是利用UML间接直观的特点将已有的代码转换成系统模型的过程。而前向工程(代码生成)则是基于UML对问题描述的规则,通过工具的应用自动生成代码框架的过程。

UML可以描述原始图类型,如类图和序列图,也可以在这些图上叠加建模的透视图。例如,同样的UML类图,既能够描述现实世界的概念,又能够描述面向对象语言中的软件类,这种分类是从抽象层次上进行的。概念透视图的抽象层次最高,它是用图来描述现实世界或关注领域中的事物。例如,后面提到的领域模型,同样是类图,它与设计类图所表达的含义完全不同;而规格说明透视图是用图来描述软件的抽象物或具有规格说明和接口的构件,但是并不约束特定实现。实现透视图是用图来描述特定技术中的软件实现。

UML仅仅是标准的图形化表示方法,它使用常用符号给可视化建模带来了极大的帮助,但它不可能与设计和对象思想同等重要。设计知识是极不寻常的且更为重要的技能,它不是通过学习UML表示法或相关CASE工具就可以掌握的,如果不具备良好的面向对象设计和编程能力,那么,即使使用UML,也只能做出拙劣的设计,记住这一点是至关重要的。

在后续的章节中,我们将采用UML作为系统的建模描述语言。不仅因为它已经成为软件界公认的建模标准,而且也是RUP过程模型中的重要组成部分,RUP是面向对象软件工程方法介绍过程中选用的过程模型。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈