UML九种视图总结
UML科普文,一篇文章掌握14种UML图
UML科普⽂,⼀篇⽂章掌握14种UML图前⾔上⼀篇⽂章写了⼀篇建造者模式,其中有⼏个UML类图,有的读者反馈看不懂了,我们今天就来解决⼀哈。
什么是UML?UML是Unified Model Language的缩写,中⽂是统⼀建模语⾔,是由⼀整套图表组成的标准化建模语⾔。
为什么要⽤UML?通过使⽤UML使得在软件开发之前,对整个软件设计有更好的可读性,可理解性,从⽽降低开发风险。
同时,也能⽅便各个开发⼈员之间的交流。
UML提供了极富表达能⼒的建模语⾔,可以让软件开发过程中的不同⼈员分别得到⾃⼰感兴趣的信息。
Page-Jones 在《Fundamental Object-Oriented Design in UML》⼀书中总结了UML的主要⽬的,如下:1. 为⽤户提供现成的、有表现⼒的可视化建模语⾔,以便他们开发和交换有意义的模型。
2. 为核⼼概念提供可扩展性 (Extensibility) 和特殊化 (Specialization) 机制。
3. 独⽴于特定的编程语⾔和开发过程。
4. 为了解建模语⾔提供⼀个正式的基础。
5. ⿎励⾯向对象⼯具市场的发展。
6. ⽀持更⾼层次的开发概念,如协作,框架,模式和组件。
7. 整合最佳的⼯作⽅法 (Best Practices)。
UML图有哪些?UML图分为结构图和⾏为图。
结构图分为类图、轮廓图、组件图、组合结构图、对象图、部署图、包图。
⾏为图⼜分活动图、⽤例图、状态机图和交互图。
交互图⼜分为序列图、时序图、通讯图、交互概览图。
UML图概览什么是类图?【概念】类图是⼀切⾯向对象⽅法的核⼼建模⼯具。
类图描述了系统中对象的类型以及它们之间存在的各种静态关系。
【⽬的】⽤来表⽰类、接⼝以及它们之间的静态结构和关系。
在类图中,常见的有以下⼏种关系。
泛化(Generalization)【泛化关系】是⼀种继承关系,表⽰⼦类继承⽗类的所有特征和⾏为。
【箭头指向】带三⾓箭头的实线,箭头指向⽗类。
UML各种图详解
父用例通常是抽象的。
1一个类和一个接口不同:一个类可以有它形态的真实实例,然而一个接口必须至少有一个类来实现它。
在 UML 2 中,一个接口被认为是类建模元素的特殊化。
因此,接口就象类那样绘制,但是长方形的顶部区域也有文本“interface”。
2》UML 支持的可见性类型的标志3》多重值和它们的表示4》类图之间的关系有:泛化(继承),依赖,关联,聚合/组合。
1.聚合/组合聚合是一种特别类型的关联,用于描述“总体到局部”的关系。
在基本的聚合关系中,部分类的生命周期独立于整体类的生命周期。
举例来说,我们可以想象,车是一个整体实体,而车轮轮胎是整辆车的一部分。
轮胎可以在安置到车时的前几个星期被制造,并放置于仓库中。
在这个实例中,Wheel类实例清楚地独立地Car类实例而存在。
然而,有些情况下,部分类的生命周期并不独立于整体类的生命周期-- 这称为合成聚合。
举例来说,考虑公司与部门的关系。
公司和部门都建模成类,在公司存在之前,部门不能存在。
这里Department类的实例依赖于Company类的实例而存在。
·基本聚合(聚合)有聚合关系的关联指出,某个类是另外某个类的一部分。
在一个聚合关系中,子类实例可以比父类存在更长的时间。
为了表现一个聚合关系,你画一条从父类到部分类的实线,并在父类的关联末端画一个未填充棱形。
图中清楚的表明了类Car对象包含了另一类Wheel的4个实例,这两者在概念上是密不可分的,其中的一个类是另一个类的构成成分。
菱形表示“包含”,箭头表示被包含的对象,数字4表示包含的数目。
·组合聚合(组合)组合聚合关系是聚合关系的另一种形式,但是子类实例的生命周期依赖于父类实例的生命周期。
注意:组合关系如聚合关系一样绘制,不过这次菱形是被填充的。
2.依赖依赖可以说是要完成C5里的所有功能,一定要有C6的方法协助才行3.关联可以分为单向关联,双向关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。
软件工程9种图
UML的9种图上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图。
本文我们重点讲解UML每种图的细节问题:1、用例图(use case diagrams)【概念】描述用户需求,从用户的角度描述系统的功能【描述方式】椭圆表示某个用例;人形符号表示角色【目的】帮组开发团队以一种可视化的方式理解系统的功能需求【用例图】2、静态图(Static diagram)(1)类图(class diagrams)【概念】显示系统的静态结构,表示不同的实体是如何相关联的【描述方式】三个矩形【目的】表示一个逻辑类或实现类,逻辑类通常是用户的业务所涉及的事物;实现类是程序员处理的实体【类图】(2)对象图(object diagrams)【概念】类图的一个实例,描述系统在具体时间点上所包含的对象以及各个对象的关系【对象图】3、交互图(Interaction Diagram)用来描述对象之间的交互关系(1)序列图(顺序图)(Sequence Diagram)【概念】描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序【描述方式】横跨图的顶部,每个框表示每个类的实例或对象;类实例名称和类名称使用冒号分开【目的】显示流程中不同对象之间的调用关系,还可以显示不同对象的不同调用。
【序列图】(2)协作图(Collaboration diagrams)【概念】描述对象之间的合作关系,侧重对象之间的消息传递4、行为图:描述系统的动态模型和对象之间的交互关系(1).状态图(Statechart diagrams)【概念】描述对象的所有状态以及事件发生而引起的状态之间的转移【描述方式】起始点:实心圆1状态之间的转换:使用开箭头的线段2状态:圆角矩形3判断点:空心圆4一个或多个终止点:内部包含实心圆的圆【目的】表示某个类所处的不同状态以及该类在这些状态中的转换过程(2).活动图(Activity diagrams)【概念】描述满足用例要求所要进行的活动以及活动时间的约束关系【描述方式】2起始点:实心圆5活动:圆角矩形1终止点:内部包含实心圆的圆1泳道:实际执行活动的对象【目的】表示两个或多个对象之间在处理某个活动时的过程控制流程【活动图】活动图和状态图区别:5、实现图Implementation diagram (1)构件图(Component diagrams)【概念】描述代码构件的物理结构以及各构件之间的依赖关系【描述方式】构件【目的】提供系统的物理视图,根据系统的代码构件显示系统代码的整个物理结构【构架图】(2)部署图(Deployment diagrams)【概念】系统中硬件的物理体系结构【描述方式】1三维立方体表示部件2节点名称位于立方体上部【目的】显示系统的硬件和软件的物理结构【部署图】九种UML图详解到此为止,下篇文章专门给大家讲解UML中类间的关系,感谢您的访问。
我对UML的理解(UML的经典九张图)
4.状态图
5.序列图
反映若干对象之间的动态协作关系,在时 间轴上,对象之间是如何交互的。 顺序图基于时间,按时间顺序显示出现的 任务 用来显示对象之间的关系,并强调对象之 间消息的先后时间顺序,同时显示对象之 间交互关系(可能不一定很明确)。
5.序列图
6.协作图
和序列图作用相同,比序列图多显示了对象和它 们之间的关系(上下文关系)。强调时间和序列 则选择序列图;强调上下文相关则选择协作图。 协作图显示任务和信息(对象)的交互方式 强调交互中实例(对象)间的结构关系及所传递 的消息 当组织对控制流建模时,一般使用协作图
1 用例图(user-case diagram)
2 类图(class diagram)
对静态结构的描述,用来定义系统中类和 类之间的关系 类图侧重描述系统具体实现 类图描述的是系统的结构 描述一组对象、接口、协作等事物之间的 关系
2 类图(class diagram)
3.对象图
6.协作图
7.活动图(activity diagram)
反映一个连续的活动流,用于描述某个操作执行时的活动 状况。 反映一个流程中的多个活动,即为完成一个事情(功能)所 要开展的多个活动。 描述用例要求所要进行的活动,以及活动间的约束关系, 有利于识别并行活动 是一种特殊的状态图,实现一个活动到另一个活动的流程 活动图只是描述工作流以及谁完成工作的方式,与流行的 数据流程图类似 ,可将活动图视为数据流程图 活动图本质是流程图
我对UML的总结
1 用例图(user-case diagr的功能需求
用例图侧重描述用户需求 ,用来收集用户要求 描述一组用例、参与者以及它们之间的关系,其 展示的是该系统在它的外面环境中所提供的外部 可见服务 是从用户角度查看的解决方案。应该使用用户能 够理解的语言讨论解决方案
UML的十种视图
静态图捕获逻辑结构类图 class系统静态结构对象图 object活跃对象包图 packet系统的分解行为图捕获现实行为交互图顺序 sequence消息发送时序合作collaboration动态协作关系状态图 statechart对象的动态行为活动图 activity描述系统为完成某项功能而执行的操作序列,包含控制流和信息流控制流:某操作完成后对其后续操作的触发信息流:刻画操作之间的信息交换实现图捕获执行环境构件图 component软件实现系统中各组分以及依赖关系部署图 deployment运行环境的硬件及网络物理体系结构UML可视化建模:三、UML的十种视图1.用例图(use case diagram)从系统的外部用户的观点看系统应具有的功能。
它只说明系统实现什么功能,而不必说明如何实现。
用例图主要用于对系统,子系统或类的行为进行建模。
2.类图(class diagram)描述系统的静态结构,类图的节点表示系统中的类及其属性和操作,边表示类之间的联系(包括继承(泛化)、关联、聚集)。
3.对象图(object diagram)类图的一种变形,所使用的符号与类图基本相同。
在对象名下面要加下划线。
(图略)4.包图(packet diagram)包是基于模型元素的含义或作用将模型元素分组的一种机制。
通过分组,可提高模型的维持性。
包之间的关系包括继承、构成与依赖。
5.顺序(时序)图(sequence diagram)交互图之一。
描述了在时间上对象交互的安排,展现了多个交互对象以及信息交流的序列。
时序图包含对象、对象的生命线、按顺序对象间的信息交流、控制焦点(可选的)。
6.合作(协作)图(collaboration diagram)交互图之二,强调发送和接收消息的对象间的结构组织,它与顺序图是等价的。
在图形上,协作图是顶点和弧的结合。
协作图包含对象、链、消息。
(图片来自《软件工程(第二版)》齐治昌、谭庆平、宁洪)7.状态图(statechart diagram)状态图描述类的对象的动态行为。
UML的9种图例的定义、用途、画法总结
1UML 的9种图例的总结一、 用例图1、 定义用例定义:用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。
(这是UML 对用例的正式定义,可以这样去理解,用例是参与者想要系统做的事情,用例在画图中用椭圆来表示,椭圆下面附上用例名称)。
用例图定义:由参与者(Actor )、用例(Use Case )以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。
2、 用途用例图(User Case )是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
用例图主要的作用有三个:(1)获取需求;(2)指导测试;(3)还可在整个过程中的其它工作流起到指导作用。
3、 组成元素以及元素之间的关系说明用例图由参与者(Actor )、用例(Use Case )、系统边界(用矩形表示—注明系统名称)、箭头组成,用画图的方法来完成。
参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。
因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。
还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。
系统边界是用来表示正在建模系统的边界。
边界内表示系统的组成部分,边界外表示系统外部。
系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。
因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。
箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。
箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。
元素之间的关系:用例图中包含的元素除了系统边界、角色和用例,另外就是关系。
关系包括用例之间的关系,角色之间的关系,用例和角色之间的关系。
角色之间的关系:角色之间的关系。
UML九种视图总结
UML九种视图总结第一篇:UML九种视图总结1.UML关系UML类图中的关系分为四种:泛化关系、依赖关系、关联关系、实现关系;关联关系又可以细化为聚合和组合。
1.1 泛化(Generalization)泛化是父类和子类之间的关系,子类继承父类的所有结构和行为。
在子类中可以增加新的结构和行为,也可以覆写父类的行为。
1.2.依赖(Dependencies)依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。
在你想显示一个事物使用另一个事物时使用,两个元素之间的一种关系,其中一个元素(服务者)的变化将影响另一个元素(客户),或向它(客户)提供所需信息。
它是一种组成不同模型关系的简便方法。
依赖表示两个或多个模型元素之间语义上的关系。
它只将模型元素本身连接起来而不需要用一组实例来表达它的意思。
它表示了这样一种情形,提供者的某些变化会要求或指示依赖关系中客户的变化。
根据这个定义,关联和泛化都是依赖关系,但是它们有更特别的语义,故它们有自己的名字和详细的语义。
我们通常用依赖这个词来指其他的关系。
依赖用一个从客户指向提供者的虚箭头表示,用一个构造型的关键字来区分它的种类,通常情况下,依赖关系体现在某个类的方法使用另一个类作为参数。
1.3.关联(Association)关联是一种结构化的关系,指一种对象和另一种对象有联系。
给定有关联的两个类,可以从一个类的对象得到另一个类的对象。
类与类之间由弱到强关系是: 没关系 > 依赖 > 关联 > 聚合 > 组合。
类和类之间八竿子打不着那就是没关系,这个没啥歧义。
依赖(dependency)可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method 方法中使用。
UML中包括九种图
UML中包括九种图:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图。
1)用例图(Use Case Diagram)它是UML中最简单也是最复杂的一种图。
说它简单是因为它采用了面向对象的思想,又是基于用户视角的,绘制非常容易,简单的图形表示让人一看就懂。
说它复杂是因为用例图往往不容易控制,要么过于复杂,要么过于简单。
用例图表示了角色和用例以及它们之间的关系。
2)类图(Class Diagram)是最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。
通过关系和类表示的类图,可以图形化的方式描述一个系统的设计部分。
3)对象图()对象图是类图的实例,几乎使用与类图完全相同的标识。
它们的不同点在于对象图显示类的多个对象实例,而不是实例的类。
一个对象图是类图的一个实例。
由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
4)状态图描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。
通常创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。
5)时序图又称顺序图,描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
顺序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。
顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。
消息用从一务垂直的对象生命线指向另一个对象的生命线的水平箭头表示。
图中还可以根据需要增加有关时间的说明和其他注释。
6)协作图协作图用于显示组件及其交互关系的空间组织结构,它并不侧重于交互的顺序。
协作图显示了交互中各个对象之间的组织交互关系以及对象彼此之间的链接。
与序列图不同,协作图显示的是对象之间的关系。
另一方面,协作图没有将时间作为一个单独的维度,因此序列号就决定了消息及并发线程的顺序。
协作图是一个介于符号图和序列图之间的交叉产物,它用带有编号的箭头来描述特定的方案,以显示在整个方案过程中消息的移动情况。
UML九种图之用例图和类图
UML九种图之⽤例图和类图前⾔近期写UML⽂档,看视频的时候感觉掌握的还能够,当真正写⽂档的时候才发现不是⼀件easy的事。
写⽂档⾃⼰⼜翻开⾃⼰的笔记看了⼀遍⼜⼀遍。
以下就给⼤家介绍⼀下我画的⼏张图:⽤例图1. ⽤例图的构成(⽤例,⾓⾊,关系)⽤例:指功能的描写叙述⾓⾊:触发起某种事件关系:⽤例图的关系(依赖,泛化,关联)2. ⽤例图的作⽤(1)⽤例视图是整个UML设计的关键,影响到整个UML设计的过程(2)⽤例模型驱动了需求分析后各个阶段的开发(3)⽤例模型⽤于需求分析阶段,表明了开发⼈员和⽤户针对需求达成的某种共识注意⼏个keyword:开发⼈员,⽤户,共同商讨达成某种共识3.设计原则将系统看做⿊盒⼦,从⽤户⾓度理解系统,不须要考虑某个功能是怎样实现的。
仅仅须要考虑系统由谁来运⾏和怎样交互和运⾏。
以下是我画的⽤例图:以⽤户的权限为基础画出来的。
类图1.类图的构成类、接⼝、协作、关系、包2.类的构成2.类图的作⽤类图⼀般在具体设计过程中出现,主要⽤来描写叙述系统中各个模块中类之间的关系,包含类或者类与接⼝的继承关系,类之间的依赖、聚合等关系。
通过类图,就能实际的把系统中的各个类,即对象描写叙述清楚,下⼀步就是依照这个具体的设计编码了。
3.类图的设计Use case——>class(要点,抽象名词得到类)——>确定类的属性和⽅法——>属性是静态⾏为描写叙述,⽅法是动态⾏为的描写叙述——>正确表达类与类之间的关系以下是我对机房收费系统设计的类图,理解的不是⾮常清楚,可定存在诸多问题,希望⼤家积极指正。
以上是我看完UML之后对⽤例图和类图的理解,感觉理解的不是⾮常清楚,若有什么问题希望⼤家积极指正。
深度剖析九大UML视图及其作用
深度剖析九大UML视图及其作用在学习UML的过程中,你经常会遇到UML视图,那么你知道UML视图作用吗,这里就和大家分享一下,相信通过本节的介绍你一定会有所感悟的。
下面让我们一起来学习UML视图作用吧。
UML视图及其作用UML(UnifiedModelingLanguage,统一建模语言)是一组用于描述OOAD过程的图形化表达方式。
UML为交流面向对象的设计中的需求,行为、体系结构的实现提供了一套综合的表示法。
UML绘制工具,EA和VSU2010UML由9个不同类型的图组成:用例图:显示了系统的外部可视行为。
UML视图中的用例图描述了系统外的人员和系统的交互动作,以及系统的响应,该类型的图可以用于描述系统的功能需求。
活动图:显示系统行为的峡谷纳西描述。
UML视图中的活动图描述了单个功能需求内部的细节行为,包括基本的场景和一些可选的场景。
组件图:显示了系统的体系结构。
UML视图中的组件图描述了系统的可部署单元(可执行文件,组件,数据存储和其他一些内容)以及一些借口,可部署单元通过这些接口进行交互,该图可以用于研究系统的体系结构。
顺序图:显示了对象随着时间的交互。
UML视图中的顺序图描述了某个功能需求的路径或场景内相对时间的详细行为,该图可用于理解系统元素之间的消息流程。
协作图:显示了对象的交互,强调对象之间的关系。
(在UML2.0里面找不到了)类图:显示了类的定义和关系。
UML视图中的类图描述了系统设计中的类和接口,以及他们之间的关系。
该图可用于定义内部的,面向对象的代码结构。
状态图:显示了响应时间的状态改变。
UML视图中的状态图描述了系统如何改变状态以相应内部的和外部的事件,确保每个事件都被适当的处理。
部署图:显示了系统的物理体系结构。
UML视图中的部署图描述了系统的可部署单元(应用,组件,数据存储等)如何被赋予不同的节点,这些节点如何交互通信,用于系统映射和负载的研究。
包图:显示了设计的层次结构。
九大UML视图专家解析
九大UML视图专家解析本节向大家介绍一下有关UML视图方面的内容,UML视图共有9种,它们之间有什么区别和联系呢,下面就让我们一起来学习吧,相信通过本节的介绍你一定会有不少收获。
UML视图UML总共提供了9种视图,这些图从不同应用层次和不同角度为软件系统分析、设计直到实现提供了有力的支持。
在不同的阶段建立不同的模型,建模的目的也各不相同。
UML的9种图如下:(1)用例图(UseCaseDiagrams)用例图描述了系统提供的一个功能单元。
用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的"角色"(actors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。
(2)类图(ClassDiagrams)类图表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。
(3)时序图(SequenceDiagrams)UML视图中的时序图显示具体用例(或者是用例的一部分)的详细流程。
它几乎是自描述的,并且显示了流程中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。
时序图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示消息被发送到的对象实例。
(4)状态图(StatechartDiagrams)状态图表示某个类所处的不同状态和该类的状态转换信息。
有人可能会争论说每个类都有状态,但不是每个类都应该有一个状态图。
只对”感兴趣的”状态的类(也就是说,在系统活动期间具有三个或更多潜在状态的类)才进行状态图描述。
(5)活动图(ActivityDiagrams)UML视图中的活动图表示在处理某个活动时,两个或者更多类对象之间的过程控制流。
活动图可用于在业务单元的级别上对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。
根据经验,活动图最适合用于对较高级别的过程建模,比如公司当前在如何运作业务,或者业务如何运作等。
uml九种图
uml九种图首先对UML中的各个图的功用做一个简单介绍:1、用例图描述角色以及角色与用例之间的连接关系。
说明的是谁要使用系统,以及他们使用该系统可以做些什么。
一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。
2、类图类图是描述系统中的类,以及各个类之间的关系的静态视图。
能够让我们在正确编写代码以前对系统有一个全面的认识。
类图是一种模型类型,确切的说,是一种静态模型类型。
3、对象图与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。
它描述的不是类之间的关系,而是对象之间的关系。
4、活动图描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。
能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
5、状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件。
可以捕获对象、子系统和系统的生命周期。
他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。
一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。
状态图是对类图的补充。
6、序列图(顺序图)序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。
顺序图可以用来展示对象之间是如何进行交互的。
顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
7、协作图和序列图相似,显示对象间的动态合作关系。
可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。
如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。
8、构件图(组件图)描述代码构件的物理结构以及各种构建之间的依赖关系。
UML九种建模图--对象图
UML九种建模图--对象图
对象图概述
UML 对象图和类图⼀样反映系统的静态过程,UML 对象图是类图的实例,⼏乎使⽤与类图完全相同的标识,都是使⽤分隔线隔开来。
对象存在⽣命周期,因此UML对象图只能在系统某⼀时间段存在。
⽬的是在⼀个特定的时刻捕捉到静态的系统视图。
对象图可以被想象成正在运⾏的系统在某⼀时刻的快照。
绘制对象图之前,应该记住以下事情,并清楚地理解:
对象图的主要内容是对象。
对象图中的链接是⽤来连接对象。
对象和链接的两个要素,⽤于构造⼀个对象图。
下⾯的图是⼀个对象图的⼀个例⼦。
它代表了订单管理系统,我们已经讨论了在类图。
下图是该系统的⼀个实例,在⼀个特定的时间购买。
它具有以下的对象
顾客
订单
特殊订单
⼀般订单。
UML各种图总结-精华
UML各种图总结-精华UML(UnifiedModelingLanguage)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。
下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。
一、基本概念如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。
静态图分为:用例图,类图,对象图,包图,构件图,部署图。
动态图分为:状态图,活动图,协作图,序列图。
1、用例图(UseCaseDiagrams):用例图主要回答了两个问题:1、是谁用软件。
2、软件的功能。
从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。
2、类图(ClassDiagrams):用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。
在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序:泛化=实现>组合>聚合>关联>依赖2.1.泛化【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
2.2.实现【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。
2.3.关联【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。
双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量2.4.聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。
uml9种图模型
2.4 部署图
部署图描述任何基于计算机的应用系统的物理或逻辑的配置。它可以描述系统硬件的物理拓扑结构和在此结构上执行的系统软件,也能描述系统节点的拓扑结构和通信路径、节点上运行的构件、构件中的逻辑单元等。
部署图中有以下几个主要的模型元素:节点、构件、对象、接口、连接和依赖关系。节点描述一个物理设备以及在其上运行的软件系统,用一个立方体来表示。连接是节点之间的通信路径,用实线段来表示。构件、对象、界面和依赖关系同之前的介绍相同。
用例图有以下几种模型元素:用例(Use
Case)、参与者(Actor)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。用例是以一个椭圆形来表示,椭圆中心是用例的名称;参与者就是与所要建模的系统交互的外部用户、进程或其他系统,参与者是以一个人形的图标表示;关联关系描述参与者与其需要交互的用例之间的通信路径,用一条实线段表示;包含关系描述一个用例利用另一个用例完成某个过程,用一个带箭头的虚线段并在虚线段上以“《include》”作为标识来表示,箭头指向被包含的用例;扩展关系描述一个用例在原有的另一个用例的基础上,扩展了那个用例的部分功能,和包含关系类似,也是以一个带箭头的虚线段表示,不同的是虚线段上显示的是“《extend》”,箭头指向被扩展的用例;泛化关系描述用例之间的一般和特殊的关系,特殊用例是在继承了一般用例的特性的基础上添加了新的特性,泛化关系和扩展关系有相似之处,不同的是扩展关系的需要明确标明被扩展用例的扩展点,扩展用例只能扩展这些扩展点,泛化关系用一个带有空心三角箭头的实线段表示。
在有的文献书籍中,将这九种模型图分为三大类:结构分类、动态行为和模型管理,结构分类包括用例图、类图、对象图、构件图和部署图,动态行为包括状态图、活动图、顺序图和协作图,模型管理则包含类图。本文则从动态和静态的角度分别介绍UML的九种模型图。
UML图中的几种图简介
UML图中的几种图简介(时序图,协作图,状态图,活动图,对象图)1、时序图:时序图用于描述对象之间的传递消息的时间顺序,即用例的行为顺序。
当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件.在UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸. 横轴代表在协作中各个独立的对象. 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示. 箭头以时间的顺序在图中上下排列.时序图中的基本概念:对象:时序图中对象使用矩形表示, 并且对象名称下有下划线. 将对象置于时序图的顶部说明在交互开始时对象就已经存在了. 如果对象的位置不在顶部, 表示对象是在交互的过程中被创建的.生命线:生命线是一条垂直的虚线. 表示时序图中的对象在一段生命周期内存在. 每个对象底部中心的位置都带有生命线.消息:两个对象之间的单路通信. 从发送方指向接收方. 在时序图中很少使用返回消息.激活:时序图可以描述对象的激活和钝化. 激活表示该对象被占用以完成某个任务. 钝化指对象处于空闲状态, 等待消息.在UML中,对象激活时将对象的生命线拓宽为矩形来表示的. 矩形称为计划条或控制期. 对象就是在激活条的顶部被激活的. 对象在完成自己的工作后被钝化.对象的创建和销毁: 在时序图中, 对象的默认位置是在图的顶部. 这说明对象在交互开始之前就已经存在了. 如果对象是在交互过程中创建的, 那么就应该将对象放到中间部分. 如果要撤销一个对象, 在其生命线终止点处放置“X”符号2、活动图:在UML 中, 活动图本质上就是流程图. 它用于描述系统的活动, 判定点和分支等.活动图的基本概念:动作状态:原子的, 不可中断的动作, 并在此动作完成之后向另一个动作转变.在UML 中动作状态用圆角矩形表示, 动作状态所表示的动作写在圆角矩形内部.分支与合并:分支在软件系统中很常见. 一般用于表示对象类所具有的条件行为. 用一个布尔型表达式的真假来判定动作的流向. 条件行为用分支和合并表达.在活动图中, 分支用空心小菱形表示. 分支包括一个入转换和两个带条件的出转换, 出转换的条件应该是互斥的, 须保证只有一条出转换能够被触发. 合并包含两个带条件的入转换和一个出转换.分叉与汇合:分叉用来描述并发线程, 每个分叉可以有一个输入转换和两个或多个输出转换. 每个转换都可以是独立的控制流. 汇合代表两个或多个并发控制流同步发生, 当所有的控制流都达到汇合点后, 控制才能继续往下进行. 每个汇合可以有两个或多个输入转换和一个输出转换. 在UML 中分叉和汇合用一条粗直线表示泳道:泳道将活动图中的活动划分为若干组, 并将每一组指定给负责这组活动的业务组织. 泳道区分负责活动的对象, 明确地表示哪些活动是由哪些对象进行的. 每个活动指定明确地属于一个泳道. 在活动图中, 泳道用垂直实线绘出, 垂直线分隔的区域即为泳道3、协作图:协作图(也叫合作图)是一种交互图. 时序图主要侧重于对象间消息传递在时间上的先后关系, 而协作图表达对象间的交互过程及对象间的关联关系。
UML 各种图总结精华
UML 各种图总结精华UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。
下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。
一、基本概念如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。
静态图分为:用例图,类图,对象图,包图,构件图,部署图。
动态图分为:状态图,活动图,协作图,序列图。
1、用例图(UseCase Diagrams):用例图主要回答了两个问题:1、是谁用软件。
2、软件的功能。
从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。
2、类图(Class Diagrams):用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖2.1.泛化【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
2.2.实现【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。
2.3.关联【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。
双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量2.4. 共享聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。
UML9种图概述
类是一类对象的抽象,类不存在多重性 对象可以具有多重性
可编辑
• 打印机操作的协作图
可编辑
UML的重要内容——九种图形 UML
类图与对象图的区别
类图
对象图
在类中包含三部分,分别是类名、类的 对象包含两个部分:对象的名称和对象
属性和类的操作
的属性
类的名称栏只包含类名
对象的名称栏包含“对象名:类名”
类的属性栏定义了所有属性的特征
对象的属性栏定义了属性的当前值
类中列出了操作
对象图中不包含操作内容,因为对属于 同一个类的对象,其操作是相同的
UML中 九种 图
UML 中有九种建模的图标,即:
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保1据护过生高管产中线工资敷艺料设高试技中卷术资0配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高高与中中带资资负料料荷试试下卷卷高问总中题体2资2配料,置试而时卷且,调可需控保要试障在验各最;类大对管限设路度备习内进题来行到确调位保整。机使在组其管高在路中正敷资常设料工过试况程卷下中安与,全过要,度加并工强且作看尽下护可都关能可于地以管缩正路小常高故工中障作资高;料中对试资于卷料继连试电接卷保管破护口坏进处范行理围整高,核中或对资者定料对值试某,卷些审弯异核扁常与度高校固中对定资图盒料纸位试,置卷.编工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试5术写卷、交重保电底要护气。设装设管备置备4线高动调、敷中作试电设资,高气技料并中课术3试且资件中、卷拒料中包管试绝试调含路验动卷试线敷方作技槽设案,术、技以来管术及避架系免等统不多启必项动要方方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,处在组理事在;前发同掌生一握内线图部槽纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关系UML类图中的关系分为四种:泛化关系、依赖关系、关联关系、实现关系;关联关系又可以细化为聚合和组合。
泛化(Generalization)泛化是父类和子类之间的关系,子类继承父类的所有结构和行为。
在子类中可以增加新的结构和行为,也可以覆写父类的行为。
. 依赖(Dependencies)依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。
在你想显示一个事物使用另一个事物时使用,两个元素之间的一种关系,其中一个元素(服务者)的变化将影响另一个元素(客户),或向它(客户)提供所需信息。
它是一种组成不同模型关系的简便方法。
依赖表示两个或多个模型元素之间语义上的关系。
它只将模型元素本身连接起来而不需要用一组实例来表达它的意思。
它表示了这样一种情形,提供者的某些变化会要求或指示依赖关系中客户的变化。
¥根据这个定义,关联和泛化都是依赖关系,但是它们有更特别的语义,故它们有自己的名字和详细的语义。
我们通常用依赖这个词来指其他的关系。
依赖用一个从客户指向提供者的虚箭头表示,用一个构造型的关键字来区分它的种类,通常情况下,依赖关系体现在某个类的方法使用另一个类作为参数。
. 关联(Association)关联是一种结构化的关系,指一种对象和另一种对象有联系。
给定有关联的两个类,可以从一个类的对象得到另一个类的对象。
\类与类之间由弱到强关系是: 没关系 > 依赖 > 关联 > 聚合 > 组合。
类和类之间八竿子打不着那就是没关系,这个没啥歧义。
依赖(dependency)可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个metho d方法中使用。
用带虚线的箭头。
关联(association)他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;"依赖和关联区别:我用锤子修了一下桌子,我和锤子之间就是一种依赖,我和我的同事就是一种关联。
依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是“uses”了那个类),就可以把这种关系看成是依赖,依赖也可说是一种偶然的关系,而不是必然的关系。
关联是类之间的一种关系,例如老师教学生,老公和老婆这种关系是非常明显的。
依赖是比较陌生,关联是我们已经认识熟悉了。
聚合(Aggregation)聚合是一种特殊的关联。
它描述了“has a”关系,表示整体对象拥有部分对象。
关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。
聚合是较强的关联关系,强调的是整体与部分之间的关系。
与关联关系一样,聚合关系也是通过类的成员变量来实现的。
>组合(Composition)组合是聚合的一种形式,它具有更强的拥有关系,强调整体与部分的生命周期是一致的。
整体负责部分的生命周期的管理。
如果整体被销毁,部分也必须跟着一起被销毁,如果所有者被复制,部分也必须一起被复制。
与关联关系一样,组合关系也是通过类的成员变量来实现的。
. 实现(Realization){实现关系指定两个实体之间的一个合约。
换言之,一个实体定义一个合约,而另一个实体保证履行该合约。
扩展关系(extends)/包含(include)精化关系(refine)2 UML视图·说明:构件事物是名词,是模型的静态部分。
行为事物是动态部分,表示行为。
分组事物是组织部分。
注释事物是解释部分。
依赖:一个事物变化会引起另一个事物变化。
…聚集:特殊的关联,描述整体与部分的组合关系。
泛化:是一种特殊与一般的关系,如子元素(特殊)与父元素(一般),箭头指向父元素。
实现:类元之间的关系,其中一个类元指定了由另一个类元保证执行的契约。
一般用在接口和实现他们的类之间或用例和实现它们的协作之间。
类图用于展现系统中的类以及其之间的关系对象图:显示了单独的对象及其关系。
对象图有助于记录测试用例以及讨论用例。
•静态图:包括类图和对象图。
》类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的联系,如关联、依赖、聚合等,也包括类的属性和操作,类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
对象图是类图的实例,几乎使用与类图完全相同的标识。
一个对象图是类图的一个实例。
由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
包包可直接理解为命名空间,文件夹,是用来组织图形的封装,包图可以用来表述功能组命名空间的组织层次。
•在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。
但是对于庞大的应用系统而言,其包含的类将是成百上千,再加上其间“阡陌交纵”的关联关系、多重性等,必然是大大超出了人们可以处理的复杂度。
这也就是引入了“包”这种分组事物构造块。
•包的作用是:1)对语义上相关的元素进行分组;2)定义模型中的“语义边界”;3)提供配置管理单元;4)在设计时,提供并行工作的单元;5)提供封装的命名空间,其中所有名称必须惟一~上图解释•首先根据《use》关系,可以发现Client包使用Server包,Server包使用包,结合其元素,不难得知Client负责Order(订单)的输入,并通过Server来管理用户的登录(LoggingService)和数据库存储(DataBase),而Server包还将通过.NET的SQL Server 访问工具包来实现与数据库的实际交互。
•接着再看两个《import》,从包的命名和其所属的元素不难发现Rule负责处理一些规则,并引用一个具体的窗体(Window),而Client包则通过引用Rule来实现整个窗体和表单的显示、输入等。
并且还将暂存Order(订单)信息。
•最后来看包的泛化关系,GUI有两个具体实现,一个是针对C/S的WindowsGUI,一个是实现B/S的WebGUI。
依赖关系•《use》使用关系:是一种默认的依赖关系,说明客户包(发出者)中的元素以某种方式使用提供者包(箭头指向的包)的公共元素,也就是说客户包依赖于提供者包•《import》引用关系:最普遍的包依赖类型,说明提供者包(箭头指向的包)的命名空间(包本身代表命名空间)将被添加到客户包(发出者)的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素、•《access》访问关系:只想使用提供者包中的元素,而不想将其命名空间合并则应使用该关系•《trace》追溯关系:想表示一个包到另一个包的历史发展,则需要使用《trace》关系来表示例子描述•分析系统工作流程:1)通过Internet连接到股票信息服务器,获取实时的股票信息,并存入数据库中。
2)根据用户的输入和选择,从数据库中获取相应的信息,展现在屏幕中。
3)在数据的展现过程中,将需要绘制大量的图表•根据功能模块组织包:包之间的依赖关系]状态图展示了一个状态机,由状态、转换、事件和活动组成。
强调事件行为的顺序。
如下图(摘自网络):事件事件是指某个时刻发生的事情。
%信号是指从一个对象到另一个对象的明确的单向信号流动。
信号事件:是指发送或者接受信号的事件。
区别:信号是对象间的消息,而信号事件是指某个时刻发生的事情。
变更事件:是指满足布尔表达式而引起的事件。
(时间事件:是指在绝对时间上或者在某个时间间隔内发生的事情而引起的事件。
状态是对象取值和链接的抽象。
根据对象的总体行为,将取值和链接的集合组成一个状态。
事件表示时间点,状态表示时间段。
*迁移是指从一种状态到另一种状态的瞬时变化。
电话状态图·活动增加了活动的电话状态图嵌套状态图.嵌套状态。
用例图描述一组用例、参与者以及它们之间的关系,其展示的是该系统在它的外面环境中所提供的外部可见服务用例中的包含:包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。
基用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基用例的事件流中。
基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。
将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。
扩展用例为基用例添加新的行为。
扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。
但是扩展用例对基用例不可见。
泛化泛化关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。
子用例可以使用父用例的一段行为,也可以重载它。
父用例通常是抽象的。
在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。
)—交互图场景是指系统在某个特定的执行期内发生的一系列事件。
包括序列图(顺序图)和协作图,两者对应,顺序图是强调消息时间顺序,有对象生命线和控制焦点。
协作图是强调接收和发送消息的对象的结构组织,有路径和顺序号交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流•活动图是一种表述过程基理、业务过程以及工作流的技术。
它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模【顺序图显示了交互的参与者以及参与者之间的消息顺序。
也显示了系统为了执行全部或部分用例而与参与者的交互。
活动图¥显示了组成复杂过程的步骤序列。
活动图的主要元素•初始节点和活动终点:用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终点•活动节点:是活动图中最主要的元素之一,它用来表示一个活动]•转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示活动图的主要元素•分支与监护条件:分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。
而每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换。
•分岔与汇合:修改后的简单活动图】带泳道的活动图带对象流的活动图复杂活动图•辅助活动图:•汇合描述:当汇合的所有入流均到点汇合点时,就将执行汇合点指向的活动节点。
但是有些时候,你希望对其做一些约束,这时就可以借助汇合描述来完成。