楊 濤,石 琳,宋夢蝶,李守斌,王 青
(1.中國科學院軟件研究所 互聯網軟件技術實驗室,北京 100190; 2.中國科學院大學,北京 100190;3.中國科學院軟件研究所 總體部,北京 100190) (*通信作者電子郵箱wq@itechs.iscas.ac.cn)
支持多工具協同的流程管理系統的設計與實現
楊 濤1,2,3,石 琳1,3,宋夢蝶1,2,3,李守斌1,3,王 青1,3*
(1.中國科學院軟件研究所 互聯網軟件技術實驗室,北京 100190; 2.中國科學院大學,北京 100190;3.中國科學院軟件研究所 總體部,北京 100190) (*通信作者電子郵箱wq@itechs.iscas.ac.cn)
軟件開發流程中越來越依賴各種計算機輔助軟件(CAS)。在使用多種工具的情況下,會遇到開發流程不可定制、流程數據不一致和流程管理效率低等問題。針對這些問題提出了一個支持多工具協同工作的軟件開發過程管理系統。通過分析軟件開發過程,研究支持快速迭代、偏向流程管理的軟件工程開發模式,結合工作流思想設計分層架構的軟件開發過程管理系統。該系統經過嚴格的測試用例檢測,在設計的576個測試用例下通過率達到85%,能夠完成工具協同的大部分需求,包括流程可定義、保持數據一致和開發流程管理。該系統在7個軟件開發組,共約200人的規模下推廣試用。根據管理組、開發組和測試組的反饋結果,該系統比傳統方式節省了每周例會的時間,方便了開發任務的管理,從而提高了開發效率。
軟件工程;軟件開發流程;流程管理;工作流;計算機輔助軟件
在傳統的軟件工程中,軟件開發生命周期是一個十分重要的概念。隨著互聯網技術的飛速發展,軟件開發節奏日益加快,快速迭代式的開發逐漸成為主流。在現代的軟件開發環境下,多人多地點參與的項目也日漸增多,復雜情況下的軟件開發需要考慮信息的對等、開發流程的定制、開發任務的分配以及管理等問題。在協同開發過程中,面對的開發流程和工作環境各不相同,單純依靠傳統的軟件開發模式,信息和數據的流轉基本靠人工來進行,效率較低,因此,通過研究軟件開發流程,將開發項目進行解耦,降低各個模塊之間的耦合度,來解決此類問題。
與此同時,隨著計算機軟件技術的發展,各種類型的信息系統和計算機輔助軟件(Computer-Aided Software, CAS)也被廣泛地使用以支持這些工作,但這些軟件和系統基本上是獨立運行的,相互之間缺乏必要的交互、協作與感知,從而使得它們在協調多個人的活動、協同完成某個共同的任務方面有著比較嚴重的不足。這也是工作流管理系統(Workflow Management System, WfMS)自進入20世紀90年代以來吸引了來自研究機構與產業界廣泛關注的重要原因[1-4]。
本文從分析軟件開發過程的角度,研究支持快速迭代、偏向流程管理的軟件工程開發模式,提出一種基于工作流的支持多工具協同工作的軟件開發過程管理模型,致力于讓處于軟件開發過程中的用戶可以自由定制軟件開發流程,選擇適合的計算機輔助軟件,通過工作流來推動軟件開發生命周期中的數據進行自動流轉。該模型的靈活性和流程管理功能,讓軟件開發過程中的步驟更加直觀,開發流程管理更加方便,在一定程度上提高了軟件開發效率。根據設計這個框架的思想和實際需求,本文開發了流程管理系統,并在7個軟件開發組織,共約200人的規模下推廣試用,證實了該方案的可行性。
工作流技術發源于20世紀六七十年代,其當初主要目的是辦公自動化和無紙化。后來工作流的思想被應用到各個行業中,通過工作流的思想來實現不同行業的操作流程,在提高效率的同時,也讓這些行業具體的操作流程逐漸變得規范。在過去的幾十年間,不同的學者們研究了不同行業,如李志民等[5]研究的基于工作流的大型倉庫物流監控系統;李鵬等[6]研究的基于工作流技術的辦公自動化系統在醫院中的應用;張宏等[7]研究的基于系統動力學的高速公路維護管理系統等[8]。本文的研究目標是軟件工程領域,針對軟件開發日益成熟的開發模式和廣泛使用的軟件開發輔助工具,提供一種能夠提高軟件開發效率,有利于軟件開發流程規范性的軟件工程輔助工具集成方案。
1.1 工作流
工作流技術的標準化組織工作流管理聯盟 (Workflow Management Coalition, WfMC)于1993年成立。WfMC所給的定義為:工作流是一類能夠完全或者部分自動執行的經營過程,根據一系列過程規則,文檔、信息或任務能夠在不同的執行者之間傳遞、執行[9]。
工作流技術為工作流自動化和構建流程應用提供基礎平臺,實現了流程邏輯與業務邏輯的分離,支持業務流程的分析和規范化定義以及業務單元的自動組裝,降低了復雜流程應用的開發難度,提高了應用系統的管理效率。
1.1.1 工作流管理系統
工作流管理的主要目標是通過對相關的人力資源、信息資源的調用,來協調和完成業務過程中的各個環節,讓業務按照一定的邏輯順序依次執行,實現業務流轉的自動化。
工作流管理系統主要具備以下3個功能特征:
1)工作流定義功能。
主要是對業務處理過程的計算機定義,提供了一種或多種分析、建模、系統定義技術,將一個現實世界的業務處理過程轉換成計算機可處理的定義。
2)運行控制功能。
對過程的定義進行解釋,創建并控制過程的運行實例,調度過程的各種行為步驟,調用適當的人工和IT應用程序資源。
3)運行交互接口。
提供與人員或IT應用程序工具進行交互接口來處理各種活動步驟,例如確定過程的狀態,調用應用程序工具,傳遞應用程序數據等[10]。
1.1.2 術語介紹
在該系統中,由于采用了工作流,有一些重要實體定義如下。
1)流程定義(延伸為模板)。
一個圖形流程定義,代表工作流的流程邏輯元素以及各元素之間的關系。工作流模板跟流程圖很類似,將一系列步驟按照一定的邏輯組織在一起,按照工作流定義語言形成一定的文本結構,能被工作流引擎所識別。工作流模板的定義方式最常見的就是圖形拖拽,工作流定義語言也有很多種,可擴展標記語言(eXtensible Markup Language, XML)比較常見。圖1給出的就是工作流模板的樣例。

