UML建模基础教程

开发 架构
你知道UML建模是什么吗,你知道他有什么作用吗,你知道它的特点吗,对于这些问题本文会为你一一解答,欢迎大家一起来学习UML建模。

本节向大家介绍一下UML建模,主要包括UML建模意义,历史,特点和应用领域等内容,相信通过本文的学习,你对UML建模一定会有全面的认识。下面让我们一起来学习UML建模的相关知识吧。

UML建模

一、为什么要学习UML?

UML是UnifiedModelingLanguage(统一建模语言)的简称。UML是对软件密集型系统中的制品进行可视化、详述、构造和文档化的语言。制品{Artifact}是指软件开发过程中产生的各种各样的产物,如模型、源代码、测试用例等。

◆UML建模可以达到以下目的:

◆使用模型可以更好地理解问题

◆使用模型可以加强人员之间的沟通

◆使用模型可以更早地发现错误或疏漏的地方

◆使用模型可以获得设计结果

◆模型为最后的代码提供依据

二、UML建模的历史

1997年,OMG组织(ObjectManagementGroup对象管理组织)发布了统一建模语言(UnifiedModelingLanguage,UML)。UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套IT专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划--就像建筑工人多年来所使用的建筑设计图一样。
2003年,UML已经获得了业界的认同。在所见过的专业人员的简历中,75%都声称具备UML的知识。然而,在同绝大多数求职人员面谈之后,可以明显地看出他们并不真正了解UML。通常地,他们将UML用作一个术语,或对UML一知半解。大家对UML缺乏理解的这种状况,促进我撰写这篇关于UML1.4的快速入门文章。当阅读完本文时,您还不具备足够的知识可以在简历上声称自己掌握了UML,但是您已具有了进一步钻研该语言的良好起点。

三、UML建模的特点

◆UML的主要特点包括:

◆统一的标准

◆面向对象。UML是支持面向对象软件开发的建模语言。

◆可视化、表现能力强

◆独立于过程,UML不依赖于特定的软件开发过程。

◆概念明确,建模表示法简洁,图形结构清晰,容易掌握和使用。

四、UML建模中的视图

UML中的视图包括用例视图(UseCaseView)、逻辑视图(LogicalView)、实现视图(ImplementationView)、进程视图(ProcessView)、部署视图(DeploymentView)等,这5个视图被称作”4+1”视
图.如下图所示:

逻辑视图。逻辑视图关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的"辅助功能模块";它们可能是逻辑层、功能模块等。

开发视图。开发视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件。开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。

处理视图。处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。处理视图和开发视图的关系:开发视图一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,处理视图比较关注的正是这些运行时单元的交互问题。

物理视图。物理视图关注"目标程序及其依赖的运行库和系统软件"最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。物理视图和处理视图的关系:处理视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的架构视图。#P#

五、UML建模工具
市面上UML建模工具很多,比较流行的有RationalRose,MicrosoftVisio、EnterpriseArchitect、VisualUML等。《UML建模-面向对象设计》系列文章使用的UML建模工具是EnterpriseArchitect7.0,此工具还是比较好用的。

六、UML的应用领域
UML具有很广泛的应用领域,其中最常用的是为软件系统建模,主要领域有:企业信息系统、银行金融系统、电信、交通、国防、航空、零售领域、科学计算、分布式的基于Web的服务。UML还可以用来描述其他非软件系统,比如一个机构的组成和机构的工作流程等等。

七、UML的构成
《UML建模-面向对象设计》系列文章描述了常见的一些UML图,主要包括了用例图(UseCaseDiagram)、类图(ClassDiagram)、活动图(ActivityDiagram)、时序图(SequenceDiagram)、状态图(StatechartMachineDiagram)、部署图(DeploymentDiagram)、业务处理模型(BusinessProcessModel)、数据建模(DataModelingDiagram)等等。

1、需求阶段如何书写UseCase
用例描述文档的书写是系统分析人员对用户需求的深刻理解的体现。是后期时序图和实际开发的重要依据。也可以对作为项目估算的依据,以及根据UC复杂度和开发周期来衡量开发人员的工作效率。因此UC的书写规范及其重要,就工作用的一些经验,比如书写格式、书写内容及其注意事项与大家分享。

