【UML】静态图——类图

前言

    在完成了系统的用例图后,就可以根据用例图的参与者以及用例来进行UML的静态设计了,静态图分别有类图、对象图和包图。

    类图是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。

正文

    类图包含7个元素:类、接口、协作、依赖关系、泛化关系、实现关系以及关联关系。

    与UML建模中的其他图一样,类图也可以包含注解和约束。类图中还可以含有包和子系统。

 一、类图元素——类

    上图的矩形就是类,它被划分为3个部分:顶部——名称部分(Name)、中间——属性部分(Attribute)、底部——操作部分(Operation,也可以称为方法)。同时,属性和操作可以具有不同的可见性,可见性描述了该属性对于其他类是否可见,以及是否可以被其他类引用,而不仅仅是被该属性所在类可见。

    属性的可见性包括:公有(Public)、私有(Private)、受保护(Protected)。

    操作的可见性包括:公有(Public)、私有(Private)、受保护(Protected)、包内公有(Package)。

 二、类图元素——接口

    接口包含操作但不包含属性,并且它没有对外界可见的关联。一个类可以实现一个或多个接口,且所有的都可以实现接口中的操作。在类图中,接口之间的继承是用类继承所使用的符号显示的。

    接口的两种表示方式,如下:

扫描二维码关注公众号,回复: 8500182 查看本文章

 三、类图元素——关系

   1.依赖(Dependency)关系:依赖表示两个或多个模型元素之间语义上的关系。它表示了这样一种情形,对于一个元素(提供者)的某些更改可能会影响或提供消息给其他元素(客户),即客户以某种形式依赖于其他类元。

举个栗子:人依赖水

   2.泛化(Generalization)关系:泛化关系是一种存在于一般元素和特殊元素之间的分类关系。特殊元素与一般元素兼容,且还包含附加的信息。那些允许使用一般元素的地方都可以用特殊元素的一个实例来代替,但是反过来则不成立。泛化关系只使用在类型上,而不是实例上,如一个类可以继承另一个类,但是一个对象不能继承另一个对象。

     a.单重继承:一个子类有且只有一个父类

     b.多重继承:一个子类有两个或两个以上的父类

   3.关联(Association)关系:是描述一组具有共同结构特征、行为特征、关系和语义的链接。

除了关联的基本形式外,还有6种应用于关联的修饰,分别是名称、角色、多重性、聚合、组合和导航性。

   ①名称(Name)。关联可以有一个名称,用来描述关系的性质。

   ②角色。当一个类处于关联的某一端时,该类就在这个关系中扮演一个特定的角色。具体来说,角色就是关联关系中一个类对另一个类所表现的职责。

   ③多重性(Multiplicity)。约束是UML三大扩展机制之一,多重性是其中的一种约束,也是使用最广泛的约束。

举个栗子:

一个学校可以有1个或更多的学生,而一个学生可能同时在0或多个学校中学习。

下表是多重性语法的一些示例:

  修饰

语义

0

恰为0

0…1

0或1

0…n

0或更多

1

恰为1

1…n

1或更多

n

0或更多

   ④聚合(Aggregation)。表示整体与部分关系的关联。

     大学是由多个学院组成的。

   ⑤组合(Composition)。是聚合关系中的一种特殊情况,是更强形式的聚合,又被称为强聚合。

     菜单和按钮不能脱离窗口对象而独立存在,如果组合被破坏,则其中的成员对象不会继续存在。

   ⑥导航性(Navigation)。可以在关联关系上加箭头表示导航方向。只在一个方向上可以导航的关联成为单向关联,用一条带箭头的实线来表示;在两个方向上都可以导航的关联成为双向关联,用一条没有箭头的实线来表示。

   4.实现(Realization)关系:将一种模型元素与另一种模型元素连接起来,比如类和接口。

下图是我基于对机房的理解所画的类图,欢迎提出宝贵的建议。


  

发布了70 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/hsm_Jasmine/article/details/90141823