一.用例图
定义:参与者的外部用户能观察到系统功能的模型图。列出了系统中的用例和系统外的参与者,并显示那个参与者发起了那个用例。(多用于业务建模和需求建模)
事物:
这里有2个很重要的,第一个就是参与者Actor (它代表的是一种角色,一个用户可能对应多个actor角色),参与者与系统的外部发生交互作用而不是内部。第二个就是用例use case (系统外部可见的一个系统功能单元,一个系统有很多个系统功能单元,我理解为模块)通过一个或者多个参与者进行信息交换工作。
2.用例图中的关系
参与者与用例间 用“—”(实线) 表示关联 也可以用带箭头的实线能表示出用例发起者是参与者。
用例之间的关系 有2中一个是包含(inclued)一个是扩展(expend)虚线带实体箭头
箭头指的方向是被包含用例,出发方向为基用例。包含用例必须选,扩展用例不是必须的。没有包含用例基用例不完整,一定条件下要执行,执行后 扩展用例会改变基用例的行为。
参与者之间的关系 泛化(继承)实线空箭头
![](/qrcode.jpg)
二 类图
反应了软件内部的结构(属性和操作以及类之间关系)为主要目的,静态的建模方法,抽象出现实生活中的事物,与编写代码中的Class一致。
类从上到下分为三个部分,类名 ,属性,操作 其中类名必填。属性和操作还可以有其他的可选信息。
类图中的事物,接口 抽象类 模版类
这些东西记住了,图形就能看懂,也可以自己画了。
类图中的关系:
Generalization(泛化)
Dependency(依赖)
表现为函数中的参数(use a)。是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
Association(关联)
表现为变量(has a )。类与类之间的联接,它使一个类知道另一个类的属性和方法。例如如果A依赖于B,则B体现为A的全局变量。关联关系有双向关联和单向关联。双向关联:两个类都知道另一个类的公共属性和操作。单向关联:只有一个类知道另外一个类的公共属性和操作
Aggregation(聚合) 实心线带空◇
关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分。同时,是一种弱的“拥有”关系。体现的是A对象可以包含B对象,但B对象不是A对象的组成部分。具体表现为,如果A由B聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建。
Composition(组合) 实心线带实心◇
关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。Composition(组合关系)是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一致。如果A由B组成,表现为A包含有B的全局对象,并且B对象在A创建的时刻创建。
实现关系 相当于class和接口的