UML系列——用例图中的各种关系(include、extend)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML系列——用例图中的各种关系(include、extend)相关的知识,希望对你有一定的参考价值。

参考技术A

原文地址: https://www.cnblogs.com/wolf-sun/p/3413072.html

一、参与者与用例间的关联关系

参与者与用例之间的通信,也成为关联或通信关系。

包含关系(include)
扩展关系(extend)

(1) 概念

包含关系描述的是一个用例需要某种功能,而该功能被另外一个用例定义,那么在用例的执行过程中,就可以调用已经定义好的用例。

(2)表示符号<<include>>

控制台程序

用例图:

图书管理员处理借书或者还书时的用例图,借书与还书都要考虑是否有overtime的书。

a.如果两个以上用例有大量一致的功能,则可以将这个功能分解到另一个用例中,其他用例可以和这个用例建立包含关系(如之前介绍的饮料自动售货机)。

b.一个用例的功能太多时,可以使用包含关系建立若干个更小的用例。(如学生管理系统的用例图)

实例:学生管理系统

注意 :执行基用例时,每次都必须调用被包含用例。

(1)概念

用一个用例(可选)扩展另一个用例(基本例)的功能。

(2)符号表示<<extend>>

控制台程序

用例图

(3)使用场合
对扩展用例的限制规则:将一些常规的动作放在一个基本用例中,将可选的或只在特定条件下才执行的动作放在它的扩展用例中。

通过上面的例子,怎么区分它们,你心里也有数了,其实在扩展关系中的使用场合也说明了,扩展关系的限制规则:将一些常规的动作放在一个基本用例中,将可选的或只在特定条件下才执行的动作放在它的扩展用例中。在使用的时候,你考虑这点就可以区分它们。

1.包含关系

a.如果两个以上用例有大量一致的功能,则可以将这个功能分解到另一个用例中,其他用例可以和这个用例建立包含关系(如之前介绍的饮料自动售货机)。

b.一个用例的功能太多时,可以使用包含关系建立若干个更小的用例。(如学生管理系统的用例图)

2.扩展关系

对扩展用例的限制规则:将一些常规的动作放在一个基本用例中,将可选的或只在特定条件下才执行的动作放在它的扩展用例中。

在分析的时候,参考他们的使用场合,你就会豁然开朗......

系列文章:
[UML]UML系列——用例图Use Case

UML系列:Class Diagram


1、类图的作用

类图,用于描述系统中的类与类之间的各种关系。




2、类图中的元素和关系

类图中的元素包括:接口

类图中的关系包括:继承(父子类关系)、实现(类与接口关系)、关联(全局变量,组合/聚合)、依赖(局部变量)

技术分享


2.1、类的创建

public class Person{
	private Integer id;
	private String name;
	public void setName(String name){
		this.name=name;
	}
	public String getName(){
		return name;
	}
}

为Person类添加属性和操作

技术分享

技术分享

技术分享

Person类的属性界面

技术分享

修改id属性

技术分享

Person类的操作界面

技术分享

修改setName方法

技术分享

为setName方法添加参数

技术分享

隐藏Person类显示的几个选项

技术分享


2.2、接口的创建

技术分享

修改接口的显示样式

技术分享改变之后的样子

技术分享

2.3、类图-继承关系

public abstract class BaseDaoImpl{
	public void save(Object entity){
	}
	public Object findObject(Object id){
	}
}
public class UserDaoImpl extends BaseDaoImpl{
}

技术分享


2.4、类图-实现关系

public interface UserDao {
}
public class UserDaoImpl implements UserDao {
}

技术分享

2.5、类图-关联关系

关联关系,实际上就是类与类之间的联系

关联具有导航性:即双向关系或单向关系

技术分享在Rational Rose中,关联关系有一个属性叫Navigable来决定是否显示箭头。注意:当关联关系的两侧都使用Navigable时,则不显示箭头。 

技术分享


2.5.1、关联之聚合关系(By Ref)

聚合关系,表示的是整体部分的关系,整体与部分可以分开。

UML中,聚合关系使用带空心菱形的实线来表示

技术分享

Rational Rose中,聚合关系由Aggregate和By Reference实现。

技术分享


2.5.2、关联之组合关系(By Value)

也是整体与部分的关系,但是整体与部分不可以分开;部分离开整体没有实际意义。

使用带实心菱形的实线来表示

技术分享
Rational Rose中,组合关系由Aggregate和By Value实现。

技术分享


2.6、类图-依赖关系

如果A类的一个成员变量是B类型,那么A和B之间是“关联关系”;

如果A类的一方法接受B类型的局部变量,那么A和B之间是“依赖关系”。注意:此处的“依赖关系”和Spring的依赖注入是不同的概念,要注意区分


依赖关系:A类使用到了另一个B类型,A和B的关系具有:临时性的、偶然性,但是B类的变化会影响到A;代码层面,类B作为参数被类A在某个method方法中使用。

技术分享

注意:此处的关联关系是全局的,依赖关系是局部的,在Spring中的依赖注入,就是这里的关联关系


3、类图示例

技术分享

类图总结:

Show visibility :显示属性和方法可见性

Show all Attribute: 显示所有属性

Show all operactions 显示所有方法

Show operation Signature  显示方法声明

Show operation Stereotype  方法类型






以上是关于UML系列——用例图中的各种关系(include、extend)的主要内容,如果未能解决你的问题,请参考以下文章

UML——Use Case Diagram(用例图)

UML——Use Case Diagram(用例图)

UML 类图

终于搞明白UML类图的关系了

Visio画UML用例图没有include关系的解决方法

visio2010画的uml用例时怎么添加聚合关系