圖1 工作流模板
2)活動。
活動是組成流程定義中的一個邏輯步驟的任務(自動任務或人工處理)?;顒拥捏w現是任務節點,等待被分配任務的人去完成,是工作流流轉中工作流最關心的部分,也是跟工作流對接的業務最相關的部分。在模板被實例化以后,任務節點就具有了實際的意義。
3)活動所有者。
活動所有者是有權宣布一個活動結束,然后推進工作到流程中的下一個活動的參與者。
4)流程實例。
一個流程實例,通常稱為工作,是一個流程定義的運行實例。對于工作流引擎,只要是符合工作流定義的模板都可以被實例化,形成一個流程實例,就像操作系統分配的一個進程一樣。這個流程實例能夠攜帶被實例化時所賦予的信息在工作流引擎的推動下進行流轉。
5)流程上下文變量。
保存每一個流程運行的上下文信息。通常在流程定義中聲明這些變量,然后在流程實例生成時被實例化。
6)參與者。
參與者是以下類型之一:資源集、特定資源、組織單元、角色(一個人在組織內部的作用)、人或系統(自動代理)。
1.2 計算機輔助軟件集成的開發環境
在軟件即服務(Software as a Service, SaaS)[11]的思想下,可以將軟件開發不同階段的輔助工具抽象成一個個不同的服務。從廣義上來說,可采用四級模型來說明軟件即服務應用的成熟度,對于第二級成熟度而言,軟件及服務需要可配置[12]。
為了更簡明地闡述,本文簡化軟件工程開發模型為3個步驟:項目管理、代碼管理和缺陷管理。每個步驟下都有各種特色的計算機輔助軟件來輔助軟件開發過程,這些軟件的集成在軟件開發中扮演了十分重要的角色[13]。
軟件開發人員根據需求,設計的流程如圖2所示。
軟件開發者在設計開發流程的時候可以自由選擇不同的節點來完成不同的功能,而這些節點的背后就是一個個計算機輔助軟件提供的功能。在這樣一個靈活定制的流程之下,高效地實現軟件開發過程的自動流轉。
現有研究中,軟件開發輔助工具的集成已有相關研究,但是大部分的研究都是著力于輔助工具的硬性集成,偏向于研究一個支持某些軟件開發輔助工具的開發平臺,例如郭慎平[14]研究的基于Eclipse的嵌入式開發工具的研究與實現。在該平臺上對軟件開發過程中的任務和數據進行管理,包括任務分配和權限管理等。

