熊體凡 田 年 劉清華 萬 立
華中科技大學國家CAD支撐軟件工程技術研究中心,武漢,430074
目前,隨著產品市場由賣方向買方的轉移,激烈的市場競爭使得企業越來越重視產品開發過程的管理。產品開發過程是一個復雜的過程,牽涉到人、事、物各個方面,由一系列技術活動和管理活動組成。技術活動包括產品結構定義、圖紙設計、工程分析等與技術資源的生成和使用密切相關的活動;管理活動包括組織定義、任務分解、時間規劃、進度控制、質量和成本跟蹤等與項目管理相關的活動[1]。這些技術活動和管理活動,既存在時序邏輯上的關系,又必須在系統的思想下以項目的形式統一組織。因此,對于產品開發過程的管理,不僅要從宏觀上把握產品開發的管理活動,控制項目進度和資源分配,還要從微觀上支持開發人員所涉及的具體設計活動的執行,反映過程之間的復雜任務關系。
本文通過研究產品開發過程中項目管理和工作流的特點及其相互關系,結合其各自的優勢,提出一種以項目分解結構樹和多級工作流空間為核心的層次化過程模型,將項目管理和工作流進行有機集成。
目前,有不少學者對項目管理與工作流的集成進行了探討[2-3],其基本方法是:首先將項目按照項目/任務分解模型劃分成一系列相對獨立的任務,然后將項目/任務分解模型映射成為供工作流引擎執行的工作流模型,使每一項任務對應于一個工作流,最后由相應的工作流管理系統對任務的各個活動及相關資源進行管理,如圖1所示。

圖1 傳統的集成方法
定義1 子項目是對主項目粗粒度的分解,是一組相關任務的集合。子項目可以繼續分解成下一級的多個子項目和任務,以滿足管理所需要的粒度要求。
定義2 活動是一系列操作所組成的過程,是項目分解最基本的工作單元,活動受工作流引擎驅動完成某一任務。
項目管理技術支持自頂向下的任務分解,因此,從技術角度出發,無論產品開發過程多么復雜,都可以通過項目管理中的項目層次分解來對產品開發過程進行細化。一般來說,對于規模比較大的項目P,先將其分解成n個具有邏輯順序的子項目Pi,分配給各個部門,分解的數學表達式為

再根據各個部門的實際情況,將子項目Pi繼續分解成若干相對簡單的任務:

式中,Tij為第i個項目下的第j個任務。
一個復雜的產品開發項目P最終通過層次分解轉變為一個任務集
圖1中,傳統的項目管理與工作流集成方法在項目分解結構樹的底層引入任務執行工作流,從縱向上將整個過程管理強行劃分為面向項目管理的宏觀過程管理和面向工作流的微觀過程管理。這種傳統的集成方法存在如下不足:
(1)項目管理不涉及對活動的管理。任務的具體實現是由底層的工作流管理模型驅動活動來完成的,但是對于項目管理人員而言,任務大多數都是內部不可見的“黑箱”。在實際工作中,產品開發項目P被分解為任務集后,任務 Ti j被繼續細分成一系列操作活動,使每個產品設計人員得到適當的工作量,即

式中,Ak為完成任務Tij所需的第k個活動。我們利用工作流的時序約束機制對這些活動之間的各種依賴關系進行管理,但是卻忽略了對具體活動Ak的工作量、進度等指標進行統計。
(2)傳統集成方法中,工作流只涉及對活動的管理,而實際工作的項目過程中還存在諸如反饋、循環等約束關系。
(3)項目管理和工作流模型之間的數據傳輸缺乏自動性和實時性,數據無法保證動態一致。
與傳統的集成方法不同,本文基于產品開發過程中項目管理和工作流之間的關聯性,將項目管理和工作流管理進行有機結合,統一到一個模型上,即層次化過程模型,如圖2所示。其中,項目分解結構樹和多級工作流空間是該模型針對項目管理和工作流管理的不同視圖。
實際產品開發過程中,項目管理和工作流存在三個層次的關聯性:
(1)項目層次。項目管理本身存在著可以定義的流程[2]。例如,項目管理知識體系(PMBOK指南第四版)中將項目管理過程分成啟動階段、規劃階段、執行階段、監控階段和收尾階段,同時,又將每個過程分成若干可以序列化的任務(圖3),這些具有先后順序的任務在實際的項目層次上構成了一個宏觀的時序流程。
(2)任務層次。項目管理通過對產品開發過程的任務分解得到由一系列子項目和任務組成的項目計劃,這些子項目和任務相互獨立,呈現出離散的特點。但是在實際產品協同開發過程中,子項目和任務之間存在著時序和數據供給等約束關系,表現出松散耦合的關系。這種關系可以利用工作流定義成約束規則,使每個子項目/任務對應于工作流中的一個節點,按規則順序執行,如圖4所示。

