一. 用例图目的
1) 界定系统范围。
2) 描述参与者实现的目标和希望系统执行的一定功能。
3) 描述系统功能与外部系统,人,组织交互的关系。

二. 用例分解的规则
1) 用大型用例描述参与者实现的主要目标。
2) 用尽量少的主要用例描述系统的行为。
3) 避免将用例分解过细,用例应基于用户对系统的体验,而不是系统内部的处理。用例图无需表现功能实现步骤,具体步骤可以在文档中描述。

三. 用例图关系
1) 用包括(include)显示用例的细节。
a) 包括(include)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基用例复用。
b) 当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例。
c) 当用例划分太细时,也可以抽象出一个基用例,来包含这些细颗粒的用例。

2) 用泛化(generalization)显示共享目标。
子用例和父用例相似,但表现出更特别的行为。子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。

3) 用扩展(extend)分离特定条件下的用例。
将基用例中一段相对独立并且可选的动作,用扩展(Extend)用例加以封装,再让它从基用例中声明的扩展点上进行扩展,从而使基用例行为更简练和目标更集中。

UML用例设计的更多相关文章

  1. uml与数据库设计

    一.类之间的关系如下图所示: 二.UML与数据库设计主要讨论的内容: 三.依赖关系强调的是类操作间的使用关系,类图到表结构的映射中并不涉及这种关系,所以只需讨论泛化关系.关联关系到表的映身规范. 1. ...

  2. php : 单例设计演示

    单例 : 保证只有一个实例 <?php /* * 单例设计 */ // 单例: 只能"创造"出它的一个对象实例 class Single{ // 第一步: 私有化构造方法 p ...

  3. Spring容器-ApplicationContext的单例设计

    Spring容器-ApplicationContext的单例设计   每次通过new创建一个ApplicationContext容器,都会执行refresh方法,看源代码了解到这个refresh方法会 ...

  4. Swift中简单的单例设计

    import Foundation class Test: NSObject { // 提供单例实例 static let shareInstance = Test() // 私有化构造方法 over ...

  5. visio UML用例里面找不到include关系

    今天用Microsoft Visio 2007画用例图时,发现visio UML用例里面找不到include关系,查到一个可行的解决办法:  1)创建一个UML用例图模板:打开Microsoft Vi ...

  6. JAVA设计模式:单例设计

    1.单例设计Singleton的引出 单例设计,从名字上首先可以看出单---即只有一个,例---只的是实例化对象:那么单例也就是说一个类,只产生了一个实例化对象.但是我们都知道,一个类要产生实例化对象 ...

  7. 新增和修改页面的用例设计和Bug提交

    问题: 新增页面和修改页面,基本上输入框都一样,那比如同一个输入框的用例设计: 1. 写了新增页面的用例,修改页面对该输入框还有再写一遍用例的必要吗? 2. 执行用例时,新增页面验证了必填项,长度,数 ...

  8. 用例设计之APP用例覆盖准则

    基本原则 本文主要讨论APP功能用例的覆盖,基本原则: 用户场景闭环(从哪来到哪去) 遍历所有的实现逻辑路径 需求点覆盖 覆盖维度 APP功能用例设计主要使用传统的黑盒用例设计方法.同时,作为移动AP ...

  9. 服务端用例设计的思(tao)路!

    服务端的测试简单来说就是除了前端以外的的测试. 总的来说可以分为以下两类: 1.     WEB或者APP的提供业务逻辑的服务端接口测试 2.     数据库.缓存系统.中间件..jar包依赖.输入输 ...

随机推荐

  1. Cocos2D实现上下滚动式状态窗口

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 有时候要显示的内容太多,我们无法在iOS设备的小屏幕上显示出来 ...

  2. 4.QT中进程操作,线程操作

     QT中的线程操作 T19Process.pro SOURCES += \ main.cpp CONFIG += C++11 main.cpp #include <QCoreApplicat ...

  3. Android View框架总结(一)

    View和Activity的区别 View有哪些? ViewGroup是什么? 为什么Google产生ViewGroup? View的层级结构是什么? View的onMeasure()/onLayou ...

  4. 快速高分辨率图像的立体匹配方法Effective large scale stereo matching

    <Effective large scale stereo matching> In this paper we propose a novel approach to binocular ...

  5. Hibernate3 Criteria对象详解

    1.序言 Hibernate框架是目前JavaEE软件开发的企业主流框架,学习Hibernate必然要掌握ORM(对象关系映射Object/Relation Mapping)的概念思想, Hibern ...

  6. iOS中 喷枪打字动画的实现

    实现原理比较简单,这里不做过多介绍. #import "ViewController.h" @interface ViewController () @property (weak ...

  7. 【Unity Shaders】Reflecting Your World —— Unity3D中的遮罩反射(Masking Reflections)

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  8. java中Error与Exception有什么区别

    Error类和Exception类都继承自Throwable类. Error的继承关系: java.lang.Object  java.lang.Throwable      java.lang.Er ...

  9. Mybatis事务(二)事务隔离级别

    一般数据库的隔离级别有4个,由低到高依次为Read uncommitted.Read committed.Repeatable read.Serializable,这四个级别可以逐个解决脏读.不可重复 ...

  10. Visual Studio 2010多线程编程

    随着处理数据量的逐渐增大,串行单核的程序,犹如残灯缺月,无法满足运用需求.大规模集群的出现,解决了这一技术难题.本文旨在探讨如何使用多CPU并行编程,关于CUDA的并行前面文章已有讲述.本文结构分为三 ...