王濤 邵國強 蔡朝暉
摘要:BPM思想有助于組織機構提升業(yè)務運營效率,打通部門隔離及集成既有業(yè)務系統(tǒng),支撐組織機構更好地管理業(yè)務流程和IT技術資源,從而在競爭中取得優(yōu)勢。在開發(fā)流程驅動型軟件時,現(xiàn)有的軟件開發(fā)方法存在些許不足,該文提出了一種新的基于BPM的PDSD開發(fā)方法模型,以期為此類軟件的開發(fā)提供借鑒和參考。模型主要從IT實現(xiàn)的角度切入,將主要開發(fā)過程劃分為四個階段,分別是:代入式流程實踐、層次性流程建模、服務化既有系統(tǒng)和組件化軟件實現(xiàn),并通過高校畢設支持系統(tǒng)的開發(fā)實現(xiàn)做了示例性說明。
關鍵詞:BPM;PDSD模型;流程驅動;業(yè)務管理
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)24-0064-03
Method on Process Driven Software Development Based on BPM
WANG Tao, SHAO Guo-qiang, CAI Zhao-hui
(College of Computer Science and Information Technology, Daqing Normal University, Daqing 163712, China)
Abstract: BPM has the merits of improving the efficiency of organizations business operations, linking different departments, and integrating existing software systems, which helps to better manage the processes and it resources. There are some shortcomings when developing the process driven software using the classical methods. A new method model named PDSD has been proposed to provide some references. This model focuses on the perspective of it implementation, and it divides the development process into four phases, which are immersed experiencing, hierarchical process modeling, publicizing service interface of existing system and component-based software implementation. A demo about the development of graduation project support system is provided to exemplify the usage of PDSD model.
Key words: BPM; PDSD model; process driven; business management
1 概述
在激烈的競爭中,各組織機構的業(yè)務運營效率高低對其發(fā)展極為關鍵。然而在不同組織內部,普遍存在著各種異構自治的信息系統(tǒng),如人事系統(tǒng)、財務系統(tǒng)、ERP系統(tǒng)等。這些系統(tǒng)往往分散在不同的職能部門,支持特定領域的業(yè)務運作,但系統(tǒng)間往往并不能互聯(lián)互通,形成了一個個的信息孤島。針對此問題,基于業(yè)務流程管理BPM思想的解決方案是:以業(yè)務流程為中心全面串聯(lián)組織的運營活動,打通“部門墻”,讓流程可以無障礙地連通各系統(tǒng),并形成驅動整個組織機構運轉的動力[1]。
“組織機構運營的過程,實質就是眾多流程執(zhí)行的過程[2]”,如何對組織機構的生產(chǎn)運營活動進行梳理和規(guī)劃,設計出合理的業(yè)務流程,并提供信息化支撐,就成為人們迫切需要解決的問題。而傳統(tǒng)開發(fā)方法如瀑布式或敏捷式開發(fā)在應用到流程驅動型軟件時,往往并不能深刻反映流程運轉的全貌,容易帶來需求與實現(xiàn)的脫節(jié)或造成開發(fā)時間的浪費[3]。為提升對流程驅動型軟件開發(fā)的支持,ISO組織于2013年底通過了BPMN2.0.2建模和執(zhí)行標準[4]。依據(jù)此標準,各種流程建模工具和業(yè)務流程引擎產(chǎn)品涌現(xiàn)[5-7],建模工具輔助業(yè)務人員和開發(fā)人員進行流程方面需求和設計的溝通,流程引擎則封裝了驅動業(yè)務活動流轉的邏輯和Web服務集成的邏輯。如何整合現(xiàn)有的軟件開發(fā)思想、方法、過程和工具,本文將結合基于BPM的高校畢設支持系統(tǒng)的研發(fā),為流程驅動型軟件的開發(fā)提供一種開發(fā)思路,并命名為PDSD開發(fā)方法。
2 PDSD開發(fā)方法模型
該模型主要從IT實現(xiàn)的角度切入,將主要開發(fā)周期劃分為四個階段,如圖1所示。
2.1 代入式流程實踐
需求分析人員化身為辦理業(yè)務的當事人,親身實際地從業(yè)務流程的起點出發(fā),準備所需材料,參與到具體的工作場景當中。每到一個新的任務辦理節(jié)點,則由另外的需求人員充當該業(yè)務階段的辦理人,在工作人員指導下完成每個業(yè)務階段的活動。通過這種身份代入的方式,熟悉業(yè)務,梳理流程,匯總業(yè)務流程數(shù)據(jù)。
在該階段,要著重關注這幾方面的內容:
1)業(yè)務鏈的價值,即該業(yè)務流程完成后的產(chǎn)出是否對組織完成其職能有實質性意義,若沒有則忽略該流程。
2)業(yè)務鏈所涉及的組織結構,如人員、職位、角色、部門的關系,和用到的既有業(yè)務系統(tǒng)功能。
3)業(yè)務鏈中每個具體活動的屬性。包括名稱、參與者、時間限制、業(yè)務數(shù)據(jù)。
4)業(yè)務鏈中活動與活動間的路由流轉規(guī)則。包括業(yè)務規(guī)則、條件判斷、并發(fā)與否等。
2.2 層次性流程建模
在該階段由最終用戶、需求人員和設計人員一起將調研好的流程模型化。模型化即使用流程建模工具如Activiti Modeler等用圖形化符號表征業(yè)務實際開展情形。
在初級的層次上,由最終用戶和需求人員選用基本的BPMN元素繪制草圖,以便于相互間的溝通。該層次繪制的模型圖著重在于其描述和分析層面的功能,可以不那么嚴謹和規(guī)范,但整體的流程脈絡和走向結構不能有大的偏差。該階段可以與前一階段的流程實踐部分形成迭代,相互印證。
在高級的層次上,由需求人員和設計人員使用更為具體、承載明確語義的BPMN元素繪制面向執(zhí)行的業(yè)務流程圖。該流程圖將依據(jù)初級層次的草圖進行繪制,但更加強調流程執(zhí)行的細節(jié)信息,繪制時需要設置好活動及流轉的各種屬性。這需要對建模規(guī)范有全面的理解和掌握,并能順利地將需求信息與模型圖建立合理完善的對應關系。可以在此模型圖基礎上搭建快速原型,與最終用戶進行協(xié)商修改和確認。
2.3 服務化既有系統(tǒng)
對流程圖中涉及與原有業(yè)務系統(tǒng)產(chǎn)生交互的活動,則需要使用粗粒度服務化的理念去思考和審視,進行異構系統(tǒng)的集成。由流程引擎擔當待開發(fā)新系統(tǒng)的調度中心,讓原有業(yè)務系統(tǒng)各司其職,用流程把這些服務串接起來。
新系統(tǒng)搭建采用以服務為導向的架構體系,對既有業(yè)務系統(tǒng)進行服務化改造。改造的方式可以采用基于SOA的ESB技術體系,也可以采用更為輕量級的基于REST的API。借助流程引擎發(fā)布的Web服務搭建流程中心,實現(xiàn)對流程和各業(yè)務系統(tǒng)的統(tǒng)一管理。
2.4 組件化軟件實現(xiàn)
對新系統(tǒng)中需要實現(xiàn)的本地業(yè)務功能,依據(jù)組件化開發(fā)原則,按照活動類型分情況處理。若是用戶類型的人工活動,則更多地需要注意人與系統(tǒng)的交互體驗,以及角色與功能權限的對應關系。若是自動化活動,則更多關注于業(yè)務邏輯過程的實現(xiàn),注重數(shù)據(jù)結構和算法的設計?;顒拥牧鬓D邏輯,則調用流程引擎的接口實現(xiàn)。
實現(xiàn)業(yè)務流程時,同一活動內以及前后活動間運轉數(shù)據(jù)的協(xié)調也極為關鍵。業(yè)務數(shù)據(jù)一般從用戶處收集或是從某些業(yè)務系統(tǒng)提取,在流程執(zhí)行時對業(yè)務數(shù)據(jù)進行更新,同時需要設置流程變量以進行整個流程級別的狀態(tài)保存和結果記錄。此外,本地應用與Web服務之間的數(shù)據(jù)交換也需要進行良好設計。
3 模型的適應場景
BPM思想融合了業(yè)務流程管理和IT技術支撐,本文提出的基于BPM的PDSD方法模型拓寬了流程驅動型軟件開發(fā)的途徑,便利了開發(fā)中的交流與協(xié)作,縮短了開發(fā)周期,帶來了更好的產(chǎn)品輸出和用戶滿意度。典型的可應用場景特征如:有多角色參與的業(yè)務流程,跨部門甚至跨組織的業(yè)務流程,有多種異構業(yè)務系統(tǒng)需要進行整合集成;而不適用的場景特征有:不涉及多人交互的單任務型需求,純自動化過程型的業(yè)務處理需求等。
4 模型的應用案例
待開發(fā)的高校畢設支持系統(tǒng)涉及多種用戶角色(學生、教師、學院領導、教務處),需要多部門(學院、教務處)協(xié)作才能完成如選題、改題、指導與檢查、答辯、優(yōu)秀論文公示等業(yè)務流程,教務處原有業(yè)務系統(tǒng):教務管理系統(tǒng)--主要功能有學生和教師信息管理、成績管理等,畢業(yè)論文管理系統(tǒng)—主要功能有畢業(yè)論文的上傳、下載等。在此,僅選取其中的選題流程做示例性說明。
通過使用代入式流程實踐,可以得出如下需求信息:選題這一流程是畢設過程的必經(jīng)階段,有現(xiàn)實意義;涉及人員有學生、教師、系主任,需要用到教務管理系統(tǒng)中的畢設題目備案功能;涉及的活動有教師發(fā)布選題和任務書、學生甄選題目、學生提交開題報告、指導教師審閱開題報告、系主任審閱開題報告、教務管理系統(tǒng)進行選題備案。
層次性建模階段,通過最終用戶和需求分析人員協(xié)作,繪制的初級層次流程圖如圖2所示。
經(jīng)由需求分析人員和設計人員的進一步細化,繪制的高級層次流程圖如圖3所示。此外還需要在每個活動和流轉上進行更多屬性的設置,將需求信息更全面地融入到流程圖中。
采用BPM平臺如Activiti基于服務化理念搭建了流程中心,架構如圖4所示,其中需要對教務管理系統(tǒng)畢設題目備案功能進行服務化改造。
基于組件化進行選題流程實現(xiàn)的邏輯如下:業(yè)務組件主要有Title題目組件,主要承載教師填寫的題目信息數(shù)據(jù)和處理邏輯;TitleSelection選題組件,主要承載選題結果數(shù)據(jù)和處理邏輯,以及處理與教務管理系統(tǒng)的Web服務交互邏輯;TitleProcession選題過程組件,主要負責關聯(lián)業(yè)務與流程,承載流程執(zhí)行過程中的審批意見等信息,并作為流程變量隨流程一起流轉。
5 結束語
PDSD方法聚焦BPM思想中的IT實現(xiàn)視角,整合了現(xiàn)有軟件開發(fā)的部分思想,提供了一種新的流程驅動型軟件開發(fā)的思路。通過應用該方法模型,可以為流程驅動型軟件的開發(fā)帶來指導和便利。未來隨著云計算和移動互聯(lián)網(wǎng)的普及,流程型軟件的應用會更加便利化和貼近生活化。依托云服務平臺的流程中心會提供后端高可靠易拓展的強大支持能力,客戶端的表現(xiàn)形式也將多樣化,現(xiàn)今常見的流程運營模式也許將會隨著移動App和各種傳感器的應用而產(chǎn)生重大變革??傊?,基于BPM的流程型軟件將有更加廣闊的舞臺。
參考文獻:
[1] 辛鵬, 榮浩. 流程的永恒之道[M]. 北京: 人民郵電出版社, 2014: 147-160.
[2] 李·克拉耶夫斯基, 拉里·里茨曼. 運營管理——流程與價值鏈[M]. 7版. 北京: 人民郵電出版社, 2007: 1-20.
[3] Matt Cumberlidge. Business Process Management with JBoss jBPM[M]. Packt Publishing Ltd. Birmingham, UK, 2007: 6-16.
[4] Object Management Group. Business Process Model and Notation[S]. Object Management Group, Inc., US, 2013.
[5] IBM中國開發(fā)中心BPM團隊. IBM BPM實戰(zhàn)指南[M]. 北京: 希望電子出版社, 2014.
[6] Matjaz B Juric. Design Principles for Process-driven Architectures Using Oracle BPM and SOA Suite 12c[M]. Second Edition. Packt Publishing Ltd. Birmingham, UK, 2015.
[7] 閆洪磊. Activiti實戰(zhàn)[M]. 北京: 機械工業(yè)出版社, 2015.