`
zhangfei821024
  • 浏览: 27744 次
  • 性别: 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文档中找到这些文档的模板。

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

相关推荐

    63.基于51单片机的酒精气体检测器设计(实物).pdf

    63.基于51单片机的酒精气体检测器设计(实物).pdf

    13.基于51单片机的简易计算器设计(仿真).pdf

    13.基于51单片机的简易计算器设计(仿真)

    12.基于单片机的可语音播报的脉搏检测仪设计(实物).pdf

    12.基于单片机的可语音播报的脉搏检测仪设计(实物)

    模块六:云原生训练营-Kubernetes 控制平面组件API Server

    内容概要:本文档详细介绍了Kubernetes控制平面中最为核心的API Server组件。内容涵盖认证、鉴权、准入控制(Mutating、Validating Admission)、限流机制和API服务器的高可用实现等重要方面。通过认证插件如X509证书、OAuth2、Webhook等方式保障API服务器的安全性,通过各种准入控制器如ResourceQuota、LimitRanger等确保资源的有效管理和安全性,以及如何通过对并发请求的数量、速率进行精确控制,提升系统的稳定性。API服务器的设计思路不仅考虑到了大规模部署的需求,同时也强调了安全性、可靠性和扩展性的平衡。文档同时提供了构建高可用多副本API服务器的具体指导,并探讨了与企业现有认证系统的集成方式。 适合人群:云计算领域的架构师、运维工程师、安全专家、开发人员和技术管理人员等。这些人需要深刻理解Kubernetes的工作机制,特别是在安全管理和性能优化方面的挑战。 使用场景及目标:①掌握API Server的各种访问控制手段(认证和鉴权);②学习如何使用API Server实现细粒度的资源访问控制;③熟悉不同限流策略,解决

    实验一 Simulink仿真环境及模型的建立.docx

    实验一 Simulink仿真环境及模型的建立.docx

    GLPI开源资产管理系统Docker部署方式,2025最新教程

    GLPI开源资产管理系统Docker部署方式,2025最新教程

    275.基于51单片机的电子钟【秒表,闹钟,倒计时,整点报时,数码管,矩阵键盘】(仿真).pdf

    275.基于51单片机的电子钟【秒表,闹钟,倒计时,整点报时,数码管,矩阵键盘】(仿真).pdf

    基于多车协同感知与烟花算法的局部路径规划技术及其在自动驾驶中的应用(可复现,有问题请联系博主)

    内容概要:该论文提出了一种基于多车协同感知与烟花算法的局部路径规划方法。首先通过烟花算法实现基于网格地图相似性的多车地图合并,然后结合人工势场方法进行实时路径规划,解决了复杂环境中自动驾驶汽车存在的视野盲区和路径规划不畅的问题。文中详细介绍了网格地图合并的原理和技术步骤、动态排斥势场的构建以及路径规划的实验验证。通过对不同算法进行比较实验,并验证了该方法在安全性和效率上的优越性,尤其是在处理动态障碍物时的优势。最终通过仿真分析展示了基于多车协同感知的地图融合方法能够显著提升路径规划的安全性和舒适性,为未来的自动化驾驶提供了坚实的技术支持。 适用人群:研究自动驾驶技术和智能交通系统的学术研究人员,及相关领域的工程师和技术人员。 使用场景及目标:该研究的应用场景主要是复杂的城市道路环境和其他具有多变环境的场景,旨在解决车辆因遮挡而形成的感知盲区,提供更加精确的局部路径规划方法。通过多车协同和动态排斥势场的方法,提升自动驾驶系统的实时性能、避障能力和安全性。 其他说明:尽管研究集中在城市结构化道路环境中验证,但是提出了未来工作的几个方向,包括如何扩展至更复杂的农村公路或环形交叉路口。同时也探

    <数据集>轨道异物识别数据集<目标检测>

    YOLO与VOC格式的轨道异物识别数据集,适用于YOLO系列、Faster Rcnn、SSD等模型训练,类别:person、obsticle_oc、Animal、vehicle、motor_bicycle、Train,图片数量1659。文件中包含图片、txt标签、指定类别信息的yaml文件、xml标签,已将图片和txt标签划分为训练集、验证集和测试集,可直接用于YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLOv11、YOLOv12等YOLO系列算法的训练。

    基于java的ssm课程在线教育资源管理系统(含LW+PPT+源码+系统演示视频+安装说明).7z

    在线教育资源管理系统,主要的模块包括管理员;个人中心、学生管理、教师管理、公告信息管理、课程信息管理、试题管理、留言板管理、管理员管理、试卷管理、系统管理、考试管理,学生;个人中心、留言板管理、考试管理,教师;个人中心、课程信息管理、试题管理、留言板管理、试卷管理、考试管理,前台首页;首页、公告信息、课程信息、试卷列表、留言反馈、我的、跳转到后台等功能。系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限。 要想实现在线教育资源管理系统的各项功能,需要后台数据库的大力支持。管理员验证注册信息,收集的用户信息,并由此分析得出的关联信息等大量的数据都由数据库管理。本文中数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 本系统的开发使获取在线教育资源管理系统信息能够更加方便快捷,同时也使在线教育资源管理系统信息变的更加系统化、有序化。系统界面较友好,易于操作。 关键词:在线教育资源管理系统 ;jsp技术 ;Mysql数据库

    基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)

    基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业),个人大三期末大作业项目、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为课程设计、期末大作业。 基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(99分大作业)基于Python卷积神经网络进行猫狗识别源码+报告(9

    cef109.1.11+chromium 109.0.5414.120

    最后一个win7稳定运行版本,支持视频和pdf查看,因为之前下载的别人打包好的文件,可以播放视频,但是打开pdf会闪退,所以自己编译了一个,有需要的可以试试

    前端分析-2023071100789s3

    前端分析-2023071100789s3

    基于 OpenCV 和 Flask 的 Python 3 人脸检测

    人脸检测演示 (Flask 应用程序) 这是一个非常简单的 Flask 应用程序,它允许用户上传图像并检测图片中有多少张(如果有)面孔

    山东大学软件学院2022级操作系统实验

    山东大学软件学院2022级操作系统实验

    20.基于51单片机的简易电梯系统的设计(实物).pdf

    20.基于51单片机的简易电梯系统的设计(实物)

    山东大学软件学院2022级四史专题

    山东大学软件学院2022级四史专题

    基于tensorflow开发的YOLO和YOLO9000提供训练以及测试功能以VOC2012数据集作为训练测试集500.zip

    yolo

    openjdk-8-jre-alpine.tar

    openjdk 8-jre-alpine f7a292bbb70c 5 years ago 84.9MB docker openjdk 离线镜像包 使用方法:docker load -i openjdk-8-jre-alpine.tar

    43.基于51单片机的红外遥控器设计(实物).pdf

    43.基于51单片机的红外遥控器设计(实物).pdf

Global site tag (gtag.js) - Google Analytics