2、设计阶段如何画用例图(Use-CaseDiagram)
例试图描概括了用例中角色和系统之间的关系,描述了系统功能需求,角色和系统的交互以及系统的反应。是客户和开发人员全貌理解项目需求功能比较好的一个方式,也是后续功能迭代的依据和方向。

3、类与类之间的关系图(ClassDiagram,UML图)
本文针对类之间常用的关系进行了简单的描述,主要有:关联关系、泛化、依赖、聚合和组合。

4、UML建模之活动图介绍(ActivityDiagram)
活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。活动图能够表示并发活动的情形,活动图是面向对象的。

5、UML建模之状态图(StatechartDiagram)
状态图重点在于描述对象的状态及其状态之间的转移,状态图的基本元素主要有:状态、转移、动作、自身转移、组合状态、进入节点、退出节点、历史状态、并发区域等,状态中的事件分为调用事件(Call)、变化事件(Change)、时间事件(Time)和信号事件(Singal)。最后以实例对状态对进行了分析。

6、UML建模之时序图(SequenceDiagram)
时序图(SequenceDiagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focusofcontrol)、消息(Message)等等。最后,以课程创建功能演示一时序图实例。

7、UML建模之业务处理模型(BusinessProcessModel,BPM)
业务处理模型是一组活动的集合,描述了活动从开始到结束在时间或者空间上的顺序,以及输入和输出。业务处理模型最终输出要能够满足业务需要。包括输入、输出、资源、消息和目标等元素。最后以实例进一步说明了业务逻辑模型。

8、UML建模之数据建模(DataModelDiagram)
主要介绍了数据库建模所涉及建模元素,主要包括模式Schema、主键Primary、外键Foreignkey、关系Relationship、约束constraint、索引Index、触发器Trigger、存储过程StoredProcedure、视图View等等,并配以实例加以说明。

八、总结
至此,《UML建模-面向对象设计》系列文章已经写完,UML建模也就告一段落,在整理这些文中的过程中,参考了许多国内外有价值的文章,在此对这些文章的作者表示感谢。在写这些文章的过程中也得到园子里朋友的鼓励和支持,是你们的支持和鼓励使的我写文章更加有士气和信心,在此表示感谢。希望《UML建模-面向对象设计》系列文章对园子里的朋友有帮助,并希望园子里的朋友批评指正。后续还会发布一些《Net设计模式》系列的文章,主要是以设计原理,实例,源码的方式说明各个设计模式,请大家关注,再此感谢。

最后以一本UML书中的一个例子结束:

如果以建造房子比喻,那么学习UML的过程,就是学习如何从建筑工人成长为建筑师的过程。一个软件工程师不能简单地只是掌握堆砌砖瓦的技术,还应该有设计高楼大厦的能力。

 【编辑推荐】

  1. UML建模技术简明介绍
  2. UML建模风格中UML状态图表现形式
  3. 如何绘制UML用例图
  4. UML建模语言及其五类图简介
  5. UML用例图用法实例剖析
责任编辑:佚名 来源: javaeye.com
相关推荐

2010-06-29 14:03:46

UML组成

2010-06-18 16:56:50

UML建模语言

2010-06-18 15:55:47

UML建模

2009-11-09 10:55:16

ibmdwUML

2010-06-07 18:17:54

UML建模

2010-06-12 10:33:33

统一建模语言UML

2017-12-12 07:47:59

dockermarathon服务器

2011-07-18 09:35:29

iPhone 框架

2017-07-18 10:14:23

OracleMerge into教程

2009-07-22 13:32:43

iBATIS DAO

2010-07-12 11:23:09

UML类图

2010-06-30 14:37:20

UML类图

2010-06-30 15:10:18

2016-08-31 14:01:31

MySQL存储数据库

2011-09-13 16:39:50

Android UI设

2010-06-09 15:53:30

UML建模

2010-06-08 18:53:43

UML建模工具

2010-06-30 14:46:49

UML类图

2010-06-29 16:53:48

UML实例教程

2010-06-29 17:27:49

UML建模方法
点赞
收藏

51CTO技术栈公众号