圖2 簡化的軟件開發流程
1.3 研究意義
現有方案的劣勢就是軟件開發輔助工具的耦合性很高,不便于后期更換軟件或者版本,可擴展性和可維護性較低。
結合工作流的思想,針對這種能夠提高開發效率的平臺,本文與現有研究的區別主要體現在3個方面。
1)軟件開發流程可定制。
傳統的系統擁有固定的軟件開發流程,工具之間的耦合度很高,不便于后期更換軟件或者升級版本;本文設計的系統允許用戶定制不同的軟件開發流程,并選用不同的工具來實現。
2)軟件開發數據一致性。
傳統的系統在工具對接和數據流轉方面多采用硬性集成,通過工具間的接口對接的方式進行數據互聯;不同工具的數據要求格式不盡相同,傳統系統在工具對接時處理這些數據,各個對接之間的數據格式各異。本文采用的方法是在工作流中統一數據格式;這些信息的統一有利于信息的流轉和重要信息的提取,在本文3.3節有詳細介紹。
3)引入工作流來管理開發流程。

項目開發過程可以分成項目管理模塊、開發模塊、測試模塊、文檔管理模塊、集成模塊、驗證模塊等。充分利用不同計算機輔助軟件所提供的功能來完成和支撐軟件開發過程中在這個階段的需求[15]。
本文設計的基于工作流的支持多工具協同的軟件開發過程管理模型,是以工作流引擎為核心,來支撐軟件開發過程中的各種需求。圖3是該模型總體設計的基礎架構。
本文的重點是工作流引擎的開發和流程管理與監控系統的設計與實現。架構中的各類工具應用了面向服務和設計模式中代理模式的思想,通過服務代理中間件的方式實現與工作流最大限度的解耦。邵虹等[16]的工作中有詳細介紹。根據圖3的系統設計分析,需要設計和實現以下兩個方面。
1)工作流引擎。
①選擇合適的工作流引擎;
②開發基于工作流引擎的RESTful API(REpresentational State Transfer Application Programming Interface)。
2)流程管理。
①確定流程可定制化方案,提供流程定制服務;
②提供可視化的流程和任務管理服務;
③擴展設計數據庫來支撐數據的存儲和流轉。

圖3 系統設計架構
2.1 工作流引擎
2.1.1 WorkFlow Engine & WorkFlow API
在架構圖3中,工作流引擎(WorkFlow Engine)是一個核心部分。不同于張海軍等[17]提出的基于面向服務架構(Service-Oriented Architecture, SOA)的企業應用集成框架,工作流的加入對推動任務自動化流轉有著非常高效的作用。使用工作流的好處是,高可維護性以及擴展性。如果一個系統中只用到了一個流程,且變動的可能性不大,基本不需要考慮工作流。在本文架構設計中,靈活的流程配置和服務選擇是它的特點,工作流引擎在該框架下起到了核心的作用[18]。
工作流可以將整個流程中不同的操作以一定的邏輯銜接起來,并且讓信息在其中自動流轉。系統會處理自動流轉的任務,剩下的任務用某種方式通知需要處理的人,讓人介入,而不需要人主動去關注現在應該做哪個步驟。
工作流引擎與靈活定制的流程相結合,并且流程可以靈活選擇相應的服務,就必須將工作流當成一種服務來提供給軟件開發輔助軟件使用。對于制定的任何流程,以及選定的何種輔助軟件,只要這些軟件需要在流程中自動流轉傳遞信息的時候,就需要跟工作流進行接口對接[19]。根據工作流引擎的特點,開放出應用程序接口(Application Programming Interface, API)來供服務進行調用和對接十分必要。
圖4所展示的就是工作流引擎以及工作流引擎API之間的關系,對應架構中的WorkFlow Engine 和 WorkFlow API兩層。將提供功能API與工作流內核分離的另外一個好處就是提高了工作流自身的靈活性和可擴展性。由于流程的可定制性和服務的可選擇性,未來的流程可能更加復雜,服務種類可能更多,對工作流的功能要求可能更復雜,單獨將提供功能API作為架構的一部分,會有利于后期的擴展、開發和維護。

