面向对象中包括哪些UML图及每件图的作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象中包括哪些UML图及每件图的作用相关的知识,希望对你有一定的参考价值。
UML中包含9种常用视图图。可以将这9种图分为两类,一类用于结构建模,称为结构图;一类用于行为建模,称为行为图。原文出处:
结构图有4种,分别是:
•
类图(classdiagram)
类图显示一组类、接口、协作以及它们之间的关系。类图可用于说明系统的静态设计视图。包含主动类的类图可用于说明系统的静态进程视图。
•
对象图(objectdiagram)
UML图中对象图显示一组对象以及他们之间的关系。对象图是类图中发现的事物的实例的数据结构和静态快照。对象图也可用于说明系统的静态设计视图和静态的进程视图,但它是从现实或原型的方面来透视的(因为是类的实例)。
•
构件图(componentdiagram)
UML图中构件图显示了一组构件以及他们之间的关系。构件图可用于说明系统的静态实现视图。
•
实施图(deploymentdiagram)
UML图中实施图显示了一组节点以及他们之间的关系。实施图可用于说明系统的静态实施视图。
这4种图还有一些常见的变体,例如子系统图实际就是一个类图。
▶
行为图
行为图有5种,分别是:
•
用况图(usecasediagram)
UML图中用况图用于组织系统的行为,描述了一组用况和参与者以及他们之间的关系。用况图用于描述系统的静态用况视图。
•
顺序图(sequencediagram)和协作图(collaborationdiagram)
UML图中顺序图和协作图在语义上是等价的,它们可以互相转换。顺序图和协作图又被统称为交互图(interactiondiagram)。它们显示了一组对象和由这组对象发送和接收的消息。顺序图强调消息的时间次序,协作图强调发消息的对象的结构组织。
•
状态图(statechartdiagram)和活动图(activitydiagram)
UML图中状态图和活动图在语义上是等价的,
它们可以互相转换。状态图显示了一个由状态、转换、事件和活动组成的状态机,它强调一个对象按事件次序发生的行为,通常状态图用于对接口、类或协作的行为
建模。活动图显示了系统从活动到活动的流,它强调对象之间的控制流,通常活动图用于对系统的功能建模。
更多UML框图的应用和案例可以参考trufun.net的在线帮助系统 参考技术A UML面向对象分析及其包括的图、建模步骤
一、叙述基于UML的面向对象分析设计过程
1)识别系统的用例和角色
首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,再使用UML建模工具画出系统的用例图,同时,勾画系统的概念层模型,借助UML建模工具描述概念层类图和活动图。
2)进行系统分析,并抽象出类
系统分析的任务是找出系统中所有需求并加以描述,同时建立特定领域模型。建立域模型有助于开发人员考察用例,从中抽取出类,并描述类之间的关系。
3)设计系统和系统中的类及其行为
设计阶段由结构设计和详细设计组成。①结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制。包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系。②详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。
二、面向对象中包括哪些UML图及每件图的作用
UML图包括九种:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图。
1)用例图(UseCaseDiagram)
它是UML中最简单也是最复杂的一种UML图。说它简单是因为它采用了面向对象的思想,又是基于用户视角的,绘制非常容易,简单的图形表示让人一看就懂。说它复杂是因为用例图往往不容易控制,要么过于复杂,要么过于简单。
用例图表示了角色和用例以及它们之间的关系。
2)类图(ClassDiagram)
是最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。通过关系和类表示的类图,可以图形化的方式描述一个系统的设计部分。
3)对象图
UML面向对象中对象图是类图的实例,几乎使用与类图完全相同的标识。它们的不同点在于对象图显示类的多个对象实例,而不是实例的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
4)状态图
UML图中状态图用来描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。通常创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。
5)时序图
又称顺序图,描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
顺序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。消息用从一务垂直的对象生命线指向另一个对象的生命线的水平箭头表示。图中还可以根据需要增加有关时间的说明和其他注释。
6)协作图
UML面向对象中协作图用于显示组件及其交互关系的空间组织结构,它并不侧重于交互的顺序。协作图显示了交互中各个对象之间的组织交互关系以及对象彼此之间的链接。与序列图不同,协作图显示的是对象之间的关系。另一方面,协作图没有将时间作为一个单独的维度,因此序列号就决定了消息及并发线程的顺序。协作图是一个介于符号图和序列图之间的交叉产物,它用带有编号的箭头来描述特定的方案,以显示在整个方案过程中消息的移动情况。
UML图中协作图用途:
通过描绘对象之间消息的移动情况来反映具体的方案。
显示对象及其交互关系的空间组织结构,而非交互的顺序。
7)活动图(ActivityDiagram)
UML面向对象中UML活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。
活动图由一些活动组成,图中同时包括了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。
8)组件图(ComponentDiagram)
UML图的组件图是用来反映代码的物理结构。从组件图中,可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。使用组件图可以将系统划分为内聚组件并显示代码自身的结构。
组件图的主要目的是显示系统组件间的结构关系。
9)配置图
UML面向对象中配置图描述系统中硬件和软件的物理配置情况和系统体系结构。
在UML图的配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。在结点里面,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行。本回答被提问者采纳
设计模式——UML中的类图及类图之间的关系
一丶统一建模语言简介
统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。
统一建模语言能为软件开发的所有阶段提供模型化和可视化支持。而且融入了软件工程领域的新思想、新方法和新技术,使软件设计人员沟通更简明,进一步缩短了设计时间,减少开发成本。它的应用领域很宽,不仅适合于一般系统的开发,而且适合于并行与分布式系统的建模。
UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。
本教程主要介绍软件设计模式中经常用到的类图,以及类之间的关系。另外,在实验部分将简单介绍 UML 建模工具的使用方法,当前业界使用最广泛的是 Rational Rose。使用 Umlet 的人也很多,它是一个轻量级的开源 UML 建模工具,简单实用,常用于小型软件系统的开发与设计。
二丶类、接口和类图
1. 类
类(Class)是指具有相同属性、方法和关系的对象的抽象,它封装了数据和行为,是面向对象程序设计(OOP)的基础,具有封装性、继承性和多态性等三大特性。在 UML 中,类使用包含类名、属性和操作且带有分隔线的矩形来表示
(1) 类名(Name)是一个字符串,例如,Student。
(2) 属性(Attribute)是指类的特性,即类的成员变量。UML 按以下格式表示:
[可见性]属性名:类型[=默认值]
例如:-name:String
注意:“可见性”表示该属性对类外的元素是否可见,包括公有(Public)、私有(Private)、受保护(Protected)和朋友(Friendly)4 种,在类图中分别用符号+、-、#、~表示。
(3) 操作(Operations)是类的任意一个实例对象都可以使用的行为,是类的成员方法。UML 按以下格式表示:
[可见性]名称(参数列表)[:返回类型]
例如:+display():void。
图 1 所示是学生类的 UML 表示。
图1 Student 类
2. 接口
接口(Interface)是一种特殊的类,它具有类的结构但不可被实例化,只可以被子类实现。它包含抽象操作,但不包含属性。它描述了类或组件对外可见的动作。在 UML 中,接口使用一个带有名称的小圆圈来进行表示。
图 2 所示是图形类接口的 UMDL 表示。
图2 Graph 接口
3. 类图
类图(ClassDiagram)是用来显示系统中的类、接口、协作以及它们之间的静态结构和关系的一种静态模型。它主要用于描述软件系统的结构化设计,帮助人们简化对软件系统的理解,它是系统分析与设计阶段的重要产物,也是系统编码与测试的重要模型依据。
类图中的类可以通过某种编程 语言直接实现。类图在软件系统开发的整个生命周期都是有效的,它是面向对象系统的建模中最常见的图。图 3 所示是“计算长方形和圆形的周长与面积”的类图,图形接口有计算面积和周长的抽象方法,长方形和圆形实现这两个方法供访问类调用。
图3 “计算长方形和圆形的周长与面积”的类图
三丶类之间的关系
在软件系统中,类不是孤立存在的,类与类之间存在各种关系。根据类与类之间的耦合度从弱到强排列,UML 中的类图有以下几种关系:依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。
1. 依赖关系
依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。
在 UML 类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。图 4 所示是人与手机的关系图,人通过手机的语音传送方法打电话。
图4 依赖关系的实例
2. 关联关系
关联(Association)关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。我们先介绍一般关联。
关联可以是双向的,也可以是单向的。在 UML 类图中,双向的关联可以用带两个箭头或者没有箭头的实线来表示,单向的关联用带一个箭头的实线来表示,箭头从使用类指向被关联的类。也可以在关联线的两端标注角色名,代表两种不同的角色。
在代码中通常将一个类的对象作为另一个类的成员变量来实现关联关系。图 5 所示是老师和学生的关系图,每个老师可以教多个学生,每个学生也可向多个老师学,他们是双向关联。
图5 关联关系的实例
3. 聚合关系
聚合(Aggregation)关系是关联关系的一种,是强关联关系,是整体和部分之间的关系,是 has-a 的关系。
聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。例如,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。
在 UML 类图中,聚合关系可以用带空心菱形的实线来表示,菱形指向整体。图 6 所示是大学和教师的关系图。
图6 聚合关系的实例
4.组合关系
组合(Composition)关系也是关联关系的一种,也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是 cxmtains-a 关系。
在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。
在 UML 类图中,组合关系用带实心菱形的实线来表示,菱形指向整体。图 7 所示是头和嘴的关系图。
图7 组合关系的实例
5.泛化关系
泛化(Generalization)关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系,是 is-a 的关系。
在 UML 类图中,泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类。在代码实现时,使用面向对象的继承机制来实现泛化关系。例如,Student 类和 Teacher 类都是 Person 类的子类,其类图如图 8 所示。
图8 泛化关系的实例
6.实现关系
实现(Realization)关系是接口与实现类之间的关系。在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。
在 UML 类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。例如,汽车和船实现了交通工具,其类图如图 9 所示。
图9 实现关系的实例
以上是关于面向对象中包括哪些UML图及每件图的作用的主要内容,如果未能解决你的问题,请参考以下文章