文档章节

UML模型

五大三粗
 五大三粗
发布于 2015/03/17 21:23
字数 1161
阅读 18
收藏 0
点赞 0
评论 0

用例图主要用来描述 用户、需求、系统功能单元 之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。

【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。

 

用例图所包含的元素如下:

  1. 1.       参与者(Actor)

表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。

 

  1. 2.       用例(Use Case)

 用例就是外部可见的系统功能,对系统提供的服务进行描述。 用椭圆表示

  1. 3.       子系统(Subsystem)

用来展示系统的一部分功能,这部分功能联系紧密。

  1. 4.       关系

用例图中涉及的关系有:关联、泛化、包含、扩展;

如下表所示:

关系类型

说明

表示符号

关联

参与者与用例间的关系

泛化

参与者之间或用例之间的关系

包含

用例之间的关系

扩展

用例之间的关系

a.       关联(Association)

表示参与者与用例之间的通信,任何一方都可发送或接受消息。

【箭头指向】:指向消息接收方

 

b.      泛化(Inheritance)

就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。

【箭头指向】:指向父用例

c.       包含(Include)

包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤;

【箭头指向】:指向分解出来的功能用例

d.      扩展(Extend)

    扩展关系是指 用例功能的延伸,相当于为基础用例提供一个附加功能。

   【箭头指向】:指向基础用例

 

e.       依赖(Dependency)

以上4中关系,是UML定义的标准关系。 VS2010的用例模型图中,添加了依赖关系,用带箭头的虚线表示

表示源用例依赖于目标用例;

【箭头指向】:指向被依赖项

  1. 5.       项目(Artifact)

用例图虽然是用来帮助人们形象地理解功能需求,但却没多少人能够通看懂它。很多时候跟用户交流甚至用Excel都比用例图强,VS2010中引入了“项目”这样一个元素,以便让开发人员能够在用例图中链接一个普通文档。

用依赖关系把某个用例依赖到项目上

然后把项目-》属性 Hyperlink 设置到你的文档上

这样当你在用例图上 双击项目时,就会打开相关联的文档。

  1. 6.       注释(Comment)

 

