UML和建模软件Rose的使用已在上一篇介绍过了,这一篇我们继续介绍画图方法。
我们介绍“ 类图”:

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

继承:父子类关系;

实现:类与接口关系;


关联(全局变量, 组合/聚合): 值、引用;


依赖:局部变量(非Spring中 依赖注入)。



1.类图举例

我们在Rose中创建类图的方法:


【软件工程】3.UML类图_类图


创建一个实体:

【软件工程】3.UML类图_uml_02


然后鼠标放在实体上面,单击鼠标右键,可以添加这个实体类的属性和方法:

【软件工程】3.UML类图_uml_03

添加一个属性,然后双击属性,点检attribute可以设置属性的详细:


【软件工程】3.UML类图_rose_04



然后我们再添加一个name的属性。


之后我们按照上面类似的方法,给实体类添加一个方法:


【软件工程】3.UML类图_软件工程_05



然后我们给它设置一个参数(String name),无返回(void)

【软件工程】3.UML类图_uml_06


然后用同样的方法我们添加getName()方法:

【软件工程】3.UML类图_软件工程_07


如果不显示方法的参数,可以勾选“显示原型”:

【软件工程】3.UML类图_软件工程_08


之后我们添加一个接口:

【软件工程】3.UML类图_类图_09


接口图形如果是圆的,不想用圆的:

【软件工程】3.UML类图_uml_10


想改成方的,就在这里更改:


【软件工程】3.UML类图_关联关系_11


好了,我们的类图的例子和设置方法给大家了,我们将使用这种画图方法来画一个完整的类图。

我们画一个用户管理模块的类图:


【软件工程】3.UML类图_rose_12


其中图中的"关联"和"依赖"的不同:

关联:全局性

依赖:局部性


然后我们解释一下图中的各种关系:

(1)继承关系

public abstract class BaseDaoImpl{

public void save(Object entity){
}

public Object findObject(Object id){
}


}


public class UserDaoImpl extends BaseDaoImpl{
}

【软件工程】3.UML类图_rose_13


(2)实现关系

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

【软件工程】3.UML类图_rose_14



(3)关联关系

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

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


【软件工程】3.UML类图_关联关系_15



(4)关联之聚合关系(By ref)

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

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

【软件工程】3.UML类图_uml_16


(5)组合关系(By value)

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

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

【软件工程】3.UML类图_rose_17


(6)依赖关系

A类使用到了另一个B类型。

关系具有:临时性的、偶然性,但是B类的变

会影响到A。代码层面,为类B作为参数被类A在某个method方法中使用。