Aaron之无主题空间

皆主题,此谓无主题。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

杂话用例建模【4】:系统用例和业务用例

Posted on 2009-05-31 15:07  Aaron  阅读(1396)  评论(0编辑  收藏  举报
 

所谓的“业务用例”和“系统用例”有什么区别呢?

首先,业务用例和系统用例是相对而言的。

其次,业务用例和系统用例的研究对象不同。

仍以经典的银行为例。

我去银行开户:我在柜台前拿张空白的开户申请单,填写好我的信息,然后把我的身份证和填写好的申请单递给柜员(此处省去排队数十分钟等巨不爽事…)。柜员接个单子,啪嗒啪嗒的把我的信息录入他们的系统。一番折腾后,我面前的密码输入器提示我设置帐号的密码两次。接着,他递出打印了信息的单子,让我签字确认。我签字后递给他,他使劲敲上几个印章,然后把我的存折、身份证以及手续单递给我,并且告诉我办好了。

这是银行很简单很常见的服务,也可以说是银行的功能。其实银行还有很多其它“功能”,比如存钱、取钱、挂失等等。此时,我们其实是在把银行看作一个能提供很多“功能”的“系统”。

同时,在这个过程中,柜员一直在操作银行的软件系统,过程可能是这样的:

柜员首选选择开户功能;软件系统要求柜员将我的信息录入,并选择开户类型(我在申请单上写的是活期);软件系统可能会检查我的身份证号是否合法;软件系统为我生成一个银行帐号;软件系统会问柜员我是否要密码(我在开户申请单上注明了需要),所以软件系统提示我设定密码;软件系统将我的存折打印出来。

银行的软件系统给柜员提供了很多功能,除了开户当然也会有存钱、取钱、挂失等。但这些功能是银行的软件系统提供给银行职员的。

这样我们综合上述两个过程来看,其实我们在研究两个层次的“功能”。第一层次是银行提供给银行的客户的功能;第二层次是软件系统提供给银行职员的功能。如下图所示:

 

当我们对银行的业务进行建模时,我们会把银行看作一个整体,去研究银行会提供给客户哪些服务。此时我们的研究对象是银行

 

 

 

当我们对银行的软件系统进行建模时,我们把软件系统当作一个整体,去研究它需要提供哪些功能给银行的职员使用。此时我们的研究对象是银行的软件系统

 

这样我们为了区分起见,把前者称作“业务用例模型”;相对的,把后者称作“系统用例模型”。

业务用例和系统用例在用例技术的使用上没什么差别,如用例的关系、用例的描述等。

在业务模型中还有一个概念,即“业务工人(Business Worker)”。业务工作表示实现业务的人、软件或硬件等角色。比如银行的“开户”业务用例中,银行柜员、软件系统、打印存折的打印机等都可看作是“业务工人”。

为什么要做业务建模?请参阅《Use Case的“前因”、“后果”》(待出)。