神奇的9种UML图

来源:互联网 发布:知乎周刊kindle推送 编辑:程序博客网 时间:2024/05/21 01:30

前言

       UML中有五类图,9种图形,每种图都有自己的特点,每种图都有自己应用的场合和自己的作用,很神奇,同时也很重要,他们贯穿了软件开发的各个阶段,对于软件开发起到了很大的用处。下面就让小编带领您一览这9种图的风采吧。

图形介绍

用例图

基本概念:用来描述用户的要求,从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。
组成元素:用例图由参与者(角色)、用例、关系组成。
1)参与者(角色):参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。在用例图中用小人表示。
2)用例:即系统具有的功能,在用例图中用椭圆圈表示,圈里用文字描述该用例,一般为动宾短语。
3)关系:即角色与用例之间的关系,在用例图中用线条表示
用途:用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及他们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
使用阶段:最终用户使用用例图——理解要完成的系统的功能,确认是否符合自己的要求。   分析人员使用用例图——描述用户需求。   测试人员使用用例图——根据用例图验证实现后的系统是否符合用户需求。
使用说明:采用面向对象技术设计软件系统时,使用用例图来描述用户的需求(角色、功能、外部交互);
作用:1)获取需求;2)指导测试;3)还可在整个过程中的其它工作流起到指导作用。

类图

基本概念:用于定义系统中的类,包括描述类的内部结构和类之间的关系。类图主要用于描述系统的静态结构。类图是静态图之一。
组成元素:类名、类属性列表、类操作列表、泛化、关联、包、接口、可见性
1)类名:类的UML表示是一个长方形,垂直地分为三个区。顶部区域显示类的名字。中间的区域列出类的属性。底部的区域列出类的操作(方法)。
2)类属性列表:类的属性节(中部区域)在分隔线上列出每一个类的属性。属性节是可选择的,要是一用它,就包含类的列表显示的每个属性。
3)类操作列表:类操作记录在类图长方形的第三个(最低的)区域中,它也是可选择的。和属性一样,类的操作以列表格式显示,每个操作在它自己线上。
4)泛化:继承,指的是一个类(子类)继承另外的一个类(超类)的同一功能,并增加它自己的新功能的能力。为了在一个类图上建模继承,从子类(要继承行为的类)拉出一条闭合的,单键头(或三角形)的实线指向父类。
5)关联:当你系统建模时,特定的对象间将会彼此关联,而且这些关联本身需要被清晰地建模。类与类之间的联接,它使一个类知道另一个类的属性和方法。
6)包:在类图中的表示方法为由一个较小的长方形(用于定位)嵌套在一个大的长方形中。
7)接口:一个接口被认为是类建模元素的特殊化。因此,接口就象类那样绘制,但是长方形的顶部区域也有文本“interface”
8)可见性:在面向对象的设计中,存在属性及操作可见性的记号。UML 识别四种类型的可见性:public,protected,private及package。UML规范并不要求属性及操作可见性必须显示在类图上,但是它要求为每个属性及操作定义可见性。为了在类图上的显示可见性,放置可见性标志于属性或操作的名字之前。public用“+”表示,private用“-”(减号)表示,protected用“#”表示,package用“~”表示。
用途:类图是显示建模系统的类型,描述组成系统的对象内容与对象之间的关系。
使用阶段:在系统分析阶段采用类图来描述静态结构,在设计阶段采用类图进行设计。
在系统分析阶段将类分成三种类型:实体类、边界类、控制类
1)实体类主要是作为数据管理和业务逻辑处理层面上存在的类别;他们主要在分析阶段区分。实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。
2)边界类:用于描述外部参与者与系统的之间的交互。识别边界类可以帮助开发人员识别出用户对界面的需求。
3)控制类:用于描述一个用例所具有的事件流控制行为,控制一个用例中的事件顺序。
使用说明:找系统所出现的名词。确定每一个类的属性和方法、分析类的状态信息、属性是类的静态信息的描述,方法是类的行为。
作用:类图主要用于描述系统静态结构,它们显示出什么可以产生影响但不会告诉你什么时候产生影响。类图为UML描述的其他结构图提供了基本记号。

对象图

基本概念:对象图是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系。对象图是静态图之一。
组成元素:对于对象图来说无需提供单独的形式。类图中就包含了对象,所以只有对象而无类的类图就是一个"对象图"。对象图显示对象集及其联系,代表了系统某时刻的状态。它包含带有值的对象,而非描述符
用途:
①捕获实例和连接②在分析和设计阶段创建③捕获交互的静态结构④举例说明数据、对象结构⑤详细描述瞬态图⑥有分析人员、设计人员和代码实现人员开发
使用阶段:系统的分析和设计阶段
联系和区别:类图和对象图都是静态图,两者之间的区别是:
类图对象图在类中包含三部分:类名、类的属性、类的操作对象包含两部分:对象的名称和对象的属性类的名称栏只包含类名对象的名称栏包含“对象名:类名”类的属性栏定义了所有属性的特征对象的属性栏定义了属性的当前值类中列出了操作 对象图中不包含操作内容,因为对属于同一个类的对象,其操作是相同的类中使用了关联连接,关联中使用名称、角色以及约束等特征定义 对象使用链进行连接,链中包含名称、角色类是一类对象的抽象,类不存在多重性对象可以具有多重性

状态图

基本概念:用来描述类的对象所有可能的状态以及事件发生时状态的转移条件。状态图是行为图之一。
组成元素:状态、转移、起点、终点
用途:他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。
使用阶段:在分析阶段采用状态图来描述系统的动态行为
使用说明:状态图侧重从行为的结构来描述(状态)
作用:该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。

活动图

