更新时间:2018年12月07日14时28分 来源:传智播客 浏览次数:
一、什么是UML
UML全称是:Unified Modeling Language 又称统一建模语言或标准建模语言。
统一建模语言UML是OMG(Object Management Group)在1997年发表的图标式软件设计语言,它综合了很多种当时已经存在的面向对象的建模语言、方法和过程。
二、为什么我们要使用UML?
软件工程的目标:利用工程化的方法在给定成本、进度的前提下,开发出具有可维护性、正确性、可移植性的软件. 提高软件产品的质量和开发效率,减少维护的困难随着软件工程地进展,IT界想用一种语言来描述它们完成的需求,设计,但是不同的公司开发了自己的产品。于是乎,为了统一起来,就有了OMG组织
【ObjectManagementGroup对象管理组织】,这个组织让这种描述需求、设计的语言统一了,就称作是UML 了。也就是说,UML用来给我们设计,需求分析。
三、类图
类图(Class Diagram)是显示类、接口以及它们之间的静态结构和关系的图。类图最基本的元素是类或接口。
如下图:
第一层是类名。类名不能省略,必须显示
第二层是属性层。一个属性可以是public、private或protected。一个属性的左面如果有一个加号(+),表示它是public;左面如果是一个减号(-),表示它是privae;左面如果是一个(#),表示它是protected。
第三层是方法层。一个方法可以是public、private或protected。一个方法的左面如果有一个加号(+),表示它是public;左面如果是一个减号(-),表示它是privae;左面如果是一个(#),表示它是protected;如果方法下面有一个下划线,表明是一个静态的方法。
类图用于描述系统中的类与类之间的各种关系
1. 继承(泛化)
概念:泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在程序中是通过继承类实现的。比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类。
表示方法:空心三角形箭头的实线,子类指向父类。
2.实现
概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述。
表示方法:空心三角形箭头的虚线,实现类指向接口.
3.依赖
概念:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖,在程序中一般表现为类A中的方法需要类B的实例作为其参数或者变量,而类A本身并不需要引用类B的实例作为其成员变量。
表示方法:虚线箭头,类A指向类B。
4.关联
概念:表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,在程序中被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。
表示方法:实线箭头,类A指向类B
5.聚合
概念:聚合关联关系的一种特例,是强的关联关系。聚合是整体和个体之间的关系,即has-a的关系,整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。程序中聚合和关联关系是一致的,比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分表示方法:尾部为空心菱形的实线箭头(也可以没箭头),类A指向类B
6.组合
概念:组合也是关联关系的一种特例。组合是一种整体与部分的关系,即contains-a的关系,比聚合更强。部分与整体的生命周期一致,整体的生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。程序中组合和关联关系是一致的,只能从语义级别来区分。
表示方法:尾部为实心菱形的实现箭头(也可以没箭头),类A指向类B
四、用例图
用例图显示谁将是系统的使用者、用户希望系统提供什么服务以及系统能够为用户提供什么样的服务;从用户的角度描述系统的功能。用例图最常用来描述系统以及子系统
下图是描述一个论坛网站,游客、会员与管理员可以使用不同的功能的用例图
五、时序图
时序图有时又叫做序列图、活动序列图。作为交互图的一种,序列交互图按照时间顺序从上到下显示每个使用案例。下图所示的例子是一个普通网站登录的时序图。
六、UML建模工具
有很多工具可以帮助我们画出UML图。这样的工具包括如下内容:
Rational Rose
Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。
下载地址:www.rational.com 收费软件
UDE – community
JUDE是一个中日合作的软件项目,有商业化的Professional版本和免费的Community版本,最大的区别是免费版的不支持UML 2.0,对于一般应用足够了。
下载地址:http://astah.net/editions/community 有收费和免费的
BOUml
一个免费的UML 2工具箱,支持C++,Java以及Idl。
下载地址:http://bouml.free.fr/ 免费
Microsoft Visio
Microsoft Visio是Windows操作系统下运行的流程图和矢量绘图软件,它是Microsoft Office软件的一个部分可以绘制UML图,本文档建模工具选择就是 Visio.
下载地址:www.microsoft.com 收费软件
七、总结
通过以上讲解,在软件开发的过程中,可以使用UML建模语言对项目中的业务进行分析和设计,掌握了这些图形的创建可以帮助开发团队以一种可视化的方式理解系统的功能需求。