圖4 工作流引擎參考模型
2.1.2 流程定義語言擴展
為了使工作流管理系統具有良好的互操作性,首先必須對工作流模型中公共的實體、屬性以及實體間的關系作一個規范。工作流管理聯盟于1999年提出了工作流過程定義語言 (Workflow Process Definition Language, WPDL),包括流程的節點、流轉方向、判斷條件、負責人等。合理的流程定義語言不僅能夠幫助工作流引擎更好地工作,更能夠讓使用者輕松明確地制定自己需要的流程[20]。根據本文設計的架構,需要對流程定義語言進行改進和設計,來支持服務和工具等更多的功能。
2.1.3 工作流模板庫
1)模板制作。
設計模板定制平臺,向用戶提供可操作的用戶界面(User Interface, UI)來定制屬于自己的軟件開發流程。設計合適的拖拽界面,根據需求定義適當的工作流模板節點和流程語言是該部分的重點。
2)模板管理。
由于工作流模板的高復用性和可編輯性,建立一個模板庫對于提高用戶定制模板效率有著重要作用。每個用戶建立的模板都可以被保存至模板庫,用戶在自定義模板的時候也可以從模板庫直接導入相似模板進行修改,達到事半功倍的效果。
3)模板權限控制。
在軟件開發過程中,用戶權限角色化對于軟件開發過程管理是有幫助的,因此根據用戶的權限來相應地建立模板庫的權限對于保護軟件開發過程中信息的安全性和私密性有著重要作用。
2.2 流程任務管理與監控
所謂流程任務管理與監控,就是對前面提到的工作流實例、任務等元素進行管理。完善的管理能夠讓工作流支撐的業務流程事半功倍。
2.2.1 流程部署
當用戶部署工作流模板時,工作流會根據工作流模板所攜帶的信息部署生成一個工作流實例。在本文的設計中,針對軟件開發過程的流程的部署會包含其他的信息。當給定一個工作流實例的時候,本文架構首先會分析這個工作流實例所需要完成的步驟,完成每個步驟所參與的輔助軟件。除此之外,針對流程部署,采集一些其他的軟件開發過程相關輸入(如項目相關初始數據、流程節點負責人、軟件開發流程時間限制以及一些閾值等)。
2.2.2 流程管理
流程部署之后,流程實例中就包含一個個任務等待執行,這些任務會按照設定的執行邏輯,根據一定的條件進行執行。這些任務實質的內容就是通過任務節點關聯的軟件開發工具去完成相應的軟件開發需求。軟件開發過程有序進行的前提就是對這些任務進行高效的管理,同時給用戶提供便捷的服務。
1)待處理任務。
在設定好的軟件開發流程(模板)中,每個節點即為一個任務,每個任務或是自動流轉或是有任務負責人,根據軟件開發流程化的特性,給所有負責人發送相關的任務信息,并提供查詢任務的接口。這樣會大大提高流程中節點負責人的工作效率。
2)人工處理。
軟件開發過程中,不同的任務有不同的執行方式:與工具對接的自動流轉和與用戶操作相關的人工處理。與用戶操作相關的人工處理需要用戶的參與,從用戶那里獲得相關數據,流程再根據相應的邏輯進行流轉。
3)添加子流程。
當一個節點任務過于復雜,可以將這個任務單獨處理為一個流程。面對這種情況,在當前任務下面創建子流程是本文設計的一個亮點之一。子流程的創建機制與父流程相同,需要著重考慮和設計的是子流程與父流程執行狀態的同步、數據的交互和節點負責人之間的任務傳遞。
2.2.3 流程控制
一個流程實例(Process Instance, PI)就是一個軟件開發流程的簡要概括。完善的流程控制會讓軟件開發過程進行的更加順利。
1)已發起流程。
通過已發起流程,用戶可以查看當前已經發起的流程,以及流程的一些信息。對應過來就是當前已經啟動的軟件開發項目以及各個項目的進展。
2)流程監控。
軟件開發流程狀態包括流程進展、耗時、產出、負責人以及接下來的動作活動等這些信息。通過圖表的形式將流程的狀態和流程的數據,與流程執行過程中數據的傳遞直觀地展現出來,這對控制軟件開發過程會有很大的幫助。
3)終止流程。
對于廢棄的項目或者需要重新作出調整的項目,提供一個終止流程并保存之前相關數據的功能十分必要。
2.2.4 數據統計
在本文設計的系統中,會收集軟件開發過程中幾乎所有的數據,對這些數據的分析將會對以后的軟件開發過程有很大幫助。
1)工具使用統計。
在用戶設定模板進行軟件開發的時候,模板中會帶有使用何種軟件工程輔助工具來幫助開發的信息。對這些信息的統計能夠得出在不同開發階段使用不同軟件開發輔助工具的偏好,有利于優化和推廣這些軟件開發輔助工具。
2)數據流量統計。
每個任務流轉時所攜帶的信息可以在執行任務流轉的功能中進行統計和記錄。這些跟軟件開發相關的數據,可以用來分析軟件開發過程中的行為偏好、開發過程的側重點等,對于優化開發流程有一定的潛在價值。
3)模板使用統計。
記錄每一次模板的使用情況,針對經常使用的模板可以進行優化以及抽象成樣例模板,方便用戶進行模板定制。
2.3 數據庫設計
本文設計了存儲流程定義的表task_defined,它用來存儲流程定義XML文件的名稱、流程定義圖片的名稱、更新的時間以及創建該流程定義的用戶的編號和所在組號。
本文設計了流程實例的表task_instance,用來存儲流程實例的相關信息。每條記錄存儲的信息包括流程實例編號、狀態、標題、創建時間、創建該流程實例的用戶編號、用戶名以及該流程實例中所有任務名稱和對應任務的負責人,還包括該流程實例對應的外部鏈接工具的編號。
本文設計了存儲對接外界工具的iscas_tool表,它用來存儲工具編號、工具描述、工具圖標、工具唯一識別信息、工具名稱、工具對接統一資源定位符(Uniform Resource Locator, URL)等工具相關的信息。
除了上面設計的數據表之外,流程管理系統主要還應用了Java業務流程管理(Java Business Process Management, jBPM)的18張數據表,在此就不列入數據表設計的范疇。
3.1 流程可定制化方案——流程定制平臺
在工作流的選擇上,本文選擇了目前主流且功能能完全符合本文需求的jBPM[21]。jBPM是最適合擴展的代表,是在所有開源引擎中最適宜被商業化應用的一款。jBPM使用了開源框架Hibernate3, 支持當前大多數流行的數據庫, jBPM將數據的管理職能分離出去,自己專注于商務邏輯的處理。使用jBPM流程定義語言(jBPM Process Definition Language, jPDL),直觀易懂,可以手工修改。它文檔豐富,用戶群最大,開源組織十分活躍,被JBoss收購后發展趨勢良好[22]。
jBPM本身有Eclipse中的流程定義插件,結合框架的需求和用戶友好性的考慮,在實現過程中開發設計了自己的流程設計器,能夠方便生成和導出XML文件。
流程定制方案上,用戶可以自主選擇不同的節點,包括開始節點、結束節點、任務節點、分支聚合節點、判斷節點等[23]。值得一提的是,在案例中本文設計的流程定義平臺上,任務節點是任務處理的核心所在,這個節點能夠攜帶很重要的信息,如標識任務節點、節點使用工具、節點負責人等,本文也在基于XML的流程定義語言上擴充了自己的元素。
圖5是本文實現的流程定制平臺。
在用戶設計完成流程之后,需要對流程的合理性進行驗證,參考一些文獻以及jBPM的一些機制,因不是本文重點,在此就不作贅述[24]。

