业务流程建模.doc_第1页
业务流程建模.doc_第2页
业务流程建模.doc_第3页
业务流程建模.doc_第4页
业务流程建模.doc_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.目 录摘 要IAbstractII插图索引IV附表索引VI第1章 绪 论11.1 研究背景11.1.1 当前企业信息化存在的问题11.1.2 业务流程管理系统简介11.1.3 业务流程管理与其它解决方案的对比21.1.4 UML在业务流程建模中的不足51.2 可使用的BPMN建模工具现状61.2.1 国外现状61.2.2 国内现状61.3 本文主要研究工作71.4 本文组织结构7第2章 业务流程建模符号介绍82.1 业务流程建模符号的作用82.2 业务流程图例82.2.1 业务流程图例核心元素82.2.2 图表中文字,颜色,大小和线的规定102.2.3 流对象连接规则102.2.4 消息流规则112.3 小结11第3章 基于BPMN的建模工具的开发思想123.1 SanBPMN建模工具的需求说明123.2 通用图形组件的设计123.2.1 MVC模式介绍133.2.2 基于MVC的JAVA SWING图形包设计143.2.3 图形组件的总体框架143.2.4 模型类设计163.2.5 视图类设计173.2.6 控制类设计173.3 SanBPMN的设计原则和基本思想193.3.1 SanBPMN建模工具的总体结构193.4 小结22第4章 基于BPMN的建模工具的设计与实现234.1 业务流程建模符号的设计与实现234.1.1 业务流程建模符号的设计234.1.2 业务流程建模符号代表对象的设计234.1.3 业务流程建模符号的实现244.2 顺序流和消息流连接规则的设计与实现284.3 建模符号与它代表的对象之间的对应294.4 将业务流程建模图输出BPEL4WS文档294.4.1 单个BPMN符号转换成BPEL4ES294.4.2 整个建模图输出BPEL4WS314.5 小结31第5章 SanBPMN工具在业务流程建模中的应用325.1 建模步骤的简要说明325.2 对业务事件建模355.3 对业务流程,子流程和任务建模365.4 对流程的顺序流建模375.5 用通路来对决策点建模375.6 对“某人”做“某事”建模385.7 对B2B的消息流建模395.8 “黑盒”与“白盒”建模395.9 对数据对象建模405.10 对文字注解建模415.11 建模综合实例41总 结44参 考 文 献46致 谢50附录 A(攻读学位期间所发表的学术论文目录)51附录B 攻读学位期间参与的主要项目52;.摘 要为使业务流程管理标准化,业务流程管理组织(BPMI.ORG)制定了三个规范和标准: 业务流程建模符号(BPMN: Business Process Modeling Notation)和业务流程建模语言(BPML: Business Process Modeling Language)以及业务流程查询语言(BPQL: Business Process Query Language)。BPMN 是业务流程管理系统体系结构的核心部件之一。与UML相比,它的设计目标是简单易用,但又能对复杂的商业流程建模,并且特别关注 web服务。BPMN描述了流程定义所需要的上层实体,并且为流程定义划分成相应的流程模型、在不同的流程定义与模型中交叉使用公共定义数据提供了多方面的协定,提供了供流程建模的概念、符号和表示法。但目前我国还没有可供商业人员和技术人员易于使用的BPMN建模工具,对业务流程建模的研究也非常少。尽快设计并实现这样一种产品,弥补UML在业务流程建模方面的不足,缩小我国与国际先进业务流程管理系统的差距,使我国的业务流程管理系统在国际上占有一席之地就显得十分必要和紧迫。本文主要研究的是基于BPMN的建模工具的设计与实现。首先介绍了BPMN这一新标准,并结合自己的软件工程实践,对开源项目JGraph这一通用图形组件包的源代码进行了详细的研究,之后对它的图形组件进行了扩展,增加了符合BPMN规范的图形符号以及为输出可执行语言所必须的特性,采用了流行的分层设计和适当的设计模式,最后实现了符合BPMN标准的建模工具SanBPMN。包括以下方面的内容:(1) 怎样在建模工具中将BPMN规定的符号可视化表示出来;(2) 将建模工具表示的BPMN符号与符号所代表的对象关联起来,从而为输出特定的语言打下基础;(3) 将建模后的图形转换输出成可执行语言,如BPEL4WS(Business Excute Language for Web Service);(4) 怎样用SanBPMN工具对业务流程建模。 在国外对业务流程管理以及业务流程建模新标准BPMN研究进行得如火如荼时,在国内对业务流程及其建模工具的研究刚刚起步的背景下,较早实现符合BPMN标准的建模工具,具有较大的理论意义和实用价值。关键词:业务流程;业务流程建模语言;业务流程建模符号;统一建模语言AbstractIn order to make the business process management standardize, Business Process Management Initiative (BPMI.ORG) made three norms and standards: Business Process Modeling Notation(BPMN), Business Process Modeling Language (BPML) and Business Process Query Language (BPQL). BPMN is a core enabler of a new initiative in the Enterprise Architecture world called Business Process Management (BPM). Compared with the UML, The BPMN has been designed not only to be used and understood easily, but also to provide the ability to model complex business processes. BPMN has described the upper entities needed by defining processes and has provided the protocols in many aspects for deviding process definition into corresponding course models and cross-using public difinition data in different process definition and models. It also provides concepts symbols and expression methods for process modeling.But there is no available BPMN modeling tools in our country at present for the commercial and technical staff to use with ease, and there is little study made on business process modeling too. To remedy UML deficiency in the business process modeling, to narrow the disparity between our country and the advanced international countries on Business Process Management System, and to make Business Process Management of our country occupy a tiny space in the world, it seems to be totaly essential and urgent to design and realize such a product as soon as possible.The Main research of this article is about the designing and realization of modeling tools based on BPMN. First I gave an in-depth introduction to the new BPMN standard. In combination with my software engineering practice,I made a particular research on the source code of the general graph component -the open source project JGraph, then I extended the figure package of JGraph,increased some BPMN normal graphical symbol and the necessary characteristic for putting out executable language,adopted the poplular layer design and proper design pattern, finally realized a model tool that match the BPMN standard-SanBPMN. The paper includes the content of the following aspects: (1) How to represent symbols that BPMN stipulates in the modeling tool visually.(2) How to associate the symbols and targets that symbols represent in BPMN model tool, thus to lay a foundation for outputting the specific language. (3) How to change the figure after modeling into an executable language for outputting, such as BPEL4WS (Business Excute Language for Web Service) (4) How to model business process using SanBPMN modeling tool.Since study on business process management and the new standard for modeling business processes BPMN is carrying on like a raging fire in foreign countries, while the domestic study on business process management and modeling tool is still at early stage, the earlier realization of the model tool that matches the BPMN standard in our country has greater theory significance and practical value. Key words: BPM; BPML; BPMN; UML插图索引图2.1 消息流连接规则11图2.2 对象流连接规则11图3.1 SanBPMN建模工具的核心Use Case图13图3.2 MVC模型13图3.3 SWING模型-代理模式14图3.4 JTree的总体框架15图3.5 JGraph的总体框架15图3.6 图的元素层次关系16图3.7 图的组结构17图3.8 图的视图类层次关系18图3.9 图的渲染器类关系18图3.10 子系统结构图20图3.11 SanBPMN层0的包图20图3.12 层1与层0之间的调用依赖关系图21图3.13 SanBPMN层2与其它层的关系图22图4.1 BPMN符号类关系图23图4.2 BPMN符号代表对象类图24图4.3 通路类层次关系图27图4.4 人工制品类层次关系图28图4.5 BPMN规则类的设计28图4.6 属性面板类,结点类模型类的关系图30图5.1 SanBPMN建模工具的启动画面32图5.2 新建建模窗口图32图5.3 工具栏提示图33图5.4 点击鼠标建模,并可设置符号的属性33图5.5 鼠标拖动符号建模34图5.6 消息流非法建模提示图34图5.7 顺序流非法建模时的提示图35图5.8 SanBPMN对流程间事件类型的表示36图5.9 任务与子流程36图5.10 双击顺序流输入顺序流名称或条件37图5.11 异或分叉的表示37图5.12 不同形式的通路的表示38图5.13 泳池和泳道的作用39图5.14 对“黑盒”建模40图5.15 SanBPMN对数据对象的表示40图5.16 英文BPMN文档中的病人看病实例流程41图5.17 SanBPMN所建病人看病实例流程42图5.18 综合建模实例图42图5.19 将模型输出成JPG,GIF格式43图5.20 将模型输出成BPEL4WS文档43附表索引表1.1 面向数据与面向流程特征表3表2.1 BPMN核心符号表9表3.1 树与图的区别和联系表15表5.1 SanBPMN工具的事件类型35;.第1章 绪 论1.1 研究背景1.1.1 当前企业信息化存在的问题进入九十年代,由于企业之间竞争日趋激烈,越来越多的企业不得不利用信息技术来支持它们的业务过程处理,以适应快速变化的商业环境,提高企业的工作效率和工作质量。与此同时,随着计算机网络及通信技术的发展,各种面向组织机构的信息系统也得到广泛地使用。为了提高企业效率,满足不断变化的业务规则,IT界提出了种种解决方案,从MIS系统、ERP系统、到EAI、工作流等等。然而效果并不令人满意。其根本原因是以往的解决方案,都是由IT专家提出的,没有考虑企业本身的特点,人为地将商业与IT系统隔离起来1。目前的应用系统的开发,都遵循一个模式:就是需求获取、分析、设计、编码、测试、发布,这种开发模式,当然不乏成功的例子,但失败的案例也比比皆是。究其原因,一是开发人员毕竟不是领域专家,不能很好地了解用户真正的需求;二是在这快速变化的时代,用户的需求不断改变,商业的规则不断地更新,经过需求获取、分析、设计、编码、测试、发布等一系列漫长的阶段,用户发现,当前的环境已经改变,以前投入巨资构建的系统已经部分或完全不能满足自己的需要,也就是所谓的软件危机。为了解决这种危机,IT专家提出了各种解决方案和新技术,如采用面向对象的开发方法,JAVA、XML、UML、统一软件开发过程、极限编程、CMM等,各种新技术、新方法的采用,一定程度上缓解了软件危机,但还是没有从根本上解决问题,其中一个重要的原因,就是缺乏一个能在业务流程整个生命周期中对业务流程进行控制、指导设计和执行的标准。1.1.2 业务流程管理系统简介针对这种情况,国外一些组织,提出了业务流程管理系统(Business Process Management System)的概念。2000年8月在美国加州成立了非赢利性的业务流程管理发起组织(BPMI.ORG),其成员包括IBM,BEA,CSC,ITALIO等在业界具有重大影响力的公司和机构,目前成员已有七十多个,并且加入的公司和组织越来越多。其目的是使业务流程管理标准化, 能够对企业起决定性作用的业务流程的建模、部署和管理统一起来,使业务流程能跨越大量企业,应用程序,协作部门以及商业伙伴。为了达到这种目的, BPMI.ORG制定了三个规范和标准:业务流程建模语言(BPML: Business Process Modeling Language)和业务流程建模符号(BPMN :The Business Process Modeling Notation )以及业务流程查询语言(BPQL: Business Process Query Language)业务流程建模语言(BPML)是一种给业务流程建模的元数据语言,正如XML是给业务数据建模的元数据语言一样, BPML提供了一种抽象的、建立在事物有限状态机概念之上的协作及事务性的业务流程的可执行模型。业务流程建模符号(BPMN)规范提供了一个在业务流程框图中表示业务流程的图形化的符号,并提供了一种绑定图形化的符号与可执行的块结构过程语言的方法,这种语言包括BPML以及BPEL4WS。业务流程查询语言(BPQL)为业务流程管理系统定义了一种标准的接口。它允许系统管理员管理业务流程管理系统,业务分析员查询执行的业务流程实例。业务流程管理系统思想是以流程为核心,有别于以前的以数据为核心的信息系统。它是一种新的软件,开创了信息系统的新纪元2,3,4,5,6。1.1.3 业务流程管理与其它解决方案的对比 面向数据的企业应用方案与面向流程的业务流程管理的对比在过去的四十年,企业应用主要以面向数据方式来开发系统的应用。业务流程管理继承了这笔遗产,但是采取了一种从根本上发展企业应用的的新方法, 即以面向流程的方式以提升系统的功效。正因为如此,业务流程管理真正促进了范例交换而不仅仅是范例变换,业务流程管理认为流程是最基本的实体,而把数据仅仅看成是流程实体执行后的副产品。当企业应用以传统的面向数据的方式发展时,其代表的形式在六、七十年代以层次关系数据库占主导地位,在八、九十年代以关系数据库为主,业务流程管理正在引入一种以面向流程的应用即业务流程管理系统的观念。采用面向数据的方法,其核心的语义是实体和关系,这些提供了企业应用的静态模型。商业逻辑和动态行为处于储存程序和触发器之上,使得业务流程被含蓄地表示,并紧紧地与后台数据模型耦合在一起。采用面向流程的方法,其核心的语义是活动和消息(activities and messages),这些活动和消息提供了一个动态的企业应用模型。商业逻辑和动态行为是核心流程模型的一部分,而数据模型既可以用传统的数据模型的方法来显性地定义,也可以作为流程的一部分来含蓄地定义。表1.1 面向数据与面向流程特征表7 面向数据面向流程关注基准数据流程设计原则系统记录系统活动核心模型数据模型流程模型核心概念实体,关系活动,消息商业逻辑存储程序, 触发器商业规则通讯模型客户端-服务器Web 服务管理系统层次/关系数据库管理系统业务流程管理系统模型语言SQLBPML查询语言SQLBPQL 从上面的分析我们可以断定:业务流程管理系统将对大量的IT组织产生极大的影响,就象关系数据库管理系统在过去的二十年产生的影响一样。不仅如此,当商业分析员认识到他们可以从高级的流程定义工具和商业活动监控区与高级的流程执行环境相结合而获得好处时,这种影响就会更加深入。回想过去,当电子表格冲击市场,给了商业人员一种突破性的提高生产效率的工具。它们从根本上改变了商业人员操作数据的方式,并不仅仅因为电子表格是一种技术产品,而是因为商业人员可以用自己的方式来使用它。用一种通俗的语言来描述业务流程管理系统,就是它是一种工具,商业分析员和电子表格编辑人员可以方便地使用,并与一种象数据库管理系统一样的平台相结合,而被普通而广泛地使用7。 业务流程管理与企业应用集成及工作流的对比在把业务流程管理(BPM)与企业应用集成(EAI)和工作流从技术的角度区别开来时,首先应该明确究竟是什么使得这些方案具有明显的区别。就核心而言,BPM认为业务流程是头等公民,就象面向对象的语言认为对象是头等公民一样。在BPM中,业务流程是一个受控的核心实体,这与以前的观念仅仅把业务流程看成是不同的对象之间的运行结果的副产品是完全相反的。EAI认为应用程序接口API是它的核心实体。根据EAI的模型,任何应用客户或者是程序包,可以通过一系列的API,使用标准的语法(IDL、XML等),实现一个标准的调用模型(同步的、异步的),基于一个标准的传输协议(IIOP、HTTP等)来提供。在这样一个模型下,业务流程是以一系列的API的顺序调用来代表。这些调用产生于不同的应用程序之间,要仔细查看这些调用才能发现它们的踪迹。把这些看成是业务流程纯粹从市场角度而言确实有它的优点,但是很明显,商业分析人员很少认同这种形式业务流程的观点。EAI所谓的业务流程实际上应称为交互应用业务,如果不叫交互应用程序。工作流认为文档是它的核心实体。根据工作流模型,任何业务流程可以被描述为在企业内的不同部门或在企业外的不同组织之间交换文档的流。在这一流中,每一步被实现为分配给组织内的特定角色的任务,或分配给外部的IT系统的过程。根据这一模型,业务流程和文档的流转是一回事。这一模型有它的优点,因为它拉近了在现实社会中确实存在的某一部分的业务流程的映射,但它过于限制于文档这一形式而不能支持广泛的业务流程概念,因为有些业务流程并没有文档这一物质表现形式,不管它是纸质的还是电子形式的。EAI模式与WEB 服务结合后又唤发了活力,WEB服务只是另一种可以透明地部署在防火墙后面的交互式应用程序。同样的,被协作式软件厂商采用的端对端的模式可以认为是一种分布式的工作流。尽管如此,WEB服务及端对端的协作并不能与业务流程管理相提并论。WEB服务是基于服务调用的模型,端对端是基于文档交换的模型,而业务流程是基于流程执行的模型,它仅仅利用服务调用和文档交换作为一种通讯手段。EAI和工作流,或者是WEB服务和端对端的协作等,在一个小的应用环境中确实有它们独有的优势,但当面对的是一个企业级的业务流程管理活动时,一个以面向流程为核心的方式就具有巨大的竟争优势了。业务流程管理,在企业应用方面,是继工作流和企业应用集成之后发展起来的一种研究方向,将是企业信息化的趋势,被称为“第三次浪潮”。业务流程的第一次浪潮,以Fredrick Taylor于1920年提出的管理理论为蓝本,认为流程是隐含在工作实践中,并被操作手册所记录。流程管理被称为“方法和流程分析”。第二次浪潮,以前十年最具有代表性,认为流程可以在同一活动中被重组。这一时期的主要理论和实践活动有ERP应用系统,以及在金融管理中取得很大成功的以文档为中心的工作流系统,但这些系统都有一些致命的缺陷,比如,这些应用系统很少给业务经理们提供对整个业务流程加以控制的方法。业务流程的第三次浪潮将给公司和工作人员在建立新的流程方面产生质的飞跃。它的初衷就是满足不断的变化。通过这种敏捷的业务流程,价值链能被监测并能不断地加以改进。第三次浪潮并不是业务流程重组,不是企业应用集成,不是工作流管理,或其它包装起来的应用系统,它是所有这些技术的综合和扩充而形成的一个统一的整体。之所以这样,是因为一种新的基础性的特性以更加自然更加符合商业管理实际的方式加入到了其中,并以此为基础来构建业务流程管理系统,那就是面向流程的业务流程管理系统8,9。1.1.4 UML在业务流程建模中的不足统一建建模模语言(UML)是一种由对象管理组织(OMG)创立的帮助开发人员对软件系统进行特定化、可视化和文档化的模型10。UML定义了十二种类型的图例,分成三类:四种图形代表静态的应用结构;五种代表动态的行为;三种代表组织和管理应用的模式。行为类型包括用例图、顺序图、活动图、协作图以及状态图。这些行为图经常被用来给业务流程建模。业务流程建模符号(BPMN)定义了一种图形化的符号用于给业务流程建模,从这一点上与UML的行为图是相关和类似的。尽管如此,BPMN和UML在业务流程建模方法上有着明显的不同。首先,UML是将业界多种图形的最好实践集合在一起而发展起来的,这是它的优点,但也是它的缺点。由于它是一种杂集,它从来没有考虑设计成一种可以一起工作的方式,因而没有规定它定义的这十二种类型的图形之间的联合性问题。因此,开发人员只能用UML来给他们的应用系统的某一部分建模,而其它部分则超出了UML规范的范围之外,属于用实现级层来描述,而不是建模层。相反地BPMN定义了单一类型,但提供了同属于基于可执行过程元模型的多种视图。因而,BPMN只定义了一层过程建模层,却可以输出可执行BPML语言,这种语言部署在业务流程管理系统上可以立即执行。第二,UML是以一种面向对象的方式来给应用系统建模,而BPMN是以面向流程的方式给应用系统建模。虽然UML定义的十二种图形是等同的,但在UML最佳的实践中往往倾向于优先使用第一类图形即所谓的结构图,它包括类图,对象图,组件图和部署图。由此而产生的结果便是:由UML定义的业务流程不可避免地倾向于必须事先定义好商业对象然后才能进行事务过程这一狭隘的做法。这也许可以解释UML为什么在真实的业务流程中没有被商业人员广泛采纳的原因。BPMN采用了一种几乎完全相反的方式来给流程建模,它提倡这样一种方式:首先对控制流和消息流建模,对象只是在流程建模中隐含地定义。这样做并没有防止显性地定义附加的商业对象,或者集成已经存在的通过商业服务而暴露的商业对象,但由于大部分商业对象模型在核心流程模型中只是部分地被隐含地定义,总体开发过程相当简单,并以戏剧性地简单方式来更改以应用到现有的过程当中。第三,UML的主要目标是系统架构师和软件工程师,而BPMN的目标是商业分析师,系统架构师和软件工程师。一方面,UML已经发展为一种使软件开发过程流水作业的方法,从架构设计到应用实现这些任务都是由技术人员承担。在另一方面,BPMN发展了一种贯穿整个商业过程的开发过程流水作业方法,从流程设计到流程部署,前一个任务是由商业人员承担,而第二个任务是由技术人员承担。最后,UML并没有定义任何可执行的元数据模型来帮助业务流程建模,而且,这样一种可执行元数据模型必须使用模型驱动框架(MDA)来定义。与此相反,BPMN是建立在流程执行元数据模型语言BPML之上的,遵守着设计驱动框架(DDA)因而建立一种完全可执行过程并不需要任何附加的步骤11。综上所述,BPMN在业务流程建模方面比UML更胜一筹,有望成为业务流程建模的新标准。1.2 可使用的BPMN建模工具现状1.2.1 国外现状国外对基于BPMN建模工具的研究正在如火如荼进行,并且有了类似的建模工具。这些工具,一种是以本身比较成熟的建模工具如MicroSoft的建模工具Visio的插件的形式提供,如德国ITPearls公司在它的网站上提供了一种工具Process Modeler for Microsoft Visio 试用版,它是基于BPMN0.9标准的;在www.workflow-research.de网站上有网友提供了Visio Templates for BPMN插件。这些工具,虽然提供的图形比较全,但并不能单独运行,并且不能将所建模型输出成可执行XML语言,不能充分发挥BPMN的优势。另一种是很有实力的建模工具软件公司,如BEA公司的WebLogic Platform,美国Popkin公司的System Architect软件,Italio公司的n3,这些公司由于财力雄厚,看好了BPMN的潜力,在BPMN规范公布不久就宣称自己的建模工具支持BPMN,但由于BPMN1.0草案是2003年8月才出来的,并且这些公司为了保护自己已有的投资,或照顾原有客户的习惯,或多或少加入了自己公司的一些规范,完全符合BPMN规范的产品目前还很少。从这一点看,我们和国外相比,起步应该不算太晚。1.2.2 国内现状 国内对基于BPMN规范的业务流程建模工具的研究刚处于起步阶段。本人查阅中国论文期刊库,图书馆,互联网,各种搜索引擎,这方面的研究资料非常少,更多的集中在工作流方面的建模工具的研究。但由于工作流并不是今后发展的趋势,所以这方面的研究参考价值不是很大。现成的BPMN建模工具基本处于空白。1.3 本文主要研究工作 如前所述,业务流程管理系统是今后发展的趋势,要加快这种过程,有没有一种符合业务流程先驱组织(BPMI.ORG)提出的业务流程建模符号(BPMN)规范,可供商业人员和技术人员易于使用的业务流程建模工具成为关键,但目前我国还没有一家公司有这种产品,对业务流程建模的研究也非常少。尽快设计并实现这样一种产品,弥补UML在业务流程建模中的不足,填补市场的空白,满足市场的需要,缩小我国与国际先进业务流程管理系统的差距,使我国的业务流程管理系统在国际上占有一席之地就显得十分必要和紧迫。本文主要研究的是基于业务流程先驱组织提出的BPMN建模工具的设计与实现。包括以下方面的内容:(1) 怎样在建模工具中将BPMN规定的符号表示出来;(2) 将建模工具表示的BPMN符号与符号所代表的对象关联起来,从而为输出特定的语言打下基础;(3) 将建模后的图形转换输出成可执行语言,如BPEL4WS(Business Excute Language for Web Service);(4) 如何使这种工具除了满足功能需求外,还具有健壮性,易扩展性,易测试性等非功能性需求;(5)怎样用BPMN工具对业务流程建模。1.4 本文组织结构本论文共分六个部分,首先是引言,介绍了BPMN的背景业务流程管理系统,什么是业务流程管理系统,这一方案与目前流行的方案工作流和EAI方案的对比,指出了目前方案的不足。然后介绍了UML在业务流程建模方面的不足,从而引出了开发符合业务流程先驱组织(BPMI.ORG)提出的BPMN规范的建模工具的重要性。第二章详细介绍本论文要实现的工具即SanBPMN的理论依据和规范业务流程建模符号(BPMN)规范的各个符号的图形表示,它们的具体含义,以及这些符号与BPEL4WS语言的映射关系。由于篇幅原因,很多内容放在附录B中。第三章介绍了实现SanBPMN的开发思路和设计思想。第四章综合前几章的内容,介绍了SanBPMN的设计与实现的关键技术和具体细节。第五章举例说明了SanBPMN工具的应用。最后是结论,对工具的意义与重要性以及今后的工作做了一些总结与展望。第2章 业务流程建模符号介绍2.1 业务流程建模符号的作用由业务流程管理发起组织(BPMI)创立的业务流程建模符号(BPMN)的最初目标是提供一种被所有商业用户,从创建最初流程草案的商业分析员到为实现流程的技术开发员,直到管理和监控流程的商业人员,都能完全理解的符号。以此来达到在业务流程设计和实现之间的理解桥梁。另一个目标是确保执行业务流程的XML语言,比如BPEL4WS(web服务业务过程执行语言),能用共同的符号来可视化的表示12,13。2.2 业务流程图例BPMN的目标之一是符号简单,能被商业分析员采用。然而,这就与BPMN的另一个目标即能提供强大的描述复杂的商业流程以及可执行语言存在潜在的冲突。为此,业务流程图表把图分成了两组:首先,由一系列的核心元素能满足符号简单的要求。大部分商业过程能用这些基本的符号就能表示。第二,包括核心元素在内的其它符号能满足建立复杂、功能强大的业务过程的元素集。 除此之外,业务流程图形建模符号能支持非图形化的属性以便在转换成可执行语言时能提供必要的信息。2.2.1 业务流程图例核心元素必须强调指出,创立BPMN的动机之一就是能建立一种简单的机制来建立商业过程模型。在这些核心元素中,有三种基本建模元素(流对象): 事件Events 活动Activities 通路Gateways三种方法来联系上面三种基本建模元素 顺序流Sequence Flow 消息流Message Flow 联系Association有两种方法来把这些基本建模元素分组: 游泳场 Pools 泳道Lanes表2.1描述了BPMN的核心元素的名称以及符号的含义:表2.1 BPMN核心符号表元素描述符号事件Event事件是在业务过程中“发生”的某些事情。这些事件通常有一个原因(触发器)或者产生某些影响(结果)事件是一个开放的圆,以便内部标记不同的触发器或结果。有三种不同的事件,基于什么时候影响流:开始,中间,结束活动Activity活动是用来描述公司执行的工作的广泛术语。活动可以是自动的或非自动的,作为一个流程模型的活动的类型有流程(Process)、子流程(Sub-Process)、任务(Task)。任务和子过程用圆角矩形来表示,流程或者没有边界或者包含在泳池里通道Gateway通道用于控制顺序流的分支和合并,因而它决定了分支、分叉、融合和加入的路径,内部的标记用于指示控制的行为顺序流Sequence Flow顺序流用于表示在一个流程中活动执行的顺序消息流Message Flow消息流用来表示两个实体之间发送和接收消息的流。在BPMN中,两个单独的泳池用来表示两个实体(参与方)关联Association关联用来与流对象关联信息。文字和非流对象图形能用来关联流对象池Pool一个池是一个“泳道”和一个图形容器,用于划分一系列的活动与其它池相区分,通常在B2B的上下文情形中泳道Lane泳道是在一个池中的子部分,用来扩展池的整个长度,要么是垂直或水平方向。泳道用来组织和分类活动集2.2.2 图表中文字,颜色,大小和线的规定建模者可使用文字注解对象来显示关于流程或流程中对象的属性的特别信息。流对象和流可以有标签(比如名字或其它属性),置于形状的中间,上边,下面,在任何方向和位置,取决于建模者或建模工具提供商。流对象图形符号的填充必须是白色的或明确的,它可扩展用别的颜色来填充。流对象图形符号的大小可以由符合建模意图的任意大小。绘制图形的边线必须是黑色的,如果要用别的颜色,不得与BPMN规定相冲突。2.2.3 流对象连接规则输入顺序流可以连接到流对象的任意位置,同样,输出流对象也如此。消息流也有如此的能力。但这样就比较混乱,推荐的规则是建模工具使用一种统一的方式,比如说顺序流规定从上到下,或从左到右。而消息流则规定与顺序流成90,这样使得图形非常容易被理解。图2.1 表示了BPMN流对象之间能不能用顺序流来连接。符号表示可以连接。图2.1 消息流连接规则2.2.4 消息流规则图2.2 显示了BPMN模型对象之间能用消息流连接起来,符号表示表中的行和列的元素可以连接起来。(注:在同一参与泳道内的对象间不能相连。)图2.2 对象流连接规则2.3 小结 BPMN规范英文PDF文档总共有189页,限于篇幅,以上只介绍BPMN规范的最重要的部分即BPMN的核心符号,符号的含义,符号之间的关联规则。全部符号以及这些符号与BPEL4WS的映射规则可以参考BPMN规范。这些,是我要实现的建模工具的依据所在。 第3章 基于BPMN的建模工具的开发思想3.1 SanBPMN建模工具的需求说明将自己要实现的这个工具取名为SanBPMN,这个工具核心的需求有以下几点,也是SanBPMN软件工具要实现的功能: 可以显示符合BPMN标准的业务流程建模符号,并可用这些符号表示业务流程。 为了便于交流,可以将这些业务流程图输出成Gif,JPEG等通用图形格式。 可以将建模后的图形输出成符合BPML或BPEL4WS语言的XML文档 其它易于使用的特性,如具有复制、粘贴,查找,设置文本字体、字号,设置文字、图形符号颜色格式、打印等功能。按照BPMN的要求,BPMN建模工具,主要有两类用户,一种是普通用户,一种是专业用户,普通用户可以完成比较简单的业务流程建模,专业用户完成复杂的商业流程建模。现实生活中80%的业务流程比较简单,可以由普通用户来完成。只有20%的业务流程比较复杂,需要业务流程领域专家或专业人员来完成。由于受时间、能力、工作量等因素的约束,本软件第一版只打算完成普通用户的功能,即可以对常见的业务流程建模。用例图用UML表示如图3.1所示:这个工具,打算用java来实现。一是java是跨平台的,二是由于Sun公司的Java开发包JDK都是公开源代码的,因此有很多开源项目可以参照,这样可以节省开发时间,避免重复劳动。实践证明,这样做的效果非常好。可以说,在这么短的时间内一个人能完成功能相对强大、达到预期目标的建模工具,众多开源项目的帮助密不可分。这其中主要用到了JGraph这个开源项目,3.2节将详细介绍JGraph的设计思想。3.2 通用图形组件的设计为了实现业务流程建模这个工具,并方便今后的扩展性和发展性,必须有一个通用的图形化组件来表示业务流程中的符号,然而在Sun公司的JDK中确并没有这样一个组件包。如果自己去设计和实现这样的图形组件,光靠本人的力量非常不现实。幸运的是,本人找到了一个开源项目JGraph,不过,它没有文档说明,要对它进行扩展,必须熟悉它的设计思想。通过对它的源代码的分析,利用Together建模工具的反向工程能力,本人总结出在JGraph的设计中,主要用到了模型-视图-控制器(MVC)的设计模式。并且为了与sun中JDK的swing包的结构一致,主要借鉴了JTree的设计14。下面就主要从模型,视图,控制等方面介绍一下它的设计。这是对它进行扩展来实现SanBPMN建模工具的前提条件。3.2.1 MVC模式介绍面向对象软件最大的好处之一就是复用,不是解决任何问题都要从头做起。在众多的软件开发过程中,人们发现了许多问题都可以运用以前的设计方案解决现在的问题。设计模式也就应运而生,简单地说,设计模式是对反复出现的设计问题的重复解决方案。在众多的设计模式中,有一种模型-视图-控制模式,简称MVC模式15。这个模式是一种通用的框架,它由三部分组成,如图3.2所示: 图3.1 SanBPMN建模工具的核心Use Case图控制器模型视图图3.2 MVC模型模型Model负责维护组件的状态,在视图View中显示模型所代表的数据,控制器Controller执行事件处理,改变和查看数据。采用MVC模式好处是数据的表示、存储和控制分开,各个部分互相协作,共同完成一个任务16。3.2.2 基于MVC的JAVA SWING图形包设计已有的swing包的组件设计和实现中,完全采用了MVC模型的一个延伸模式模型-代理模型。如图3.3所示:图3.3 SWING模型-代理模式每个swing组件Component中含有一个模型Model,一个用户接口代理(UI-delegate)组成,其中代理类封装了视图和控制部分。Swing作为java的基础库,已经为众多程序员所熟悉。采取与swing的体系结构一致的架构,能达到减少学习成本,充分复用现有的代码,缩短开发时间降低成本的效果。Swing包中所有已实现的这些数据结构中,以树最为复杂,最接近图,而且树可看成是图的一种特例。可以仿照树的设计和实现来设计和实现图这种数据结构。3.2.3 图形组件的总体框架 在Swing包中,用JTree来代表树这种组件。同样,用JGraph来表示图这种组件。树的大体结构如图3.4所示: 图3.4 JTree的总体框架 其中JTree是组件,TreeModel是树模型Model,TreeUI是代理,封装了Control和View。与此类似,也可设计图的一些类和结口如图3.5所示:其中JGraph是组件,GraphModel是图模型,GraphUI是代理,封装了Control和View。图3.5 JGraph的总体框架 树与图的区别和联系关系如下表:表3.1 树与图的区别和联系表树JTree图JGraph继承性两者的可插入外观和可序列化是一致的修改性树的元素只有一种,即节点(Node),而图的元素包括顶点(Vetical)、连接点(Port)、边(Edge),因此有多种渲染器和编辑器分别对应扩展性树和图都支持单选和多选模型,但图的选择还包括选取框分组增强性图支持撤销和重做的历史记录功能实现性JGraph必须实现的方法,包括缩放(zoom)、复制(clone)、格子(grid),分层(layering)、组合(group),处理(handle)和就地编辑(in-place edit)了解了图的功能需求后,下面将以模型、视图、控制这三部分与树的对应部分来说明图形包的组成和设计实现思想

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论