圖2 層次化過程模型

圖3 項目階段活動圖

圖4 項目中的約束關系
(3)活動層次。實際工作中,任務經過再分,得到一系列操作活動集。這些活動可以是簡單的操作,也可以由一系列活動構成的一個復雜操作。任務的具體執行過程就是由這些活動或者操作來完成的。顯然,這些活動的操作序列可以通過工作流來描述[3]。
根據項目管理和工作流之間這種具有層次性的關聯,本文將層次化過程模型的項目管理和工作流管理視圖也相應地分為三個層次,表現為項目分解結構樹和多級工作流空間。它們共同對項目過程進行綜合的描述。
項目分解結構樹描述項目的全部隸屬關系。項目管理人員通過“項目—任務(子項目)—活動”三層分解,利用該項目管理視圖進行交互式的項目建模。其中,項目層是對產品開發過程階段性任務的劃分;任務層是對階段性任務進行的細粒度劃分;活動層則是產品開發過程中的具體操作單元的集合,是任務的細粒度劃分。同時,項目的基本屬性,如項目定義、計劃開始/結束時間等,以及按照項目計劃開始和結束時間計算出來的進度和時間消耗等相關數據被作為項目對象的屬性內容,動態地顯示出來。項目管理人員甚至可以基于該視圖對各種重要的對象屬性進行分析、成本核算,得到關于項目狀態的報告。
多級工作流空間表達任務之間的時序聯系和約束規則。項目管理人員利用這個工作流管理視圖,在三個層次上對項目過程中的業務流程和規則進行定義,如圖5所示。項目空間定義產品開發過程中全局的工作流,覆蓋項目的整個生命周期;任務空間定義相應的任務約束規則,實現項目任務流轉的自動或半自動化,確保項目有序地進行;任務執行空間針對任務執行的實際需要,將任務轉換為一組相互獨立的工作單元(活動)組成的執行工作流,對上層傳來的應用數據進行處理,最終完成任務目標。

圖5 多級工作流空間
本文的層次化過程模型通過項目任務分解進行項目對象建模,通過工作流驅動項目管理過程,保證項目任務有序進行。這種以項目分解結構樹和多級工作流空間為核心,集成項目管理和工作流的方法,與傳統集成方法相比具有如下優點:①克服了傳統集成方法中項目管理無法對活動工作量、進度等指標進行統計的問題;②采用工作流處理項目過程中任務間的約束關系,在實現上更為有效;③采用統一的過程模型,避免了項目模型和工作流模型之間存在差異,需要進行轉換的問題;④由于項目管理和工作流集成在一個過程模型中,有利于工作流運行數據向項目管理的自動反饋,保證數據動態一致性;⑤可以使復雜的產品開發流程在項目分解的過程中得到簡化,進而簡化工作流的建模。
按照本文層次化過程模型的思想,基于Inte-PLM平臺開發了一個基于工作流引擎的項目管理模塊,實現對產品開發過程的管理。該模塊以項目分解結構為縱軸,以工作流為橫軸,把自上而下的項目計劃與自下而上的任務執行集成在一起,通過工作流引擎驅動項目任務的執行。
該項目管理模塊涉及到的數據對象主要有項目、子項目、任務、活動和工作流,數據結構及其相互關系[4]如圖6所示。項目、子項目、任務和活動之間通過父對象ID方便、快速地構建出項目分解結構樹,同時通過項目、子項目、任務與工作流的關聯(所屬工作流ID),利用工作流描述出項目的業務流程以及任務間的各種約束關系。
基于工作流引擎的項目管理模塊的運行機制如圖7所示。項目立項后,項目負責人使用項目管理工具(如Gantt圖等)進行產品開發任務分解建模,安排任務執行進度計劃,并結合工作流工具理順各項任務之間的時序和邏輯關系,從而形成一套完整的項目執行規則;工作流引擎按照項目執行規則,為每一個任務在邏輯上規定一個處理的順序,把各項任務連接成一個過程,產生一系列工作流實例,對執行過程進行分析和監控,使得項目按照預先定義的順序依次完成。另外,工作流引擎還支持臨時的流程任務,即當某些數據文檔需要進行審批或者更改等業務活動時,任務負責人可以利用圖示化流程建模工具定義工作流程,在工作流引擎的協調控制下,完成相關信息的處理。同時,企業管理者可以通過項目監控來實現項目任務運行狀態的跟蹤監控,對項目執行的相關數據進行統計分析,以便對項目執行過程進行調控。

