统一建模语言UML轻松入门(1)――基本概念

统一建模语言 UML 轻松入门( 1 )――基本概念
---------------------------------------------------------------------
宋宝华 email: 21cnbao@21cn.com
---------------------------------------------------------------------
公元前260年,秦、赵之间发生了空前惨烈的长平之战。赵军战败,40多万人被坑杀。从此,六国再也无力抵御秦军的进攻。前230~前221年,秦王嬴政陆续灭掉六国,建立起我国历史上第一个统一的中央集权的封建国家。秦朝的统一,结束了诸侯长期割据混战的局面。其后,秦始皇在全国范围内统一文字及度、量、衡,为后世建立了不朽的功勋。
UMLUnified Modeling Language,统一建模语言)者,建模界强秦也!20 世纪80 年代,随着面向对象技术成为研究的热点,先后出现了几十种面向对象的软件开发方法。其中,BoochOMT OOSE等方法得到了广泛的认可。然而,采用不同方法进行建模不利于开发者之间的交流。而UML则统一了BoochOMT OOSE 的表示方法,而且对其作了进一步的发展。1997 年,UML 被国际对象组织OMG采纳为面向对象的建模语言的国际标准,它溶入了软件工程领域的新思想、新方法和新技术。UML不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。数年来,UML凭借其简洁明晰的表达方式、超凡脱俗的表达能力,一路杀将出来,为业界所广泛认同!目前,在多数大型企业的正规化开发流程中,开发人员普遍使用UML进行模型的建立。作为一名软件开发人员,我们必须学会UML。因为UML就是那个统一的“文字”,统一的“度”、“量”、“衡”,不理解UML,作为软件设计统一王国的国民,将是艰难而痛苦的。
作曲家会将其脑袋中的旋律谱成乐曲,建筑师会将其设计的建筑物画成蓝图,这些乐曲、蓝图就是模型(Model),而建构这些模型的过程就称为建模(Modeling)。软件开发如同音乐谱曲及建筑设计,其过程中也必须将需求、分析、设计、实现、布署等各项工作流程的构想与结果予以呈现,这就是软件系统的建模。
那么为什么要建模呢?经典答案是:建立大厦和建立狗窝的区别是建设狗窝不需要设计,要生产合格的软件就要有一套关于体系结构、过程和工具的规范。
OMG官方发布的UML的当前最高版本为2.0,可以从[url]http://www.uml.org/[/url]上下载
UML由图和元模型组成,图是语法,元模型是语义。UML主要包括三个基本构造块:事物(Things)、关系(Relationships)和图(Diagrams)。本次连载我们将对UML的这些基本组成部分及UML工具和应用进行介绍,使读者对UML形成初步的整体印象。在其后的几次连载里,再以数个实例对这些内容逐步展开。
1.1 UML 的基本构造块
1.1.1 事物
       事物是是实体抽象化的最终结果,是模型中的基本成员,UML中包含结构事物、行为事物、分组事物和注释事物。
1)结构事物(Structural things
结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,共有以下七种:
类(Class):类是指具有相同属性、方法、关系和语义的对象的集合;
接口(Interface):接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作;
协作(Collaboration):协作描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模;
用例(Use Case):用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标;
活动类(Active Class):活动类的对象有一个或多个进程或线程。活动类和类很相象,只是它的对象代表的元素的行为和其他的元素是同时存在的;
组件(Component):组件是物理的、可替换的部分,包含接口的集合,例如COM+ JAVA BEANS等;
结点(Node):结点是系统在运行时存在的物理元素,代表一个可计算的资源,通常占用一些内存和具有处理能力。
2)行为事物(Behavioral things
行为事物指的是UML模型中的动态部分,代表语句里的“动词”,表示模型里随着时空不断变化的部分,包含两类:
交互(ineraction):交互是由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作;
状态机(state machine):状态机由一系列对象的状态组成。
3)分组事物(Grouping things
可以把分组事物看成是一个“盒子”,模型可以在其中被分解。目前只有一种分组事物,即包(package)。结构事物、动作事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。
4)注释事物(Annotational things
注释事物是UML模型的解释部分。
1.1.2 关系
关系是将事物联系在一起的方式,UML中定义了四种关系:
1)依赖(Dependencies):两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义;
2)关联(Association):一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系);
3)泛化(Generalization):一种一般化—特殊化的关系;
4)实现(Realization) :类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。
1.1.3
图是事物集合的分类,UML中包含多种图:
1)类图(Class Diagram):类图描述系统所包含的类、类的内部结构及类之间的关系;
2)对象图(Object Diagram):对象图是类图的一个具体实例;
3)包图(Package Diagram):包图表明包及其之间的依赖类图;
4)组件图(Compoment Diagram,也称构件图):组件图描述代码部件的物理结构以及各部件之间的依赖关系;
5)部署图(Deployment Diagram):部署图定义系统中软硬件的物理体系结构;
6)用例图(Usecase Diagram):用例图从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系;
7)顺序图(Sequence Diagram):顺序图表示对象之间动态合作的关系;
8)协作图(Collaboration Diagram):合作图描述对象之间的协作关系;
9)状态图(Statechart Diagram):状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件;
10)活动图(Activity Diagram):活动图描述系统中各种活动的执行顺序。
上述十种图可归纳为五类,如表1.1
1.1 UML图分类
类型
包含
静态图
类图、对象图、包图
行为图
状态图、活动图
用例图
用例图
交互图
顺序图、协作图
实现图
组件图、部署图
1.2 UML 工具与应用
       “工欲善其事,必先利于器”,为了有效的利用UML,我们需要首先获得一个UML工具软件。