圖5 流程定制平臺
3.2 任務管理與監控方案——任務管理系統
jBPM本身就提供了很多的用戶查詢交互接口,通過應用程序接口調用的形式給出。本文設計的任務管理系統,用來展示在這個框架下與用戶定義流程相關的內容。從功能模塊劃分,將該系統分為3個部分:流程部署、流程任務管理和數據統計。
1)流程部署模塊。
系統可以根據開發模板的特性和開發流程的不同需求,傳遞相關數據來支撐開發過程中所需的功能。如圖6所示。

圖6 流程部署
2)流程任務管理模塊。
如圖7所示,流程任務管理包括任務列表、模板庫和流程監控。流程監控向使用者展示包括流程進度、流程數據流等,流程當前狀態以及提供終止流程等操作。

圖7 流程管理
3)數據統計模塊。
數據統計模塊對所有服務的使用、工具的調用、流轉的數據提供統計和分析功能,便于改進流程;可以針對流程中任何一次的數據流轉進行數據追蹤。這些數據同時可以持久化到本地或者其他數據平臺,進行數據挖掘和機器學習等相關分析。
流程管理系統的設計旨在讓使用者有更好的用戶交互界面可以對流程進行設計和定制;對任務進行可視化、操作和監控;對工具和服務進行注冊和驗證;對通過流程的數據流進行統計、分析、追蹤和統計。
3.3 數據的交互和流轉實例
假設簡化開發流程如圖8所示。

圖8 開發流程
Fig. 8 Flow chart of development
軟件開發流程中,雖然使用了很多支持工具,但是有很多信息具備一致性的性質,例如項目名稱、參與人員、開發組信息等。在該開發流程之下,設計數據流轉過程如圖9所示。

