UML方法

本条目务虚,是因为现在UML还不够普及与成熟,所以记载了一些相关的概念与术语。

一,概述

UML (Unified Modeling Language,统一建模语言,U Must Learn :D),是运用统一的标记和概念来实现面向对象软件分析和设计的一种图形工具,它由Grady Booch(Booch 1993), James Rumbaugh(OMT-2)、和Ivar Jacobson(OOSE)三位方法大师提出,于1997年经国际对象管理组织OMG(Object Management Group)标准化后正式推出UML1.0。 属于第三代面向对象开发的编制文档可开发的方法,注意的是, UML不是可视化的程序设计语言, 而是一种可视化的建模语言.其提出的目标是:

1. 易用性. 可进行可视化建模. 2. 无关性. UML与具体的实现无关, 与具体的过程无关, 可以用于任何语言任何开发过程 3. 可扩展性. UML本身具有扩展机制. 4. 复用性. UML强调在开发中对架构, 框架,模式和组件的重用

UML主要的目的,在于让所有进行系统分析设计的工程师,可以有一个共同的图形化语言,来描述他们所想要建立的系统。

二,UML架构与分类

UML中有三种基本构造块,分别是事物、关系和图。

事物分结构事物(包括类、接口、协作、用况、活动类、构件和节点)、行为事物(包括交互和状态机)、分组事物(包)和注释事物(注解)。

UML中有四种关系,分别是依赖、关联、泛化和实现关系。

UML由图和元模型组成, 其中, 图是语法, 而元模型是语义. UML语义定义在一个四层(也就是四个抽象级)建模概念框架中, 这四层分别是

.元元模型(meta-meta model)层 : 组成UML最基本的元素”事务(Thing)”, 代表要定义的所有事物

.元模型(meta model)层 : 组成uml基本元素, 包括面向对象和面向组件的概念, 这一层的每个概念都是元元模型中”事物”概念的实例

.模型(model)层 : 组成UML的模型, 这一层中的每个概念都是元模型中概念的一个实例, 这层的模型通常叫做类模型(class model)或类型模型(type model)

.用户模型(user model)层 : 这层中的所有元素都是UML模型的例子, 这层的每个概念都是模型层的一个实例(通过分类), 也是元模型层的一个实例(通过版类化), 这层模型通常叫做对象模型(object model)或实例模型(instance model)

UML可以由下列五类图(共9种图形)来定义 :

1.用例图(user case diagram),从用户角度描述系统功能,并指出各功能的操作者。

2.静态图(Static diagram), 包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。

3.行为图(Behavior diagram), 描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。

4.交互图(Interactive diagram), 描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。

5.实现图( Implementation diagram), 其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。

从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。

参考资料: 共用一种语言说话 http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=801 经典收藏之--UML辛路历程(1) http://blog.csdn.net/zlf1999/archive/2004/10/19/142128.aspx 面向对象方法综述http://www.lnu.edu.cn/book/se/OOoverview.html UML简介 http://21van.51.net/softpro/onepage.php?id=13&hit=215&type=1 常用UML符号和参考资源 http://www.yesky.com/SoftChannel/72342376189788160/20021114/1639975_3.shtml

一些概念性名词

Stereotypes 模板 Responsibilities 职责 Extensibility mechanisms 扩展机制 Threads 线程 Processes 过程 Distribution 分布式 Concurrency 并发 Patterns 模式 Collaborations 合作 Activity diagram 活动图 Type 类型 Class 类 Instance 实例 Refinement 细化 Interfaces 接口 Components 组件