UML主要功能及特点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UML主要功能及特点
1 UML概述
2 UML主要功能
3 UML特点
4 UML优缺点分析
1UML概述
UML(Unified Modeling Language,统一建模语言)承袭面向对象分析与设计(OOAD Object Oriented Analysis and Design)的方法,是一种用来描述系统蓝图的标准模式语言。

它是由三位面向对象方法领域著名的方法学家Booch、Rumbaugh 和Jacobson提出,结合了他们以及其它众多优秀方法和思想,得到了世界知名公司如Microsoft,HP,IBM,Rational 等的使用和支持,并于1997 年11 月被
OMG(Object Management Group)组织采纳作为基于对象技术的标准建模语言。

它融入了软件工程领域的新思想、新方法和新技术,不仅支持面向对象的分析和设计,还支持从需求开始的软件开发过程,是近十年来最具有划时代意义的软件技术之一。

它是一种可以应用于任何软件开发过程的标记法和语义语言)。

作为对软件解决方案的业务领域进行描述的事实上的标准,UML 是第一种获得大多数从业者、软件厂商和学术界一致认同的表示法。

UML 是一种通用的可视化建模语言,用于对软件描述、可视化处理、构造和建立软件系统制品的文档。

它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。

UML 适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。

UML 包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。

它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。

UML 标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。

它是为支持大部分现存的面向对象开发过程而设计的。

UML 描述了一个系统的静态结构和动态行为。

UML 将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定功能的模型结构。

静态结构定义了系统中重要对象的属性和操作以及这些对象之间的相互关系。

动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制。

从不同但相互联系的角度对系统建立的模型可用于不同的目的。

UML 不是编程语言,工具可以提供UML 至各种编程语言的代码生成,以及可以从现有的程序逆向构筑模型。

UML 不是用于定理证明的高度正式的语言。

实际上有很多正式的语言,但它们不易理解或不适用于多种用途。

UML 是
通用性的建模语言。

对于特定的领域、如GUI设计,.VISO电路设计或基于规则的人工智能,更特定的语言和工具可能更加合适。

UML 是离散的建模语言,它不打算对如工程和物理的连续系统建模。

UML 是对诸如软件、硬件或数字逻辑的离散系统建模的通用语言。

统一建模语言UML是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。

它捕捉了被构建系统的有关决策和理解,用来理解、设计、浏览、配置、维护以及控制系统的信息。

UML 可以与所有的开发方法、生命阶段、应用领域和媒介一同使用。

它意图统一过去建模技术的经验,将当前软件最佳实践合并至标准的方法。

UML 包括语义概念、标记符号和指南,具有静态、动态、环境上的和组织性的部分。

它可以被具有代码产生和报表生成的交互式可视建模工具所支持。

UML 规范没有定义标准过程但可用于迭代的开发过程,并支持现有的大多数面向对象的开发过程。

UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;第三,UML是标准的建模语言,而不是标准的开发过程。

尽管UML的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。

作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。

第一是UML语义,描述基于UML的精确元模型定义。

元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。

此外UML还支持对元模型的扩展定义。

第二是UML表示法,定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。

这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例
2UML主要功能
UML是一种编制系统蓝图的标准化语言,可以实现大型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建立各种所需的文档,它是一种定义良好、易于表达、功能强大且普遍适用的建模语言。

UML的发展对软件工程的发展做出了杰出的贡献。

UML支持从需求分析开始的软件开发的全过程。

UML通过三类图形建立系统模型:用例(Use Case)图、静态结构图(对象类图、对象图、组件图、配置图)和动态行为图(顺序图、协同图、状态图、活动图),这些图可以从不同的
抽象角度实现系统的可视化。

客观世界是一个复杂巨系统,需要从不同的角度来考察,才能真正理解这个系统。

为了能支持从不同角度来考察系统,标准建模语言UML定义了下列5类、共10种模型图:
第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。

用例图展现了一组用例、参与者以及它们间的关系。

可以用用例图描述系统的静态使用情况,它定义了系统的功能需求,但这是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。

第二类是静态图(Static diagram),包括类图、对象图和包图。

其中类图描述系统中类的静态结构。

不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。

类图描述的是一种静态关系,在系统的整个生命周期都是有效的。

对象图是类图的实例,几乎使用与类图完全相同的标识。

他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。

一个对象图是类图的一个实例。

由于对象存在生命周期,因此对象图只能在系统某一时间段存在。

包由包或类组成,表示包与包之间的关系。

包图用于描述系统的分层结构。

第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。

其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。

通常,状态图是对类图的补充。

在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。

而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。

第四类是交互图(Interactive diagram),描述对象间的交互关系。

其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。

除显示信息交换外,合作图还显示对象以及它们之间的关系。

如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。

这两种图合称为交互图。

第五类是实现图( Implementation diagram )。

其中构件图描述代码部件的物理结构及各部件之间的依赖关系。

一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。

它包含逻辑类或实现类的有关信息。

部件图有助于分析和理解部件之间的相互影响程度。

配置图定义系统中软硬件的物理体系结构。