当前,业界使用最广泛的UML建模工具为Rational RoseRational Rose中可实现正向(为模型产生相应的代码)、逆向(从用户原来的软件系统导出该系统的模型)和双向工程(实现模型和代码之间的循环工程),从而保证模型与代码的高度一致。Rational Rose支持C++Visual C++JavaSmalltalkAdaVisual BasicPowerBuilder等语言和开发工具,并能为CORBA 应用生成接口定义语言(IDL),为数据库应用生成数据库描述语言(DDL)等。另外,Rational Rose为团队开发和规范的开发过程管理提供了良好的支持。
对于小规模应用,我们可以使用微软公司Office套件中的Visio,其中提供了对UML各种图的绘制支持。
从应用的角度上来讲,面向对象的系统设计一般需要完成如下工作:
1)描述需求;
2)根据需求建立系统的静态模型;
3)描述系统的行为。
1)和(2)中所建立的模型是静态的(采用用例图、类图、对象图、组件图和部署图等),是标准建模语言UML中的静态建模机制;而(3)中所建立的模型则表示执行时的序列、状态或交互关系(以状态图、活动图、顺序图和协作图描述),是标准建模语言UML中的动态建模机制。
由此可以看出,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
此外,需要说明的是,UML只是一种建模语言,它独立于具体的建模过程。因此,利于它建模时,可遵循任何类型的建模过程。尽管如此,UML的作者们为我们推荐了RUPRational Unified Process)。RUPRational软件公司首创,其最重要的特点有三:
1)软件开发是由用例驱动的;
2)软件开发是以体系结构设计(Architectural Design)为中心;
3)软件开发是个迭代过程。
RUP包括四个阶段,每个阶段又分为若干次迭代,每次迭代都有一个核心工作流,如图1.1所示。
1.1 RUP的流程
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
统一建模语言UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。   统一建模语言 (UML)是非专利的第三代建模和规约语言UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。   UML可以贯穿软件开发周期中的每一个阶段。被OMG采纳作为业界的标准。   UML最适于数据建模,业务建模,对象建模,组件建模。   UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。   IBM的Rational Rose和MS的Visio都是UML工具。   同时还有一些免费的UML工具: http://java-source.net/open-source/uml-modeling [编辑本段] 1、UML简介   公认的面向对象建模语言出现于70年代中期。从1989年到1994年,其数量从不到十种增加到了五十多种。在众多的建模语言中,语言的创造者努力推崇自己的产品,并在实践中不断完善。但是,OO方法的用户并不了解不同建模语言的优缺点及相互之间的差异,因而很难根据应用特点选择合适的建模语言,于是爆发了一场“方法大战”。90年代中,一批新方法出现了,其中最引人注目的是Booch 1993、OOSE和OMT-2等。    Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch 1993比较适合于系统的设计和构造。   Rumbaugh等人提出了面向对象的建模技术(OMT)方法,采用了面向对象的概念,并引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模型,共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2特别适用于分析和描述以数据为中心的信息系统。    Jacobson于1994年提出了OOSE方法,其最大特点是面向用例(Use- Case),并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,但用例贯穿于整个开发过程,包括对系统的测试和验证。OOSE 比较适合支持商业工程和需求分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值