圖9 數據流轉示意圖
數據的傳輸分為兩個部分:Content和Taskdata。Content為全局數據,從發起流程開始,數據量會不斷擴大;Taskdata為增量數據,每個任務節點產生的數據。
每個任務節點調用工作流接口結束任務的時候,會傳遞自己產生的數據到工作流。工作流將它合并到Content中,并傳遞到下一個任務節點。
在每個Taskdata傳遞回來的數據中,為確保數據能夠合并到Content中并解決重復更新問題,必須對Taskdata傳遞的內容格式作出約束。系統中會設計通用詞表,Taskdata根據通用詞表來標志自己傳遞回的數據。
3.4 系統測試
系統在超過7個開發組中推廣使用,并且委托測試組根據要求對系統主要功能進行了嚴格的測試,測試用例通過率超過80%以上為合格。
3.4.1 測試結果
表1為系統的測試結果。該測試結果為系統第一個版本的測試結果。功能測試中,針對系統主要功能,設計576個測試用例,執行576個測試用例,無致命缺陷,無嚴重缺陷,有65個一般缺陷。測試用例通過率超過85%,達到合格標準。經過調查問卷和周期性會議討論的形式,使用者反映在項目開發效率上已經有很大的提升,對軟件開發效率的提高有著很大的幫助。
3.4.2 用戶反饋
相比較傳統軟件開發模式,該系統從不同用戶角度給軟件開發帶來了便利,提高了效率。
1)管理組組員。
該系統所提供的實時動態流程監控,能夠讓管理組的用戶時刻了解流程的動態,包括當前開發的任務、任務的進度、任務耗時以及任務產出等軟件開發過程中產生的所有信息,同時該系統也給管理組提供方便的操作接口,可以直接對任務內容和任務執行隊伍進行校正和停止。管理者反饋,通過系統所能獲得和掌控的信息比每周例行召集開發組長開會獲取的信息還要豐富,既簡便也實用,提高了工作效率。

