戴永壽,侯勝坤,李立剛,李隆浩,王亞龍
(1.中國石油大學(華東)信息與控制工程學院 山東 青島 266580;2.山東新華醫療股份有限公司 山東 淄博 255086)
基于改進微軟過程模型的大輸液MES軟件開發
戴永壽1,侯勝坤1,李立剛1,李隆浩2,王亞龍2
(1.中國石油大學(華東)信息與控制工程學院 山東 青島266580;2.山東新華醫療股份有限公司 山東 淄博255086)
為降低軟件開發風險,提高應對需求、環境等不確定因素的響應速度,獲得高質量軟件產品,提出一種基于改進微軟過程模型的大輸液MES(Manufacture Execution System:制造執行系統)軟件開發方法。改進模型以微軟過程模型為基礎,針對大輸液MES開發初期需求的不確定性及開發時間有限等特點,對微軟過程做了適應性調整,擴充完善其生命周期各階段工作流程,重建各階段迭代過程,并提出采用用例驅動的方法驅動整個微軟過程。改進的微軟過程模型在大輸液MES軟件開發中的應用結果表明,該模型有效降低了開發風險,提高了應對需求、環境等不確定因素的響應速度,實現了在有限資源、有限開發時間約束下高質量大輸液MES軟件快速、高效開發。
制造執行系統;微軟過程模型;迭代過程;用例驅動
隨著計算機應用的普及,軟件規模急劇增大,開發風險不斷增高,如何在需求、環境等不確定因素的影響下,快速、高效開發出高質量軟件,是當前軟件工程研究的重點[1]。1993 年IEEE對軟件工程做出了全面具體定義[2]:“軟件工程是:1)把系統的、規范的、可度量的途徑應用于軟件開發、運行和維護過程,也就是把工程應用于軟件;2)研究1)中提到的途徑”。在軟件工程學中對為了獲得高質量軟件所需完成的一系列任務的框架稱作軟件過程,它規定了完成各項任務的工作步驟,常用軟件生命周期模型[3]來描述,從第一個過程模型的產生到現在,開發人員為應對各類情況提出了多種不同過程模型方案[4]:瀑布模型、螺旋模型、噴泉模型、RUP(Rational Unified Process:統一過程)模型、敏捷模型等,這些過程模型的應用使得軟件開發呈現快速、高效、高質量的趨勢。目前,以RUP模型、敏捷過程模型、微軟過程模型的應用最為廣泛[5]。其中,RUP模型[6]屬于迭代增量式二維過程模型,具有普遍適用性,但在資源、時間有限的情況下,模型應用成功率不高;敏捷過程模型[7]強調以人為中心,快速響應用戶需求變化,該模型適用于在有限資源約束下小型軟件開發;微軟過程模型[8]則整合了RUP統一過程模型的完整且完美特點和敏捷過程模型的快速響應特性,實現了在有限資源和有限時間約束下的高質量軟件的快速、高效開發,但該模型在不同項目開發中的適應性不同。
為此,在大輸液MES軟件開發過程中,針對開發初期需求的不確定性及開發時間有限等特點,提出基于改進微軟過程模型開發大輸液MES軟件,以最大限度發揮模型效率,獲取高質量軟件產品。該改進模型以微軟過程模型為基礎,擴充完善其生命周期各階段工作流程,重建各階段迭代過程,并提出采用用例驅動方法驅動整個微軟過程,指導大輸液MES軟件開發。
微軟過程模型是微軟公司根據自身產品開發經驗總結推出的指導軟件開發的框架規范[9],如圖1所示,它由多個開發生命周期組成,每一生命周期結束向用戶推出一個軟件版本,直至推出的軟件版本符合客戶需求,開發過程結束。微軟過程生命周期劃分為五個階段[10],如圖2所示,并為每個階段設立里程碑,用于監視各階段工作進度,只有完成里程碑處標識事件才能進入下一階段開發工作。

圖1 微軟過程模型Fig.1 The Microsoft Process Model

圖2 微軟過程生命周期各階段劃分及里程碑設置Fig.2 The division of Microsoft Process life cycle's stages and milestones establishment
類似于RUP模型,微軟過程模型同樣是一個迭代增量式二維結構模型,它可視為RUP模型的一個精簡配置版本,不同之處在于,每個開發生命周期內,微軟過程生命周期各階段工作精簡為一次迭代完成,這與敏捷過程所強調的不斷重復產品生命周期、以遞進方式快速推出軟件版本的要求相似[8],而RUP模型各階段工作則由一次或多次迭代過程完成,每次迭代結束即得到原工作的一個增量,直至完成里程碑處標識事件,開發工作進入下一階段迭代過程[9]。RUP與微軟過程模型產品版本推出過程如圖3所示。

