作者:张克强    作者微博:张克强-敏捷307

来自于科伯恩《编写有效用例》对业务用例的说明

在《使用 UML 进行业务建模:理解业务用例与系统用例的相似和不同之处》中分析科伯恩编写有效用例如下:

Cockburn 的 Writing Effective Use Cases 给业务和系统用例使用了相同的用例说明模版。业务用例与系统用例说明使用这个模版的区别是设计范围,而不是模版。Cockburn 想通过目标层次对用例进行分类,如表格1所示。

图1: Alistair Cockburn 对业务和系统用例的分类

高层概要

概要

用户目标

子功能

最低层

Cockburn 编写 Writing Effective Use Cases 的最初目标是系统用例,但他在业务用例上也花了很多精力。他利用目标层次来区分业务与系统用例,而不是使用不同的模版类型。那么这些图标和目标层次又意味着什么呢?

这些图标本身代表着一个简单的系统,它是根据用例与“海平面”(用户的实际层次)的相对高低来确定的。系统用例的最佳点是用户目标,通过海平面图标来表明。有时候需要将复杂的系统用例分解成其它有子功能目标、通过鱼图标表明的用例。但是您应该尽量避免将海平面系统用例分解成蛤或者最低层系统用例。

也许您会猜测到,概要或者蛤用例应该是业务用例。云或者高层概要也可能是业务用例。

Cockburn 的方法是将这些用例看作是一个光谱,从一个组织的最高层次业务目标,到为实现这些业务目标而执行的软件解决方案的需求详细资料。这种方法将系统用例看作是一个业务用例的分解。这个用例分解方法可以用来帮助您从这个业务模型驱动系统用例模型。

业务用例在编写有效用例的位置

编写有效用例的章节安排是一开始就直接讲用例,第一部分的标题用例体部分,没有提到业务用例,是到第二部分的第15章才提到业务过程建模和业务用例,第15章总共的篇幅6页。第2部分的标题是经常讨论的主题,第12章是第二部分的第1章,标题是什么时候才算完成,第13章标题是扩展到多个用例;第14章标题是CRUD和参数化用例。

关于业务用例的两个坏消息

他在第15章最后说到:

业务用例与系统用例具有相同的特征,因此编写和评审用例的方法对两者都适用。在业务用例中说明的东西,也会在系统用例中说明。这形成了系统用例和用户用例之间的合作。但这样带来了两个坏消息。

第一:编写者和读者经常把二者弄混,可能把系统行为放入业务用例中,也可能把业务操作归于系统用例。如果能够商量着去做将会有所帮助。但通常编写者和读者不会认识到这样做的重要性。使用系统用例的读者批评业务用例所处层次太高,但却没有认识到提供系统详细的行为细节不是业务用例应该做的;业务用例编写者偶尔把系统行为细节写入其中,结果导致业务主管对这类有详细细节行为的文档失去了兴趣。

第二:完全且正确的连接系统和用户用例不太值得。通常,业务用例编写者应对业务过程到系统使用(通常没有描述)进行描述。而在描述日常生活中客户如何使用新系统之前,用例编写者已经花光时间、财力、精力以及热情。而系统用例编写者有时为了保持一致,会在业务过程中加一两句,但是他们通常不愿意重写一个包含新系统功能的业务用例。这样就在系统用例和业务用例之间形成了空隙,即系统用例和业务用例之间的不一致。

虽然科伯恩在后面附了来自于FirePond公司使用业务用例的正面例子,但可以看出那是少数派。

