`
zhangfei821024
  • 浏览: 27419 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

OO系统分析员之路--用例分析系列(4)--业务建模一般步骤和方法

阅读更多
作者:coffeewoo先生

使用OO方法建立商业模型必须先定义涉众。商业系统无论多复杂,无论什么行业,其本质无非是人,事,物,规则。人是一切的中心,人做事,做事产生物,规则限制人事物。人驱动系统,事体现过程,物记录结果,规则则是控制。无论OO也好,UML也好,复杂的表面下其实只是一个简单的规则,系统分析员弄明白有什么人,什么人做什么事,什么事产生什么物,中间有什么规则,再把人,事,物之间的关系定义出来,商业建模也就基本完成了。

本篇开始之前先扯点闲话,商业应用系统开发经历了三个阶段:


第一个阶段以计算为中心,分析设计围绕程序的运行效率,算法优劣,存贮优化来进行。90年代的大学课程讲的都是这些。


第二阶段以数据为中心,分析设计围绕数据流进行,以数据流程来模拟业务流程。这也就是所谓的面向过程的分析模式。


第三阶段以人为中心,分析设计围绕人的业务需求,使用要求,感受要求进行。这也就是现在的面象对象分析模式。
使用OO方法建立商业模型必须先定义涉众。商业系统无论多复杂,无论什么行业,其本质无非是人,事,物,规则。人是一切的中心,人做事,做事产生物,规则限制人事物。人驱动系统,事体现过程,物记录结果,规则则是控制。无论OO也好,UML也好,复杂的表面下其实只是一个简单的规则,系统分析员弄明白有什么人,什么人做什么事,什么事产生什么物,中间有什么规则,再把人,事,物之间的关系定义出来,商业建模也就基本完成了。这时候可以说,系统分析员已经完全了解了用户需求,可以进入系统建模阶段了。

书归正传,上篇笔者归纳了一些典型的涉众类型及他们的普遍期望。接下来,就是要将他们这些期望定义出来。这个过程,就是业务用例获取的过程。笔者可以跟大家分享的经验是通过以下步骤进行,这些步骤并非唯一正确,对于经验不多的系统分析员来说,这些步骤很有指导意义。

笔者做了一个建模实例,有需要有读者请到笔者的BLOG资源中心下载,实例以上一篇所述网上图书馆需求为蓝本建立了业务用例模型,之后的概念模型、系统模型则抽取了其中的借阅过程作为例子。不记得了可以后头找找。

建模第一步,从涉众中找出用户。并定义这些用户之间的关系。在ROSE中,应该使用business actor 类型。参考上一篇的需求描述,下载实例

第二步,找出每个用户要做的事,即业务用例,在ROSE中应使用Business use case类型。请参考《用例的类型与粒度》一文以帮助确定用例的粒度。笔者强烈建议为每一个business actor绘制一个业务用例图,这能很好的体现以人为中心的分析模式,并且不容易漏掉business actor需要做的事。至于以参与者为中心的视图容易漏掉某个业务用例的参与者的担心,可以在第四步中得到消除。下载实例

第三步,利用业务场景图帮助分析业务流程,在ROSE中,这个阶段最好使用活动图Activity diagram。在这个阶段,业务场景图非常重要,在绘制过程中,系统分析员必须采用第一步中定义的用户名字作为泳道名,使用第二步中定义的业务用例名作为活动名来绘制。必须这么做的原因是,如果你无法把利用已经定义出来的 business actor 和 business use case完备的描绘业务流程,那么一定是前面的定义出问题了,你需要回头审视是否 business actor 和 business use case定义不完善或错误。如果不是所有的business actor 和 business use case 都被用到,要么应该检查业务流程调研时漏了什么,要么应该检查是否定义了一些无用的business actor 和 business use case 。同时,绘制业务场景图也非常有助于选择合适的用例粒度并保持所有的用例都是同一粒度。下载实例

第四步,绘制用例场景图。与业务场景图不同的是,用例场景图只针对一个用例绘制该用例的执行过程。笔者仍然强烈推荐使用activity diagram。在用例场景图的绘制中,必须使用第一步中定义的业务用户作为泳道。必须这么做的原因是,它能帮助你发现在定义业务用例图时的错误,比如是否漏掉了某个业务用例的潜在使用者。不是每个业务用例都需要绘制场景图,只有两三个步骤的业务用例是不必一定绘制业务用例图的,但仍然需要在业务用例规约文档中写明。下载实例

第五步,从第三步或第四步中绘制的活动图中找到每一步活动将使用到的或产生的结果。这是找到物的过程。找到后,应当建立这些物之间的关系。在ROSE中,这称为业务实体模型。应该使用business entity 类型。下载实例

第六步,在上述过程中,随时补充词汇表Glossary。将此过程中的所有业务词汇,专业词汇等一切在建模过程中使用到的需要解释的名词。这份文档将成为模型建立人与读者就模型达成一致理解的重要保证。

第七步,根据上一篇中提到的业主,老板等涉众的期望审视建立好的模型,确定业务范围,决定哪些业务用例在系统建设范围内。那些不打算纳入建设范围内的业务用例有两种情况,一种是该业务用例是被调用一方,那么应该把它改为 boundary 类型,意味着将来它是一个外部接口。另一种是该业务用例主动调用系统内业务用例,那么应该将它改为business actor类型。与普通business actor不同的是,由业务用例转换而成的business actor不是人,而通常是一个外部系统进程,因此应该在被调用的系统内业务用例与它之间增加一个boundary元素,意味着我们的系统将为这样一个外部进程提供一个接口。严格来说,那些需要纳入建设范围的business use case 应当对应的生成一个 business use case realization, 以后的设计工作将归纳到这些实现用例中。但笔者觉得这一步并非很关键的,实际中本人也经常省略这一步,而将协作图,象活动图,类交互图等直接在business usecase下说明。不过本实例中笔者还是按照正规方法来建模的。下载实例

需要说明的是,上述的步骤并非一次性完成的,在每一个步骤中都可能导致对以前步骤的调整。即使建模已经完成,当遇到变化或发现新问题时,上述步骤应当从头到尾再执行一次。这也是RUP倡导的迭代开发模式。

经过以上的步骤,我们已经建立了一个完整的业务模型。但这决不是建模工作的全部,以上过程只说明了建立一个完整业务模型的过程,不能说这样就建立了一个很好的业务模型。因为上述的过程中并没有提及业务分析过程。分析过程全凭系统分析员的经验,对OO的理解和对行业业务的把握能力,对原始业务模型进行归纳,整理,抽象,重构,以建立一个更高效,合理,扩展性更强的模型。这个过程无法以步骤说明。或许以后笔者会专门针对模型分析写点东西。另外除了模型,还至少需要写业务架构文档、用例规约和补充用例规约三种文档。因为模型虽然可以较好的体现业务架构,但很不好表达业务规则和非业务需求,这些需要在文档中说明。例如用例的前置条件和后置条件就是一种业务规则。读者可以在RUP文档中找到这些文档的模板。

预告:下一篇笔者将讲述如何根据业务模型建立系统概念模型。这里先说一点,系统概念模型建立最主要依据的是第三步、第四步、第五步建立的业务/用例场景和业务实体模型。这也突显了场景和实体模型的重要程度。
分享到:
评论

相关推荐

    OO系统分析员之路--用例分析系列

    【OO系统分析员之路--用例分析系列】是一组关于用例分析的教程,适合初学者和有一定经验的系统分析员。本系列共八篇文章,旨在深入解析面向对象(OO)系统分析中的用例分析技术,帮助读者理解和掌握用例在需求分析中...

    OO系统分析员之路--用例分析系列(二)

    上一篇讲到用例分析的一般步骤和方法,也给出了一个实例,不过没有做更进一步的说明,所以这一篇,笔者决定先罗嗦罗嗦之前的内容,说说业务建模中各种图的用法,以及它们对需求的贡献。在说明实例之前,再重复一下的...

    实战OO 交互 建模

    在OO设计中,交互建模是一项关键技能,它帮助开发者理解和描述系统中对象之间的动态交互过程。本文旨在深入探讨实战中的OO交互建模技术,基于给定的文件信息,我们将详细解读其背后的原理与实践。 #### 交互建模的...

    销售管理系统的UML分析与设计完整版

    UML的创始人Booch、Jacobson和Rumbaugh在Rational公司的支持下提出了一个新的面向对象开发过程——Rational统一过程(RUP),该过程的核心工作流程包括:业务建模、需求分析、系统分析与设计、实现、测试和系统部署...

    PowerDesigner建模实例

    本文通过一个具体的案例,展示了如何利用UML来分析和设计广告管理系统。 1. **业务建模**:首先需要对系统的业务背景进行深入分析,明确系统的目标用户、主要功能和服务范围。通过绘制业务用例框图,可以清晰地展示...

    {销售管理}销售管理系统的分析与设计.pdf

    UML结合Rational统一过程(RUP)为系统开发提供了一套完整的方法论,涵盖了业务建模、需求分析、系统分析与设计、实现、测试和部署等关键阶段。RUP强调迭代开发,使得系统能够随着需求变化而不断优化。 总结来说,...

    软件工程-招聘管理系统-UML分析报告.doc

    用例通过系统与一个或多个活动者之间的一系列消息描述了与活动者的交互。 在静态建模部分,概念模型(包括对象、类)可以被定义,类图可以被绘制,显示出类间的关系。招聘管理系统可以被分割成两个独立的包:硬件...

    基于UML的仓储管理系统设计

    面向对象(Object-Oriented, OO)是一种编程范式,其核心思想是将复杂的问题域抽象成一系列的对象,每个对象包含数据(属性)和操作这些数据的方法(行为)。面向对象技术的主要优点包括封装、继承和多态。 **面向...

    软件工程-招聘管理系统UML分析报告.doc

    用例通过系统与一种或多种活动者之间的一系列消息描述了与活动者的事务。 在招聘管理系统中,定义相应的概念模型(涉及对象、类),绘制相应类图,显示出类间的关系。招聘管理系统分为硬件和逻辑两部分——子系统,...

    UML复习资料

    建模的参与者包括领域专家、需求分析人员、系统分析员、架构师和开发人员,他们在不同阶段和不同模型中扮演不同角色。 UML适用于多种建模领域,如业务建模、需求建模、设计建模和实现建模。这些模型由不同的专业...

    uml统一建模试卷,期末考试复习资料

    Statopia公司所使用的系统是很久以前开发的,且不是用OO方法开发的,该系统非常复杂,而且系统使用多线程来处理公司中并发的业务请求。由于系统开发出来后经过多次修改,因此最初的系统开发文档已经过时。ObjectR...

    学生成绩记录系统用例图

    ### 学生成绩记录系统用例图解析 ...这有助于我们在实际项目中更加高效地进行需求分析和设计。在未来,随着技术的不断发展,相信会有更多创新的方法和技术应用于教育信息化领域,为师生提供更加便捷高效的服务。

    UML实验报告.doc

    每个用例都描述了参与者的角色、操作流程和交互条件,如进货部的"生成订单"用例,描述了进货员与经理、供货商的交互过程。 2. **系统类图**:通过多张类图展示了类之间的关系,如销售部、进货部、库存部、会计部和...

    j2ee初学学习教程

    用例图通过**Actor**(参与者)和**Use Case**(用例)来定义角色和功能,帮助我们理解系统的基本功能和业务流程。 2. **业务建模**是对问题领域的分析,主要关注用户需求,通常使用**用例图**和**业务场景描述**...

    uml实验报告14页供参考

    1. **系统用例图**:展示了系统涉及的各种角色(如进货员、库存员、经理、供货商等)与系统交互的用例,如“生成订单”、“货物上架”和“生成订货表”。每个用例都详细描述了参与者、用例描述、前置条件、后置条件...

    软件工程期末考试试题及答案

    - **选项A**: 方法,指的是用于软件开发的具体技术和方法论。 - **选项B**: 工具,是指辅助软件开发的各种工具和技术,如IDE、调试器等。 - **选项C**: 程序,并不是软件工程方法学的核心要素,这里更多地强调...

    面向對象開發

    通过与领域专家交流,分析员定义业务规则和用例,形成对象模型。OOA强调的是理解系统的静态结构和动态行为,这通常通过类图、用例图和活动图来表达。 **面向对象设计(OOD)**: OOD是在OOA基础上进一步细化的过程...

    什么是crc,crc的概念

    CRC卡建模是一种用于面向对象(OO)分析的技术,旨在帮助开发团队更好地理解、分析和设计面向对象的应用程序。这种方法通过创建简单的卡片(CRC卡)来表示类、职责和协作关系,从而促进团队成员之间的沟通与合作。 ##...

Global site tag (gtag.js) - Google Analytics