关于用例图的概念相信不用我去说了 .能看到这篇文章的都是知道用例图概念的人.

UML 中最重要的是什么图呢 ?毫无疑问应该是用例图 ,用例是后期时序图 和实际开发的重要依据.

说明一下用例图是怎么产生的.了解他的产生对我们了解它本身有很大帮助,

首先用例产生在需求分析阶段 ,这这个阶段系统分析人员对用户对系统要求的理解 .也就是用户的愿望的描述.有时候我们习惯把用例说成系统的功能. 
但是.用例一定是系统的功能.但是功能不一定是系统的用例

比如系统要求我在断电的时候要把数据保存起来.但是这个能写在用例里面吗?当然不能

这只不过是系统的一个限制.不能算是一个完整的愿望.

接着说明一下用例的特点.然后根据特点来说明用例的建立过程

用例特点:

一:用例是相对独立完整的.一个用例不需要其他用例来完成和它进行交互.也就是说.我在实现这个用例的过程中.不能出现做完用例1,然后才能做用例2.

比如

我们去买菜

显然第一个不是一个用例.给钱只是买菜的一部分.不能单独成为一个用例

二:用例的执行结果对于参与者来说是可见的.有意义的.

这句话的意思就是说.一个用例必须有一个确定的结果.这个结果是有意思的.比如到银行取钱.

显然第一个不是一个用例.因为输入密码以后到底是什么结果.密码正确?还是错误.这些结果都是未知的.一个结果未知的过程.不能算做一个用例.

三:一个用例必须是由一个参与者发起.不存在没有角色的用例.用例也不该自动启动.

这个也是我们经常遇到的一个问题.

解决这个问题的时候.我们要首先确定用例边界.我们在那个范围之外去寻找用例.不同的范围会产生不同的用例.

比如我们要以系统为边界去确定用例.那么角色就应该是系统之外的东西.不应该是系统.

比如:

显然ATM不是一个角色,我们设计的用例也不应该包括ATM出钱这个用例.ATM是我们系统的一个部分.他最终出现在部署图上.就像是我们的一台PC 一样.不在边界之外.

四:用例一定是动宾短语

比如:喝水 取钱 买菜 做饭等

因为这样才能构成一个完整的事件.角色是主语.动宾短语是动作和动作的受体.这样主,谓,宾都有了,才是一个完整的事件.

五:一个用例是一个需求单元,分析单元,设计单元,开发单元,测试单元.

设计完一个用例.我们接下来的工作都要以单个用例为主线去开发.测试.这样就印证了开篇的那句话.用例对于开发来说是相当重要的.

那么用例是如何确定的呢?

一:确定系统的边界

二:确定业务主角.这个是最重要的,也是常常困扰我们的地方.业务主角是与系统交互的人和事物.

让我们常常困惑的是.有些业务人员.他明明参加了业务.但是他却是被动参加的.不好说明他有什么目的.但是又确实是在系统中做了事情.

这样的业务人员.我们把它叫做业务工人 .不是业务主角.

区别他的办法就是回答下面三个问题.

1:他是主动向系统发出请求的吗?

2:他是完整的业务目标吗?

3:系统为他服务吗?

三:参与者到角色的过度.

参与者是一个具体的概念.角色是一个抽象的概念.从众多的参与者当中,抽象出相同的一部分.就形成一个角色.

比如:教授,副教授都可以讲课 ,把它们抽象出来.做出老师讲课.

最后.检查是否找到了所有的参与者.

通过下面这些问题来做出测试:

1:是否对系统中的所有角色都进行了建模和说明

2:每个参与者是否至少涉及到一个用例

3:你是否列出至少两名可以作为特定参与者的人员

4:是否有两个参与者担任与用力相关的角色

5:参与者是否有直观的描述性名称

最后将参与者和他们的愿望结合起来.就形成了用例图.记得最后形成的一定是一个完整的事情.由参与者做主语.用例做谓语和宾语.

PS:

用例图只是一些符号.抽象程度较高.一百个人看了也不一定结果相同.所以用例要附加相关的用例文档加以说明.

用例形成映射基本就是用户界面(UI).这一点大家要清楚.不要做了用例.再回头从新找界面.

下一篇:UML图的出现顺序

转自:http://blog.csdn.net/lsh6688/article/details/6236291

