程序员人生 网站导航

对软件开发中uml建模的理解和图形整理(二)

栏目:互联网时间:2014-10-03 08:00:01

今天接着昨天的内容,继续来了解uml的静态建模和动态建模,希望大家通过这两天的了解能加深对uml建模的理解并在以后的项目开发中加以应用。


核心UML图分类:  ---> “独孤九剑”

静态建模:[用例图]、[类图]、对象图、组件图、部署图。

动态建模:[时序图](sequence diagrams)、状态图、活动图、协作图。


核心UML图的定义及使用

一、 用例图:主要用来展示系统的核心功能及其交互的用户或系统。

举例说明:相信上一篇已经写的很清楚了,这里简单贴一张图。

===================== Num1.用例图======================== 
1. 用例:系统为参与者(人/系统)提供的功能,一般取名为带有动作性的词语。--椭圆
2. 用例之间的关系 --> 虚线 :
a) 包含关系:大功能包含《include》子功能。
b) 扩展关系:将基用例中一段【相对独立并且可选】的动作,用扩展《extends》用例加以封装。 --虚线反向
c) 泛化关系:一般和特殊(抽象类/接口+实现类/子类)的关系。实线三角形箭头反向。


二、类图:主要用来表现类的特征(属性和操作等),描述了多个类/接口的特征以及对象之间的协作和交互。

类图主要做两件事:1 对类中的数据及其操作进行封装;2 标明类与类之间的关系。

下面主要针对这两点来谈谈,第一点: 对类中的数据及其操作进行封装,还是先看图吧:


因为这里使用的是Rose画图,所以所有的画图操作都是在Rose上执行的。需要说明一下:这里画的是一张简单的普通类图,类图的属性和方法是可选的,而这里的正向工程和反向功能有点类似于Java web里面的Hibernate的一个重要作用:将表映射成类,也可以将类映射成表,当然这里的是一张类图而不是数据库里面的表。

第二点:标明类与类之间的关系。类与类之间的关系主要有一下几种:1. 泛化关系(继承关系)、2. 实现关系(接口与实现类的关系)、3. 关联关系(这个比较复杂,这要包含单向关联、双向关联、自关联、聚合关联、组合关联)、4. 依赖关系(项目开发中基本很少画)。下面以图的方式进行讲解:

1,泛化(继承)关系:注意是子类指向父类,且箭头为三角形,连线为实线。

2,实现关系(接口与实现类的关系):这个在Java web中经常用到,比如在Spring中,经常会调用DAO层接口的对象(通过IOC配置xml的方式来setXx产生接口对象)方法来处理Service层的业务(如:登录、注册等)。注意是实现类指向接口,且箭头为三角形,连线为虚线。


3,关联关系:

a)单向关联:就拿追MM来说,很多人都稀罕她,但她都不稀罕。如图:


b)双向关联:就拿夫妻来说,一个男的只能有一个老婆,而一个女的只能有一个老公。如图:


c)自关联:典型的,就拿Menu菜单来说,子菜单和父菜单封装的数据都一样,只是Menu类中要有自己的引用。如图:


d)聚合关联:聚合表示的是整体和部分的关系,比如说:有辆汽车报废了,但其轮胎有两个还是好的,它可以供别的汽车使用。如图(画图时切记:整体指向部分):


e)组合关联:组合也是整体和部分的关系,与聚合最大的区别在于:整体可以控制部分的生命周期。比如:一家IT公司倒闭了,那么其部门也将不复存在。如图:


注意:整体指向部分,与聚合关联不同的是:组合的菱形箭头是实心的,而聚合的菱形箭头的空心的。

4. 依赖关系:存在于方法中的临时变量、方法签名中的参数和对静态方法的调用。比如咱经常使用的电脑,咱们需要它的帮助来完成一些事情,这就是依赖。如图:


注意:箭头指向被依赖者,且箭头为虚线。


有点晚了,明天继续,晚安睡觉



------分隔线----------------------------
------分隔线----------------------------

最新技术推荐