在UML 中use case 似 乎最簡單的,用例建模的最主要功能就是用来表达系统的功能性需求或行为,依我的理解用例建模可分为用例图和用例描述。用例图由参与者(Actor)、用例 (Use Case)、系统边界、箭头组成,用画图的方法来完成。用例描述用来详细描述用例图中每个用例,用文本文档来完成,以及由箭头所组成的各种关系,包括泛
化,包含,扩展等。本文准备向大家介绍以下内容,所有图示均用PowerDesigner所画.

u       用况 或者可以叫用例

u       参与者

u       泛化

u       <<use>>

u       <<include>>

u       <<extend>>

u       用例描述

1.              用况( use case )  

  

图1 用况图

是对一组动作序列(其中包括它的变体)的描述,系统执行该动作为执行此动作的参与者产生一个可观察的结果值。比如你使用计算器,这里可以把计算器看作为用况,参与者是登峰,登峰按了3+3(用况执行的序列),计算机器返回一个结果6。

2.              参与者 (Actor)

参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是 时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。比如小明是图书馆的管理员,他参与图书馆管理系 统的交互,这时他既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆借书,在这里小明扮演了两个角色,是两个不同的参与者。参与者在画图中用简 笔人物画来表示,人物下面附上参与者的名称。

3.              泛化

泛化和类中的泛化概念是一样的,子用况继承父用况的行为和含义,还可以增加或覆盖父用况的行为; 子用况可以出现在任何父用况出现的位置(父和子均有具体的实例)。下面给出两种图示来说明泛化的概念和含义                                             

           

    
    
    

图2 含义继承                                 图3 行为继承

4. <<user>>

<<use>>: 其关系非常象一个函数调用或一个子过程以这种方式使用的用例称为抽

象用例因为它不能单独存在而必须被其它用例使用,请看下图

 

           图4 使用<<use>> 示例

5. <<include>>

怎么解释这个定义呢? 还是说明一下它的功能吧,<<include>> 可以把几个用例的公共步骤分离出来成为一个单独的被包含用例。学过C 的朋友知道它的含义了吧。呵呵

好的,定义都已经知道了,下面用一个示例来加深大家的印象。假如有个人事系统,经理可以查看员工的信息,并可以增加,修改和删除,但每次执行这三个操作时,都要定位到相应的员工,即先查询定位到要操作的员工。图5给出了这种表述的use case 图, 请理解<<include>> 的含义

 图5 <<include>> 的用法

6 . <<extend>>

<<extend>> 为已存在用例添加新的行为提供了一种方法。  基础用例提供了一组扩展点(extend points ),扩展点是钩子,在此可以添加新的行为,扩展用例提供了一组插入片段,这些片段可被插入到基础用例的钩子位置。需要注意的是基础用例不知道扩展用例的任何细节,它仅为扩展用例提供了钩子。这与<<include>> 不同,此时如果没有被包含用例,客户用例将不完整。图6说明了主述文字描述

               

            图6 <<extend>> 的用法

7.用例描述

当然用例描述就是对用例的文字性说明。具体要描述哪些项,这里就不多说了,给大家一个具体示例一看就明白。假如有个家教网,下面只是一个抽象片段。主要是为了说明用例描述的含义。

 
 

下面就是用例网站公告发布的用例描述

用例名称 :网站公告发布

用例标识号 :202

参与者 :负责人

简要说明 :

  负责人用来填写和修改家教网站首页的公告,公告最终显示在家教网站的首页上。

前置条件: 

  负责人已经登陆家教网站管理系统

基本事件流:

 1. 负责人鼠标点击“修改公告”按钮

 2. 系统出现一个文本框,显示着原来的公告内容

 3. 负责人可以在文本框上修改公告,也可以完全删除,重新写新的公告

 4. 负责人编辑完文本框,按“提交”按钮,首页公告就被修改

 5. 用例终止

其他事件流 A1 :

 在按“提交”按钮之前,负责人随时可以按“返回”按钮,文本框的任何修改内容都不会影响网站首页的公告

异常事件流 :

 1. 提示错误信息,负责人确认

 2. 返回到管理系统主页面

后置条件 :

 网站首页的公告信息被修改

注释:无

  

以上是网上搜集到的信息,地址是:http://blog.csdn.net/liuguizi/article/details/6451106

现在简单介绍下如何使用starUML画用例。

首先,打开starUML,如下图

(2)打开后会出现一个类似于选项卡的东西,我们在这里是做用例图,所以我们选择 空工程(和VS一样吧),确定,如下图。

(3)此时,软件为我们生成了一个空工程,

在右边的“Model Explorer”框中选定“Untitled”节点,这是整个工程的根节点,在右边的“Properties”框的“Title”项填写工程的名称。

   (3)在StarUML中,模型是包含软件模式信息的元素,右键项目根节点,在弹出的菜单中选“Add/Model”,则在根节点下新建节点“Model1”,此时可以输入模型名称,也可以选定“Model1节点”,在右侧“Properties”框的“Name”项为其改名
(4)在StarUML中,图则是表示用户特定设计思想的可视元素的集合,右键刚才添加的模型节点,在弹出菜单中选“Add
Diagram”,在展开的下级菜单中有多种图供选择,这里我们选“Use CaseDiagram”,此时可以输入图名称,也选定“UseCaseDiagram1”节点,在右侧“Properties”框的“Name”项为其改名,如下图

 
此时我们已经建立一个空的用例项目,我们可以使用左边的图标进行,画图。在这里,我简单介绍下右边工具选项中出现的选项含义,
在左侧的“ToolBox”中的“UseCase”栏,选择“Actor”图标在左侧的“ToolBox”中的“UseCase”栏,选择“Actor”图标
  他就是 用户