基本概念:用来描述满足用例要求所要进行的活动以及活动间的约束关系,使用活动图有利于识别系统的并行活动。活动图是行为图之一。
组成元素:活动状态(Action states)、活动状态之间的转移(transitions)、判断(decisions)、保证条件(guard conditions)、同步条(synchronization bar)、起点和终点
用途:能够演示出系统中哪些地方存在功能。
使用阶段:在分析阶段采用活动图来描述系统的动态行为
使用说明:活动图侧重从行为的动作来描述(活动)
作用:1)描述一个操作的执行过程中所完成的工作或者动作。描述对象内部的工作;2)显示如何执行一组相关的动作,以及这些动作如何影响周围对象;3)描述用例的执行;4)处理多线程应用。
缺点:很难清楚的描述动作与对象之间的关系,没有交互图直接。
联系和区别:状态图和活动图都是行为图,两者之间的区别是:
状态图是用于确定某个类(或者说是对象)的各种状态转换,例如,冰、水、水蒸气三种表示了水的三种状态。
活动图是表示某个过程中步骤的先后顺序,比如冰加热变成水蒸气的过程,1.冰块融化成水;2.水蒸发变成水蒸气。

序列图

基本概念:描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序,强调对象之间消息的发送顺序,同时也显示对象之间的交互过程。交互图之一。
组成元素:类、生命线、为消息建模、框架元件
1)类:横贯该图顶部的那些框表示的是分类器或它们的实例 --通常是用例、对象、类或参与者(往往用长方形表示,但它们也可以是符号)。
2)生命线:从各个框垂下来的虚线称为对象生命线,表示在对方案建模期间对象的生命跨度。生命线上的细长框是方法调用框,表明正在由目标对象/类执行处理,以完成消息。方法调用框底部的X 是一种 UML 约定,表明对象已从内存中除去。
3)为消息建模:消息以带有标签的箭头表示。当消息的源和目标为对象或类时,标签是响应消息时所调用方法的签名。不过,如果源或目标中有一方是人类参与者,那么消息就用描述正在交流的信息的简要文本作为标签。
4)框架元件
用途:1)序列图用于为使用方案的逻辑建模。2)描述使用系统的潜在方法。3)序列图以可视方式为系统中逻辑的流程建模,能够让您记载和验证逻辑,这通常用于分析和设计目的。4)把用例表达的需求,转化为进一步、更加正式层次的精细表达。
使用阶段:系统分析阶段
作用:1)定义事件序列,产生一些希望的输出。重点不是消息本身,而是消息产生的顺序。序列图按照交互发生的时间顺序,显示了系统对象间的交互逻辑。

协作图

基本概念:描述对象之间的合作关系,更侧重于说明哪些对象之间有消息的传递。交互图之一。
组成元素:角色(小人)、用例(椭圆)、对象(方框)
用途:通过描绘对象之间消息的移动情况来反映具体的方案。显示对象及其交互关系的空间组织结构,而非交互的顺序。
使用阶段:集成测试的时使用
作用:1)用来描述业务或软件系统中,每个对象在交互发生时承担的角色,即强调了交互发生时,每一对象承担的职责。2)使用协作图可以显示对象相互协作时充当的角色。3)协作图用于显示对象之间如何进行交互,以实现特定用例或用例中特定部分的行为。
联系和区别:序列图和协作图都是交互图,两者之间的区别是:
如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图

构件图

基本概念:用来描述代码构件的物理结构以及各构件之间的依赖关系。一个构件可以是一个资源文件、一个二进制文件或者一个可执行文件。构件图由一边有两个小矩形的一个长方形表示。
组成元素:构件、结构、关系。
用途:构件图从软件架构的角度来描述一个系统的主要功能,如子系统、类、包、构件等。
使用阶段:集成测试阶段
使用说明:1)构件图从软件架构的角度来描述一个系统的主要功能,如系统分成几个子系统,每个子系统包括哪些类、包和构件,它们之间的关系以及他们分配到哪些节点上等。2)使用构件图可以清楚地看出系统的结构和功能。方便项目组的成员制定工作目标和了解工作情况。3)有利于软件的复用。
作用:1)使系统人员和开发人员能够从整体上了解系统的所有物理构件。2)使我们知道如何对构件进行打包,以交付给最终客户。3)构件图显示了所开发的系统的构件之间的依赖关系。依赖关系符号(------>)表示构件之间的关系。

部署图

基本概念:定义了系统中硬件的物理体系结构,用来描述实际的物理设备以及它们之间的连接关系。
组成元素:节点(Node)、节点实例(Node Instance)、节点类型(Node Stereotypes)、物件(Artifact)、连接(Association)、节点容器(Node as Container)
用途:从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。
使用阶段:设计阶段、实现阶段
使用说明:1)部署图是一种分两阶段演化的,最初的部署图是在设计时,作为确定最终硬件构架过程的一部分而创建的,然后逐步地对它进行精化,从而得到一个或多个实例形式的UML部署图  2)设计阶段:焦点聚焦于节点或节点实例,以及它们之间的连接 3)实现阶段:焦点聚集于将物理构件分配给节点
作用:在配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。在结点里面,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行。

联系和区别:构件图和部署图都是实现图,两者之间的区别是:

构件图是用来表示系统中构件与构件之间,以及定义的类或接口与构件之间的关系的图。部署图描述了一个系统运行时的硬件节点,以及在这些节点上运行的软件构件将在何处物理的运行,以及他们将如何批次通信的静态视图。

小结

       自我感觉UML中的9种图在现在及以后的学习过程中起着非常重要的作用,很重要。所以一定要理解每一种图的基本概念,该图的作用。以及类型一样的图形之间的区别。在学习的过程中一定不要将就,不将就是发现的源动力,加油。

感谢您的阅读!


0 0