1.UML是什么
统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。
统一建模语言 (UML)是非专利的第三代建模和规约语言。
UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。
UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
UML可以贯穿软件开发周期中的每一个阶段。被OMG采纳作为业界的标准。
UML最适于数据建模,业务建模,对象建模,组件建模。
UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。
2.UML有什么用处
个成功的开发项目之所以成功,是因为功能的提出者(客户)和实现功能的开发人员(程序员)之间有一座可以很好沟通的桥梁。UML借助一套图形和符号,可以来完成这座桥梁的作用。
UML不是一门程序设计语言。但可以使用代码生成器工具将UML模型转换为多种程序设计语言代码,或使用反向生成器工具将程序源代码转换为UML。
3.UML用在系统设计的哪一个阶段?
UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。
在 需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。
分析阶段主要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互间的关系,并用UML类图来描述。为实现用例,类之间需要协作,这可以用UML动态模型来描述。
在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通讯和并行性等问题的类)。这些技术细节将在 设计阶段引入,因此 设计阶段为构造阶段提供更详细的规格说明。
编程(构造)是一个独立的 阶段,其任务是用面向对象编程语言将来自设计阶段的类转换成实际的代码。在用UML建立分析和设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅是理解和分析系统结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。
UML模型还可作为 测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和合作图;系统测试使用用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。
总之,标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
4.UML的组成
构造块
建模元素(物件):建模元素的本身
UML物件可以分成:
结构物件:UML模型的名词,如类、接口、协作、用例、活动类、组件、节点。
行为物件:UML模型的动词,如交互、状态机。
分组物件:包,它用于把语义上相关的建模元素分组为内聚的单元。
注解物件:注解,它附加到模型以捕获特殊信息。
关系:把物件联系在一起,关系说明两个或多个物件是如何语义相关的。
关联关系:描述对象之间的一组链接。
依赖关系:物件的改变引起依赖物件的语义改变。
泛化关系:一个元素是另一个元素的特化,而且它可以取代更一般的元素。
实现关系:类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约。
图:UML模型的视图,它展现物件的集合。
公共机制
规格说明:在提供文字描述的同时提供对构造块的语法或语义的文字描述,就是非图形式的Document,还有可能是额外的描述
修饰:把建模的表述可视化和容易理解。
公共分类:两种划分:一是类和对象的划分;二是接口和实现的分离。
扩展机制:UML仅提供蓝本,允许派生出新事物,增加新规则并可对新规则进行描述。
架构
五类系统视图:第一类用例图,从用户角度描述系统功能,并指出各功能的操作者。
第二类静态图,展现系统的静态或组成及特性。包括类图、对象图和包图。
类图:描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
对象图:是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
包:包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。
第三类行为图,描述系统的动态模型和组成对象间的交互关系。包括状态图和活动图。
状态图:描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。
活动图:描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。
第四类交互图,描述对象间的交互关系。包括顺序图和协作图。
顺序图:显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;
协作图:描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。
如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择协作图。这两种图合称为交互图。
第五类实现图,包括构建图和部署图。
构件图:描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。
配置图:定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。
5.建 模
建模的定义:建模是对现实的简化。是把复杂的系统变成小的系统,采用“各个击破”的原则逐一解决。
建模的目标:
1)模型帮助我们按照实际情况或按照我们所需要的样式对系 统进行可视化。
2)模型允许我们详细说明系统的结构和行为。
3)模型给出一个知道我们构造系统的模板。
4)模型对我们的决策进行文档化。
从应用的角度看,当采用面向对象技术设计系统时,
首先是描述需求;
其次根据需求建立系统的静态模型,以构造系统的结构;
第三步是描述系统的行为。
其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。
其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。
因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
6.常用的UML开发工具
PowerDesigner (Sybase)Rose (Rational)
Together (Borland)
Visio (Microsoft)
BridgePoint (Project Technology)
Visual UML (Visual Object Modelers)