码迷,mamicode.com
首页 > 其他好文 > 详细

UML-用例、类图、类图之间的关系详解

时间:2015-02-13 18:36:40      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:uml   用例图   类图   

UML

一、用例图

用例图的基本概念

参与者用例以及用例与用例之间的关系构成的用于描述系统功能的动态视图称为用例图。

参与者的基本概念

参与者(Actor)是指存在于系统外部直接与系统交互的人、系统或者设备等。

参与者在画图中使用简笔人物画来表示,如下所示:技术分享
用例的基本概念

用例是系统为参与者提供的功能

对于用例的命名,我们可以给用例取一个简单的、概括性的,一般带有动作性的词语
用例的图形化表示,如下所示:
技术分享
参与者和用例的关系
如下所示:
技术分享
用例与用例之间的三个基本关系

包含关系(include):一个用例中包含了其他的用例。 先看一个购买彩票的例子:

技术分享
解释:当一个彩民进入到手机App页面后,购彩大厅页面包含了注册和登陆按钮,而注册和登陆按钮分别对应着两个页面。而用户,可能会经过购彩大厅去注册或者去登陆。包含关系,一般含有这一个意图的延续性。
扩展关系(extend): 将基用例中一段相对独立并且可选的动作。看一个简单的登陆页面:
技术分享
对于自动登陆而言,它相对于登陆页面是相对独立,并且可选的,这个就叫做扩展关系。图形关系如下所示:
技术分享
解释:对于彩民而言,他经过购彩大厅,主要的目标可能是登陆(延续性),但是他登陆并不代表他会把自动登陆给选上,这里面没有延续性,可能选择也可能不选择,只能作为登陆的一个跟屁虫存在,如果登陆界面不存在了,那么自动登陆也没有存在的必要了。
泛化关系(generalization):代表着一般到特殊的关系。反应到代码中,要么是接口和实现类的关系,要么是抽象类和子类的关系。图形化表示如下所示:
技术分享
解释:对于”双色球选号”or”福彩3D选号”来说,选号是他们公共的部分。

二、类图

简单的类图

先看一个简单的代码与类图的对应关系的示例:

技术分享
解释:我们可以把类图看成三个抽屉,第一个抽屉对应着类名,第二个抽屉对应着成员变量,第三个抽屉对应着方法
一个完整的类图:
技术分享
如何表示一个抽象类

图片如下所示,第一个抽屉中的字体是斜体:

技术分享
如何表示一个接口

技术分享

类与类之间的关系

泛化(父子)关系(Generalization):在Java中,此类关系通过关键字extends来明确的标识。

在UML中如下所示:
技术分享
实现关系(Realization):在Java中,此类关系通过implements来标识。
在UML中如下所示:
技术分享
依赖关系(Dependency)(很薄弱的关系,很少画):依赖关系体现为,局部变量、方法中的参数、和对静态方法的调用。
在UML中如下所示:
技术分享
关联关系(Association):如果在Field中出现了其他类的引用,那么它就是关联关系。
这些关系出现的位置有迹可循,请看下图:
技术分享
技术分享
但是,关联关系中也有区别的,有如下几种形式:
1. 单向关联:单相思
2. 双向关联:心心相印,彼此都有对方的引用
技术分享
3. 自关联:自己有自己的引用,典型的应用是单例模式
技术分享
3. 聚合:是整体和部分的关联,描述的是”has a”的关系。汽车 = 发动机+轮子。当汽车报废时,发动机和轮子不一定会报废,可能会进入二手市场。
技术分享
4. 组合:首先,是整体和部分的关系,但是和聚合有些区别,整体会控制部分的生命周期,是一种产生(或者叫生产)的关系。例如:公司 = 部门1+部门2….。当公司倒闭是时,部门也就没了,会随之销毁。
技术分享
类图解决的问题

① 数据封装成类

② 类与类之间的关系

UML-用例、类图、类图之间的关系详解

标签:uml   用例图   类图   

原文地址:http://blog.csdn.net/biezhihua/article/details/43793729

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!