UML实例图讲解
- 格式:doc
- 大小:137.00 KB
- 文档页数:9
接口:空心圆+直线(唐老鸭类实现了…讲人话‟);依赖:虚线+箭头(动物和空气的关系);关联:实线+箭头(企鹅需要知道气候才迁移);聚合:空心四边形+实线+箭头(雁群和大雁的关系);合成/组合:实心四边形+实线+箭头(鸟和翅膀的关系);泛化/继承:空心三角形+实线(动物和鸟的继承关系);实现:空心三角形+虚线(实现大雁飞翔的接口);UML类图1. 首先看“动物”矩形框,它代表一个类。
该类图分为三层,第一层显示类的名称,如果是抽象类就要用斜体显示。
第二层是类的特性,通常就是字段和属性。
第三层是类的操作,通常是方法和行为。
注意前面的符号,…+‟表示public, …—‟表示private, …#‟表示protected.2. “飞翔”矩形框表示一个接口图,它与类图的区别主要是顶端有《interface》显示,第一行是接口名称,第二行是接口方法。
接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了“讲人话”的接口。
interface IFly interface Ilanguage{ {void Fly(); void Speak();} }3. 动物,鸟,鸭,唐老鸭他们之间都是继承的关系,继承关系用空心三角形+实线来表示。
4.“大雁”实现了“飞翔”接口。
实现接口用空心三角形+虚线来表示。
(注:下面的图中应为空心三角形)class Bird:Animal class WideGoose:IFly{ {//继承动物类 //实现飞翔接口} }5. 企鹅与气候有很大的关系,企鹅需要“知道”气候的变化,需要“了解”气候规律。
当一个类“知道”另一个类时,可以用关联(association)关系。
关联关系用实线箭头来表示。
class Penguin :Bird{private Climate climate;//在企鹅Penguin中,引用到气候Climate对象}6. “大雁”和“雁群”这两个类。
大雁是群居动物,每只大雁都属于一个雁群,一个雁群可以有多只大雁。
UML中类图真例之阳早格格创做交心:空心圆+曲线(唐老鸭类真止了‘道人话’);依好:真线+箭头(动物战气氛的闭系);闭联:真线+箭头(企鹅需要相识气候才迁移);散合:空心四边形+真线+箭头(雁群战大雁的闭系);合成/拉拢:真心四边形+真线+箭头(鸟战翅膀的闭系);泛化/继启:空心三角形+真线(动物战鸟的继启闭系);真止:空心三角形+真线(真止大雁飞翔的交心);UML类图阐明UML类图:1. 最先瞅“动物”矩形框,它代表一个类.该类图分为三层,第一层隐现类的称呼,如果是抽象类便要用斜体隐现.第二层是类的个性,常常便是字段战属性.第三层是类的收配,常常是要领战止为.注意前里的标记,‘+’表示public, ‘—’ 表示private, ‘#’表示protected.2. “飞翔”矩形框表示一个交心图,它取类图的辨别主假如顶端有《interface》隐现,第一止是交心称呼,第二止是交心要领.交心另有另一种表示要领,雅称棒棒糖表示法,便是唐老鸭类真止了“道人话”的交心.interface IFly interfaceIlanguage{ {void Fly(); void Speak();} }3. 动物,鸟,鸭,唐老鸭他们之间皆是继启的闭系,继启闭系用空心三角形+真止去表示.4.“大雁”真止了“飞翔”交心.真止交心用空心三角形+真线去表示.(注:底下的图中应为空心三角形)class Bird:Animal class WideGoose:IFly{ {//继启动物类 //真止飞翔交心} }5. 企鹅取气候有很大的闭系,企鹅需要“相识”气候的变更,需要“相识”气候顺序.当一个类“相识”另一个类时,不妨用闭联(association)闭系.闭联闭系用真线箭头去表示.class Penguin :Bird{private Climate climate;//正在企鹅Penguin中,引用到气候Climate对于象}6. “大雁”战“雁群”那二个类.大雁是群居动物,每只大雁皆属于一个雁群,一个雁群不妨有多只大雁.所以它们之间便谦脚散合(Aggregation)闭系.散合表示一种强的“拥有”闭系,体现的是A对于象不妨包罗B对于象,但是B对于象没有是A对于象的一部分.散合闭系用空心的菱形+ 真线箭头表示.class WideGooseAggregate{private WideGoose[] arrayWideGoose;//正在雁群WideGooseAggregate类中,有大雁数组对于象arrayWideGoose}7. “鸟”战“翅膀”那二个类.鸟战翅膀似完全战部分的闭系,而且翅膀战鸟的死命周期是相共的,正在那里鸟战其翅膀便是合成闭系.合成(composition)是一种强的“拥有”闭系,体现了庄重的部分战完全的闭系,部分战完全的死命周期一般.合成闭系用真心的的菱形+真线箭头去表示.其余,合成闭系的连线二端另有一个数字“1”战数字“2”,,那被称为基数.标明那一端的类不妨有几个真例,很隐然,一个鸟该当有二收翅膀.如果一个类大概有无数个真例,则便用“n”去表示.闭联闭系,散合闭系也不妨有基数的.class Bird{private Wing wing;public Bird(){wing=new Wing();//正在鸟Bird类中,初初化时,真例化翅膀Wing,它们之间共时死成}}8. “动物”、“氧气”取“火”之间.动物有几大个性,比圆有新陈代开,能繁殖.而动物要有死命,需要氧气,火以及食物等.也便是道动物依好于氧气战火.它们之间是依好闭系(Dependency),用真线箭头去表示.abstractclass Animal{public bolism(Oxygen oxygen,Water water){}}。
1. UML活动图实例一、活动图的组成元素 Activity Diagram Element1、活动状态图(Activity)2、动作状态(Actions)3、动作状态约束(Action Constraints)4、动作流(Control Flow)5、开始节点(Initial Node)6、终止节点(Final Node)7、对象(Objects)8、数据存储对象(DataStore)9、对象流(Object Flows)10、分支与合并(Decision and Merge Nodes)11、分叉与汇合(Fork and Join Nodes)12、异常处理(Exception Handler)13、活动中断区域(Interruptible Activity Region)14、泳道(Partition)二、活动图案例分析三、总结活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。
活动图在本质上是一种流程图。
活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。
一、活动图的组成元素 Activity Diagram Element1、活动状态图(Activity)活动状态用于表达状态机中的非原子的运行,其特点如下:(1)、活动状态可以分解成其他子活动或者动作状态。
(2)、活动状态的内部活动可以用另一个活动图来表示。
(3)、和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。
(4)、动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。
UML中活动状态和动作状态的图标相同,但是活动状态可以在图标中给出入口动作和出口动作等信息。
2、动作状态(Actions)动作状态是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。
动作状态有如下特点:(1)、动作状态是原子的,它是构造活动图的最小单位。
UML类图是一种用于描述系统中类的关系和结构的工具。
类图中的类表示现实世界中的实体或抽象概念,而对象则是类的实例。
在UML中,类被表示为一个划分为三个格子的长方形。
第一个格子包含类名,第二个格子包含类的属性,第三个格子包含类的方法。
以猫类为例,猫的类名位于第一个格子,其属性(例如:颜色、性别等)位于第二个格子,其方法(例如:吃、睡等)位于第三个格子。
在类图中,类之间的关系主要有以下几种:
1. 依赖关系:表示一个类依赖于另一个类的定义。
例如,如果一个类的方法中使用了另一个类的属性或方法,那么这两个类之间就存在依赖关系。
2. 泛化关系:表示一个类是另一个类的特殊形式。
例如,狗是动物的一种特殊形式,那么狗和动物之间就存在泛化关系。
3. 关联关系:表示两个类之间存在一种联系。
例如,一个班级有多个学生,那么班级和学生之间就存在关联关系。
4. 实现关系:表示一个类实现了另一个接口。
例如,一个类实现了某个接口,那么这个类和接口之间就存在实现关系。
在UML类图中,这些关系可以通过不同的线条和箭头来表示。
例如,带空心箭头的虚线表示实现关系,带空心箭头的实线表示泛化关系,带实心箭头的实线表示组合关系等。
总之,UML类图是一种强大的工具,可以帮助我们理解和设计复杂的系统。
通过使用类图,我们可以更好地组织和理解系统的结构和关系,从而更好地进行设计和开发。
1UML 的9种图例的总结一、 用例图1、 定义用例定义:用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。
(这是UML 对用例的正式定义,可以这样去理解,用例是参与者想要系统做的事情,用例在画图中用椭圆来表示,椭圆下面附上用例名称)。
用例图定义:由参与者(Actor )、用例(Use Case )以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。
2、 用途用例图(User Case )是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
用例图主要的作用有三个:(1)获取需求;(2)指导测试;(3)还可在整个过程中的其它工作流起到指导作用。
3、 组成元素以及元素之间的关系说明用例图由参与者(Actor )、用例(Use Case )、系统边界(用矩形表示—注明系统名称)、箭头组成,用画图的方法来完成。
参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。
因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。
还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。
系统边界是用来表示正在建模系统的边界。
边界内表示系统的组成部分,边界外表示系统外部。
系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。
因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。
箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。
箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。
元素之间的关系:用例图中包含的元素除了系统边界、角色和用例,另外就是关系。
关系包括用例之间的关系,角色之间的关系,用例和角色之间的关系。
角色之间的关系:角色之间的关系。
UML 活动图详解示例转自清闲居博客,转载原因示例很不错,分享一下/zzxian/article/details/6781434 内容路线•活动图概述活动图概述•活动图和交互图是UML中对系统动态方面建模的两种主要形式•交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流•活动图是一种表述过程基理、业务过程以及工作流的技术。
它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模•UML 2.0而言,去除了“活动图是状态图的一种特例”这一规定•如何阅读活动图阅读简单活动图活动图的主要元素•初始节点和活动终点:用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终点•活动节点:是活动图中最主要的元素之一,它用来表示一个活动•转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示活动图的主要元素•分支与监护条件:分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。
而每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换。
•分岔与汇合:修改后的简单活动图带泳道的活动图带对象流的活动图复杂活动图•辅助活动图:•汇合描述:当汇合的所有入流均到点汇合点时,就将执行汇合点指向的活动节点。
但是有些时候,你希望对其做一些约束,这时就可以借助汇合描述来完成。
汇合描述实际上是一个约束,其格式就是“{约束条件}”。
•发送信号与接收信号:•如何绘制活动图绘制活动图•“活动图” 比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图•绘制时首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者•然后尽量使用分支、分岔和汇合等基本的建模元素来描述活动控制流程•如果需要,加入对象流以及对象的状态变化,利用一些高级的建模元素(如辅助活动图、汇合描述、发送信号与接收信号、引脚、扩展区)来表示更多的信息•活动图的建模关键是表示出控制流,其它的建模元素都是围绕这一宗旨所进行的补充工作流程,控制流程,业务流程中使用。
UML实践----用例图、顺序图、状态图、类图、包图、协作图
2009-01-20 作者:Randy Miller 来源:网络
面向对象的问题的处理的关键是建模问题。
建模可以把在复杂世界的许多重要的细节给抽象出。
许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处。
UML中有九种建模的图标,即:
∙用例图
∙类图
∙对象图
∙顺序图
∙协作图
∙状态图
∙活动图
∙组件图
∙配置图
本课程中的某些部分包含了这些图的细节信息的页面链接。
而且每个部分都有一个小问题,测试一下你对这个部分的理解。
为什么UML很重要?
为了回答这个问题,我们看看建筑行业。
设计师设计出房子。
施工人员使用这个设计来建造房子。
建筑越复杂,设计师和施工人员之间的交流就越重要。
蓝图就成为了这个行业中的设计师和施工人员的必修课。
写软件就好像建造建筑物一样。
系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。
在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。
现在它已经成为了软件行业的一部分了。
UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。
UML被应用到面向对象的问题的解决上。
想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。
一个模型model就是根本问题的抽象。
域domain就是问题所处的真实世界。
模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。
记住把一个对象想象成“活着的”。
对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。
对象的属性的值决定了它的状态state。
类Classes是对象的“蓝图”。
一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。
对象是类的实例instances。
用例图
用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象。
强调这个系统是什么而不是这个系统怎么工作。
用例图与情节紧紧相关的。
情节scenario是指当某个人与系统进行互动时发生的情况。
下面是一个医院门诊部的情节。
“一个病人打电话给门诊部预约一年一次的身体检查。
接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录。
”
用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和。
角色actor是发动与这个工作有关的事件的人或者事情。
角色简单的扮演着人或者对象的作用。
下面的图是一个门诊部Make Appointment用例。
角色是病人。
角色与用例的联系是通讯联系communication association(或简称通讯communication)
角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线。
一个用例图是角色,用例,和它们之间的联系的集合。
我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分。
注意一个单独的用例可以有多个角色。
用例图在三个领域很有作用。
∙决定特征(需求)。
当系统已经分析好并且设计成型时,新的用例产生新的需求
∙客户通讯。
使用用例图很容易表示开发者与客户之间的联系。
∙产生测试用例。
一个用例的情节可能产生这些情节的一批测试用例。
类图
类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统。
类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响。
下面是一个顾客从零售商处预定商品的模型的类图。
中心的类是Order。
连接它的是购买货物的Customer和Payment。
Payment有三种形式:Cash,Check,或者Credit。
订单包括OrderDetails(line item),每个这种类都连着Item。
每个类图的矩形对应了一个单独的实例。
实例名称中所强调的UML图表。
类或实例的名称可能是省略对象图表只要图的意义仍然是明确的。
顺序图
类图和对象图是静态模型的视图。
交互图是动态的。
他们描述了对象间的交互作用。
顺序图将交互关系表示为一个二维图。
纵向是时间轴,时间沿竖线向下延伸。
横向轴代表了在协作中各独立对象的类元角色。
类元角色用生命线表示。
当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。
消息用从一个对象的生命线到另一个对象生命线的箭头表示。
箭头以时间顺序在图中从上到下排列。
协作图
协作图也是互动的图表。
他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色。
在序列图中,对象的角色放在上面而消息则是连接线。
对象角色矩形上标有类或对象名(或者都有)。
类名前面有个冒号(:)。
协作图的每个消息都有一个序列号。
顶层消息的数字是1。
同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等。
状态图
对象拥有行为和状态。
对象的状态是由对象当前的行动和条件决定的。
状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移。
我们的模型例图建立了一个银行的在线登录系统。
登录过程包括输入合法的密码和个人账号,再提交给系统验证信息。
登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting。
每个状态都有一套完整的转移transitions来决定状态的顺序。
状态是用圆角矩形来表示的。
转移则是使用带箭头的连线表示。
触发转移的事件或者条件写在箭头的旁边。
我们的图上有两个自转移。
一个是在Getting SSN,另一个则在上Getting PIN。
初始状态(黑色圆圈)是开始动作的虚拟开始。
结束状态也是动作的虚拟结束。
事件或条件触发动作时用(/动作)表示。
当进入Validating状态时,对象并不等外部事件触发转移。
取而代之,它产生一个动作。
动作的结果决定了下一步的状态。
活动图
活动图activity diagram是一个很特别的流程图。
活动图和状态图之间是有关系的。
状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程。
活动图告诉了我们活动之间的依赖关系。
对我们的例子来说,我们使用如下的过程。
“通过ATM来取钱。
”
这个活动有三个类Customer, ATM和Bank。
整个过程从黑色圆圈开始到黑白的同心圆结束。
活动用圆角矩形表示。
图可以被分解成许多对象泳道swimlanes ,可以决定哪些对象负责那些活动。
每个活动都有一个单独的转移transition连接这其他的活动。
转移可能分支branch成两个以上的互斥的转移。
保护表达式(在[]中)表示转移是从一个分支中引出的。
分支以及分支结束时的合并merge在图中用菱形表示。
转移也可以分解fork成两个以上的并行活动。
分解以及分解结束时的线程结合join在图中用粗黑线表示
组件与配置图
组件component是代码模块。
组件图是是类图的物理实现。
配置图Deployment diagrams则是显示软件及硬件的配置。
下面的配置图说明了与房地产事务有关的软件及硬件组件的关系。
物理上的硬件使用节点nodes表示。
每个组件属于一个节点。
组件用左上角带有两个小矩形的矩形表示。