需求用例分析之六:业务用例之科伯恩系相关推荐

  1. 需求用例分析之八:用例颗粒度

    作者:张克强    作者微博:张克强-敏捷307 RUP系的考虑 在RUP中,没有对用例的颗粒度给出清晰的指导.2004年Rational 中国区技术销售经理 傅纯一发表一文<用例建模指南> ...

  2. UML用例建模,业务用例建模、概念用例建模、系统用例建模,领域建模

    在面向对象软件开发的过程中,针对复杂系统,我们一般会先进行相关建模来了解现实世界问题,通过抽象方法,建立模型来表征现实世界,获得对现实事物本身的理解,然后将这些理解到的知识概念化,并将这些逻辑概念组织 ...

  3. 需求用例分析之七:业务用例之小结

    作者:张克强    作者微博:张克强-敏捷307 RUP虽然对于业务对象建模进行了详细的说明,但其本身并没有把业务对象建模(领域模型).业务用例作为必须的工件.Rational系方法把业务用例作为需求 ...

  4. 需求用例分析之九:序列图

    作者:张克强    作者微博:张克强-敏捷307 序列图,也称时序图.顺序图,英文名Sequence Diagram.在雅各布森用例分析方法中鼓励使用各类图形来表达,但恰恰没有明确提到序列图.而科伯恩 ...

  5. 苍狼敏捷需求用例分析方法简介并讲义下载

    作者:张克强    作者微博:张克强-敏捷307 用例分析方法已经有不短的历史,发展出了多种用例分析方法.笔者花费了大量时间,对用例分析的各个方面进行实践和分析,得到如下系列文章: 需求用例分析之一: ...

  6. 需求用例分析之二:级别设置

    在<编写有效用例>(阿莱斯特-科伯恩著,以下用科伯恩用例来指代)一书中,赋予了用例不同的级别,科伯恩形象的设定了如下级别:海平面.云朵.风筝.蛤等等. 科伯恩建议用例级别分为多个个目标层次 ...

  7. 需求用例分析之四:业务规则

    作者:张克强 作者微博:张克强-敏捷307 在雅各布森用例分析方法和科伯恩用例分析方法中用例本身其实都没有"业务规则"的属性.但是业界使用中常常会给用例加上这个属性,这是为什么呢? ...

  8. OO系统分析员之路--用例分析系列(4)--业务建模一般步骤和方法[整理重发]

    本篇开始之前先扯点闲话,商业应用系统开发经历了三个阶段: 第一个阶段以计算为中心,分析设计围绕程序的运行效率,算法优劣,存贮优化来进行.90年代的大学课程讲的都是这些. 第二阶段以数据为中心,分析设计 ...

  9. 需求分析阶段的工作(一):业务用例和系统用例

    在这里要申明的是逻辑模型并不能完全算需求分析阶段的工作,因为它包含了设计模型的概念,但是我又把它归纳了一块到需求分析阶段,原因在于逻辑模型中存在了业务对象模型和分析模型的概念. 言归正传,先来看用例模 ...

最新文章

  1. Rails 添加新的运行环境
  2. 视频|深度相机与应用
  3. Android手机在获取root权限下的抓包过程
  4. 《深入浅出设计模式-中文版》读书笔记-工厂模式(五)
  5. 一个程序员的奋斗经历1
  6. 双点双向重分发中的次优路径和环路问题
  7. C++11创建线程的三种方式
  8. linux中如何从txt转为nc文件,【转】linux下nc的使用
  9. linux删除登录密码,Linux重置登录密码
  10. 在线计算机表格制作,excel表格制作,教您excel怎么制作表格
  11. 什么是表示学习(representation learning)表征学习 表达学习
  12. Git 与 Github 基础一步入门
  13. 区分java的三大版本:JavaSE、JavaME、JavaEE
  14. python人物抠图算法_Python实现AI自动抠图实例解析
  15. ThinkPHP 虚拟主机 跳转public主页设置
  16. Linux的wget命令详解
  17. Crash Error Debugging
  18. display: inline-block换行问题
  19. docker跨主机网络——overlay与macvlan
  20. 梳子刻字刻什么好_校园石阶上被刻了1700多个汉字,这次网友却说好

热门文章

  1. 分布式CAP详解,为什么三个指标不可能同时做到。
  2. sql 获取两个月内数据_如何在3个月的时间内自学成为数据分析师?
  3. android 坐标图绘制曲线,Android艺术之画一条平滑的曲线
  4. 数据分析python有趣分享_Python有趣|数据分析三板斧
  5. always on sql 收缩日志_SQL Server AlwaysOn日志收缩
  6. 在c语言中下面指针,c语言指针的知识点
  7. nGQL-为什么路径越长,数量越多呢,直觉是条件越严格,路径数量会越少
  8. 一种新的url定向技术-使用@与/?
  9. is not None与not某某 的区别
  10. f1 score与f2 score的区别