UML(Unified
Modeling Language)
Enterprise Architecture,企业架构,简称EA。有效的企业架构对企业的生存和成功具有决定性的作用,是企业通过IT获得竞争优势的不可缺少的手段。是在信息系统架构设计与实施的实践基础上发展起来的一个特殊领域,现有的实践,主要来自大型组织,例如政府建设。
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。
UML
2.4.1 发展了已经获得成功的 UML 2.0规范 ,并迅速成为建立软件系统可视化、规范、文档的标准。统一建模语言(UML)
也被用于非软件系统的建模,并在很多领域,诸如金融,军事,工程方面应用广泛。
如果你是一个UML新手, 我们的UML介绍将是一个很好的起点。
UML 2 定义了13种基本的图,它们被分成两大类:
1. 结构建模图
结构图定义了一个模型的静态架构。它们通常被用来对那些构成模型的‘要素'建模,诸如:类,对象,接口和物理组件。另外,它们也被用来对元素间关联和依赖关系进行建模。
类或结构图
|
用来定义模型的基本建立模块
: 类型、类和构成完整模型的一般素材。 |
对象图 |
显示结构元素的实例间如何关联,以及在运行时如何使用。 |
复合结构图 |
提供了一种对元素结构进行分层的方法,并着重体现了元素内部的细节,结构和关系。
|
组件图 |
被用来构造更高层次或更复杂的结构,通常由一个或多个类构成,并提供一个定义明确的接口。
|
部署图 |
显示现实环境中重要物件的物理配置。 |
包图 |
用来将模型划分成不同的逻辑容器或“包”,并在更高层次上描述它们之间的交互关系。
|
2. 行为建模图
行为图用来记录在一个模型内部,随时间的变化,模型执行的交互变化和瞬间的状态;并跟踪系统在真实环境下如何表现,以及观察系统对一个操作或事件的反应,以及它的结果。
交互概览图 |
融合活动图和顺序图,使交互部分容易与判断点和流程结合。
|
用例图 |
用来对用户/系统的交互关系建模。 用脚本和情形的形式来定义行为,要求和约束。 |
活动图 |
广泛使用于定义基本程序流程和在一般化过程中,记录判断点和动作。
|
状态机图 |
对于了解模型执行时的瞬时状态,即模型的运行状态是重要的。 |
通信图 |
显示协作实例中,对象间实时消息和通信的网络结构与顺序。
|
顺序图 |
与通信图联系紧密,并在垂直时间线上显示对象间消息传递的顺序。 |
时间图 |
融合顺序图和状态图,以提供观察对象随时间变化的状态和改变这个状态的消息。
|
嵌入式软件分析设计
通用软件分析设计
包括:业务建模,需求建模,系统建模,架构建模,数据建模,code建模,模型仿真等。
UML是在多种面向对象建模方法的基础上发展起来的建模语言,主要用于软件密集型系统的建模。它的演化,可以按其性质划分为以下几个阶段:最初的阶段是专家的联合行动,由三位OO(面向对象)方法学家将他们各自的方法结合在一起,形成UML
0.9。第二阶段是公司的联合行动,由十几家公司组成的“UML伙伴组织”将各自的意见加入UML,形成UML
1.0和1.1,并作为向OMG申请成为建模语言规范的提案。第三阶段是在OMG控制下的修订与改进,OMG于1997年11月正式采纳UML
1.1作为建模语言规范,然后成立任务组进行不断的修订,并产生了UML 1.2、1.3和1.4版本,其中UML
1.3是较为重要的修订版。目前正处于UML的重大修订阶段,目标是推出UML 2.0,作为向ISO提交的标准提案。
在多种面向对象建模方法流派并存和相互竞争的局面中,UML树起了统一的旗帜,使不同厂商开发的系统模型能够基于共同的概念,使用相同的表示法,呈现彼此一致的模型风格。而且它从多种方法中吸收了大量有用(或者对一部分用户可能有用)的建模概念,使它的概念和表示法在规模上超过了以往任何一种方法,并且提供了允许用户对语言做进一步扩展的机制。
UML在语法和语义的定义方面也做了大量的工作。以往各种关于面向对象方法的著作通常是以比较简单的方式定义其建模概念,而以主要篇幅给出过程指导,论述如何运用这些概念来进行开发。UML则以一种建模语言的姿态出现,使用语言学中的一些技术来定义。尽管真正从语言学的角度看它还有许多缺陷,但它在这方面所做的努力却是以往的各种建模方法无法比拟的。
从UML的早期版本开始,便受到了计算机产业界的重视,OMG的采纳和大公司的支持把它推上了实际上的工业标准的地位,使它拥有越来越多的用户。它被广泛地用于应用领域和多种类型的系统建模,如管理信息系统、通信与控制系统、嵌入式实时系统、分布式系统、系统软件等。近几年还被运用于软件再工程、质量管理、过程管理、配置管理等方面。而且它的应用不仅仅限于计算机软件,还可用于非软件系统,例如硬件设计、业务处理流程、企业或事业单位的结构与行为建模。
不过UML在取得巨大成功的同时,也不断地受到批评。来自工业界的批评主要是,它过于庞大和复杂,用户很难全面、熟练地掌握它,大多数用户实际上只使用它一少部分的概念;它的许多概念含义不清,使用户感到困惑。来自学术界的批评则主要针对它在理论上的缺陷和错误,包括语言体系结构、语法、语义等方面的问题。
目前国内也有不少软件企业在学习并尝试使用UML。从总体上看,我国计算机界对UML的了解还相当初步,但是对它的崇拜程度却远远超过了西方发达国家。人们在学习和使用UML遇到和国外用户相同的疑难和困惑时,却不太敢怀疑UML有什么问题。所以国内几乎没有批评的声音,偶尔有一点,也会立即被捍卫的声音淹没,即使对UML一些最明显的缺点和错误也是如此。
相比之下,国际上对UML的讨论和评价则要客观得多。无论是Internet上的意见交流,或是每年一次的UML研讨会,还是学术期刊上发表的文章,都是既肯定其成绩,又指出其缺点和错误,并且以积极的态度提出建设性意见。在酝酿UML下一次的重大发布和筹划UML
2.0作为ISO标准提案的最近两年内,围绕UML的讨论更为活跃和热烈。
为了使我国计算机界对UML目前的状况有较为客观的了解,我们从大量的文献资料中选择了三篇最具权威性的文章,介绍给我国读者。从这组文章中,我们可以得到关于UML现状及未来发展的重要信息:
UML已经取得重要成功,它已成为在软件工业中占支配地位的建模语言,并在许多领域的软件开发中得到应用。
UML还存在许多问题,自它产生之日起就从未离开过批评:用户和教师抱怨它内容庞大、难学难教而且太过复杂;学者认为它缺少一个精练的核心和定义良好的外围,有些语义定义得不够精确而且带有二义性;建模实践者认为它缺少支持自己领域建模要求的机制;工具开发商则因为规范本身的不确定性而产生理解上的偏差,它们对UML的自行诠释有可能误导用户。
UML的关键问题是过于庞大和复杂,以及在语言体系结构、语义等方面存在理论缺陷。产生这些问题的一个重要原因是,在形成规范的过程中不得不照顾多种方法流派的观点和多家公司的利益。
为了UML的下一次重大发布,UML 2.0修订的主持者正在广泛收集各方面的意见。各界都给予了很高的关注,提出的意见涉及UML的各个方面。其中一个关键问题是UML是否需要简化,以及如何使之更精练,最终大部分意见是提供一个精练的核心,而把不常用的内容放到定义良好的外围或扩展机制中。此外,UML
2.0还将对UML的底层结构、上层结构和对象约束语言(OCL)做重大改进。
原定UML 2.0在今年某个时间发布,但是在刚刚结束的本年度UML国际研讨会上,没有透露关于该版本最新进度的任何消息,看来它的面世要比预期的日程推后。
1.
Rose
Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。
2.EA
Enterprise Architect 是Sparx Systems
公司推出的UML建模工具。主要功能包括:UML建模、SysML 建模、BPMN建模、模型仿真、应用程序执行与调试、双向代码工程、需求管理、项目管理、版本管理、测试点管理等等,并且能够生成
PDF格式、 RTF格式和HTML格式的文档报告。它支持模型驱动的软件开发全生命周期工作。Enterprise
Architect 在全球拥有30万用户,分布在130多个国家和地区。
3. StarUML
StarUML(简称SU),是一种Delphi语言开发的开源UML工具,是一种生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML
支持多种格式的影像文件,可导出JPG、JPEG、BMP、EMF和WMF等格式的影像文件。 StarUML
可以依据类图的内容生成Java、C++、C#代码,也能够读取Java、C++、C#代码反向生成类图。
4. Netbeans UML Plugin
Netbeans UML Plugin 是 NetBeans 的一个用于绘制
UML 模型图的插件,支持:Activity图(活动图), Class图(类图), Sequence图(时序图),
State图(状态图)以及Use Case图(用例图)。
5. Acceleo
Acceleo是一个开源的代码生成器设计成让每个人都能把MDA方法运用到开发过程中并且能够提高软件的开发效率。Acceleo包含一组工具和编辑器使得它易于学习而且适合任何类型的技术。MDA(Model
Driven Architecture:模型驱动体系结构)的一个代码自动生成工具,Acceleo能把模型转换为Java,C#,PHP等代码。Acceleo基于Eclipse平台以及EMF(Eclipse模型框架),开放源代码,可以免费使用。
6. ArgoUML
ArgoUML是领先的开源UML建模工具,用于绘制UML图的应用软件,它用Java构造,并遵守开源的BSD协议。
因为它本身由Java构建的缘故,所以ArgoUML能运行在任何支持Java的平台上,并提供10种语言。
7. BOUML
BOUML 是一个开源的UML 2 建模工具,可让您指定和生成代码在的C++,JAVA,IDL中编译器的和PHP和Python的。支持操作系统包括:
Unix/Linux/Solaris, MacOS X 和 Windows.
8. Eclipse UML2 Tools
UML2 Tools 是一组基于GMF 的编辑器,用来浏览和编辑UML
模型文件,目前支持类图、组件图、状态机以及活动图的显示。
9. Umbrello UML Modeller
Umbrello能够处理所有标准的UML的图表类型,执行在类Unix系统上。它可以对
C++、IDL、Pascal、Ada、Python和Java编写的代码进行反向工程。 以及引入XMI 文件,由来自PHP或Perl
和各种编程语言的外部工具生成。
10. Frame UML
Frame UML是一个免费的UML工具,支持UML 2.x.x。可以运行在(2000/XP/Vista),支持12种图,但不包括对象图,因为对象图可以使用其他图替代
。
11. UMLet
UMLet是一个开放源代码轻量级UML建模工具。UMLet能够让你快速建模,并且能够导出各种格式SVG,
JPG, PDF以及 LaTeX-friendly EPS。可在Windows,OS X,Linux上单独运行,或者使用Eclispe插件的方式运行。
12. TinyUML
TinyUML是一个能够帮助Java开发者快速和轻松地绘制UML2图的开源工具。
13. Taylor
Taylor MDA 是一个UML建模工具的Eclipse插件。它专注于EJB3企业应用程序的生成。
14. Papyrus UML
Papyrus UML是一个开放源代码基于Eclipse环境的UML2建模工具。
遵从Eclipse UML2、支持由OMG规定的UML2标准和DI2 (Diagram Interchange)标准、Papyrus的整个架构是可扩展的允许用户增加新的图样(diagram)和新的代码生成器等、支持UML2
Profile开发、嵌套Profile支持等。
|