UML从需求到实现----用例的更多相关文章

  1. UML从需求到实现---类图(1)

    上次写到了UML的包图,用例等:接上:UML从需求到实现---包图 按照UML中图的出现顺序.当做完包图以后.我们下一步要做的当然是类图,类图也是UML中的三大核心图之一. 看到很多文章在描述类图的时 ...

  2. uml 在需求分析阶段的应用

    上一篇博客写了uml在软件开发过程中的应用,这以篇要详细介绍一下UML在需求分析过程中的应用. 以机房收费系统为例进行讲解,先介绍一个该系统. 首先该系统的用户分为三个等级,一般用户,操作员,管理员, ...

  3. UML在需求分析阶段的应用

    转自:https://www.cnblogs.com/fuhaots2009/p/3430666.html 上一篇博客写了uml在软件开发过程中的应用,这以篇要详细介绍一下UML在需求分析过程中的应用 ...

  4. UML大战需求与分析--阅读笔记4

    今天阅读了UML大战需求与分析第五.六章. 第五章,状态机图(State Machine Diagram),状态机图是通过描述某事物状态的改变来展现流程的.一般适用于流程围绕某个事物展开,例如请假的流 ...

  5. UML从需求到实现---类图(2)

    上节写到了UML中的类图:UML从需求到实现---类图(1) 写完以后总觉得写的不够详细.里面很多细节没有说到.一篇文章就把强大的面向对象的类说完.当然是不可能的.这次我再补充一些关于UML中类图和类 ...

  6. UML和模式应用4:初始阶段(4)--需求制品之用例模型模板示例

    1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...

  7. UML和模式应用4:初始阶段(3)--需求制品之用例模型

    1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...

  8. UML从需求到实现----包图

    上接:UML中图出现顺序 上回讲到用例图,UML中各个图之间的关系.接着根据UML建模中图出现的顺序来总结包图. 用例图确定以后.用户的需求基本上就确定了.接下来要根据用户的要求去设计系统.建模的顺序 ...

  9. 2013(1)需求工程, 需求开发, 需求分析, 面向对象需求分析, UML,需求建模

    案例一 某软件公司拟为物流企业开发一套库存管理系统,该系统的部分需求陈述如下: (1) 库存管理系统主要包括货物入库管理.货物出库管理.仓库管理.统计报表和系统管理等功能. (2) 库存管理系统的用户 ...

随机推荐

  1. ci下面的增删改查

    首先,我们创建一个模型( 项目目录/models/),请注意:模型名与文件名相同且必须继承数据核心类CI_Model,同时重载父类中的构造方法.     CodeIgniter的数据函数类在 \sys ...

  2. 大理石在哪?(Where is the Marble?,UVa 10474)

    参考:ACM紫书 第五章 P108 [排序与检索] 下面的代码中有些 提示性输出,想Ac 需删除提示性输出语句,读者自行修改. #include <cstdio> #include < ...

  3. Java开源数据库管理工具

    SQuirreL SQL Client   SQuirreL SQL Client 是一个用 Java 编写的程序,它允许您查看数据库的内容.发出 SQL 命令,以及如您将看到的,执行许多其他功能.构 ...

  4. iOS-UIView category

    UIView+Extension.h #import <UIKit/UIKit.h> @interface UIView (Extension) @property (nonatomic, ...

  5. sql复制数据表和表结构

    SQL复制数据表 (select * into 与 insert into) select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) sele ...

  6. Entity Framework 简单增删改操作

    前言 在 Entity Framework 简单查询操作 中主要是学习了在Entity Framework中的几种不同模式的查询操作,现在主要来学习一下简单的增加.删除.修改操作. 增加 在EF中添加 ...

  7. SpringMVC关于json、xml自动转换的原理研究

    SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC ...

  8. Forth scrum meeting - 2015/10/29

    今天下午,我们终于要到了MOOC服务器端开发人员的联系方式,于是我们小组派了三名同学去实验室与他们进行了交流,并咨询了他们一些关于API接口的问题.他们也对我们这个客户端的开发提出了一些建议. 开发团 ...

  9. Twelfth scrum meeting 2015/11/9

    第一阶段的开发即将结束,工程代码已经集合完毕,计划在2015年11月10日发布第一阶段的成果,本次会议主要商量下一阶段需要完成的工作以及页面修改,还有测试人员的bug整理. 会议记录: 第一项:界面修 ...

  10. hiho #1143 : 骨牌覆盖问题·一 (运用快速幂矩阵)

    #1143 : 骨牌覆盖问题·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 骨牌,一种古老的玩具.今天我们要研究的是骨牌的覆盖问题:我们有一个2xN的长条形棋盘,然 ...