UML常见关系:
用例图
构成:参与者、用例、关系。
概念:
参与者:外部用户、进程或其他系统的理想化概念。
用例:外部可见的一个系统功能单元,用例名字是一个动词短语字符串,比如,处理订单。
关系:
1、关联关系:带箭头或不带箭头的实线表示。
2、泛化关系:带空心三角形作为箭头的直线表示,箭头端指向超类。
3、包含关系:含有关键字<<include>>的带箭头的虚线表示,箭头指向被包含用例。
4、扩展关系:含有关键字<<extend>>的带箭头的虚线表示,箭头指向被扩展用例。
UML表示:
参与者:人形符号。
用例:椭圆,名称放在椭圆中心或椭圆下面的中间位置。
关系:用带箭头或不带箭头的线段描述,箭头开始位置表示对话主动发起者,箭头所指是对话的被动接受者。
描述用例:
1、简要说明:对用例作用和目的的简要描述。
2、事件流:包括基本流和备选流。
3、用例场景:用例的实例,同一用例在实际执行时会有很多不同情况发生。
4、特殊需求:非功能性需求和设计约束。比如,法律法规方面需求、应用程序标准和所构建系统的质量属性等。
5、前置条件:执行用例之前系统必须所处的状态。比如,要求用户有访问权限或某个用例必须已使用完。
6、后置条件:用例执行完系统可能处于的一组状态。比如:要求在某个用例执行后,必须执行另一个用例。
类图
类与类之间连接方式(关系):
关联(彼此间的连接)
一般两个对象的引用、参数传递等形式产生的关系,都可称为关联关系。
泛化(一个类是另一个类的特殊化)
使用从子类指向父类的一个带有实线的箭头来表示,指向父类的箭头是一个空三角形。
依赖(一个类使用另一个类)
用一个从客户指向提供者的虚箭头表示,并使用一个构造型的关键字位于虚箭头之上来区分依赖关系的种类。
实现(将说明和实现联系起来)
用一条带封闭空箭头的虚线来表示。接口通常使用一个圆圈表示,通过一条实线表示实现关系。
表示:
类:一个矩形,由3部分构成,分别是类的名称、属性、操作。中间部位显示类的属性,还可以显示属性的类型以及属性的初始化值等。底部显示类的操作,还可以显示操作的参数表和返回类型等。
类的名称:
首字母大写,如果由2个单词组成,则第二个单词首字母也要大写。正体字说明类可被实例化,斜体字说明类为抽象类。
类的名称分为简单名称和路径名称。
用类所在的包的名称作为前缀的类名叫做路径名,不包含前缀字符串的类名叫做简单名。
类的属性:
描述属性语法格式([]内为可选内容)
[可见性] 属性名称 [: 属性类型] [= 初始值][{属性字符串}]
1、可见性:公有类型 “+”,私有类型 “-”,受保护类型 “#”,标识在属性名称左侧。
2、属性名称:名词或名词短语构成。第一个字母小写,如果包含多个单词,则除了第一个英文单词外其余单词首字母要大写。
3、属性字符串:指定关于属性的一些附加信息,希望添加在属性定义中但又没有合适地方可以加入的规则,都可以放在属性字符串中。比如,想说明系统中“汽车类”的“颜色”属性只有3种状态“红、黄、蓝”,就可以在属性字符串中进行说明。
类的操作:
语法:
[可见性] 操作名称 [(参数表)] [: 返回类型][{属性字符串}]
1、操作名称:动词或动词短语。第一个字母小写,如果包含多个单词,则除了第一个英文单词外其余单词首字母要大写。
2、参数表:由类型、标识符组成的序列。定义方式:“名称: 类型”,如果存在多个参数,用逗号隔开。
接口:
接口使用带有名称的小圆圈表示,接口与应用它的模型元素之间用一条直线相连。调用该接口的类与接口之间用带箭头的虚线连接,它们之间是依赖关系。接口也可以带构造型<<interface>>的类表示。
导航性:
关联关系一般都是双向的,即关联对象彼此都能通信。
如果类与类之间的关联是单向的,则称为导航关联。采用实线箭头连接两个类,箭头所指方向为导航方向。比如,人可以使用汽车,人向车发消息,但是车不能向人发消息。
标注关联:
1、名称
对于类之间的关联关系,可使用一个动词或动词短语命名。名称显示在关联关系中间。
2、角色名
关联关系中一个类对另一个类所表现出来的职责,可使用角色名进行描述。角色名是能解释对象是如何参与关系的名词或名词短语。
3、多重性
关联的两端都可以指定一个重数,表示该端点可以有多个对象与另一个端点的一个对象关联。如果没有明确表示关联的重数,则重数为“1”,类图中重数标识在关联关系直线的末端。比如,人可以拥有零辆或多辆汽车,汽车可以被1至多个人拥有。
聚合与组合:
聚合:类与类之间关系具有“整体与部分”特点,可单独存在。
用端点带空心菱形的实线表示,空心菱形与聚合类相连接,头部指向整体。
比如,球队(整体)由多个球员(部分)组成。
组合:构成整体类的部分类完全隶属于整体类,不可单独存在。
用带实心菱形的实线来表示,头部指向整体。