目录:
1.概论
2.用例图
3.类图
4.组件图
5.部署图
6.顺序图
7.活动图
8.状态机图
1.概论
面向对象软件开发需要经过OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三个阶段。
OOA对目标系统进行分析,建立分析模型,并将之文档化;OOD用面向对象的思想对OOA的结果进行细化,得出设计模型;OOA和OOD的分析、设计结果需要统一的符号来描述、交流并记录,UML就是这种用于描述、记录OOA和OOD结果的符号表示法。
UML图大致上可分为静态图和动态图两种。
从图中可以看出,UML2.0包括13种正式图形:活动图、类图、通信图、组件图、复合结构图、部署图、交互概观图、对象图、包图、顺序图、状态机图、定时图、用例图。
最常用的UML图包括用例图、类图、组件图、部署图、顺序图、活动图和状态机图等。
2.用例图
用例图用来描述系统提供的系列功能,而每个用例则代表系统的一个功能模块。
哟用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的需求功能,用例图对系统的实现不做任何说明,仅仅是系统功能的描述。
3.类图
类图是最古老、功能最丰富、使用范围最广泛的UML图。类图表示系统中应该包含哪些实体,各实体之间如何关联;换句话说,它显示了系统的静态结构,类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事务种类。
类之间有三种基本关系:
①关联(包含聚合、组合)
②泛化(与继承同一个概念)
③依赖
具体说明:
①关联(包含聚合、组合)
关联具有方向性:单向关联-带箭头;双向关联-不带箭头
聚合和组合:通常认为组合比聚合更为严格。比如,聚合:同一个学生可以同时属于多个社团;组合:同一个胳膊只能属于一个人。
注:线上数字为数量对应关系;1..*代表可以是一个到多个。
②泛化(与继承同一个概念)
继承用带空心三角形的实线表示;指向父
接口用带空心三角形的虚线表示。指向接口
③依赖
如果一个类的改动会导致另一个类的改动,则称两个类之间存在依赖。
依赖使用带箭头的虚线表示。
通常而言,依赖是单向的。
依赖的常见可能原因如下:
①改动的类将消息发给另一个类。
②改动的类以另一个类作为数据部分。
③改动的类以另一个类作为操作参数。
4.组件图
对于现代的大型应用程序而言,通常不只是单独一个类或单独一组类所能完成的,通常会由一个或多个可部署的组件组成。对java程序而言,可复用的组件通常打包成一个jar、war等文件;对c/c++应用而言,可用的组件通常是一个函数库,或者是一个DLL(动态链接库)文件。
组件图提供的是系统的物理视图,它的用途是显示系统中的软件对其他软件组件(例如,库函数)的依赖关系。
组件图通常包含组件,接口和port等图元。uml使用带(类似于插头)的符号的矩形来表示组件,使用圆圈代表接口,使用位于组件边界的小矩形代表port。
组件的接口表示它能对外提供的服务,这个接口通常有两种表现形式:
①用一条实线连接到组件边界的圆圈表示。
②使用位于组件内部的圆圈表示。
组件依赖于某个接口使用一条带半圆的实现来表示。
5.部署图
部署图用于描述软件系统如何部署到硬件环境中,他的用途是显示软件系统不同的组件将在何处物理运行,以及他们将如何彼此通信。
部署图中的符号包括组件图中所使用的符号元素,另外还增加了节点的概念:
节点是各种计算资源的通用名称,主要包括处理器和设备两种类型,两者的区别是处理器能够执行程序的硬件构件(如计算机主机),而设备是一种不具备计算能力的硬件构件(如打印机)。
整个应用分为5个组件:Student、Administrator、应用持久层、Student数据库和UI界面组件。部署图准确地表现了各组件之间的依赖关系。除此之外,部署图的重点在物理节点上,图反映了该应用需要部署在4个物理节点上,其中客户端无需部署任何组件,直接使用客户端浏览器即可;管理者客户机上需要部署UI界面;应用服务器上需要部署Student、Administrator和应用持久层三个组件;而数据库服务器上需要部署Student数据库。
6.顺序图
顺序图显示具体用例的详细流程,并且显示流程中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。
顺序图描述了对象之间的交互(顺序图和通信图都被称为交互图),重点在于描述消息及其顺序。
顺序图有两个维度:
①垂直维度:以发生的时间顺序显示消息/调用的序列;
②水平维度:显示消息被发送到的对象实例
注:冒号前是实例,冒号后是类;
箭头表示一个类实例像另一个类实例发送一条消息;
对于某些特别重要的消息,可以绘制一条带箭头的指向发起类实例的虚线,将返回值标注在虚线上。
绘制顺序图主要是帮助开发者对某个用例的内部执行清晰化,当需要考察某个用例内部若干对象行为时,应使用顺序图,顺序图擅长表现对象之间的协作顺序,不擅长表现行为的精确定义。
一般来说,通信图可以描述的内容顺序图都可以描述,但顺序图比通信图多了时间的概念。
7.活动图
活动图和状态机图都被称为演化图,其区别和联系如下:
①活动图:用于描述用例内部的活动或方法的流程,如果除去活动图中的并行活动描述,它就变成流程图。
②状态机图:描述某一对象生命周期中需要关注的不同状态,并会详细描述刺激对象状态的事件,以及对象状态改变时所采取的动作。
演化图五要素:
①状态②事件③动作④活动⑤条件
激发状态改变的事件:①内部事件(一个对象的方法调用另一个对象的方法)②外部事件(鼠标键盘动作)
8.状态机图
状态机图表示某个对象所处的不同状态和该类的状态转换信息。
实际上,通常只对“感兴趣的”对象绘制状态图。
状态机图的符号集包含5个基本元素:
①初始状态:使用实心圆来绘制
②状态之间的转换:使用具有带箭头的线段来绘制
③状态:使用圆角矩形来绘制
④判断点:使用空心圆来绘制
⑤一个或者多个终止点:使用内部包含实心圆的圆来绘制
注:应保证对象只有一个初始状态,可以有多个终止状态;
状态机图擅长表现单个对象的跨用例行为。