UML总结之——类图、对象图、包图

来源:互联网 发布:淘宝免费申请试用报名 编辑:程序博客网 时间:2024/05/22 15:07

写在前面

在上次的总结的用例图时,有一个不足的地方就是在介绍用例图的时候没有配上图,如果配上相应的图就有助于更好的理解了。今天总结的主要是关于类图、对象图和包图。对于这几个图有了相应的图这样可以更好 的了解这些内容和知识。


类图

首先还是关于类图的内容提纲

1.类
2.类的关系
3.类图的构成
4.类图深入讨论
5.类图的应用

下面是思维导图,有一个大致的了解



下面进入正题,内容的介绍

(一)、什么是类

类是对一组具有相同属性、行为、关系和语义的对象的描述

 

(二)、类的关系

1、关联关系

         1.1普通关联

         1.2聚合

         1.3组合关系

2.依赖关系

3.泛化关系

4.实现关系

 
(三)类图的构成

1、什么是类图:类图是一种静态关系,在系统的整个生命周期都是有效的。它是描述类、接口、协作以及他们之间关系的的图,用来显示系统中各个类的静态结构,类图是UML系统建模中最常用的图,它是定义其他图的基础,在类图的基础上,状态图、协作图、组件图、和配置图等将进一步描述系统的其他各个方面的特性

2、类图的构成:类名、属性、方法(操作)、职责

         类名:类的名称是每个类所必须有的构成,用于和其它类相区分,是一个文本串,可以分为简单名称和类名称。

         属性:属性是类的组成部分,他描述了类在软件系统中代表的事物所具有的特性。类可以有属性也可以没有属性

         方法:是对类的对象所能做的事物的抽象。

类图的简单举例:


(四)、类图的深入讨论

1、类图的元素
类图的元素包括了:接口、关系
1)接口:接口是在没有给出对象的实现和状态的情况下对对象行为的描述,接口包含操作但不包含属性,且它没有对外界可见的关联。
2)关系
A、依赖关系:依赖表示两个或多个模型元素之间语义上的关系。他只将模型元素本身连接起来而不需要用一组实例来表达它的意思。关联关系、实现关系、泛化关系都是依赖关系,但是他们有更特别的语义。图形表示



B、泛化关系:泛化关系是一种存在于一般元素和特殊元素之间的分类关系。其中特殊元素与一般元素兼容,而且还包含附加的信息。那些允许使用一般元素的地方都可以用特殊元素的一个实例来代替,但是反过来则不成立。图形表示


B、泛化关系:泛化关系是一种存在于一般元素和特殊元素之间的分类关系。其中特殊元素与一般元素兼容,而且还包含附加的信息。那些允许使用一般元素的地方都可以用特殊元素的一个实例来代替,但是反过来则不成立。图形表示


注:除了基本的形式之外,还有6中应用于关联的修饰,分别是:名称、角色多重性、聚合、组合和导航性
D、实现关系:实现是规格说明和其它实现之间的关系,他将一种模型元素与另一种模型元素连接起来,比如类的接口。虽然实现关系意味着要具有接口一样的说明元素,但是也可以用一个具体的实现元素来暗示它的说明必须被支持。图形表示:





UML之对象图

对象图的概念和内容
对象图建模

一对象图的地位

在UML中,类图描述的是系统的静态结构和关系,而交互图描述的是系统的动态性。在跟踪系统的交互过程时,往往会涉及到对系统交互过程某一瞬间交互对象的状态,但系统类图和交互图都没有对此进行描述。于是在UML里就用对象图来描述参与一个交互的各对象在在在交互过程中某一时刻的状态。


二、概念

对象图(Object Diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。
在UML中,对象图使用的是与类图相同的符号和关系,因为对象就是类的实例。下图显示了对象图的模型。其中节点可以是对象也可以是类,连线表示对象之间的关系:


三、类图和对象图的区别



UML之包图

一、概述

随着程序软件越来越复杂,一个程序往往包含了数百个类,管理这些类的有效方法就是将类分组,将功能相似或相关的类组织在一起,包图是维护和控制系统总体结构的重要建模工具。在对复杂系统建模时,往往是把语义相机并倾向于同一组变化的元素组织起来加入同一包中,一方便理解和处理整个模型。

                                                                   

二、概念

包是在UML中用类似于文件的符号表示的模型元素的组合。系统中的每个元素只能为一个包所有,一个包可嵌套在另一个包中。包的图符如下



三、内容

1、包的名字:和其它建模的元素一样,每个包都必须有一个区别于其他包的名字。模型包的名字是一个字符串,他可以为简单名和路径名。

2、包拥有的元素:包可以拥有UML中的其他元素,包括类、接口、组件、节点、协作、用例和图。甚至还包含其他包

3、包的可见性:和类中的属性和操作的可见性一样,包内的元素也有可见性,包在软件模型总不可能孤立存在的,包内的模型元素必然会和外部的类存在某些关系。以下就是包的可见性及其前缀符



4、引入与输出:引入(import)允许一个包中的元素单向访问另一包中的元素。在UML中,用一个由构造型import修饰的依赖为引入关系建模。通过把抽象包装成有含义的组块,然后用引入关系控制对它们的访问,就能控制大量抽象的复杂性。包的公共部分称为输出(export)。 如图:


图中包Package1显式地引入了包Package2,而包Package2也显式地引入了Package3。因此,Package3::C1对包Package2的内容是可见的,但是由于Package3::C2受保护,因此它是不可见的。同样,Package::B2对包Package1的内容也是不可见的,因为它是私有的。由于包Package4没有引入Package3,所以不允许Package4的内容访问Package3中的任何内容 
5、包中的泛化关系:
包之间有两种泛化关系
1) 是引入和访问依赖,用于在一个包中引入另一个包输入的元素
2) 泛化:包之间的泛化关系类似于类之间的泛化关系,,而且包之间的泛化关系也像类那样遵循替代原则,既特殊包可以应用到一般包被使用的地方。


总结:这三个图是属于静态图.首先类图是UML图中最重要的图之一是其他图的基础,但是现在的系统越来越复杂,类也与多。那么如何更好的管理这些类呢?我们就需要用到包图,它将功能相似或相关的类组织在一起,这样就可以更好的管理类了。同样在UML图中我们有对系统有静态的描述也有动态的描述类图描述的是系统的静态结构和关系,而交互图描述的是系统的动态性。在跟踪系统的交互过程时,往往会涉及到对系统交互过程某一瞬间交互对象的状态,但系统类图和交互图都没有对此进行描述。于是在UML里就用对象图来描述参与一个交互的各对象在在在交互过程中某一时刻的状态。所以充分了解这几种图的用途可以更好的让我们灵活的运用UML让他们为我们所用。


0 0
原创粉丝点击