在上次的总结的用例图时,有一个不足的地方就是在介绍用例图的时候没有配上图,如果配上相应的图就有助于更好的理解了。今天总结的主要是关于类图、对象图和包图。对于这几个图有了相应的图这样可以更好 的了解这些内容和知识。
首先还是关于类图的内容提纲
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中用类似于文件的符号表示的模型元素的组合。系统中的每个元素只能为一个包所有,一个包可嵌套在另一个包中。包的图符如下
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) 泛化:包之间的泛化关系类似于类之间的泛化关系,,而且包之间的泛化关系也像类那样遵循替代原则,既特殊包可以应用到一般包被使用的地方。