热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EA业务建模实践之业务用例图

本文重点是业务建模实践,以及建模工具EA初级使用过程日志。先前写了些文档,从不同角度描述了业务建模,但是条理性和规范性仍无法让人一目了然。春节期间当我再次读了《软件方法

        本文重点是业务建模实践,以及建模工具EA初级使用过程日志。

        先前写了些文档,从不同角度描述了业务建模,但是条理性和规范性仍无法让人一目了然。春节期间当我再次读了《软件方法》前几章,产生了共鸣:误解随处都在,通过UML规范沟通环境,是辛勤汗水的教训。

        按书中观点及回答问题如下:

        业务建模:描述组织内部各系统(人肉系统、机械系统、电脑系统......)如何协作,使得组织可以为其他组织提供有价值的服务。新系统只不过是组织为了对外提供更好的服务,对自己的内部重新设计而购买的一个零件。组织引进一个软件系统,和招聘一名新员工没有本质区别。如果能学会通过业务建模去推导新系统的需求,而不是拍脑袋得出需求,假的“需求变更”会大大减少。

        需求:聚焦于待开发系统的边界,详细描述系统要卖得出去必须具有的表现─功能和性能。这项技能的意义在于强迫我们从“卖”的角度思考哪些是涉众(Stakeholder)在意的、不能改变的契约,哪些不是,严防“做”污染“卖”。需求工作流的结果─需求规约是“卖”和“做”的衔接点。

        组织要解决什么问题。

        为组织提供流程管理、流程再造服务,为组织办公流程能力、执行力、工作效率提供管理支撑服务。

        为了解决组织的问题,待开发系统应该提供什么功能和性能。

        提供本地化、个性化BPM服务,提供快速开发流程支持(5个工作日以内)服务,通过流程(流程定义与流程实例)全面生命周期为组织提供管理创新支持服务。


1、研究对象及其业务用例图

        本次实践的研究对象是办公管理的业务流程。

        业务用例模型是说明业务预期功能的模型。作为一个核心输入模型,业务用例模型用于确定组织的各个角色和可交付工件。


图1

        按办公管理的业务流程为研究对象,涉众利益者有办公管理人员、流程管理人员(是办公管理人员中的子集,是其中专业管理流程的人员)、流程开发者(运维人员)、系统建设者等,其中业务用例所关注的主要涉众是办公管理人员、流程管理人员、流程开发者,也就是业务执行者。

        有箭头从执行者指向用例,也有箭头从用例指向执行者。前一种执行者称为用例的主执行者,后一种执行者称为用例的辅助执行者。

        如图1所示,以及《易扩展的办公流程化管理核心模型(第1版)》所述,此图中的用例是组织业务建模用例,解答组织真实核心需求,并不是人们日常所见到的资费审批流程、人力请假流程...,而是能支撑快速开发流程及支持管理创新的流程管理能力平台。

        需求及功能敬请见下篇文章。

2、使用EA建模

        Enterprise Architect 是基于UML 标准的,将高效建模和可视化,及设计融为一体的平台。它具有从思维导图,到业务需求,软件设计,直至部署的完全跟踪能力。

        1.创建项目

        通过模型向导,选择“Use Case”,其它根据实际情况选择。


图2

        2.分包管理

        在用例模型下,创建业务分组包(package)


图3


图4

        结果如下:


图5

        3.创建用例图(Use Case Diagram)


图6

        图形类型选择用例“Use Case”。

        1)首先确定研究用例对象的边界


图7

        拖拽“Boundary”到用例图中,并进行定义,名字为“流程管理”。


图8

        生成的边界如下图所示。


图9

        2)添加业务执行者“Business Actor”

        拖拽上图中的“Actor”到用例图中,命名为“办公人员”,并按下图设置为“Business Actor”。


图10

        结果如下:


图11

        3)添加用例

        拖拽上图中的“Use Case”到用例图中。弹出如下图所示的用例定义窗口,输入用例名称为“申请”。


图12

        生成如下所示图形。


图13

        4)添加关联线

        选择工具盒中的“Use Case Relationships”->“Associate”线,点击“办公人员”Actor并按住鼠标拖拽到“申请”用例中(出现关联虚影)再松开鼠标按键,

图14


图15

        鼠标双击下图中关联线(实线),弹出关联线定义窗口。


图16

        在弹出窗口中,通过选择定义关联线类型“Stereotype”来定义业务执行者与用例关联关系,此案例中选择了“Source->Destination”。


图17


图18

        最终如图1所示的用例图。


        参考及摘自:

        《软件方法》UMLChina 潘加宇 2012.11

        易扩展的办公流程化管理核心模型(第1版)肖永威 2015.1


推荐阅读
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 文章目录Golang定时器Timer和Tickertime.Timertime.NewTimer()实例time.AfterFunctime.Tickertime.NewTicke ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮?
    NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮? ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 在PHP中,高效地分割字符串是一项常见的需求。本文探讨了多种技术,用于在特定字符(如“或”)后进行字符串分割。通过使用正则表达式和内置函数,可以实现更加灵活和高效的字符串处理。例如,可以使用 `preg_split` 函数来实现这一目标,该函数允许指定复杂的分隔符模式,从而提高代码的可读性和性能。此外,文章还介绍了如何优化分割操作以减少内存消耗和提高执行速度。 ... [详细]
author-avatar
刘自龙Sophisten
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有