摘 要:提出面向領域敏捷定制ERP產品開發模型,重點論述面向領域敏捷ERP定制過程,給出了軟件開發過程中的 ERP軟件構件版本管理、ERP構件組版本管理以及ERP產品的版本管理模型和詳細的解決方案。解決了ERP產品柔性、適應性和ERP產品敏捷生產的問題,為提高我國企業ERP產品的實施成功率,探索出一條新途徑。
關鍵詞:ERP;版本管理;轉體構體;軟件復用
中圖分類號:TP311文獻標志碼:A
文章編號:1001-3695(2007)06-0268-03
多處于成長期,企業本身處在不斷變化之中,企業的管理流程和組織結構等經常發生變化,剛性太強的ERP軟件,在中國企業是難以奏效;另一方面,ERP產品的高成本直接影響其在中國的推廣。在多變的市場環境下,企業要求ERP產品既要滿足企業客戶化的需求,又保持較低ERP產品成本,只有很好解決客戶需求與成本之間的矛盾,才能保持ERP產品的市場競爭力。面向領域敏捷定制的ERP生產是將PDM(Product Data Management)的產品版本管理的理論和制造業大規模定制生產(Mass Customization)的經驗應用到ERP軟件生產中,實現ERP產品的合理的軟件柔性,徹底擺脫ERP產品客戶化和軟件成本之間的壓力,從根本上解決ERP軟件危機。
1 面向領域敏捷定制的ERP生產
1.1 基本概念
(1)大規模定制
大規模定制是以大規模的生產成本和時間滿足用戶的個性化需求,其基本思想是:將個性化定制產品的生產問題,通過產品重組和過程重組全部或部分轉化為批量生產問題,以大規模生產的成本和速度,為單個客戶或小批量多品種市場定制任意數量的產品[3]。
(2)敏捷軟件過程
“敏捷”(Agility) 是為了適應日趨激烈的競爭和生存環境而提出的, 它要求企業通過提高敏捷性,從變化的調整中掌握主動并贏得市場。以敏捷制造(Agile Manufacturing) 為核心的先進制造為全世界廣為接受。 “敏捷”概念因此被引入軟件領域, 逐漸形成一種新的軟件開發模式——敏捷軟件。敏捷軟件過程是基于時間的、并行的、分布的、演化的快速軟件開發過程。
(3)領域工程
所謂“領域”是指一組具有相似或相近軟件需求的應用系統所覆蓋的功能區域。領域工程是針對一個應用領域中的若干系統進行分析,并識別這些系統共享的領域需求,設計出能夠滿足這些需求的構架,并在此基礎上開發和組織該領域的可復用構件的過程。
(4)面向領域敏捷定制ERP產品
以分析企業ERP客戶需求為基礎,將具有相近需求的企業應用作為一個領域,分析、識別領域需求,確定領域軟件框架,采用敏捷軟件過程,用大規模定制的生產方式批量定制ERP產品。
1.2 面向領域敏捷ERP定制模型
ERP產品的批量定制過程是運用領域工程思想,面向企業領域需求的定制過程(圖1)。在客戶需求的基礎上,經過企業領域分析、設計、實現來確立ERP軟件體系結構,完成ERP軟件構件的設計實現。在ERP構件版本管理的支持下,經ERP批量定制組裝后,敏捷定制滿足客戶需求的ERP產品。
因為企業行業、管理模式和規模的不同,企業對ERP產品的需求不同;行業、管理模式和規模相同的企業,ERP產品的需求具有相似性,所以ERP產品生產必須根據客戶企業領域的特點進行大規模定制,這種定制生產方式既能滿足用戶的真正需求而又不犧牲產品提供商的效益和成本。
ERP企業領域工程分為三個主要階段,即ERP領域分析、ERP領域設計和ERP領域實現。 領域分析的主要目標是獲得領域分析模型。筆者認為,ERP不僅是企業管理軟件,更重要的是一種企業管理思想,對ERP原理的理解是進行ERP領域系統分析的基礎。ERP領域系統分析是對企業需求進行分析,將其分解為一組“事務”。在企業中,一般的生產企業管理主要包括三方面的內容:生產控制(計劃、制造)、物流管理(分銷、采購、庫存管理)和財務管理(會計核算、財務管理)。另外,已經有越來越多的ERP廠商將人力資源管理作為ERP系統的一個重要組成部分,組成了一個高效的、具有高度集成性的企業資源系統。上述每一個模塊又可以分解為多級更小的一組“事務”,具有獨立功能的模塊,形成ERP領域分析模型。
ERP領域設計的目標是獲得特定領域的軟件構架DSSA。它針對領域分析模型中表示的需求給出解決方案,它不是單個系統的表示,而是適應領域中多個系統需求的一個高層次的設計。領域設計對領域分析得到的“事務”進行描述,制作成敏捷定制的業務構件。敏捷定制的業務構件可以分為兩大類:領域共性構件和應用專用構件。領域共性構件是根據ERP領域分析模型,剝離出一些無用的和需要做大量更新的軟件成分,產生出ERP在一類領域應用系統共同具有的構架,即ERP特定領域的軟件構架(Domain Specific Software Architecture, DSSA) ,以DSSA為基礎,識別開發領域共性構件。當開發同一領域中的新的ERP產品時,可以復用領域共性構件;與此相對應,應用專用構件是針對ERP系統的變化成分以及用戶提出的新需求,將ERP系統客戶化、可變的成分分配到應用專用構件中。將固定的和可變的ERP系統成分在DSSA 和應用專用構件間進行分配,經過領域設計得到的將是一個具有柔性結構的ERP系統領域系統設計模型。另外,隨著領域知識的增加,通過對DSSA 進行一定的調整,使系統具有更強的適應性。通過這種設計模式,使ERP領域系統設計變得靈活、可復用性高,從而提高了ERP軟件的設計質量。
ERP領域實現的主要目標是依據領域分析模型和DSSA 開發領域特定的構件與構架,將領域共性構件和應用專用構件分別存入相應的構件庫中。通過對構件進行有效的版本管理,方便構件的存儲、檢索和提取。
ERP產品的敏捷定制組裝。在領域分析模型和領域設計框架的基礎上,利用已有領域共性構件和開發企業應用專用構件,通過構件的版本管理模型,選擇滿足企業需求的ERP構件,進行ERP產品配置設計和系統定制組裝,經過系統測試和實施,形成滿足客戶個性化需求的ERP軟件產品。這一過程通過批量定制實現ERP產品的柔性、適應性和敏捷開發,快速滿足用戶需求。物質產品的大規模定制是以原材料和半成品作為定制的物料;而在面向領域敏捷定制的ERP生產批量中,將軟件業務構件作為批量定制的單位部件,通過復用業務構件的組裝定制。在敏捷定制ERP產品的過程中,版本管理在軟件構件的選擇、組裝過程及ERP產品的生產維護的作用非常重要,下面將重點研究面向領域敏捷定制的ERP生產中的多級版本管理模型。
圖1 面向領域敏捷ERP定制模型
2 面向領域敏捷定制的ERP生產中的多級版本管理模型
版本管理是針對軟件開發過程中涉及到的各種軟件資源進行的管理,利用統一的命名規則標志軟件資源諸多版本,避免版本的混亂。有效的版本管理有助于對軟件開發過程中產生的各種構件進行有效的管理,有助于選擇合適版本的構件組成軟件的發布版本。有效的版本管理,已經成為判斷軟件企業是否專業化和正規化的重要標準。
2.1 版本和版本標志
定義1 版本是指某一特定對象具體實例的潛在存在。這里的某一特定對象是指軟件組成單元,一般指源文件。具體實例則是指軟件開發人員從軟件庫中恢復出來的某軟件組成單元的具有一定內容和屬性的一個真實拷貝。
定義2 基線是軟件生命周期各階段末尾的特定點?;€的作用是把各階段的工作劃分得更加明確,使之本來連續的工作在這點斷開,使之便于檢驗和確認階段開發成果。軟件構件的一個版本就是一個基線。當修改一個構件,生成構件的一個新版本時,就創建這個構件的一個新基線。
定義3 隨著軟件的開發,對軟件組成單元進行修改添加新的功能,使軟件的版本不斷的演變,產生新的版本,這樣不同的版本便形成源文件的版本空間。
定義4 版本標志由版本的命名規則決定。由于前后版本存在著傳遞關系,版本標志的命名應該正確反映這一傳遞關系。
2.2 敏捷定制ERP軟件開發中的多級版本管理模型
我們將面向領域敏捷定制的ERP生產中的多級版本管理模型分三個層次的版本管理(圖2),分別為ERP構件的版本管理、ERP構件組的版本組織與管理、ERP產品的版本管理與版本變更。
2.2.1 ERP軟件構件的版本管理
軟件構件是應用系統中可以明確辨識的構成成分,本文提到的軟件構件主要是指可復用軟件構件,既可以被多個軟件系統所復用的、又具有相對獨立功能的系統構成成分。ERP構件的版本組織與管理是在設計和實現ERP軟件構件時主要處理版本管理的問題。在企業業務過程模型中,有諸多具有獨立功能的邏輯單元,這些邏輯單元與軟件構件相對應。面向領域敏捷定制ERP產品開發中,筆者對我國企業實施ERP應用領域進行分析,提出構件的版本標志按照ERP應用的領域,從ERP產品用戶所在的行業(H)、管理模式(M)和企業規模(G)等三維正交版本標志描述ERP應用的領域構件(圖3)。每個三維正交立方體代表一個版本,對于一組給定的行業(H)、管理模式(M)和企業規模(G)值,就確定一個特定的對象,根據每個構件由H、M和G的三維標值唯一確定該構件的一個版本。筆者采用CICO版本管理模型[12],對構件的版本歷史和并發修改進行控制。
圖2 基于版本ERP軟件開發中的三級版本管理模型
圖3 ERP領域構件的三維正交版本標志
2.2.2 ERP構件組的建構中的版本管理
單獨的ERP業務構件的功能有限,構件的粒度太小,很難實現具體的企業商業功能,復用的價值小。使用粒度大的構件,可以使構件的數量降低,減少了構件間的通信接口,封裝了構件的實現細節,使系統整體邏輯明顯。將一組密切相關的業務構件組織在一起,進行封裝,構成構件組,實現ERP某一模塊的商業功能。構件組是粒度更大可復用的構件,同構件一樣,構件組具有版本標志,可以進行構件的版本管理,設計良好的構件組,復用的價值更大,更方便ERP系統的組裝,實現敏捷高效地批量定制高質量的ERP系統。構件組的例子有:主生產計劃構件組、MRP構件組、能力需求計劃構件組、車間調度構件組等。
構件組的建構包括構件的提取、構件組的組裝和構件組適應性修改。構件組的版本管理引入兩個概念:工作空間和并發控制方案。
定義5工作空間表示工作環境并提供局部數據存儲。工作空間是一個與其他開發人員隔離的私有工作空間,在此開發者能夠實施和測試代碼并遵從項目所采用的標準。如圖4所示,從構件組庫中提取構件組的一個版本,在工作空間內作為版本1進行適應性修改,生成新的版本2,將已修改的構件組提交到構件組庫中,作為新的構件組。
定義6 并發控制方案是協同處理同時發生的變化的一種策略。構件組是版本控制單位,而并發控制則在構件級別上進行管理。對于一個構件,使用者可設定其操作模式,由此來控制加鎖活動。操作模式可以分為三種:只讀、排它寫和共享寫。在構件的修改過程中, 構件的操作模式是可以隨時改變的,在修改構件時,可將需修改構件的操作模式改為排它寫或共享寫,然后修改。完成了對構件的修改后,檢入(Check in)修改后的構件,系統會自動產生該構件組的一個新版本。如果在使用者檢入之前,另一使用者已檢入了構件組的另一新版本,該使用者就需要先進行更新操作,系統會將構件組最新版本拿到工作區,與該使用者修改過的版本進行合并后才能檢入。
2.2.3 ERP產品的版本管理與版本變更
用構件組定制組裝成ERP產品時,筆者采用的是軟件配置管理中的組織模型。組織模型由系統模型和版本選擇規則兩部分組成。系統模型列出了組成ERP產品的所有構件。版本選擇規則作用于系統模型,唯一選擇構件版本,即綁定一個構件到某一版本上,指出組成ERP產品的每一個構件選擇的版本。圖5所示中的ERP系統由構件組A、構件組B、構件組C組成,分別代表主生產計劃構件組、銷售構件組、財務管理構件組。構件組A根據企業行業選擇H3;根據企業管理模式選擇M2;根據企業規模選擇G1,這樣H3M2G1確定構件A的唯一版本標志。在這種模型下,根據企業領域分析系統模型的確定構件,為每一構件組選擇合適的版本,敏捷定制組裝成具有版本信息的ERP產品。ERP產品的版本標志是ERP產品的標志,在ERP產品的發行、安裝、激活、更新升級、調整、撤銷、取消發行等軟件部署生命周期中擔任重要的角色。為了更好地描述ERP產品,把有關ERP產品版本的重要屬性如客戶所在的行業、軟件適用的企業規模、生產日期等信息反映到版本標志中,并建立ERP產品版本配置庫,以便更加詳細地描述每一個ERP系統組成構件及相應的構件版本信息,為軟件版本升級奠定了基礎。
圖4 工作空間圖5 組織模型構件的版本選擇
對商品化ERP產品來說,軟件發行后的維護升級工作是軟件生命周期最重要的環節。面向領域敏捷定制的ERP產品,由于有嚴格的構件級和產品級的版本管理,有利于ERP產品維護升級工作的開展。
3 結束語
面向領域敏捷定制ERP產品開發,綜合利用軟件版本管理、領域工程和軟件復用和軟件構件等的軟件工程方法和ERP、批量產品定制生產的管理思想,目的是縮短ERP產品的開發時間、降低開發成本、以滿足用戶個性化需求,增加ERP產品的柔性和適應性。但開發柔性、適應性的ERP產品和ERP產品敏捷生產,還有ERP產品集成定制平臺等一些關鍵技術需要進一步解決。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。