1、用例图
用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。 (《UML参考手册》)
用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行(或称为发起了哪个用例)。
用例图多用于静态建模阶段(主要是业务建模和需求建模)。
1.1用例图中的事物
1.1参与者(Actor)
在系统外部与系统直接交互的人或事物(如另一个计算机系统或一些可运行的进程)。
1.参与者是角色(role)而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。
2.参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。
3.在后面的顺序图等中出现的“参与者”,与此概念相同,但具体指代的含义,视具体情况而定。
UML表示:
1.2用例(Use Case)
系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达 。
UML表示:
1.2用例图中的关系
1.2.1关联关系(参与者与用例之间)
表示参与者与用例之间的交互,通信途径。
(关联有时候也用带箭头的实线来表示,这样的表示能够显示地表明发起用例的是参与者。)
UML表示:
1.2.2包含关系(用例与用例之间)
箭头指向的用例为被包含的用例,称为包含用例;箭头出发的用例为基用例。包含用例是必选的,如果缺少包含用例,基用例就不完整;包含用例必须被执行,不需要满足某种条件;其执行并不会改变基用例的行为。
UML表示:
1.2.3扩展关系(用例与用例之间)
箭头出发的用例为被扩展的用例,称为扩展用例;箭头指向的用例为基用例。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性;扩展用例在一定条件下才会执行,并且其执行会改变基用例的行为。
UML表示:
1.2.4泛化关系(参与者与参与者之间)
发出箭头的事物“is a”箭头指向的事物。泛化关系是一般和特殊关系,发出箭头的一方代表特殊的一方,箭头指向的一方代表一般一方。特殊一方继承了一般方的特性并增加了新的特性。
UML表示:
这里来做个用例图的小例子。
例1 参与者之间的泛化关系
参与者:经理,安全主管,保安
用例:管理人事,批准预算,批准安全证书,监视周边
在参与者之间不存在泛化关系的情况下,各个参与者参与 用例的情况分别是:经理参与用例管理人事和批准预算;安全主管参与用例批准安全证书;保安参与用例监视周边。由于安全主管与经理,安全主管与保安之间泛化关系的存在,意味着安全主管可以担任经理和保安的角色,就能够参与经理和保安参与的用例。这样,安全主管就可以参与全部4个用例。但经理或者保安却不能担任安全主管的角色,也就不能参与用例批准安全证书。
首先,打开StarUML。
同时右键删掉Main。
右键Model。
同样可以修改用例图的文件名。
这时候仍然右键Model,添加参与者与用例。
修改参与者与用例的名称,并拖动到用例图中。
最后添加参与者与参与者,用例与参与者之间的关系。
以此类推,找到参与者与用例相对应的关系,最后完成效果如下。
2、类图
类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法。
类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象。
2.1类图中的事物
2.1.1类
从上到下分为三部分,分别是类名、属性和操作。类名是必须有的。
类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等。
类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等。
2.1.2接口
一组操作的集合,只有操作的声明而没有实现。
2.1.3 抽象类
不能被实例化的类,一般至少包含一个抽象操作。
2.1.4 模版类
一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类。
2.2类图中的关系
2.2.1关联关系
描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。也有两种语义较强,分别是聚合关系与组合关系。
其中包括单向关联(Derected Association)与双向关联(Association)。
UML表示法:
单向关联(Derected Association)
关联关系本质就是依赖关系。
但是这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。
故箭头指向被依赖的一方。
2.2.2聚合关系(Aggregration)
特殊关联关系,指明一个聚集(整体)和组成部分之间的关系
箭头指向整体。
2.2.3组合关系(Composition)
语义更强的聚合,部分和整体具有相同的生命周期
箭头指向整体。
2.2.4依赖关系(Dependency)
定义两个类,一个A类,一个B类,然后A类引用了B类,这种关系称之为偶然性或者临时性。同时当我们的B类发生变化的时候,那么影响到A类,这个关系称之为依赖关系。
箭头指向被依赖者。
2.2.5实现关系(Realization)
对应于类和接口之间的关系。
箭头指向接口。
2.2.6泛化关系(Generalization)
在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间。
箭头指向父类。