UML之用例图和类图
最近用UML设计SL系统,写篇文章吧。
UML中二中基本的图范畴:结构图和行为图。结构图的目的是显示建模系统的静态结构。它包括类、组件和对象图。行为图显示系统中的对象的动态行为,包括实例图、用例图和序列图。
一、用例图
1.定义:展示系统中参与者与用例之间的关系。它是根据需求分析得到的,描述了软件系统全部用户(角色)和全部功能点(业务需求),以及它们之间的关系。
2、参与者可以是人、组织、进程或者外部系统等任何角色。
通过竖排用例,隐含表达用例之间的关系。
3、包含(include)。封装跨越多个用例的相似动作,以实现基用例的服用。比如:常用的“增、删、改、查”可以包含于基用例“维护”中。
基用例包含子用例。箭头指向子用例,加上《include》标记。
4、扩展(extend)。基用例上基于扩展点的,可选的,独立的工作。根据条件状态来判断是否执行。比如查询结果的“导出”和“打印”。
扩展用例指向基用例,用于对基用例进行功能扩展。
5、泛化(generalization)可以理解为“子用例”和“父用例”之间的关系。子用例继承子父用例,而父用例通常是抽象的。
“子用例”继承自“父用例”,箭头指向“父用例”。
二、类图
1、定义:类图展示的系统中的类,类之间的相互关系,类的方法和属性。
根据用例图,可以基本上设计出系统的类和他们的之间的关系。类图描述的就是类的静态结构。表示出类的静态内容以及它们之间的关系。
2、可见性
“+”:public “#”:protected “-”:private “~”:package
3、“类图”表示
Flight
flightNumber:Integer 参数名 参数类型
departureTime:Date balance:Dollars=0, 参数名:参数类型 默认值
flightDuration:Minutes
delayFlight(numberOfMinutes : int):Date 方法名(参数名:参数类型):返回值
斜体类名和斜体方法:“继承”用带“箭头或三角形”的实线。
《interface》+类名:“实现”用带“箭头或三角形”的虚线表示
4、关联:关联的图形是实线+箭头(没有箭头,则是双向关联)。具有关联关系的类常常被声明为类的引用类型的成员变量。
双向关联:关联的一方关联对象位于直线的上端,关联数目位于同侧的直线下端,另一方则相反。
单向关联:一个类中包含另一个类的属性。
5、聚合:聚合是一种特别类型的关联,用于描述“总体到局部”的关系。在基本的聚合关系中,部分的生命周期独立于整个的生命周期。子系统允许被拆卸和替换。
6、组合:组合聚合关系是聚合关心的另一种形式,但是子类实例的生命周期依赖于父类实例的生命周期。
7、依赖的图形表示是虚线+箭头,箭头指向被依赖的类,在程序代码中,具有依赖关系的类常常被声明为成员函数的参数,而不是声明为类的成员变量。
8、继承关系画成纵向的,关联画成横向的。