在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. jquery的end(),addBack()方法example

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. C# 发送邮件方法

    发送邮件所用的核心知识点 微软封装好的MailMessage类:主要处理发送邮件的内容(如:收发人地址.标题.主体.图片等等) 微软封装好的SmtpClient类:主要处理用smtp方式发送此邮件的配 ...

  3. 查找Safari相关迹证

    日前有取证的同好提及Safari,想了解详细步骤,因而在此再补充说明相关. 除了Winodws外,Mac OS X也有为数不少的使用者,以下便以OS X自带的Safari浏览器为例,来查看有哪些重要迹 ...

  4. ASP.NET MVC SignalR

    本系列博文主要介绍了 ASP.NET SignalR 的相关知识与开发,参考来源为<ASP.NET SignalR 编程实践>. 目录: SignalR背景 SignalR概述

  5. 2_JavaScript日期格式化

          第二章 JavaScript 时间格式化 2.1 Ticks 转换为常规日期 2.2 常规日期格式化 <input type="button" value=&qu ...

  6. DBLINK 创建与小结

    1.DBLINK 的作用 当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数 ...

  7. js 获取当天23点59分59秒 时间戳 (最简单的方法)

    js 获取当天23点59分59秒 时间戳 (最简单的方法) new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60* ...

  8. [译]Cassandra的数据读写与压缩

    本文翻译主要来自Datastax的cassandra1.2文档.http://www.datastax.com/documentation/cassandra/1.2/index.html.此外还有一 ...

  9. 使用maven, myeclipse工具构建spring mvc项目

    一.使用myeclipse 创建一个新的 maven项目. (ps:1.在filter过滤的时候输入 webapp 选择"maven-archetype-webapp". 2.在m ...

  10. mysql 格式化时间

    SELECT phone,chang, msg, linkid, DATE_FORMAT(mo_time, '%Y%m%d%H%i%s') FROM mo http://www.w3school.co ...