在左侧的“ToolBox”中的“UseCase”栏,选择“Generalization”图标, 它指的是
泛华关系
在左侧的“ToolBox”中的“UseCase”栏,选择“Association,它指的是
联系,用例和用户的联系
 
还在学习,先写这么多吧。





UML 中的用例图解析以及starUML详细介绍的更多相关文章

  1. SD卡中FAT32文件格式快速入门(图文详细介绍)【转】

    本文转自:http://blog.csdn.net/mjx91282041/article/details/8904705 说明: MBR :Master Boot Record ( 主引导记录) D ...

  2. SD卡中FAT32文件格式快速入门(图文详细介绍)

    说明: MBR :Master Boot Record ( 主引导记录) DBR :DOS Boot Record ( 引导扇区) FAT :File Allocation Table ( 文件分配表 ...

  3. 【转】JSF中的三大核心组件 UI标签的详细介绍和使用举例

    JSF提供了大量的UI标签来简化创建视图.这些UI标签类似于ASP.NET中的服务器组件.使用这些标签,可以通过其value,binding,action,actionListener等属性直接绑定到 ...

  4. UML中的用例图

    用例图构成:參与者(actor).用例(use case).子系统(subsystem) 关联(Association) 泛化(Inheritance) 就是通常理解的继承关系,子用例和父用例类似,但 ...

  5. javascript中的变量作用域以及变量提升详细介绍

    在javascript中, 理解变量的作用域以及变量提升是非常有必要的.这个看起来是否很简单,但其实并不是你想的那样,还要一些重要的细节你需要理解变量作用域 “一个变量的作用域表示这个变量存在的上下文 ...

  6. nodejs中exports与module.exports的区别详细介绍

    如果模块是一个特定的类型就用Module.exports.如果模块是一个典型的"实例化对象"就用exports. exports.name = function() { conso ...

  7. js中的数组对象排序(方法sort()详细介绍)

    定义和用法 sort() 方法用于对数组的元素进行排序. 语法    arrayObject.sort(sortby) 参数sortby:可选.规定排序顺序.必须是函数. 返回值 对数组的引用.请注意 ...

  8. Android 项目中文件夹作用(res文件夹详细介绍)

    1. src:存放所有的*.Java源程序. 2. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3. assets:可以存放项目一些较大的资源文件,例如: ...

  9. php中is_null,empty,isset,unset 的区别详细介绍

    is_null, empty, isset, unset 我们先来看看这4个函数的描述. isset 判断变量是否已存在(配置)unset 把变量删除(释放)掉empty 判断变量是否为空is_nul ...

随机推荐

  1. myeclipse上SVN代码合并详细步骤图解

    1.  在装有svn插件的myeclipse中,在主干上选择需要合并的文件或文件夹 右击 -> 合并(merge) 2. 选择合并类型--合并两个不同的树 Merge -> Next 3. ...

  2. boa服务器安装

    boa是一个轻量级的web服务器,单进程单任务模式,支持CGI,是嵌入式行业应用较广的一个轻量级服务器系统. 这是我准备往嵌入式开发板里移植的时候在ubuntu上做的实验.多少有点参考价值. 现在简要 ...

  3. 举例详解CSS中的继承

    CSS的继承是由所使用的样式属性定义的.换句话说,当你查看CSS属性backgruound-color,你会看到一栏「继承性」,也许你几乎没有在意过它,但是它还是十分有用的.什么是CSS继承 每一个元 ...

  4. Linux下Mysql主从复制(Master-Slave)与读写分离(Amoeba)实践

    一.为什么要做Mysql的主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻 ...

  5. [leetcode]_Integer to Roman

    题目:对应之前那道将罗马数字转换整型数字的题目.反过来. 思路:刚开始做的时候,想着用程序进行判断,复杂的要死.网络了别人代码,非常清晰. 代码: 1 public String intToRoman ...

  6. 关于软件开发中兼容win7注册表的解决方案

    关于软件开发中兼容win7注册表的解决方案   编写人:CC阿爸 2014-3-14 l  近来在开发一winform程序时,发现在xp 系统访问注册表一切正常.可偏这个时候,微软又提醒大家.Xp今年 ...

  7. NetCat使用手册

    简介:   在网络工具中有“瑞士军刀”美誉的NetCat(以下简称nc),在我们用了N年了至今仍是爱不释手.因为它短小精悍(这个用在它身上很适合,现在有人已经将其修改成大约10K左右,而且功能不减少) ...

  8. php excel (转)

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和 PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把clas ...

  9. ajax向前台输出二维数组 并解析

    最近在弄一个售后数据统计的功能,里边需要统计特定时期内各种客户.机型的分布比例,单单table来计算并显示很死板(一点也不酷) 于是决定用jquery插件flot并通过ajax传输数据 :flot的折 ...

  10. linux网络子系统内核分析

    1.选择路由 若要将数据包发至PC2,则linux系统通过查询路由表可知168.1.1.10(目的地址)的网关地址为192.168.1.1,此时linux系统选择网卡1发送数据包. 2.邻居子系统(通 ...