- 浏览: 1499384 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
一、UML用例建模简介
用例建模是UML建模的一部分,它也是UML里最基础的部分。用例建模的最主要功能就是用来表达系统的功能性需求或行为。依我的理解用例建模可分为 用例图和用例描述。用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。用例描述用来详细描述用例图中每个用例,用文本文档来完成。用例图还包括由箭头所组成的各种关系,包括泛化,包含,扩展等。
1. 用例图
(1)参与者(Actor),也叫动作者,表示系统用户能扮演的角色(role) 。这些用户可能是人,可能是其他的计算机,一些硬件或者甚至是其它软件系统。唯一的标准是它们必须要在被划分进用例的系统部分以外。它们必须能刺激系统部分并接收返回。
还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。比如小明是图书馆的管理员,他参与图书馆管理系统的交互,这时他既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆借书,在这里小明扮演了两个角色,是两个不同的参与者。参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。
(2)用例(Use Case)。
用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,为执行此动作的参与者产生一个可观察的结果值。我们可以这样去理解,用例是参与者想要系统做的事情。例如,可以把计算器作为用例,使用计算器的用户为参与者,参与者按了3+3(动作序列),计算器返回一个结果6。
对于用例的命名,我们可以给用例取一个简单、描述性的名称,一般为带有动作性的词。用例在画图中用椭圆来表示,椭圆下面附上用例的名称。
(3)系统边界是用来表示正在建模系统的边界。边界内表示系统的组成部分,边界外表示系统外部。系统边界在画图中方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。
(4)箭头。用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。
(5)泛化。泛化和类中的泛化概念是一样的,子用例继承父用例的行为和含义,还可以增加或覆盖父用例的行为;子用例可以出现在任何父用例出现的位置(父和子均有具体的实例)。下面给出两种图示来说明泛化的概念和含义(分别是含义继承和行为继承)。
(5)泛化。泛化和类中的泛化概念是一样的,子用例继承父用例的行为和含义,还可以增加或覆盖父用例的行为;子用例可以出现在任何父用例出现的位置(父和子均有具体的实例)。下面给出两种图示来说明泛化的概念和含义(分别是含义继承和行为继承)。
(6)use。其关系非常象一个函数调用或一个子过程。以这种方式使用的UML用例称为抽象用例,因为它不能单独存在,而必须被其它用例使用。例如系统边界框图中的UPC读取器用例。
(7)include。可以把几个用例的公共步骤分离出来成为一个单独的被包含用例。类似c语言中的include。如上图所示,查询员工信息即是分离出来的被包含用例。
(8)extend。扩展关系是从扩展用例到基本用例的关系,它说明为扩展用例定义的行为如何插入到为基本用例定义的行为中。它是以隐含形式插入的,也就是说,扩展用例并不在基本用例中显示。在以下几种情况下,可使用扩展用例:
a.表明用例的某一部分是可选的系统行为(这样,您就可以将模型中的可选行为和必选行为分开);
b.表明只在特定条件(如例外条件)下才执行的分支流;
c.表明可能有一组行为段,其中的一个或多个段可以在基本用例中的扩展点处插入。所插入的行为段和插入的顺序取决于在执行基本用例时与主角进行的交互。
a.表明用例的某一部分是可选的系统行为(这样,您就可以将模型中的可选行为和必选行为分开);
b.表明只在特定条件(如例外条件)下才执行的分支流;
c.表明可能有一组行为段,其中的一个或多个段可以在基本用例中的扩展点处插入。所插入的行为段和插入的顺序取决于在执行基本用例时与主角进行的交互。
下图给出了一个扩展关系的例子,在还书的过程中,只有在例外条件(读者遗失书籍)的情况下,才会执行赔偿遗失书籍的分支流。
2. 用例描述
用例图只是简单地用图描述了一下系统,但对于每个用例,我们还需要有详细的说明,这样就可以让别人对这个系统有一个更加详细的了解,这时我们就需要写用例描述。
对于用例描述的内容,一般没有硬性规定的格式,但一些必须或者重要的内容还是必须要写进用例描述里面的。用例描述一般包括:简要描述(说明)、前置(前提)条件、基本事件流、其他事件流、异常事件流、后置(事后)条件等等。下面说说各个部分的意思:
简要描述:对用例的角色、目的的简要描述;
前置条件:执行用例之前系统必须要处于的状态,或者要满足的条件;
基本事件流:描述该用例的基本流程,指每个流程都“正常”运作时所发生的事情,没有任何备选流和异常流,而只有最有可能发生的事件流;
其他事件流:表示这个行为或流程是可选的或备选的,并不是总要执行它们;
异常事件流:表示发生了某些非正常的事情所要执行的流程;
后置条件:用例一旦执行后系统所处的状态。
二、用例图和用例描述举例
这里用个家教网站来简单的分析用例图的画法和用例描述的写法。提取了用例图和用例描述的部分。这个家教网站分为前台客户系统和后台管理系统。
前台客户系统用例图:
后台管理系统用例图:
后台管理系统中的网站公告发布的用例描述:
用例名称:网站公告发布 |
用例标识号:202 |
参与者:负责人 |
简要说明: 负责人用来填写和修改家教网站首页的公告,公告最终显示在家教网站的首页上。 |
前置条件: 负责人已经登陆家教网站管理系统 |
基本事件流: 1.负责人鼠标点击“修改公告”按钮 2.系统出现一个文本框,显示着原来的公告内容 3.负责人可以在文本框上修改公告,也可以完全删除,重新写新的公告 4.负责人编辑完文本框,按“提交”按钮,首页公告就被修改 5.用例终止 |
其他事件流A1: 在按“提交”按钮之前,负责人随时可以按“返回”按钮,文本框的任何修改内容都不会影响网站首页的公告 |
异常事件流: 1.提示错误信息,负责人确认 2.返回到管理系统主页面 |
后置条件: 网站首页的公告信息被修改 |
注释:无 |
三、泛化、包含和扩展举例
可知,在用例图中,角色和用例都能够泛化。角色的泛化/继承很容易理解,因为角色本来就是类(Class),它是一种版型(stereotype)为Actor的类,所以角色的继承直观而自然。但是用例的继承实际上分为两种情况,并不是简单的使用泛化,而是使用扩展(extended)和包含(include)两种泛化的特例。
扩展用于子用例的动作步骤基本上和父用例的动作步骤相同,只是增加了另外的一些步骤的情况下。包含用于子用例包含了所有父用例的动作,它将父用例作为了自己的一个大步骤,子用例常常包含一个以上的父用例。如下图:
泛化(Generalization)在面向对象的技术中无处不在,它的另一个名字也许更为著名,就是“继承”。下图给出了一个使用泛化的用例图:
发表评论
-
LAMP网站架构方案分析
2011-09-21 11:09 1306LAMP(Linux-Apache-MySQL-PHP ... -
大流量网站的底层系统架构分析
2011-09-10 22:01 1203大流量、高并发的网站的底层系统架构 http://www.h ... -
详细介绍软件架构设计的三个维度
2011-09-07 19:28 1372本文介绍的是软件架构 ... -
十步构建大型网站架构(2)
2011-09-07 16:21 1452架构演变第六步:分库 享受了一段时间的系统访问量高速增长的幸 ... -
十步构建大型网站架构(1)
2011-09-07 16:20 1400今天我们来谈谈一个 ... -
架构、框架、设计模式之间的关系简述
2011-09-07 16:00 1671本文向您讲解架构、框 ... -
UML实践----用例图、顺序图、状态图、类图、包图、协作图
2011-09-07 10:01 1974面向对象的问题的处理 ... -
UML建模之时序图
2011-09-06 20:19 3011http://www.uml.org.cn/oobject/2 ... -
UML 活动图
2011-09-06 20:13 1462UML 活动图记录单个操作 ... -
UML 状态图
2011-09-06 20:04 1320http://www.uml.org.cn/oobject/2 ... -
三种模型
2011-09-06 19:22 1382《uml面向对象建模与设计》本书提出了一套面向对象的表示 ... -
5 款基于 Web 浏览器的建模工具
2011-09-05 10:29 1275http://www.oschina.net/news/209 ... -
深入浅出REST
2011-08-19 09:48 1168不知你是否意识到,围绕着什么才是实现异构的应用到应用通信的“正 ... -
数据量非常大的照片分享社区网站架构设计
2011-07-21 21:31 9505数据库一向是网站架构中最具挑战性的,瓶颈通常出现在这里。又拍网 ... -
相关知识
2011-07-04 16:34 1281(二) 架构的分类 架构由于应用的不同而存在不同。大体而言, ... -
软件需求分析方法总结--轻巧建模之需求篇(二)
2011-06-27 23:07 2004http://hi.baidu.com/tdskee/blog ... -
软件需求分析方法总结--轻巧建模之需求篇(一)
2011-06-27 23:05 2244需求从哪儿来? 来自于项目甲方,还是直接或间接的用户、经 ... -
软件需求分析方法总结--撰写优秀的需求
2011-06-27 23:04 1627软件需求常常被写得很糟且难于遵循。清楚地阐明你的需求将使每位项 ... -
软件需求分析方法总结--如何分析问题和需求
2011-06-27 23:03 2296如何分析问题和需求 万事开头难,需求没有完全分析清楚,系 ... -
软件需求分析方法总结--如何进行软件需求分析(三)
2011-06-27 23:02 14708.需求分析的过程 需 ...
相关推荐
**UML用例图详解** 在软件工程领域,UML(统一建模语言)是一种用于系统分析和设计的标准建模工具。用例图是UML中的一个重要组成部分,它主要用于描述系统与用户之间的交互,以及系统如何满足不同用户的需求。本文...
《学生管理系统UML用例图详解》 在软件开发领域,UML(统一建模语言)是一种标准化的建模工具,用于描绘系统的行为和结构。本文将以学生管理系统为例,深入探讨如何利用UML进行系统建模,特别是用例图的构建。 ...
### UML用例图详解 #### 一、UML用例图概述 UML(统一建模语言)用例图是一种用于系统需求分析的重要工具,它着重于展示系统与外部参与者之间的交互,以及系统需要提供的服务。用例图是UML中的一种静态视图,用于...
UML用例图规范用例子的编写,对于正在学软件工程或者UML的同学,会很有帮助的。欢迎下载!
解析 UML 用例图中 include 与 extend 的区别 UML 用例图是软件开发过程中的一种重要工具,它能够帮助我们更好地理解和描述业务需求。在 UML 用例图中,有两种重要的关系:include 和 extend。这两种关系都是用来...
**UML用例图(Use Case Diagram)是统一建模语言(Unified Modeling Language)中的一种图形表示形式,用于描述系统或软件的外部行为。它主要关注系统的功能需求,通过图形化方式来展示用户(Actors)与系统(System...
《UML用例图实例讲解》 UML(统一建模语言)是软件开发中用于系统建模的重要工具,其中用例图是描述系统功能需求的关键图表。本章将深入探讨用例图的概念、建模技术和一个实际的图书馆管理系统用例图的案例。 5.1 ...
UML 用例图实例及设计文档 以下是对给定文件信息的详细解释: 标题:UML 用例图实例及设计文档 描述:本资源中用例图是关于学校选修课系统、电路采样系统、新闻管理系统的实例。 标签:UML 用例图 选修课系统 ...
而传统的UML用例图等方法不足以完整描述产品线需求,特别是其变化性。通过分析软件产品线开发过程和软件产品线需求建模的特殊性,采用扩展UML用例图标签的方法,实现对软件产品线需求的明确描述。以网络图书销售软件...
本篇文章将深入探讨如何运用UML的用例图、协作图和序列图来构建一个简单的选课系统,旨在为初学者提供实用的参考。 一、用例图(Use Case Diagram) 用例图是UML中的重要组成部分,它展示了系统的主要参与者...
**UML用例图详解** UML(统一建模语言)是软件开发中的一种标准化建模工具,用于可视化和理解系统的功能需求。其中,用例图(Use Case Diagram)是UML中的一个重要组成部分,它提供了对系统外部行为的高层次视图,...
UML用例图之泛化关系 UML用例图是面向对象系统建模中最常用的图形化工具之一,用于描述系统中的类、接口、对象及其之间的关系。其中,泛化关系是UML用例图中的一种重要关系,表示"is-a"关系,即子类继承父类的所有...
在画用例图的时候,理清用例之间的关系是重点。用例的关系有泛化(generalization)、扩展(extend)和包含(include)。其中include和extend最易混淆。下面我们结合实例彻底理清三者的关系。基本概念用例图...
**UML用例图及流程图标准** 在软件开发领域,统一建模语言(Unified Modeling Language,简称UML)是一种标准化的图形表示方法,用于描述系统的行为和结构。UML用例图和流程图是其中两种重要的图表,它们分别从不同...
理解 UML 用例图中的包含、扩展、泛化关系 UML 用例图是Unified Modeling Language(统一建模语言)中的一种图形表示方法,用于描述系统的功能和行为。在 UML 用例图中,包含、扩展和泛化是三种基本关系,它们之间...
**UML用例图实例讲解** UML(统一建模语言)是软件开发过程中的一种标准化建模工具,它提供了一套图形化的方式来描述系统的行为、结构和关系。在UML中,用例图(Use Case Diagram)是描述系统外部参与者(Actor)与...
**UML用例图详解** UML(统一建模语言)是软件开发中常用的一种建模工具,它提供了一种标准化的方式来描述系统的行为和结构。其中,用例图(Use Case Diagram)是UML中最基础的图表之一,主要用于描绘系统与用户、...
在本例中,我们将深入探讨一个UML用例图,该图用于描述一个在线购物系统,涵盖了管理员、会员和游客的主要操作。 首先,我们来看一下系统的核心需求。在线购物系统允许管理员将商品信息发布到平台上,进行商品信息...
关于uml用例的简介、用例图的画法、用例图的定义域说明。