表1 測試用例執行結果
2)各小組組長。
開發組、測試組、集成組組長也表示該系統的靈活性也提高了他們的工作效率。開發組組長需要基于Gitlab開源工具來管理和評審代碼,在該系統平臺下,只需將Gitlab注冊到系統中,在部署流程任務的時候就可以讓組員使用Gitlab進行代碼托管,任務的產出會放在Gitlab上,方便了代碼的整合、管理和評審。同時,子父流程功能也能夠讓組長在分配任務的時候適當確定任務的粒度,可以將不同任務進行細分,該系統使用起來十分符合實際需求。
3)各小組組員。
打開系統就能知道自己的任務內容,任務進展和任務產出,同時能夠知道上游任務相關人員相關的任務產出和可以使用的相關資源,節省去了一部分頻繁接洽和郵件商討的時間,提高了工作效率。
基于工作流的支持多工具協同工作的軟件開發過程管理模型致力于現代軟件開發流程的自動化,提供自由可定制開發流程的方案,對軟件開發流程進行全方位的管理與監控,對流程中的數據進行統一的統計、分析和追蹤。它可以有效地解決現有的軟件開發過程中的3個問題。
1)軟件開發流程可配置。
分析軟件開發過程的步驟并分解,降低各個模塊之間的耦合性,提升軟件開發過程的靈活性和便捷性,使得軟件輔助軟件的參與不顯得十分僵硬。
2)流程數據不一致。
通過將工具與工作流對接的方式,將軟件開發流程中的數據統一到工作流中進行流轉,達成了流程數據的一致性。
3)支持多工具協同的流程管理。
解決了軟件開發過程中同時使用多種工具所帶來工具數據和開發流程信息管理的問題。建立支持多種工具協同工作的軟件開發過程管理平臺,規范了多種工具下的開發流程管理,經理論分析和實踐驗證,在一定程度上提高了軟件開發效率。
在目前架構設計中,工作流引擎對工具開放的API的規范性和通用性還有待提高,如何完善這樣的工具與工作流對接標準是接下來的研究重點。這將會大大促進工具接入的效率,也有利于該模型的推廣。
References)
[1] 史美林,楊光信,向勇,等.WFMS:工作流管理系統[J].計算機學報,1999,22(3):325-334.(SHI M L, YANG G X, XIANG Y, et al. WFMS: workflow management system [J]. Chinese Journal of Computers, 1999, 22(3): 325-334.)
[2] BAINA K, BENALI K, GODART C. DISCOBOLE: a service architecture for interconnecting workflow processes [J]. Computers in Industry, 2006, 57(8/9): 768-777.
[3] 范玉順.面向服務的企業建模和工作流管理研究[J].中國計算機學會通訊,2006,2(3):77-79.(FAN Y S. Research on service-oriented enterprise modeling and workflow management [J]. Communications of CCF, 2006, 2(3): 77-79.)
[4] LIU B, FAN Y S. Research on architecture and key technology for service-oriented workflow performance analysis [C]// Proceedings of the 2007 International Workshop on Process Aware Information Systems. Berlin: Springer, 2007: 540-545.
[5] 李志民,趙一丁.基于工作流的大型倉庫物流監控系統設計[J].現代電子技術,2016,39(6):66-69.(LI Z M, ZHAO Y D. Design of large warehouse logistics monitoring system based on workflow [J]. Modern Electronics Technique, 2016, 39(6): 66-69.)
[6] 李鵬,辛海燕,苗元青,等.基于工作流技術的辦公自動化系統在醫院中的應用[J].齊魯醫學雜志,2016,31(1):96-98.(LI P, XIN H Y, MIAO Y Q, et al. Application of office automation system in hospital based on workflow technology [J]. Medical Journal of Qilu, 2016, 31(1): 96-98.)
[7] 張宏,任芳敏,鄭榮貝.基于系統動力學的高速公路維護管理系統仿真研究[J].系統仿真學報,2016,28(3):676-682.(ZHANG H, REN F M, ZHENG R B. Simulation research for highway maintenance management system based on system dynamics [J]. Journal of System Simulation, 2016, 28(3): 676-682.)
[8] 高愛華,王壽喜,趙昆鵬,等.天然氣管道工程計算集成應用平臺開發[J].天然氣工業,2015,35(7):85-90.(GAO A H, WANG S X, ZHAO K P, et al. Development of an integrated application platform for natural gas pipeline engineering calculation [J]. Natural Gas Industry, 2015, 35(7): 85-90.)
[9] Workflow Management Coalition. Workflow Client Application Program Interface (WAPI) Specification.WflVIC-TC- 1009,Version1.2 [EB/OL]. [2017- 01- 03]. http://www.wfmc.org/what-is-bpm.
[10] 趙瑞東,陸晶,時燕.工作流與工作流管理技術綜述[J].科技信息(科學·科研),2007,24(8):105-107.(ZHAO R D, LU J, SHI Y. Workflow and workflow management technology [J]. Science & Technology Information, 2007, 24(8): 105-107.)
[11] 耿冰,于修理.SaaS與傳統軟件的比較研究[J].沈陽師范大學學報(自然科學版),2009,27(1):84-86.(GENG B, YU X L. Comparison between SaaS and conventional software [J]. Journal of Shenyang Normal University (Natural Science), 2009, 27(1): 84-86.)
[12] 許四平.SaaS軟件即服務模型研究[J].硅谷,2009,8(4):9-9.(XU S P. Research on SaaS software as a service model [J]. Silicon Valley, 2009, 8(4): 9-9.)
[13] 劉偉,朱曉非,聶亞平.淺談軟件工程和CASE工具的運用[J].中國科技信息,2012,24(14):90.(LIU W, ZHU X F, NIE Y P. Application of software engineering and CASE tools [J]. China Science and Technology Information, 2012, 24(14): 90.)
[14] 郭慎平.基于Eclipse的嵌入式開發工具的研究與實現[D].武漢:武漢理工大學,2009.(GUO S P. Design and implementation of Web application development platform auxiliary tool based on Eclipse plug-in technology [D]. Wuhan: Wuhan University of Technology, 2009.)
[15] 葛中澤.基于事件驅動的高效柔性工作流引擎設計[J].鄂州大學學報,2014,21(12):99-101.(GE Z Z. Design of efficient and flexible workflow engine based on event driven [J]. Journal of Ezhou University, 2014, 21(12): 99-101.)
[16] 邵虹,張雷,崔文成,等.面向服務的工作流管理系統研究[J].計算機集成制造系統,2008,14(11):2212-2216.(SHAO H, ZHANG L, CUI W C, et al. Service-oriented workflow management system [J]. Computer Integrated Manufacturing Systems, 2008, 14(11): 2212-2216.)
[17] 張海軍,史維峰,劉偉.基于SOA企業應用集成框架研究與實現[J].計算機工程與設計,2008,29(8):2085-2088.(ZHANG H J, SHI W F, LIU W. Research and implementation enterprise application integration framework based on SOA [J]. Computer Engineering and Design, 2008, 29(8): 2085-2088.)
[18] 劉明忠,薛恒新,黃慧君,等.支持跨企業協作的柔性工作流系統建模研究[J].計算機集成制造系統,2004,10(11):1356-1363.(LIU M Z, XUE H X, HUANG H J, et al. Research on flexible workflow system modeling supporting cross-enterprise collaboration [J]. Computer Integrated Manufacturing Systems, 2004, 10(11): 1356-1363.)
[19] 蔡孝武,韓永國,藍科.一種輕量級工作流引擎的研究與設計[J].計算機工程,2010,36(20):78-82.(CAI X W, HAN Y G, LAN K. Research and design of lightweight workflow engine [J]. Computer Engineering, 2010, 36(20): 78-82.)
[20] 張中林,殷新春,陳崚.基于XML的工作流定義語言的研究[J].揚州大學學報(自然科學版),2002,5(3):48-52.(ZHANG Z L, YIN X C, CHEN L. Research of workflow definition language based on XML [J]. Journal of Yangzhou University (Natural Science Edition), 2002, 5(3): 48-52.)
[21] JBoss jBPM. [2017- 01- 03]. http://www.jboss.org/jbpm.2011.
[22] 何鑫.jBPM4工作流引擎在辦公自動化系統中的應用[J].網絡與信息,2010,24(12):43.(HE X. Application of jBPM4 workflow engine in office automation system [J]. Network and Information, 2010, 24(12): 43.)
[23] 劉怡,張子剛,張戡.工作流模型研究述評[J].計算機工程與設計,2007,28(2):448-451.(LIU Y, ZHANG Z G, ZHANG K. Overview of workflow models [J]. Computer Engineering and Design, 2007, 28(2): 448-451.)
[24] 王霞,王剛,周立東.改進的工作流合理性驗證方法[J].計算機工程與應用,2012,47(33):43-45.(WANG X, WANG G, ZHOU L D. Improved verification method for rationality of workflow [J]. Computer Engineering and Applications, 2011, 47(33): 43-45.)
This work is partially supported by National Natural Science Foundation of China (61432001, 91318301, 91218302).
YANGTao, born in 1992, M. S. candidate. His research interests include software tools servitization and flexible integration, workflow.
SHILin, born in 1985, Ph. D., assistant research fellow. Her research interests include empirical software engineering, requirement engineering, software evolution.
SONGMengdie, born in 1990, M. S. candidate. Her research interests include data resource servitization.
LIShoubin, born in 1987, M. S., engineer. His research interests include machine learning, software automation.
WANGQing, born in 1964, Ph. D., research fellow. Her research interests include software process method and technology, empirical software engineering.
Designandimplementationofprocessmanagementsystemsupportingmulti-toolcollaboration
YANG Tao1,2,3, SHI Lin1,3, SONG Mengdie1,2,3, LI Shoubin1,3, WANG Qing1,3*
(1.LaboratoryforInternetSoftwareTechnologies,InstituteofSoftware,ChineseAcademyofSciences,Beijing100190,China;2.UniversityofChineseAcademyofScience,Beijing100190,China;3.GeneralDepartment,InstituteofSoftware,ChineseAcademyofSciences,Beijing100190,China)
The software development process is increasingly depending on various Computer-Aided Software (CAS). Simultaneously using these tools bring some problems, including non-customized development process, inconsistent process data and inefficient process management. To deal with these problems, a software development process management system that supports multi-tool collaboration was proposed. The hierarchical architecture system was developed on workflow design by analyzing software development process and studying the software engineering development model that supports fast iteration and tends to process management. Besides, the system was rigorously tested under 576 test cases. As a result the pass rate is 85%, which is able to meet the majority of tool collaboration needs, including definable development process, consistent interaction data and available process management. The system has been used by seven development teams with about 200 developers. The feedback results from the managers, developers and testers show that this system saves the time of weekly meetings, facilitates the management of development tasks, and significantly improves the development efficiency.
software engineering; software development process; process management; workflow; Computer-Aided Software (CAS)
TP311.5
:A
2017- 01- 06;
:2017- 03- 03。
國家自然科學基金資助項目(61432001, 91318301, 91218302)。
楊濤(1992—),男,安徽安慶人,碩士研究生,主要研究方向:軟件工具服務化與柔性集成、工作流; 石琳(1985—),女,吉林長春人,助理研究員,博士,主要研究方向:經驗軟件工程、需求工程、軟件演化; 宋夢蝶(1990—),女,遼寧大連人,碩士研究生,主要研究方向:數據資源服務化; 李守斌(1987—),男,山東濰坊人,工程師,碩士,主要研究方向:機器學習、軟件自動化; 王青(1964—),女,重慶人,研究員,博士,CCF高級會員,主要研究方向:軟件過程方法與技術、經驗軟件工程。
1001- 9081(2017)07- 2019- 08
10.11772/j.issn.1001- 9081.2017.07.2019