在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. 返回到管理系统主页面

后置条件
 网站首页的公告信息被修改

注释:无

  

好,用例部分就先介绍到这,它在建模中主要用于整个系统的抽象描述。是在功能层的描述。上班时间到了,呵呵

UML中的用例(Use Case)概念分析及StarUML实例的更多相关文章

  1. UML 中的用例图解析以及starUML详细介绍

    UML中的用例(Use Case)概念分析及StarUML实例 在UML 中use case 似 乎最簡單的,用例建模的最主要功能就是用来表达系统的功能性需求或行为,依我的理解用例建模可分为用例图和用 ...

  2. koa 基础(十九)es6中的单例

    1.app.js /** * es6中的单例 * 实例化的时候,无论实例多少次,构造函数只执行一次,有利于提高性能 */ class Db { static getInstance() { /*单例* ...

  3. UML中的图

    用例图.类图.包图.顺序图.协作图.状态图.活动图.构件图.部署图等 1.用例图 显示多个外部参与者以及他们与系统提供的用例之间的连接.用例是系统中的一个可以描述参与者与系统之间交互作用功能单元.用例 ...

  4. 浅谈UML中常用的几种图——用例图

    1.UML简介 统一建模语言(Unified Modeling Language,UML)又称标准建模语言,是始于1997年的一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的 ...

  5. UML建模——用例图(Use Case Diagram)

    用例图主要用来描述角色以及角色与用例之间的连接关系.说明的是谁要使用系统,以及他们使用该系统可以做些什么.一个用例图包含了多个模型元素,如系统.参与者和用例,并且显示这些元素之间的各种关系,如泛化.关 ...

  6. UML中的图的出现顺序

    上接:UML从需求到设计--用例 从开始接触UML到现在对UML逐渐有了更深入的了解.刚开始,对于UML总是感觉UML就是图.一提起UML 就想着这个是画图的东西. 具体这些图都是干什么的.为什么会有 ...

  7. uml中定义的关系详细详解

    uml定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.下面对其定义和表示方法逐一说明. 依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依 ...

  8. UML中的交互图<转>

      转自>>http://blog.csdn.net/mingxuanyun/article/details/8572128 交互图用来描述系统中的对象是如何进行相互作用的,即一组对象是如 ...

  9. Objective-c中的单例

    单例是指静态分配的实例,就是只开辟一块内存,不会重新开辟内存,而 iphone sdk 中全是这种实例,例如[UIApplication sharedApplication] 返回一个指向代表应用程序 ...

随机推荐

  1. git的基本使用

    1.在本地新建一个文件夹来存放代码 2.用命令行进入这个文件夹 3.git init --来创建一个代码仓库 3. 配置用户信息:用户名和 邮箱(联系作者本人沟通, 责任到人) git config ...

  2. 0330 复利程序c语言版转java版 会逐渐更进版

    import java.util.Scanner; public class compounding { public static void main(String[] args) { menu() ...

  3. java中的断言

     断言:也就是所谓的assertion,是jdk1.4后加入的新功能. 它主要使用在代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出. 当软件 ...

  4. List, Set, Map是否继承自Collection接口?

    List, Set, Map是否继承自Collection接口? 答:List,Set是Map不是

  5. JS 实现中英文翻译

    缺点就是还是会闪出中文,但是效果还行. var langPackage = { "主题":"Title", "下一页":"Next ...

  6. Android应用开发中的风格和主题(style,themes)

    http://www.cnblogs.com/playing/archive/2011/04/01/2002469.html 越来越多互联网企业都在Android平台上部署其客户端,为了提升用户体验, ...

  7. 解决windows的控制台显示utf8乱码的问题

    在控制台的属性里 修改自体为: 新宋体 在控制台下执行命令: chcp 65001

  8. Mysql 的存储引擎,myisam和innodb的区别

    MyISAM 是非事务的存储引擎,innodb是支持事务的存储引擎. innodb的引擎比较适合于插入和更新操作比较多的应用,而MyISAM 则适合用于频繁查询的应用 . MyISAM --表锁,in ...

  9. 如何在视频处理控件TVideoGrabber中设置音频捕捉设备

    TVideoGrabber不仅可以捕捉视频,还可以作为多媒体播放器,并支持包括C#..NET.VB.NET.C++.Delphi.C++Builder和ActiveX平台,本文将剖析TVideoGra ...

  10. android textView 添加超链接(两种实现方式)

    在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接,下面为大家介绍下这两种方法的实现 在textView添加超链接,有两种方式 ...