前言
完成了系统的用例图之后,就可以根据用例图的参与者以及用例来进行UML的静态图的设计了。静态图显示了系统的静态结构,特别是存在事物的种类的内部结构相互之间的联系。
静态图主要分为三种图:类图、对象图和包图。
类图
什么是类图?
类图是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。
类图中的元素
类
类定义了一组有着状态和行为的对象。
类用矩形来表示,该矩形被划分为3个部分:名称部分、属性(Attribute)和操作部分(Operation,也可以称为方法)。
- 属性:描述了类在软件系统中代表的事物所具备的特性。类可以有任意数目的属性,也可以没有属性。
- 操作:对类的对象所能做的事务的抽象,相当于一个服务的实现,该服务可以由类的任何对象请求以影响其行为。
类图示例(以机房收费系统为例):
对象图
什么是对象图?
描述对象以及对象之间的连接关系,可以包含标注和约束,可以看做是类图的一个实例。
对象图的建模过程
1. 确定参与交互的各对象的类。
2. 确定类之间的关系,如依赖、泛化、关联和实现。
3. 针对交互在某特定时刻各对象的状态,使用对象图为这些对象建模。
4. 建模时,根据建模的目标,绘制对象的关键状态和关键对象之间的连接关系。
类图和对象图之间的区别
类图 | 对象图 |
---|---|
类具有三个分栏:名称、属性和操作 | 对象只有两个分栏:名称和属性 |
在类的名称分栏中只有类名 | 对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名” |
类的属性分栏定义了所有属性的特征 | 对象则只定义了属性的当前值,以便用于测试用例或例子中 |
类中列出了操作 | 对象图中不包括操作,因为对于同属于同一个类的对象而言,其操作是相同的 |
类使用关联,关联使用名称、角色、多重性以及约束等特征定义、类代表的是对对象的分类,所以必须说明可以参与关联的对象的数目。 | a对象使用链连接,链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性。 |
对象图示例(以机房收费系统为例):
一般用户:
操作员:
管理员:
包图
什么是包图?
包图是由包和包之间的关系构成,他是维护和控制系统总体结构的重要建模工具。
为什么出现包图?
对复杂系统进行建模时,经常需要处理大量的类、接口、组件、节点和图,这时就有必要将这些元素进行分组,即把那些语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型。
设计原则
高内聚,低耦合
导图梳理
赞一个呗
我也来一次,觉得写得还不错的就赞一个呗。