包含(include)、扩展(extend)、泛化(Inheritance的区别:

条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;

直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。

extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。

Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系

 

一个用例图示例:

 

牢骚:

感觉用例图还不成熟,并不能很好地表达系统的需求, 没有UML背景的用户几乎不知道画的些什么。

其次,包含关系、扩展关系 的箭头符号竟然是同样的箭头,仅靠上方写个文字来加以区别,翻译成其他语言的话,几乎就不知道代表什么意思。  扩展关系的箭头朝向也很难理解,为何要指向基用例,而不指向扩展用例

VS2010添加的“项目”元素,是个很好的创新,能够在用例图中关联word,excel这些文档。但为什么不把这些功能直接集成到用例里面,双击用例就弹出一份文档岂不更容易理解,非要画蛇添足地加一个元件,仅仅为了提供个链接功能。

 

 

用例描述表:

鉴于用列图并不能清楚地表达功能需求,开发中大家通常用描述表来补充某些不易表达的用例,下图的表给大家提供一个参考:

© 著作权归作者所有

共有 人打赏支持
五大三粗
粉丝 155
博文 890
码字总数 4537901
作品 0
广州
程序员
面向对象方法与UML的历史与发展

一、 不同的分析与设计方法 1.功能分解法(function decomposition) 以系统需要提供的功能为中心来组织系统。 首先定义各种功能,然后把功能分解为子功能,对较大的子功能进一步分解,直到可...

oYo字节 ⋅ 2014/03/12 ⋅ 0

企业应用快速开发平台--jeefuseMDA

jeefuseMDA 是一个基于MDA的javaEE企业应用快速开发平台。 它整合一些流行的开源框架如Ibatis、 Hibernate、 Spring Framework、Spring Security、struts2、ehcache、lucene、solr等,构建为...

fexture ⋅ 2013/08/19 ⋅ 1

十二个开源UML工具推荐

开源UML工具这些年发展的不错,以前那个连付费的商业UML工具也很少见的时代早已经过去。本文介绍了12个开源UML工具,功能各有一些不同,希望对读者有些帮助。 AD: UML面向对象建模知识简介 ...

今日竹石 ⋅ 2015/08/06 ⋅ 1

UML模型的基本概念

1 UML的建筑块 组成UML有三种基本的建筑块: 1、 事物(Things) 2、 关系(Relationships) 3、 图(Diagrams) 事物是UML中重要的组成部分。关系把事物紧密联系在一起。图是很多有相互相关...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

6 个 Java 项目的 UML 反向工程工具

将 Java 项目转成结构清晰的 UML 类图,可以让我们更轻松的理解项目的结构以及模块间的依赖关系。本文介绍 6 款开源的工具,可以将 Java 项目反向工程到 UML 的类图。 1. Eclipse MDT 模型开...

oschina ⋅ 2012/09/12 ⋅ 9

MyEclipse教程:使用UML创建模块库——第一部分(二)

MyEclipse 在线购买低至75折!火爆开抢>> 【MyEclipse最新版下载】 UML1建模文件存储在建模库中,建模可用于生成Java代码,或者可以从代码中生成模型。本教程将向您展示如何执行与建模资源库...

Miss_Hello_World ⋅ 05/23 ⋅ 0

UML学习笔记(一)【概论】

UML的使用范围:概念视角 和 软件视角 UML的使用方式:蓝图 和 草图 表示法:你在模型中看到的图形,建模语言的图形语法,通常只是为了设计讨论 元模型:一张定义语言概念的图,通常为了把图...

jason_wu_2 ⋅ 2016/12/13 ⋅ 0

Eclipse建模插件--Topcased UML Edit

Topcased UML Edit 是一个 UML2.1建模的Eclipse插件,支持9种模型图包括:UML用例图,类图,包图,顺序图,协作图,状态图,活动图,构件图,部署图。并提供Java与模型图的转换引擎。 介绍内...

匿名 ⋅ 2009/07/09 ⋅ 0

软件设计之UML—UML的构成[上]

UML是一种通用的建模语言,其表达能力相当的强,不仅可以用于软件系统的建模,而且可用于业务建模以及其它非软件系统建模。UML综合了各种面向对象方法与表示法的优点,至提出之日起就受到了广...

ibm_hoojo ⋅ 2013/08/30 ⋅ 0

软考之UML图深入学习(1)

前言 软考的准备已经过去了2个月零8天,倒计时8天(11月11日)。通过近年试题的分析,面向对象技术试题在150分中占据了大约1/3的比重,足见其重要性和基础性。下午试题中的UML图面向对象设计...

m18633778874 ⋅ 2017/11/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

关于“幂等”操作

一个幂等(idempotent)操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同. 开发中, 我们经常考虑幂等操作的场景有“接口调用”、“MQ消费”、“自动任务”等 接口调用, 可能出现...

零二一七 ⋅ 19分钟前 ⋅ 0

Dubbo服务服务暴露之ProxyFactory Invoker

Dubbo服务暴露过程中有涉及到调用ProxyFactory 中方法获取Invoker对象的过程,现在我们来深究下源码,来看下这个过程是在做些什么,返回的Invoker 对象是什么,我们来看一下代码的切入点: ...

哲别0 ⋅ 34分钟前 ⋅ 0

GP两种连接方式性能测试

GP两种连接方式性能测试 Pivotal import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class GPQueryStrin......

仔仔1993 ⋅ 38分钟前 ⋅ 0

jsonrpc-4j代码解析

解析文件 AutoJsonRpcServiceImplExporter JsonServiceExporter AutoJsonRpcServiceImplExporter 路径:com.googlecode.jsonrpc4j.spring.AutoJsonRpcServiceImplExporter AutoJsonRpcServi......

郭恩洲_OSC博客 ⋅ 今天 ⋅ 0

百度搜索

from selenium import webdriver import time brower=webdriver.Firefox() brower.get('http://www.baidu.com') input=brower.find_element_by_id('kw') input.send_keys('中南大学') time.s......

南桥北木 ⋅ 今天 ⋅ 0

tomcat 日志记录器

1、日志记录器是记录消息的组件 日志记录器需要与某个servlet 容器相关联 2、Logger 接口 共定义了5种日志级别:FATAL、ERROR、WARNING、INFORMATION、DEBUGGER setVerbosity 设置级别 setC...

职业搬砖20年 ⋅ 今天 ⋅ 0

Thrift RPC实战(三) Thrift序列化机制

1.Thrift基础架构 Thrift是一个客户端和服务端的架构体系,数据通过socket传输; 具有自己内部定义的传输协议规范(TProtocol)和传输数据标准(TTransports); 通过IDL脚本对传输数据的数据结构...

lemonLove ⋅ 今天 ⋅ 0

网站建设就要像2018世界杯的俄罗斯队大杀四方[图]

今天心情不错,因为昨天晚上观看了世界杯比赛,尤其是对俄罗斯队的大杀四方感到十分霸气侧漏啊,因此我联想到了自己的博客网站,我的博客是去年年底上线的,一直想建设一个关于读书和读后感作...

原创小博客 ⋅ 今天 ⋅ 0

linux 信号机制

signal(SIGPIPE, SIG_IGN); TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道, 但本端只是收到FIN包. 按照TCP协...

xxdd ⋅ 今天 ⋅ 0

my.cnf, my-small.cnf, my-medium.cnf, my-large.cnf

1. my-small.cnf # Example MySQL config file for small systems.## This is for a system with little memory (<= 64M) where MySQL is only used# from time to time and it's importa......

周云台 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部