圖6 管理對象的屬性及相互關系

圖7 基于工作流引擎的項目管理模塊的運行機制
上述項目管理模塊目前已在某汽車制造企業的IntePLM系統中使用。在實施該模塊前,該企業主要依靠項目管理小組采用圖示化的項目管理工具(如Project、Gantt圖等)對產品開發過程進行簡單的管理和監控。現在通過實施IntePLM項目管理模塊,將IntePLM主動式的流程引擎作為內在的過程驅動動力,以項目任務管理將各業務活動進行了有機的組織。如圖8所示,項目負責人進行項目創建和結構分解,并結合實際業務需求定義任務間的約束規則;工作流引擎驅動項目任務下達到任務負責人,形成一份任務列表;任務負責人接受某一任務后,可根據實際需要按照標準流程對工作進行分解,召集相關工作人員共同完成任務;當工作人員執行相應的操作后,提交任務交付物,該任務完成;當所有任務完成后,整個項目最終完成。

圖8 相關界面及其關系
在這個過程中,相關數據的處理和傳遞都是自動完成的,既較好地支持了項目管理的業務過程,又較大程度地提高了工作效率。可以說,IntePLM項目管理模塊實施的優勢具體體現在以下幾點:
(1)通過自動化流程完成數據采集和處理,既解決了監控不具有時效性的問題,又節省了人力。
(2)通過建立企業標準化項目流程模版,可減少重復工作。項目流程模版不僅描述一個項目如何分解成更小的任務,而且還表達了分解后的子任務之間的執行時序、數據要求等約束關系。當遇到一個具體研發項目時,可以通過套用標準項目流程模版進行任務分解,通過工作流引擎的驅動,實現對子任務的分發。
(3)通過項目分解將復雜的產品開發流程簡化,同時把部分工作流建模工作下放到子項目或任務的負責人,讓那些既懂業務又懂管理的技術人員去設計,使業務流程更加符合項目的實際業務流程。
(4)通過把項目過程中的大循環轉變為任務內部的、以評審和反饋優化為特點的局部小循環,并將循環納入到工作流管理當中,解決了項目管理不能有效描述因質量、性能等指標達不到要求而出現過程反饋、迭代循環的問題,同時也使整個開發過程更符合并行工程的設計思想。
[1]彭武良,盧睿,劉振.產品設計項目過程管理的研究與實現[J].計算機集成制造系統,2008,14(1):89-95.
[2]曹健,張申生,牟玉潔,等.項目管理與執行集成技術研究[J].計算機集成制造系統-CIMS,2004,10(1):37-43.
[3]孔建壽,張友良,汪惠芬,等.協同開發環境中項目管理與工作流管理的集成[J].中國機械工程,2003,14(13):1122-1125.
[4]陳劍,朱林,劉清華.PDM項目管理模型的研究與實現[J].計算機工程,2003,29(10):110-111.