圖3 RUP與微軟過程模型產品版本推出過程Fig.3 The pushing processes of new version drove by Rational Unified Process and Microsoft Process
微軟過程模型整合了RUP的完整且完美特點和敏捷過程模型的快速響應特性,能夠適應不同開發領域、或大或小的軟件項目。因此,基于微軟過程模型開發大輸液MES軟件是可行的。但該模型在對其方法描述方面不如RUP和敏捷過程模型全面,且在不同項目的開發中適應性不同。為最大限度發揮模型效率,獲得高質量軟件產品,針對大輸液MES開發初期需求的模糊性、開發時間有限等特點,對微軟過程模型進行了改進,擴充完善其生命周期各階段工作流程,重建各階段迭代過程,并提出采用用例驅動方法驅動整個微軟過程。
2.1擴充完善微軟過程生命周期各階段工作流程
微軟過程對其生命周期各階段目標、應完成任務做了明確布置,但對其各階段工作流程沒有明確說明。為提高微軟模型對各階段開發過程的指導作用,保證各階段工作高效、有序運行,本文結合RUP模型對微軟過程生命周期各階段工作流程進行擴充完善。
RUP模型生命周期劃分為初始、精化、構建、移交四個階段,各階段每次迭代可能會經歷九個核心工作流分別為[13]:業務建模、需求、分析與設計、實現、測試、部署、配置與變更管理、項目管理、環境,這些核心工作流在每次迭代過程中被輪流訪問,但訪問的重點和強度不同。在微軟過程中,對其生命周期各階段工作流程的定義同樣可以用這九個核心工作流表示,因為它們涵蓋了整個微軟過程生命周期。對照RUP模型生命周期各階段工作流程的定義,擴充完善微軟過程生命周期各階段工作流程(如圖4所示):
1)確定微軟過程模型與RUP模型各階段的對應關系,分別為:①規劃階段對應初始階段;②設計階段對應精化階段;③開發階段對應構建階段;④穩定階段對應構建階段;⑤發布階段對應移交階段。
2)參照RUP模型生命周期各階段工作流程的定義,擴充完善微軟過程生命周期各階段工作流程,分別為:①規劃階段工作流程為業務建模、需求;②設計階段工作流程為業務建模、需求、分析設計;③開發階段工作流程為需求、分析設計、實現;④穩定階段工作流程為需求、分析設計、測試;⑤發布階段工作流程為部署、配置變更管理,項目管理和環境工作流貫穿產品的整個生命周期。
擴充完善后的微軟過程模型對其生命周期各階段工作流程有了明確定義,確保各階段工作高效、有序運行。

