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的十种视图
静态图捕获逻辑结构类图 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(UnifiedModelingLanguage统一建模语言)
UML(UnifiedModelingLanguage统⼀建模语⾔)UML(Unified Modeling Language 统⼀建模语⾔),⼜称标准建模语⾔。
是⽤来对软件密集系统进⾏可视化建模的⼀种语⾔。
UML是⼀种⾯向对象的建模语⾔,它可以实现⼤型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建⽴各种所需的⽂档,是⼀种定义良好、易于表达、功能强⼤且普遍适⽤的建模语⾔。
UML基本内容详述(1)视图 视图是表达系统的某⼀⽅⾯特征的UML建模元素的⼦集;试图并不是图,它是由⼀个或多个图组成的对系统某个⾓度的抽象。
1)⽤例视图(核⼼视图) 强调从⽤户的⾓度看到的或需要的系统功能。
2)逻辑视图 该视图⽤于描述系统内实现的逻辑功能,展现系统的静态或结构组成及特征。
3)组件视图 该视图从系统实现的⾓度来描述模型对象间的关系。
4)配置视图 该视图⽤于说明系统的物理配置。
(2)图表 图表是描述视图内容的图。
1)⽤例图 ⽤于描述外部项与系统提供的使⽤事件之间的联系。
⼀个使⽤事件是系统提供的功能的具体描述,是系统分析⼈员从⽤户⾓度描述系统的功能,是功能与功能之间以及功能与⽤户之间的关系。
使⽤事件定义了系统的功能需求。
简单理解:⽤来描述系统的功能。
2)类图 ⽤于描述系统的静态结构。
类可以⽤不同⽅式连接,主要包括联合、依赖、独⽴和包装。
⼀个系统⼀般有多张类图,⼀个类可在不同的视图中出现。
3)对象图 ⽤于表述系统在某个时刻的静态结构。
对象图也可作为协作图的⼀部分,说明⼀组对象之间的动态协作关系。
对象图与类图的区别:对象图表⽰的是类中的许多对象实例,⽽不是类本⾝。
4)状态图 ⽤于说明类中的对象可能具有的状态,以及由时间引起的状态的改变。
简单理解:描述了系统元素的状态条件和响应。
5)顺序图(时序图) ⽤于描述对象间的动态协作关系。
表达了对象间发⾏消息的时序,同时也表达出对象间的相互作⽤,以及当系统执⾏到某个特定位置时可能会发⽣的事。
UML基本图示
UP是软件开发过程,描述了构造,部署以及维护软件的方式。
统一过程是一种流行的构造面向对象系统的迭代软件开发过程。
Rational(RUP)统一过程是对统一过程的详细精化,并且已经被广泛采纳。
UP以构架为中心,用例驱动,迭代和增量式开发。
迭代和增量式开发分为,初始、细化、构造、交付四个过程,在初始阶段并不需要去分析全部的需求,在了解了整个业务之后找到最核心的需求,将最核心的需求分析并实现,展示给客户看,然后再客户给出新的需求后在分析需求,并将需求在初始系统的基础上扩展。
XP极限编程,是指在开发过程中不断的沟通,与客户沟通产生反馈信息,项目组内部沟通产生反馈信息,不断的修正系统,让系统朝着正确的方向发展,所以在系统交付之前,系统是变化的,不稳定的。
XP中的测试驱动开发(tdd),是指在编程之前写测试单元,即编写系统不能通过的情况,直到系统能完全通过测试单元,则系统完成;重构,在实现系统的时候修改代码;持续集成,在开始的时候存在一个核心的可用系统,然后在其上不断扩展,不断集成,每天都要存在一个可运行的系统。
UML包括:事务,关系,图,扩展机制事务:结构:类,接口,构件,节点等行为:交互(消息),状态等分组:包,子系统等注释:注释关系:依赖,关联(聚合,组合),泛化,实现图:用例图,交互图(顺序图,协作图),类图,活动图,状态图等扩展机制:Stereotype(版型),TaggedValue(标签值),ConstraintRational Rose是一种建模工具用例视图:需求分析阶段的利器逻辑视图:设计阶段,用例的实现组件视图:构件表示封装了其内容的系统模块,构件是相对独立的模块部署视图:表示软件元素在物理架构上的部署,以及物理元素之间的通信UML基本图示类图顶端“ClassName”表示类名中间部分为该类的属性,其中分别表示为可访问性,属性名,以及属性的数据类型。
第三部分为该类的方法,包括方法的可访问性,方法名,方法的参数以及方法的返回值。
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中的类图详解及其应用场景
UML中的类图详解及其应用场景在软件开发过程中,UML(统一建模语言)被广泛应用于需求分析、系统设计和软件开发等各个阶段。
其中,类图作为UML的核心图表之一,用于描述系统中的类、对象以及它们之间的关系。
本文将详细介绍UML中的类图,并探讨其在实际应用中的场景。
一、类图的基本概念类图是一种静态结构图,用于表示系统中的类、接口、关联、继承、依赖等元素及其之间的关系。
在类图中,类用矩形表示,类名位于矩形顶部,类的属性位于矩形中部,类的操作(方法)位于矩形底部。
类之间的关系通过连线表示,如关联关系用实线箭头表示,继承关系用空心三角箭头表示,依赖关系用虚线箭头表示等。
二、类图的元素及其关系1. 类(Class):类是对象的抽象表示,用于描述具有相同属性和行为的一组对象。
类图中的类用矩形表示,类名位于矩形顶部。
2. 接口(Interface):接口是一组方法的集合,用于描述类的行为。
接口在类图中用带有<<interface>>标记的矩形表示。
3. 属性(Attribute):属性是类的特征,描述了类的状态。
属性在类图中用名称:类型的形式表示,例如“name:String”。
4. 操作(Operation):操作是类的行为,描述了类的方法。
操作在类图中用名称(参数列表):返回类型的形式表示,例如“getName():String”。
5. 关联关系(Association):关联关系描述了类之间的连接,表示一个类与另一个类之间的关联。
关联关系在类图中用实线箭头表示。
6. 继承关系(Inheritance):继承关系描述了类之间的继承关系,表示一个类继承自另一个类。
继承关系在类图中用空心三角箭头表示。
7. 依赖关系(Dependency):依赖关系描述了类之间的依赖关系,表示一个类依赖于另一个类。
依赖关系在类图中用虚线箭头表示。
三、类图的应用场景1. 系统设计:类图是系统设计的重要工具之一。
UML建模工具中的五大视图
UML建模工具中的五大视图本节和大家一起学习一下UML建模工具方面的知识,本节主要包括面向对象建模概念和UML中的五大视图等内容,相信通过本节的介绍你对UML建模工具有一定的认识。
下面让我们一起来学习UML建模工具吧。
UML建模工具1.面向对象建模建模把复杂得问题分解为易于理解的小元素,以达到问题的求解模型帮助你具体化和指出系统的不同方面,模型也显示不同的部分如何彼此相关并有助于它们的工作形象化。
UML定义了软件工程领域中的不同模型。
下面给出模型和它们的描述:.类模型描述其静态结构,状态模型表示对象的动态行为,用例模型解释用户的要求,交互模型描述消息流,实现模型包含工作单元,部署模型包含属于进程分配的细节。
提供一种简单的、准备使用的、表现为可视的建模语言,是独立于过程的,是独立于语言的2.UML建模工具的五大视图:UML定义了软件工程领域中的不同模型。
下面给出模型和它们的描述:.类模型描述其静态结构,状态模型表示对象的动态行为,用例模型描述用户的要求,交互模型描述消息流,实现模型描述工作单元,部署模型属于进程分配的细节。
◆用户视图–表示系统的目的和目标◆结构视图–表示系统的静态或空闲的状态◆行为视图–表示系统的动态状态或状态的变动◆实现视图–表示系统的逻辑元素的分布◆环境视图–表示系统物理元素的分布3.用户视图系统的用户视图由用例图组成,用例图包含执行者、用例、及它们的关系,用例图表示了系统对外部实体提供的功能,用例图由执行者和用例组成(执行者对系统做什么的)执行者主要可分为四类:主要执行者–直接与系统交互的人,次要执行者–涉及到系统维护的人,外部硬件–运行应用的非计算机的系统部分,其他系统–为其工作需要与你系统交互的外部系统4.结构视图UML建模工具中结构视图代表系统的静态方面,包含类图(描述不同的类和它们的关联,描述系统中声明的类)和对象图(描述不同的对象和它们彼此间的链接)。
类:用来描述具有特征的现实世界的实体。
UML的核心图形解析和绘制技巧
UML的核心图形解析和绘制技巧UML(Unified Modeling Language)是一种用于软件系统设计和开发的建模语言。
它提供了一套丰富的图形符号,用于描述系统的结构、行为和交互等方面。
在软件开发过程中,正确理解和使用UML图形是非常重要的,因为它们能够帮助开发人员更好地理解和沟通系统的设计。
首先,我们来看一些UML的核心图形。
UML最常用的图形包括类图、用例图、活动图、时序图和状态图等。
其中,类图用于描述系统中的类和它们之间的关系,用例图用于描述系统的功能和角色,活动图用于描述系统中的业务流程,时序图用于描述系统中的时间顺序,状态图用于描述系统中对象的状态变化。
掌握这些核心图形的解析和绘制技巧是非常重要的。
在解析UML图形时,我们需要先理解图形的基本元素。
以类图为例,一个类图由类、属性和方法等元素组成。
类用矩形框表示,框内包含类的名称。
属性用带有可见性标识的矩形框表示,可见性标识可以是"+"、"-"或"#"等符号,分别表示public、private和protected。
方法也用带有可见性标识的矩形框表示,框内包含方法的名称和参数列表。
在类图中,类之间的关系可以用箭头表示,常见的关系有继承、关联、聚合和组合等。
在绘制UML图形时,我们需要注意一些细节。
首先,图形的布局应该合理,以便更好地展示系统的结构和关系。
通常,我们可以将相关的类或对象放在一起,用线条将它们连接起来。
其次,图形的字体大小和颜色应该统一,以便提高图形的可读性。
另外,我们还可以使用不同的线条类型和箭头类型来表示不同的关系。
例如,实线箭头表示继承关系,虚线箭头表示关联关系。
最后,我们还可以使用注释框来解释图形中的一些细节或特殊情况。
除了了解和绘制UML图形,我们还需要掌握一些解析图形的技巧。
首先,我们可以通过观察图形的结构和关系来理解系统的设计。
例如,在类图中,我们可以通过观察类之间的关系来了解它们之间的依赖关系和协作方式。
UML的十种视图
三、UML的十种视图1.用例图(use case diagram)从系统的外部用户的观点看系统应具有的功能。
它只说明系统实现什么功能,而不必说明如何实现。
用例图主要用于对系统,子系统或类的行为进行建模。
2.类图(class diagram)描述系统的静态结构,类图的节点表示系统中的类及其属性和操作,边表示类之间的联系(包括继承(泛化)、关联、聚集)。
3.对象图(object diagram)类图的一种变形,所使用的符号与类图基本相同。
在对象名下面要加下划线。
(图略)4.包图(packet diagram)包是基于模型元素的含义或作用将模型元素分组的一种机制。
通过分组,可提高模型的维持性。
包之间的关系包括继承、构成与依赖。
5.顺序(时序)图(sequence diagram)交互图之一。
描述了在时间上对象交互的安排,展现了多个交互对象以及信息交流的序列。
时序图包含对象、对象的生命线、按顺序对象间的信息交流、控制焦点(可选的)。
6.合作(协作)图(collaboration diagram)交互图之二,强调发送和接收消息的对象间的结构组织,它与顺序图是等价的。
在图形上,协作图是顶点和弧的结合。
协作图包含对象、链、消息。
(图片来自《软件工程(第二版)》齐治昌、谭庆平、宁洪)7.状态图(statechart diagram)状态图描述类的对象的动态行为。
它包含对象所有可能的状态、活动图描述系统为完成某项功能而执行的操作序列,这些在每个状态下能够响应的事件以及事件发生时的状态迁移与响应动作。
操作序列可以并发和同步。
8.活动图(activity diagram)活动图中包含控制流和信息流。
控制流表示一个操作完成后对其后续操作的触发,信息流则刻画操作之间的信息交换。
提供了对工作流进行建模的途径,活动图中的活动,表示执行工作流中一组的动作。
一旦结束,控制流将自动转移到下一个活动,或通过转换进入下一个状态。
9.构件图(component diagram)提供当前模型的物理视图,对系统的静态实现视图进行建模。
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.聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。
UML 第四章 UML核心视图
4.1.2.2 说明层类图
说明层类图考察的是类的接口,类图中表 达的类和类关系应当是对问题领域在接口 层次抽象的描述。
4.1.2.3 实现层类图
类图中的类直接映射到可执行代码。在这 个层次上,类必须明确采用哪种实现语言、 设计模式、通信标准、遵循规范等。
4.1.3 包图(package)
4.2.1.1 动作流
所有动作状态之间的转换流称之为动作流。
与状态图的转换相同,活动图的转换也用 带箭头的直线表示,箭头的方向指向转入 的方向。
4.2.1.1 分支与合并分支(Decisionቤተ መጻሕፍቲ ባይዱ& Merge)
分支一般用于表示对象类所具有的条件行为。 条件行为用分支和合并表达。 在活动图中分支与合并用空心小菱形表示。 一个分支有一个入转换和两个带条件的出转 换,出转换的条件应当是互斥的,这样可以 保证只有一条出转换能够被触发。 一个合并有两个带条件的入转换和一个出转 换,合并表示从对应的分支开始的条件行为 的结束。
第四章 UML核心视图
4.1 静态视图 4.1.1 用例图 4.1.2 类图 4.1.3 包图 4.2 动态视图 4.2.1 活动图 4.2.2 状态图 4.2.3 时序图 4.2.4 协作图
4.1 静态视图
静态视图就是表达静态事物的。它只描述 事物的静态结构,而不描述其动态行为。 静态视图包括用例图、类图和包图
4.2.1.1 动作状态(Action State)
动作状态是指执行原子的、不可中断的动 作,并在此动作完成后通过完成转换转向 另一个状态的状态。 动作状态使用平滑的圆角矩形表示,动作 状态所表示的动作写在圆角矩形内部。
Click Mouse
4.2.1.1 动作状态(Activity State)
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. 共享聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。
深度剖析九大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核心视图
1. Entry:只进入(启动)活动时要执行的动 作
2. Do:活动执行过程中要进行的动作(或者类 方法)
3. Event:活动在执行中接收到某个事件时执
行的动作 4. Exit:活动在退出时要进行的动作
Make Plan
entry/ SetGoal
活动图中的基本元素
同步:
同步起始:表示从它开始多个支流并行执行。 同步汇合:表示多个支流同时到达后再执行后
实现层类图
这个层次的类图中,类是实现代码的描述,类 图中的类直接映射到可执行代码。
这个层次上,类必须明确采用哪种实现语言、 什么设计模式、什么通信标准、遵循什么规范。
实现层类图是用得最普遍的。
实现层类图
实现层类图位于设计阶段 这个阶段,类图可以视为伪代码,甚至可以用工具直
接将实现层类图生成可执行代码。 如下图:J2EE架构的实现查询商品功能的类图。
有意义的“句子”来描述系统。
如何描述系统?
要描述系统的结构性特征,结构决定了系统能 做什么。
——UML中用静态视图来表达。
也要描述系统的运行时行为,这些行为决定了 系统怎么做。
——UML中用动态视图来表达。
这两者结合起来才能把系统描述清楚。
视图的类型
静态视图:
描述静态事物,描述事物的静态结构,不描述 其动态行为。
概念层类图
网上购物的业务实体图,主要由商品、定单、 支付卡这几个关键类组成,这个几个类的交互 可以完成网上购物这个业务目标。
这个类图表达了概念层类图的观点。
说明层类图
这个层次的类图为主考察类的接口而不是实现。 类图中表达的类和类关系应当是对问题领域在
接口层次抽象的描述。 即此时不用关心类最终是用何语言编码、用什
uml九种图
uml九种图首先对UML中的各个图的功用做一个简单介绍:1、用例图描述角色以及角色与用例之间的连接关系。
说明的是谁要使用系统,以及他们使用该系统可以做些什么。
一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。
2、类图类图是描述系统中的类,以及各个类之间的关系的静态视图。
能够让我们在正确编写代码以前对系统有一个全面的认识。
类图是一种模型类型,确切的说,是一种静态模型类型。
3、对象图与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。
它描述的不是类之间的关系,而是对象之间的关系。
4、活动图描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。
能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
5、状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件。
可以捕获对象、子系统和系统的生命周期。
他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。
一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。
状态图是对类图的补充。
6、序列图(顺序图)序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。
顺序图可以用来展示对象之间是如何进行交互的。
顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
7、协作图和序列图相似,显示对象间的动态合作关系。
可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。
如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。
8、构件图(组件图)描述代码构件的物理结构以及各种构建之间的依赖关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
说明层类图
• 说明层的观点认为:在这个层次的类图考察的是 类的接口而不是实现 • 类图中表达的类和类关系应当是对问题领域在接 口层次抽象的描述 • 也就是说,此时不必关心类最终使用什么语言编 码的,是用什么设计模式设计的、是遵循什么标 准的,我们只关心是这样的一些类,它们通过接 口进行交互,进而完成了问题领域中的业务目标 • 说明层类图是现实世界和最终实现之间的一座桥 梁,此时的类通常都非常粗略,虽然它表达了计 算机的观点,但是在描述上却采用了近似现实世 界的语言,以保证从现实世界到代码实现的过渡
– 概念用例视图用于展现从业务用例中经过分析 分解出来的关键概念用例,并表示概念用例和 业务用例之间的关系,一般来说,这些关系有 扩展、包含和精化 – 对于概念用例视图来说,一般是以业务用例为 单元展现的,即将视图名称命名为业务用例名 称,如果某几个业务用例关系紧密也可以放在 一个视图里展示
概念用例视图
业务用例实现视图
• 业务用例实现视图
– 业务用例实现视图展现业务用例有哪些实现途 径 – 业务用例是业务需求,而业务用例实现则是业 务的实现途径 – 从软件工程的角度说,这个视图展示了需求的 可追溯特点 – 如果在实际中,一个业务用例只有一个实现途 径,那么业务用例实现视图就不需要了
业务用例实现视图
说明层类图
– 回顾图1.9,说明 层类图位于概念 模型阶段 – 此阶段,类图以 分析类和分析模 型图来表示
说明层类图
– 图展示了网上购 物的分析类图 – 这个类图表达了 从计算机视角来 说,网上购物这 个业务目标是由 那些类来完成的, 这些类的接口保 证了这个业务目 标的达成
实现层类图
• 实现层认为,类是实现代码的描述,类图 中的类直接映射到可执行代码 • 在这个层次上,类必须明确采用哪种实现 语言、什么设计模式、什么通信标准、遵 守什么规范等
用例活动图
– 判断
• 判断根据某个条件进行 决策,执行不同的流程 分支
– 同步
• 分为同步起始和同步汇 合。 • 同步起始表示它从开始 多个支流并行执行; • 同步汇合表示多个支流 同时达到之后再执行后 续活动
用例活动图
– 结束点
• 表示业务流程的终止 • 一个活动图(或者一个业务流程) 可以有一个或多个结束点
• 系统用例视图
– 系统用例展现系统范围,将对业务用例进行分 析以后得到的系统用例展现出来 – 系统用例视图是以用例为单位展现的,即将视 图命名为业务用例名称 – 这表达了系统需求从业务需求的映射,保证了 过程的可塑性 – 系统用例视图即系统的开发范围
系统用例视图
– 例子
• 展示了借阅图 书的系统用例 视图 • 表达了:计算 机系统即将开 发本视图所列 举出来的系统 用例 • 问题:检查图 书证用例不见 了?
系统用例
– 检查图书证可 能是手工工作 而不需要列出 系统建设范围
系统用例实现
• 系统用例实现视图
– 与业务用例实现视图类似,如果一个系统用例有多种实现方式,也应 当为其绘制实现视图 – 例子展示了系统用例实现视图,表达了从系统实现到系统需求的追溯 – 表达了每个系统用例都有其实现,其中缴纳费用系统用例有两个实现 方式
– 概念层着重对问题领域的 概念化理解,而不是实现, 因此类名通常都是问题领 域中实际事物的名称 – 概念层的类图独立于实现 语言和实现方式 – 回顾图1.9,概念层类图位 于建模阶段,此阶段类图 是以领域模型图,即业务 实体图来表示的
概念层类图
– 例子
• 展示网上购物的实体图 • 表达了概念层的类观点,说明在问题领域中,网 上购物主要由商品、定单、支付卡这几个关键类 构成,这几个类能够完成网上购物这个业务目标
活动图
• 描述为了完成某一个目标需要做的活动以及这些活动的执 行顺序 • UML中有两个层面的活动图,一种用于描述用例场景,另 一种用于描述对象交互 • 争议
– 活动图被引入UML是由争议的,因为活动图实际上描述的是业务 流程,是一种过程化的分析方法,很多人担心面向过程的活动图 引入会导致OO的类职责的混乱,这种担心是有道理的 – 在OO的眼中,是没有业务流程这种东西的,所谓流程,只不过是 在外力推动下对象之间相互交流的一个过程,只是瞬间的 – 如果从活动图的观点来描述业务,实际上是不能直接看到对象是 如何发挥作用的 – 这样在观念上很容易导致对象独立性被破坏,例如有的设计者可 能会试图得到一个从头到尾参与整个业务流程的“对象”
业务用例视图
• 业务用例视图
– 业务用例图使用业务主角和业务用例展示业务 建模的结果,大多数情况下,业务用例视图需 要从业务主角和业务模块两个视角进行 – 业务主角视角
• 从业务主角视角来展示业务主角在业务中使用那些 业务用例来达成业务目标 • 这个视角有利于向业务主角确认业务目标是否都已 经齐全,以此来检查是否有遗漏的业务用例没有发 现
业务用例视图
– 其他视角
• 建模过程,还可以根据实际需要从更多的视角来绘制业务用例 视图 • 例如可以从部门角度绘制一个部门参与的全部业务用例视图 • 或者从一个重要业务实体的生命周期角度,例如一份文件,来 描述文件从产生到销毁的整个生命周期过程中涉及的业务主角 和业务用例视图
• 总之,在建模过程中,每当需要展现某个方面的 视角时,都可以将获取到的业务主角和业务用例 图展现出来,不要拘泥于某几个固定的形式 • 业务用例视图展现了业务系统的功能性需求,如 果要描述这些需求的实现途径,则需要使用业务 实现视图
实现层类图
– 回顾图1.9,实现 层类图位于设计阶 段 – 在此阶段,类图可 视为伪代码,甚至 可以用工具直接将 实现层类图生成可 执行代码
– 例子
• 展示了J2EE结构实现查询商品功能的类图 • 图中是伪代码
类图小结
• 类图在不同的软件生命周期有三种不同的 表达
包图
• 包图一般用来展示高层次的观点 • 建模过程中获得的元素非常多,如果将这 些元素的关系都绘制出来将如同蜘蛛网一 样难以辨别 • 通过包这个容器来从大到小、从粗到细建 立关系是一种很好的办法
用例活动图
• 用例表达了参与者的一个目标,用例场景描述了 如何达到这个目标 • 活动图用来描述用例场景,也就是通常所说的业 务流程 • 业务流程一般包括一个基本业务流程和一个或多 个备选业务流程,而业务流程则通过多个活动按 照一定的条件和顺序执行来推进 • 活动可以是手动执行的任务,也可以是自动执行 的任务,每个活动完成一个工作单元
业务用例视图
– 例子
• 展示了参与借书业务领 域的业务目标,将参与 了达成这一业务目标的 业务主角和业务用例展 示在这个视图中 • 这个视图的含义是这些 主角和业务用例完整地 概括了借书业务的业务 目标 • 如果这项业务能被这些 业务主角和业务用例完 整地使命,则认为此对 此业务模块的业务用例 定义完成
包图
– 例子
• 展示了网上购物的领域包图 • 表达了关键业务领域及其依赖关系
包
– 例子
• 展示了查询商品功能的类层次 • 表达了实现类位于哪个层次的软件架构的观点
动态视图
• 动态视图描述事物动态行为 • 动态视图不能独立存在 • 必须特指一个静态视图或UML元素,说明 在静态视图规定的事物结构下它们的动态 行为
小结
• 用例图
– 包括业务用例视图、业务用例实现视图、概念 用例视图、 系统用例视图和系统用例实现视图 – 这些视图在软件的不同生命周期阶段表达了不 同的含义 – 实际项目中,不是所有用例视图都一定要采用 – 根据情况可适当裁减,如保留业务用例和系统 用例视图
类图
• •
• •
•
类图用于展示系统中地类及其相互之间的关系 本质上,类图是现实世界问题的抽象对象的结 构化、概念化、逻辑化描述 解决面向对象困难的方法源于面向对象方法中 对类的理解的三个层次观点:概念层、说明层 和实现层 在UML中,从开始的需求到最终的设计类,类 图也是围绕这三个层次的观点建模的 类图建模是先概念层,而后说明层,进而实现 这个一个随着抽象层次的逐步降低而逐步细化 的过程
– 例子
• 展示了借阅图书业务的两 个业务用例实现,借阅人 可以到图书馆借书也可以 通过网上借阅 • 两个实现途径都可以达到 同样的借阅图书业务目的 • 用业务对象和业务过程来 分析描述两个实现途径, 会发现其中有重叠的过程 和复用的对象,这些信息 就是抽象概念的重要来源
概念用例视图
• 概念用例视图
概念层类图
• 概念层类图
– 在这个层次的类图描述的是现实世界中的问题 领域的概念理解 – 类图表达的类与现实世界的问题领域有着明显 的对应关系 – 类之间的关系也与问题领域中的实际事物的关 系有着明显的对应关系 – 概念层类图中的类和类关系与最终的实现类并 不一定有着直接的明显的对应关系
概念层类图
静态视图
• 静态视图
– 表达静态事物 – 只描述静态结构,不描述其他动态行为
静态视图——用例图
• 采用参与者与用例作为基本元素 • 绘制用例视图和发现用例一般都是并行的, 一边发现参与者和用例一边绘制用例视图 • 而绘制过程中则由可能回头修改已经获取 的参与者和用例 • 最后,建模者通过用例视图将获得 参与者 与用例从某个角度进行展示,表达软件某 个方面的视角
用例活动图
• 例子
– 展示了办理登记手续用例的用 例场景 – 关键元素
• 起始点
– 标记业务流程的开始,一个 活动图或者一个业务流程有 且仅有一个起始点
• 活动
– 活动是业务流程中的一个执 行单元 – 在UML中,活动被赋予4个 特定的事件:entry指进入(启 动)活动时要执行的动作(或 者方法) – Do指活动执行过程中要进行 的动作(或者类方法); – event事件指活动在执行中接 收到某个事件执行的动作; – exit指活动在退出(结束)时要 进行的动作