它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依
赖性。

在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。

从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。

其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。

其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。

它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML 的动态建模机制。

因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。

运用UML进行面向对象的系统分析设计,其过程通常由以下三个部份组成:识别系统的用例和角色,首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,再使用UML建模工具画出系统的用例图,同时,勾画系统的概念层模型,借助UML建模工具描述概念层类图和活动图。

进行系统分析,并抽取类,系统分析的任务是找出系统的所有需求并加以描述,同时建立特定领域模型。

建立域模型有助于开发人员考察用例,从中抽取出类,并描述类之间的关系。

系统设计,并设计类及其行为,设计阶段由结构设计和详细设计组成。

①结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制。

包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系。

②详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。

3UML特点
UML具有以下特点:
面向对象。

UML支持面向对象技术的主要概念,提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念。

可视化,表示能力强。

通过UML的模型图能清晰地表示系统的逻辑模型和实现模型。

可用于各种复杂系统的建模。

独立于过程。

UML是系统建模语言,独立于开发过程。

独立于程序设计语言。

用UML建立的软件系统模型可以用Java等任何一种面向对象的程序设计来实现。

易于掌握使用。

UML图形结构清晰,建模简洁明了,容易掌握使用。

使用UML进行系统分析和设计,可以加速开发进程,提高代码质量,支持动态的业务需求。

UML适用于各种规模的系统开发。

能促进软件复用,方便地集成已有的系统,并能有效处理开发中的各种风险。

UML统一了Booch、OMT和OOSE等方法中的基本概念。

UML还吸取了面向
对象技术领域中其他流派的长处,其中也包括非OO方法的影响。

UML符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。

因此,在UML中汇入了面向对象领域中很多人的思想。

这些思想并不是UML的开发者们发明的,而是开发者们依据最优秀的OO方法和丰富的计算机科学实践经验综合提炼而成的。

UML在演变过程中还提出了一些新的概念。

在UML标准中新加了模板(Stereotypes)、职责Responsibilities)、扩展机制(Extensibility mechanisms)、线程(Threads)、过程(Processes)、分布式(Distribution)、并发(Concurrency)、模式(Patterns)、合作(Collaborations)、活动图(Activity diagram)等新概念,并清晰地区分类型(Type)、类(Class)和实例(Instance)、细化(Refinement)、接口(Interfaces)和组件(Components)等概念。

因此可以认为,UML是一种先进实用的标准建模语言,但其中某些概念尚待实践来验证,UML也必然存在一个进化过程。

4UML优缺点分析
OO思想曾经遭受一些人的批评。

理由是用户关心和理解的只是系统的功能,他不可能去学习OO模型,所以虽然OO建模缩小了分析设计和编码的鸿沟,但却拉大了和用户的距离。

幸运的是,Use Case的出现,使这一情况得到了大大的改观。

在UML中,用OO建模的第一步是Use Case 的分析,Use Case体现了系统的功能单元。

系统的外部人员或其它系统通过和Use Case 交换消息来了解和使用系统的功能,弥补了OO建模和用户之间的距离。

UML以对象图描述任何类型的系统,具有很宽的应用领域,可以对任何具有静态结构和动态行为的领域建模。

UML还适用于从需求规格说明到系统测试的不同阶段。

在需求分析阶段,用Use Case捕捉用户需求并建模,描述与系统有关的外部角色及其对系统的功能要求。

分析阶段主要关心问题域中的主要概念和机制,并用UML类图来描述对象和类,用UML动态模型描述类之间的协作关系。

UML模型同时还是测试阶段的依据。

不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和协作图;系统测试使用Use Case 图。

所以,UML适用于以面向对象的技术来描述任何类型的系统。

而且适用于系统开发的不同阶段。

UML的功能和UDRE的基本思想不谋而合。

可以应用于任何领域,其实现机制又极大地缩短了用户的距离,易于被用户掌握和接受。

UML使用户不仅可以有效地参与需求定义,还能在建模过程中参与部分的设计、实现和测试,从而有效地进行需求验证。

使用户在需求的定义、决策、验证和管
理,乃至整个软件开发过程中,充分发挥其主导作用。

UML易于使用,能够进行可视化建模, 与具体的实现无关;可应用于任何语言平台和工具平台,与具体的过程无关;可应用于任何软件开发的过程,简单并且可扩展,具有扩展和专有化机制,便于扩展,无须对核心概念进行修改;为面相对象的设计与开发中涌现出的高级概念提供支持,强调软件在开发过程中对架构、框架、模式和组件的重用;与最好的软件工程实践经验集成。

系统分析的过程,从需求的收集、分析、设计……等,皆可用UML 的符号表达。

图形表示法,大大地降低了分析人员和使用者之间沟通不良的问题。

UML 可以很好的配合面向对象的语言OOPL,例如Java。

UML由继承(Inheritance)的方式使得程序能一再被利用。

使用者的需求改变时,也能很容易的调整系统,不会增加额外的负担,可有效的减少维护(Maintain)成本。

相关文档
最新文档