范明虎 徐勇 翟玲 劉麗冰
摘要為消除軟件開發(fā)項目實施環(huán)節(jié)的不確定性因素、規(guī)避風險隱患文章通過引入CMM模型建立計算機軟件工程分布式項目管理系統(tǒng)采用三層分布式結構優(yōu)化系統(tǒng)性能并聚焦組織機構、工程質(zhì)量與配置、工期以及風險四個層面進行具體管理要點與技術措施的編制最終形成規(guī)范化、系統(tǒng)化項目管理體系希望為同類軟件工程項目實施及管理方案優(yōu)化提供參考
關鍵詞:軟件工程;項目管理;CMM模型;分布式結構;風險管理中圖法分類號:TP311文獻標識碼:A
Analysis of computer software engineering project management
FAN Minghu,XU Yong,ZHAI Ling,LIU Libing
(Technology Center,Southwest Computer Co.,Ltd,Chongqing 400060,China)
Abstract; In order to overcome the uncertain factors in the implementation of software development projectsand avoid potential risks,a distributed project management system of computer software engineering isestablished by introducing CMM model. The three-tier distributed structure is adopted to optimize the systemperformance,and the specific management points and technical measures are compiled from the four levels oforganization,project quality and configuration,construction period and risk,so as to finally form astandardized and systematic project management system so as to provide an important reference value for theimplementation and management scheme optimization of similar software engineering projects.
Key words: software engineering,project management,CMM model,distributed structure,riskmanagement
1? 引言
計算機軟件工程作為一項系統(tǒng)性工程,在軟件產(chǎn)品開發(fā)過程中常因片面關注技術、忽視管理工作重要性,引發(fā)生產(chǎn)效率低下、開發(fā)周期延長、產(chǎn)品質(zhì)量不佳、工程進度滯后等問題,導致項目綜合效益與實施效果不符合預期目標,對軟件開發(fā)企業(yè)利益構成一定威脅。研究項目管理理念在軟件開發(fā)過程的實施要點,對于優(yōu)化軟件工程項目管理水平、提升軟件產(chǎn)品品質(zhì)具有一定現(xiàn)實意義。
2? 項目管理方案
2.1? 建構基于 CMM 的項目管理模型
軟件能力成熟度模型(CMM)主要面向軟件開發(fā)全過程進行跟蹤管理,在此過程中輔助軟件企業(yè)解決問題、提升軟件質(zhì)量、提升軟件產(chǎn)品性能及企業(yè)開發(fā)能力[1]。將其應用于計算機軟件工程項目管理中,依托初始級、可重復級、已定義級、受管理級和優(yōu)化級共五個級別的劃分,可提供一種階梯式進化框架,由軟件開發(fā)企業(yè)明確自身所處級別,根據(jù)該級別對應的要求進行問題解決方案的設計,以此提高軟件開發(fā)執(zhí)行能力[2]。
2.2? 分布式結構體系設計方案
2.2.1? 結構設計
對于常規(guī) C/S 結構,由服務器承擔數(shù)據(jù)管理功能,客戶機執(zhí)行交互任務,但該結構體系存在以下問題:(1)客戶機數(shù)量將受服務器功能限制,影響系統(tǒng)延展性,分布功能弱,無法實現(xiàn)系統(tǒng)快速部署;(2)代碼重復性差,更換開發(fā)工具需重新改寫程序,不支持處理邏輯共享,兼容性差;(3)維護成本高,當服務器出現(xiàn)故障,將使對應的應用系統(tǒng)癱瘓[3]。
基于上述問題,擬引入一種由客戶層、中間服務層、數(shù)據(jù)庫層組成的分布式結構,其中客戶層由瀏覽器、應用程序組成,基于 HTTP,IIOP,DCOM,RMI 協(xié)議與服務層建立通信;中間服務層由 Web 服務器、應用服務器、對象管理、事務服務器組成,其中 Web 服務器、應用服務器之間可建立交互關系,應用服務器則通過 ODBC 或 JDBC 接口與數(shù)據(jù)庫層連接;數(shù)據(jù)庫層由關系數(shù)據(jù)庫、郵件系統(tǒng)及其他模塊組成,以此完成三層結構部署,使該系統(tǒng)具有較高可擴展性與靈活性,便于對客戶機進行維護與管理,有效拓寬系統(tǒng)應用范圍[4]。但在分布式軟件工程環(huán)境下,需以網(wǎng)絡環(huán)境中運行的應用程序作為服務對象,項目管理的重點在于分布式軟件開發(fā)過程中的構件選擇與分布方案設計,并綜合考慮軟件測試、分析與建模多項內(nèi)容,實現(xiàn)項目管理目標。
2.2.2? 框架邏輯建構
基于項目管理理念進行分布式軟件工程開發(fā)過程管理,主要圍繞下定義、過程解釋、行為控制三個方面開展管理工作。在框架邏輯建構上,依托協(xié)同平臺提供工作流、文檔資料管理等應用程序環(huán)境,滿足用戶協(xié)作運用需求,并設有多個編程接口。在軟件開發(fā)項目啟動前,預先圍繞 CMM 角色、軟件開發(fā)企業(yè)成員之間建立映射關系,強化過程控制,保證 CMM 角色均位于相同基線下開展協(xié)同運作,輔助實現(xiàn)文檔資料管理等應用程序功能。在角色劃分環(huán)節(jié),用戶大體包含 PM,SEPG 與其他三類,需基于責任制度進行不同角色任務及職責的界定,如 PM 主要負責啟動項目、完善項目組織安排、指派具體成員、落實項目過程管理等,SEPG 負責對軟件組織定義、維護及裁剪過程、收集信息等,其他成員則基于協(xié)同框架配合完成相關開發(fā)任務[5]。
3? 軟件工程項目管理實施要點
3.1? 組織機構管理
組織機構是項目管理實施的重要基礎,其管理內(nèi)容主要體現(xiàn)在結構合理性、內(nèi)部溝通效能、人員分工等層面,常見組織機構包含以下三種類型:(1)民主組織機構,以民主管理作為主要模式,組織機構內(nèi)部成員采用輪值模式進行組長選任,在此模式下能夠最大限度激發(fā)項目內(nèi)部成員的創(chuàng)造熱情,但在實踐環(huán)節(jié)也面臨操作難度大、可行性差等問題,在成員專業(yè)度、溝通能力、領導力等方面仍存在不確定性因素,對于成員綜合素質(zhì)與能力提出較高要求。 (2)專家組模式,由軟件工程、項目管理、技術研發(fā)等各領域?qū)<医M成工作小組,保證給予軟件項目開發(fā)需求進行組內(nèi)專家的選拔與任命,確保各專家充分發(fā)揮其專業(yè)效能服務于軟件項目開發(fā),避免在專家選擇上存在交叉、重復問題。(3)主程序員模式,由軟件開發(fā)企業(yè)基于內(nèi)部人力資源管理與人才選拔機制篩選出主程序員,通常由至少1 名高級工程師負責主導組織機構的各項活動、協(xié)調(diào)組織內(nèi)部管理,并支持對各項技術活動的審核,配合技術人員參與整體項目管理活動的實施,完成軟件產(chǎn)品開發(fā)。
3.2? 軟件質(zhì)量與配置管理
3.2.1? 軟件質(zhì)量測試
在軟件工程開發(fā)項目立項后,需指派負責人對項目實施過程進行管控,包括對軟件質(zhì)量測試的文檔進行歸納整理,加強項目進度、項目質(zhì)量管控工作,并完善開發(fā)前期客戶方提出的產(chǎn)品需求、產(chǎn)品方案以及開發(fā)計劃等準備內(nèi)容。
具體來說,由項目負責人分別任命軟件開發(fā)、測試等相關技術人員,將測試人員引入前期產(chǎn)品需求解讀環(huán)節(jié),針對產(chǎn)品規(guī)格說明書進行內(nèi)容分析與審核,保證開發(fā)方案的合理性,并為后續(xù)軟件測試提供可靠依據(jù);在軟件開發(fā)過程中,當針對產(chǎn)品需求進行定義時發(fā)現(xiàn)存在問題,需及時組織開發(fā)、測試與客戶方等主體進行內(nèi)容溝通與確認,并重新完成說明書的修改;在開發(fā)計劃編制環(huán)節(jié),將含有測試說明的版本提交,經(jīng)負責人審核確認后簽字,明確軟件基本功能、已知問題以及未完善功能、相關建議等信息;在軟件產(chǎn)品設計階段,整合項目中客戶方需求進行產(chǎn)品需求方案設計,并詳細說明開發(fā)設計人員做出的相應改進及產(chǎn)品功能變化等信息,經(jīng)多方溝通確認后完善軟件設計與開發(fā)方案部署,確保最終軟件產(chǎn)品符合客戶預期要求。
在此過程中需注意,基于項目管理需求進行軟件設計過程的細分,對各執(zhí)行階段進行時間節(jié)點、進度計劃、任務需求的詳細描述,確保軟件設計各階段均具備良好的可執(zhí)行性。待軟件設計任務執(zhí)行完畢后,根據(jù)軟件質(zhì)量保證需求進行測試環(huán)境與平臺的搭建,并完成測試計劃編制與用例審核,落實對測試負責人的綜合評估,便于在測試結束后生成詳細的測試報告,最終提交至客戶處進行查詢。
3.2.2? 軟件配置管理
以配置項級軟件作為管理對象,按需求分析、單元劃分及研制、集成化管理的流程執(zhí)行具體管理任務:(1)在需求分析環(huán)節(jié),預先完成軟件重要性等級的劃分,引入分級管理模式進行需求來源、分析、變更、版本控制等方面的管理工作。例如,針對需求變更環(huán)節(jié)進行管理,需明確變更原因、變更管理措施、可能產(chǎn)生的后果等因素,綜合運用技術手段由系統(tǒng)層出發(fā)進行變更原因的追溯,在配置項層進行需求明確,并對匹配接口及系統(tǒng)所受影響進行綜合分析。 (2)在單元劃分環(huán)節(jié),從技術層面對配套硬件特征、軟件運行環(huán)境、實際功能需求等內(nèi)容進行把關,遵循合理性原則進行部件劃分,保證接口一致性。 (3)在單元研制環(huán)節(jié),整合軟件設計、實現(xiàn)、測試等環(huán)節(jié)進行部件研制,為軟件產(chǎn)品質(zhì)量提供保障。 (4)在單元集成管理環(huán)節(jié),針對軟件現(xiàn)有單元的功能性、接口一致性等進行注意校核,并明確軟件產(chǎn)品驗收及后期運行維護標準,保證最終軟件產(chǎn)品順利交付。
3.3? 工程進度管理
通過對軟件工程項目實施進度進行管理,主要以時間進度為管控目標,對照軟件研制計劃與流程管理內(nèi)容進行項目研制進度的跟蹤分析,及時查明進度延誤現(xiàn)象的原因,并編制配套解決方案。以某嵌入式軟件系統(tǒng)開發(fā)項目為例,該系統(tǒng)包含至少10個分、子系統(tǒng),代碼超過10萬行,對該項目建立進度管理表格,以 A 軟件配置項作為進度管理對象,圍繞系統(tǒng)分析與設計、軟件需求、軟件設計、軟件實現(xiàn)、軟件測試、軟件驗收與軟件維護共7 個管理項目進行進度管控,分別以“是否按時完成”“是否通過評審”作為評審內(nèi)容,最終各項指標均在規(guī)定時間內(nèi)完成、且通過評審,以此證明軟件工程進度管控效果理想。
3.4? 項目風險管理
將 CMM 模型作為風險管理工具,針對軟件開發(fā)過程進行分析,整合狀態(tài)評估結果進行成熟度評定,提煉出風險因子,并完成風險管控措施的編制,由此落實軟件開發(fā)全過程管理與持續(xù)性改進優(yōu)化,輔助企業(yè)提升項目管理水平與軟件開發(fā)能力。其中,風險管理的具體實施步驟體現(xiàn)在以下四個方面。
(1)建立 CMM 等級模型,基于 CMM 模型對應的五個等級進行項目管理內(nèi)容的詳細分析,企業(yè)對照模型等級劃分進行能力成熟度評定與定位,并結合對標自查中暴露出的問題進行相應解決措施的編制。在能力成熟度評估環(huán)節(jié),可圍繞以下兩個層面入手:一方面,針對軟件工程過程進行評估,取決于項目組織情況、環(huán)境建構水平等因素,用于評價管理者、技術人員在軟件過程改進中的貢獻度。另一方面,以軟件工程能力作為評估對象,聚焦軟件工程預算、進度計劃及合同管理等環(huán)節(jié)進行風險因數(shù)的識別與分析。經(jīng)上述過程獲取評估結果、完成等級評定,對照五個不同 CMM 等級確認項目管理內(nèi)容,其中“初始級”對應缺乏管理;“可重復級”需圍繞需求、分包、質(zhì)量、配置等方面進行管理,并對軟件開發(fā)項目實施過程進行跟蹤、落實監(jiān)督機制;“已定義級”包含基于項目管理的集成式軟件管理、項目組織過程定義、協(xié)同管理等內(nèi)容;“管理級”涉及過程量化管理、軟件質(zhì)量評估與缺陷防范等內(nèi)容;“優(yōu)化級”圍繞軟件技術、軟件過程兩個方面落實變更過程管理。
(2)風險因子識別與評估,在完成等級評定的基礎上,需根據(jù)對應的項目管理內(nèi)容進行項目風險分析,從中提煉出風險因子進行特征識別,并對于項目風險可能誘發(fā)的隱患進行綜合分析。常見的風險識別方法包括以下三種:①風險清單分析法,基于全生命周期管理理念全面排查項目風險源,依照風險等級按順序列舉10項風險源,并在項目實施過程中嚴格落實跟蹤調(diào)查,及時采取相應改進措施消除風險隱患;② LEC 法,以定量評價作為主要表現(xiàn)形式,運用風險分類樹進行風險因素羅列及不同因素間關聯(lián)性的分析,并結合問卷調(diào)查方法進行風險分類模型的細化,進一步完善軟件工程項目管理體系;③建立風險問卷調(diào)查表方法,由風險評估專家結合軟件工程項目特征進行調(diào)查問卷的編制,收集調(diào)研結果進行詳細評估與分析。基于風險誘因分析、風險條件識別、風險特征判斷、風險隱患評估等流程,實現(xiàn)對軟件工程項目風險的甄別與評估,在此基礎上進入量化處理環(huán)節(jié),融合類比成本、數(shù)據(jù)成本、人工成本等項目成本估算方法進行風險粗略量化評估,并后續(xù)引入 SPLM 軟件、構造性成本模型實現(xiàn)對項目風險成本的精確計算。
(3)風險防范與控制,出于優(yōu)化軟件狀態(tài)、削弱風險隱患的目標,可基于 CMM 模型準則針對軟件狀態(tài)等級進行描述,提煉出重要元素與管理經(jīng)驗進行詳細闡述,并完成風險防控計劃的編制。在此基礎上,整合實踐成果建立軟件工程項目的風險管理制度,細化風險識別與防控體系設計,并采用定期與不定期結合方式進行項目風險的量化評估,判斷風險潛在影響,由管理人員遵循現(xiàn)行制度進行風險防范與應急方案的編制,最大限度剔除軟件前期設計、開發(fā)過程及運行測試等環(huán)節(jié)存在的風險因素,維護軟件工程的安全高效運行。
(4)全生命周期管理,在采用 CMM 模型建立評估、識別、量化、管控體系的基礎上,還需面向軟件工程的動態(tài)變化特征,引入全生命周期管理模型進行項目風險的跟蹤管控,對于軟件工程運行過程中暴露的風險隱患與狀態(tài)進行持續(xù)改進,同時面向可能誘發(fā)的新風險因素進行相應風險控制計劃的編制,整合計劃執(zhí)行進度、執(zhí)行效果進行全面分析,并生成最終的風險管理報告,為軟件工程項目實施提供參考指向、輔助項目決策編制。此外,還可通過建立軟件風險知識庫、構建項目風險管理閉環(huán)、完善風險管理學習機制等舉措,全面發(fā)揮風險管理效能,驅(qū)動軟件工程項目管理水平的提升。
4? 結論
通過引入項目管理理念進行軟件開發(fā)過程管控,聚焦組織機構管理、軟件質(zhì)量與配置項管理、工程進度管理以及項目風險管理四個層面進行軟件項目管理實施經(jīng)驗的總結,能夠順利實現(xiàn)各管理層次及任務目標的有效落實,滿足軟件設計與開發(fā)任務要求,滿足客戶方提出的產(chǎn)品需求、提升軟件工程項目整體質(zhì)效。未來還需進一步加強項目管理方法與技術手段間的融合程度,依托信息化手段輔助提升軟件開發(fā)過程數(shù)據(jù)收集、分析及處理等環(huán)節(jié)的時效性,借此輔助項目決策的科學開展,在此基礎上圍繞文檔資料、控制計劃、用戶管理、開發(fā)人員管理多個方面進行項目管理內(nèi)容的擴充與豐富,更好地提升軟件工程管理水平,為同類項目管理工作的實施提供參考。
參考文獻:
[1] 周長泉.軟件項目管理與軟件質(zhì)量的思考探討[J].中國新通信,2022(2):46?47.
[2] 王彬彬.“互聯(lián)網(wǎng)+”時代下數(shù)據(jù)挖掘技術在軟件工程中的應用研究[J].北京印刷學院學報,2021(4):148?151.
[3] 李映晟.軟件開發(fā)過程中對項目管理技術的有效運用研究[J].軟件,2021(10):96?98.
[4] 周逸寧,池志杰.對軟件項目管理里及風險評估的研究與探討[J].網(wǎng)絡安全技術與應用,2022(2):63?64.
[5] 法曉宇.基于devops的軟件開發(fā)與項目管理[ J].電子元器件與信息技術,2020(8):132?133.
作者簡介:
范明虎(1973—) ,碩士,高級工程師,研究方向:指揮控制自動化。