圖4 微軟過程生命周期各階段迭代過程Fig.4 The iterative process of each stage in Microsoft Process life cycle
2.2重建各階段迭代過程
微軟過程生命周期各階段工作為一次迭代完成,但在實際開發操作中,一次迭代往往不能滿足復雜軟件遞進開發的需求,一般需要做適應性調整。在大輸液MES系統軟件遞進開發中,為及時獲得高質量軟件版本,對微軟過程生命周期各階段迭代過程進行重建,并明確了開發過程中出現問題的處理方式,微軟過程生命周期各階段迭代過程如圖4所示:
1)規劃階段、設計階段、發布階段工作流程仍為一次迭代過程,開發階段、穩定階段工作流程重構為多次迭代過程;
2)在開發階段,根據版本目標將軟件開發工作劃分為多個部分,每次迭代完成單個部分軟件的開發工作;
3)在穩定階段,對產品進行測試,按照功能需求,將測試劃分為多個部分,每次迭代完成對單個功能需求的驗證,在測試過程中發現系統缺陷或錯誤后,反饋給開發階段進行調試,調試結束,進行測試復檢;
4)在發布階段,用戶提出的新需求、交付后出現的問題及上次未完成工作等,交由下一版本解決。
微軟過程生命周期各階段迭代過程的建立為及時獲得高質量軟件版本提供了保證。
2.3提出采用用例驅動方法驅動整個微軟過程
微軟過程模型采用功能說明書驅動軟件開發,由于功能說明書只是對系統應實現功能做了說明,沒有整體運行情況,包括各功能之間的關聯、用戶與功能之間的映射關系等,采用功能說明書驅動軟件開發無法有效界定用戶操作范圍及遞進開發過程中各功能模塊實現的優先級等。
采用用例驅動的方法能有效解決上述問題。用例是對系統實現功能的描述,所有用例合在一起構成用例模型,用例模型以圖形化語言對系統參與者、實現功能進行了描述,有效界定了系統應該為每個用戶實現哪些功能及遞進開發過程中各功能模塊實現的優先級等。同時,采用用例驅動的方法還能夠驅動軟件分析設計、測試等工作流程,可以說,用例驅動了整個基于微軟過程的軟件開發。
3.1大輸液MES項目背景及開發環境
目前,大多數中小制藥企業在實現對大輸液生產過程質量控制方面多采取人工記錄并統計分析的方式,這種“事后控制”的方式存在著監控信息不全面、批次質量追溯難、生產管理效率低、質量控制滯后等缺陷,生產工藝、質量控制等難以滿足藥品生產管理規范的要求。為解決上述問題,提出構建大輸液MES的需求,實現對大輸液生產過程的全面質量控制。
在大輸液MES軟件開發過程中,針對開發初期需求的不確定性及開發時間有限等特點,選擇微軟過程模型指導該系統軟件的開發,并根據項目特點,對微軟過程模型進行適應性改進。基于改進微軟過程模型進行大輸液MES軟件開發,在項目實踐中,選用PowerDesigner工具對用例、數據庫建模,采用 Dreamweaver工具實現網頁制作,應用 MyEclipse工具開發后臺服務代碼,項目整體開發工作基于Struts2.0+ Spring 3.0框架實現,數據存儲媒介選擇具有可擴展、高性能、可信任特點的Microsoft SQL Server 2008關系型數據庫開發,項目在整個開發生命周期內的管理由Excel工具輔助完成。
3.2大輸液MES軟件開發過程
基于改進微軟過程模型開發大輸液MES軟件,V1.0版系統軟件開發過程如下:
1)規劃階段。通過一次迭代完成對系統業務流程建模,確定用戶需求,并建立用例模型驅動軟件開發工作。業務流程模型選用UML活動圖描述,通過對業務流程建立活動圖模型,將開發人員對現場業務操作邏輯的理解以活動圖的形式表述出來,并和用戶交流修正,確保對業務流程理解的一致性,為后續開發操作的正確進行奠定基礎。
2)設計階段。完成對系統功能及數據庫的設計,該過程是一個對用戶需求理解加深的過程,在該過程中,允許對用戶需求進行修正。V1.0版系統軟件設計階段完成工作有:
①確定系統設計依據,編制軟件開發規范;
②構建系統總體架構;
③完成對V1.0版系統軟件目標功能的設計,其過程包括兩個步驟:a編寫單頁功能說明書,描述所需實現功能結構及產品特性;b編寫詳細功能說明書,對所需實現功能進行詳細設計。
④完成對V1.0版系統軟件數據庫的設計,結合詳細功能說明書,確定要建立的數據表結構,并利用PowerDesigner工具建立E-R模型,對數據表之間的邏輯關系進行描述。
⑤制定V1.0版系統軟件詳細開發計劃。每個功能模塊的開發時間以一周為限,在開發過程中,對功能實現源碼進行優化,避免質量缺陷,保證代碼運行效率。目標任務完成后,對所有已完工模塊進行集成并完成測試工作,對于測試過程中出現的缺陷或錯誤進行調試。
3)開發階段。依據對V1.0版系統軟件目標功能及相關數據庫的設計,完成對應軟件開發工作。這一階段通過多次迭代完成,每次迭代針對一個用例,按照對其功能及數據庫的設計,完成對應模塊軟件開發。開發階段部分工作會持續到穩定階段,以便對穩定階段測試中發現的系統缺陷或錯誤做出修正。
4)穩定階段。對所有已完工模塊進行集成并完成測試工作,首先進行內部測試,由開發人員對程序源碼、實現功能進行檢查,記錄系統缺陷或錯誤,并做出修正,對于已修正問題,進行復檢。內部測試整個過程迭代進行,每次迭代完成對一個用例的驗證。內部測試結束,交由客戶進行外部測試,嚴格按照需求說明檢查系統功能是否實現,并對發現的缺陷或錯誤給出修正建議。外部測試結束,項目可發布V1.0版軟件產品準備完畢。
5)發布階段。發布經廣泛測試后推出的V1.0版軟件產品,部署到大輸液生產車間試用,并對相關使用人員進行培訓,獲取反饋意見,包括系統缺陷、出現的錯誤及使用習慣等。與穩定階段外部測試過程的不同之處在于,該階段試用工作由車間實際使用人員完成,外部測試工作由客戶方技術人員完成。
至此,V1.0版大輸液生產制造執行系統軟件生命周期結束,在后續使用過程中出現的問題、系統缺陷及用戶新需求等交由下一版軟件開發實現。
本文在對微軟過程模型分析的基礎上,針對大輸液MES項目開發初期需求的不確定性及開發時間有限等特點,提出了基于改進微軟過程模型的大輸液MES[11]軟件開發方法,該改進模型以微軟過程模型為基礎,擴充完善了其生命周期各階段工作流程,重建了各階段迭代[12]過程,并提出采用用例驅動的方法驅動整個微軟過程。改進微軟過程模型在大輸液MES軟件開發中的應用結果表明,該模型有效降低了開發風險,提高了應對需求、環境等不確定因素的響應速度,實現了在有限資源、有限開發時間約束下的高質量大輸液MES軟件快速、高效開發。
[1]吳國芳,李忠明.軟件工程系統結構模型研究[J].煤炭技術,2011,30(1):180-182.
[2]張海藩.軟件工程導論[M].北京:清華大學出版社,2008.
[3]張友生,李雄.軟件開發模型研究綜述[J].計算機工程與應用,2006,42(3):109-115.
[4]高禹,畢振波.軟件開發過程模型的發展[J].計算機技術與發展,2008,18(7):83-86.
[5]金敏,周翔.高級軟件開發過程:Rational統一過程,敏捷過程與微軟過程[M].北京:清華大學出版社,2005.
[6]Microsoft Corporation.Microsoft solutions framework version 3.0 overview[EB/OL].[2003-06].http://download.microsoft. com/download/2/3/f/23f13f70-8e46-4f44-97f6-7dfb45010-859/MSF_v3_Overview%20Whitepaper.pdf.
[7]張湘輝.軟件開發的過程與管理[M].北京:清華大學出版社,2005.
[8]徐仕成.持續集成在現代軟件開發中的應用與研究[D].湖南:中南大學,2007.
[9]張友生.基于RUP的軟件過程及應用[J].計算機工程與應用,2003,39(30):104-107.
[10]丁峰,梁維泰.RUP軟件工程過程研究及應用[J].計算機工程,2000,26(10):112-114.
[11]廖勝娟.基于人工魚群算法的MES車間動態調度問題研究[J].電子科技,2014(10):64-66.
[12]雷剛.預處理后不同分裂形式下的松弛迭代法斂散性分析[J].西安工程大學學報,2013(5):671-674.
Development of large infusion manufacture execution system software based on an improved microsoft process model
DAI Yong-shou1,HOU Sheng-kun1,LI Li-gang1,LI Long-hao2,WANG Ya-long2
(1.College of Information and Control Engineering,China University of Petroleum,Qingdao 266580,China;2.Shinva Medical Instrument Co.,Ltd.,Zibo 255086,China)
To reduce the risk of software development,improve the speed of response to uncertain factors like customer demands,environment etc.,produce high quality software products,a method based on an improved Microsoft Process Model is proposed to develop Manufacture Execution System software of large infusion.This improved model is based on Microsoft Process Model and makes some adjustments to it for the features of large infusion Manufacture Execution System such as the early development period's uncertain demands,the limited development time etc.These adjustments contain enriching the workflow of each stage in the life cycle,establishing the iteration process of each stage and proposing use case-driven method to drive the whole Microsoft Process.Application result of this improved model in large infusion Manufacture Execution System shows that it can effectively reduce development risk,improve the response speed to uncertain factors and realize quickly and efficiently developing of high quality software under the constraint of limited resources and limited development time.
manufacture execution system;microsoft process model;iteration process;case-driving
TN919.82
A
1674-6236(2016)05-0012-04
2015-04-30稿件編號:201504323
中國石油科技創新基金資助項目(2010D-5006-0602);山東省自然科學基金資助項目(ZR2013FL035)
戴永壽(1963—),男,安徽巢湖人,博士,教授。研究方向:系統科學、系統工程。