分享

用UML进行有效业务建模

 zhuangcy 2010-12-08

用UML进行有效业务建模

    大多数软件开发实践者都知道,UML在对真实世界的现象进行建模时非常优秀。这一特性可以有效帮助分析员和客户进行沟通。
    一些希望使用业务建模的团队常常有一些经验性的问题,例如:
  • 什么时候真正需要业务模型?什么时候用例模型独立存在?
  • 我在进行精确的业务建模时我能用哪些UML图形?我如何知道是否用顺序图或者交互图。有例子吗?
  • 业务模型如何涉及到其他模型(如领域模型,用例模型等等)呢?我如何有机地组织这些模型?

    很不幸,本文的焦点集中于应用UML进行业务建模的问题,而很少把业务建模和系统建模进行比较。这将使用户和分析员对使用UML进行业务建模的感到灰心。
    本文主要通过一个例子讲述它们的关系。这个例子主要用来改进某企业的流程,主要涉及到IT部门、法律顾问、企业架构师、项目经理。

业务用例模型概览

    在这个简单的例子中的第一步是完成业务用例模型概览。如图所示,有两个业务主角和两个业务用例。

 

    我们总结业务用例如下:

  • Prepare Tender:   准备系统说明书的流程。
  • Select Vendor:      选择卖方的流程。

    我们总结业务主角如下:

  • End User Manager:  公司内的需要自动控制系统的部门。
  • Vendor Manager:     卖方的管理者。

    在这个例子中,得到一个新系统的核心业务目标被精化为两个子目标:

  • 详细说明想得到的系统。
  • 选择并评估候选人。  

业务用例规约

    这一部分,我们来看看如何描述业务用例,虽然RUP中对业务用例规约有很详细的模版,但我们主要把精力放在基本流和扩展流上。

    Prepare Tender的基本流:
    用例的目标是确定招标文件,同时可以将招标文件发布给候选卖主。

  1. 指定用户代表。
  2. 用户代表准备系统规约。
  3. IT部门复审系统规约,并改进它,形成招标文件。
  4. 用户代表批准招标文件。

    扩展流:

  • 系统规约无效。当IT部门发现需求太含糊,最终用户的管理者必须重新制作需求。那么这个用例从第二步从新开始,如果最终用户管理者不想继续,也可以终止。
  • 系统已存在。如果IT部门发现这个需要的系统和其它部门存在的系统很类似,IT部门就提交给最终用户管理者。如果最终用户管理者希望继续寻找新系统,他必须写出该系统的特色,并重新提交该说明书,回到第二步,如果最终用户管理者不想继续,也可以终止。
  • 招标文件和需求规约冲突。在第四步,最终用户管理者发现招标文件有问题,它将被拒绝,IT部门必须重新做它,用例在第三步继续。

业务用例实现

    在这部分,我们从几个方面去实现业务用例。

  • 以工作流为中心
  • 以流程自动化为中心
  • 以信息处理为中心

焦点集中在工作流

    我们要精力集中在业务角色的职责上,如图所示,Prepare Tender有三个业务角色:

 

    下面的顺序图描述了Prepare Tender的基本流。

 

    上图中的消息可以映射到每个业务角色的职责(如下图所示)。这个技术非常类似于用例分析。由此可见RUP业务建模的技术是很强大的:相同的技术可用于业务建模和系统建模。

 

焦点集中在流程自动化

    现在我们准备去探索业务主角和业务角色职责,明确什么时候使用业务系统以及如何使用业务系统。在我们的例子中,我们有两个业务系统,如下图所示。
    TMS是准备招标和选择卖主的系统。这是一个新系统。
    CMS是跟踪合同的系统,已存在。
    在RUP中,业务对象建模的指导方针建议可以对“业务系统”定义一个新的泛型图标,在这篇文章中我们将使用“业务角色”图标来表示“业务系统”。将有一个新的图标在新的UML业务建模规范中。

 

    下面的顺序图描述了Prepare Tender基本流的实现,包含了需求的业务系统。

 

    上图中的消息可以映射到业务角色的职责。如下图所示:

 

    从上图中可以得到系统用例,如下图:

 

焦点集中在信息处理
      
    现在让我们看看业务用例在信息处理上的实现,这就是说,有多少业务实体。经过分析,我们将得到四个业务实体,如下图:

 

    下图是实现Prepare Tender的交互图(侧重于信息处理)。

 
    上面两张图的消息可以映射到每上业务实体的职责,如下图:

 

    下图是上图的一个简化。

 

结论

    软件系统开发出来是为了达到业务目标,可是,用户,分析员,和开发人员常常生活在不同的世界;他们有不同的看法和用不同的行话。小组间的通讯障碍导致在解释各种系统需求时发生很多激烈的争论。具有代表性的一点是,他们的改变不是因为用户改变了想法,而是因为最初的需求需要净化。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多