一、为什么要学习UML

二、UML的历史

三、UML的特点

四、UML中的视图

五、UML建模工具

六、UML的应用领域

七、UML的构成

1、需求阶段如何书写Use Case

2、设计阶段如何画用例图(Use-Case Diagram)

3、类与类之间的关系图(Class Diagram,UML图)

4、UML建模之活动图介绍(Activity Diagram)

5、UML建模之状态图(Statechart Diagram)

6、UML建模之时序图(Sequence Diagram)

7、UML建模之业务处理模型(Business Process Model,BPM)

8、UML建模之数据建模(Data Model Diagram)

八、总结

一、为什么要学习UML

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

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

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

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

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

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

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

二、UML的历史

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

三、UML的特点

Ø         UML的主要特点包括:

Ø         统一的标准

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

Ø         可视化、表现能力强

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

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

四、UML中的视图

UML中的视图包括用例视图(Use Case View)、逻辑视图(Logical View)、实现视图(Implementation View)、进程视图(Process View)、部署视图(Deployment View)等,这5个视图被称作”4+1”视图.如下图所示:

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

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

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

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

五、UML建模工具

市面上UML建模工具很多,比较流行的有Rational Rose ,Microsoft Visio、Enterprise Architect 、Visual UML等。《UML建模-面向对象设计》系列文章使用的UML建模工具是Enterprise Architect 7.0,此工具还是比较好用的。

六、UML的应用领域

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

七、UML的构成

《UML建模-面向对象设计》系列文章描述了常见的一些UML图,主要包括了用例图(Use Case Diagram)、类图(Class Diagram)、活动图(Activity Diagram)、时序图(Sequence Diagram)、状态图(Statechart Machine Diagram)、部署图(Deployment Diagram)、业务处理模型(Business Process Model)、数据建模(Data Modeling Diagram)等等。

1、需求阶段如何书写Use Case

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

2、设计阶段如何画用例图(Use-Case Diagram)

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

3、类与类之间的关系图(Class Diagram,UML图)

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

4、UML建模之活动图介绍(Activity Diagram)

活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。活动图能够表示并发活动的情形,活动图是面向对象的。

5、UML建模之状态图(Statechart Diagram)

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

6、UML建模之时序图(Sequence Diagram)

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

7、UML建模之业务处理模型(Business Process Model,BPM)

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

8、UML建模之数据建模(Data Model Diagram)

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

八、总结

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

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

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

版权

作者:灵动生活

出处:http://www.cnblogs.com/ywqu

转载于:https://www.cnblogs.com/gagaga/archive/2009/12/31/1637084.html

UML建模系列文章总结 (转载)相关推荐

  1. 【转】UML建模系列文章总结

    一.为什么要学习UML 二.UML的历史 三.UML的特点 四.UML中的视图 五.UML建模工具 六.UML的应用领域 七.UML的构成 1.需求阶段如何书写Use Case 2.设计阶段如何画用例 ...

  2. UML建模系列文章总结

    一.为什么要学习UML 二.UML的历史 三.UML的特点 四.UML中的视图 五.UML建模工具 六.UML的应用领域 七.UML的构成 1.需求阶段如何书写Use Case 2.设计阶段如何画用例 ...

  3. UML建模系列文章总结 [转]

    一.为什么要学习UML 二.UML的历史 三.UML的特点 四.UML中的视图 五.UML建模工具 六.UML的应用领域 七.UML的构成 1.需求阶段如何书写Use Case 2.设计阶段如何画用例 ...

  4. 步步为营UML建模系列总结

    转载自:http://www.cnblogs.com/springyangwc/archive/2012/01/16/2323723.html 软件开发为什么需要UML (软件越来越复杂),开发人员仍 ...

  5. 步步为营UML建模系列二、部署图(Deployment Diagram)

    概述 部署图(deployment diagram,配置图)是用来显示系统中软件和硬件的物理架构.从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况.使用部署图可以显示运行 ...

  6. 我学UML建模系列之核心元素 -------- 参与者

    在建模中,关于参与者准确的来说就是寻找抽象角度的开始. 参与者(actor)在建模的过程中是处于核心地位的.UML官方文档对于参与者的定义为:actor 是在系统之外与系统交互的某人或某物.如下图所示 ...

  7. 我学UML建模系列之核心元素 -------- 版型(类型)

    版类概念 UML中几乎每一个元模型都有一个版型.例如:用例有 "业务用例","业务用例实现"等版型,类有"接口"."边界类&quo ...

  8. UML建模系列-类图(Class diagram)

    概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图.组件图和配置图等进一步描 ...

  9. UML建模-面向对象设计

    UML建模系列文章总结 一.为什么要学习UML 二.UML的历史 三.UML的特点 四.UML中的视图 五.UML建模工具 六.UML的应用领域 七.UML的构成 1.需求阶段如何书写Use Case ...

最新文章

  1. Linux下,各种解压缩命令集合
  2. HTTP协议学习笔记
  3. C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
  4. hp打印机怎么连接电脑_打印机怎么连接电脑?安装打印机图文教程
  5. 通过Applescript打开终端运行py文件
  6. APUE读书笔记-15进程内部通信-05FIFOs
  7. VS2010怎样显示行号
  8. 苹果商店近期审核的问题
  9. 【渝粤教育】国家开放大学2018年春季 0267-21T摄影技术 参考试题
  10. 【项目实施随笔】生产领料
  11. 分集增益的不同合并方式的性能分析
  12. 通信工程测试图修改软件,通信工程工具仪器大全,你用过几种?
  13. **遇到“Cannot create file “不要慌**
  14. Polar码(1)— 基础理论
  15. springboot如何解析邮箱
  16. 知乎Redis的演进之路:从单机到2000万QPS的挑战
  17. 矿物质饲料的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. Numpy应用100问
  19. 【读书杂记】种姓制度
  20. 人工智能时代的工作、学习和生活---《人工智能》阅读笔记

热门文章

  1. nginx+tomcat,http强制跳转https后的error_page配置!【原创】
  2. auto make System.map to C header file
  3. ASP.Net TextBox控件只允许输入数字
  4. shell 学习笔记(18)
  5. 大叔手记(16):分析URL Routing和URL Rewriting两者之间的不同
  6. PHP类中的__get()和__set函数到底有什么用
  7. lombok 不用再写pojo的getset
  8. 网站后端_Flask-第三方库.利用Flask-Socketio扩展构建实时流应用?
  9. 优秀简历要遵循哪些规则
  10. 纯正价格正则表达式,请指正