左家任,楊 洋
(天津市水務局海河管理處,天津 300141)
在進行水利信息化項目建設中,相關軟件的開發(fā)項目涉及方面廣,影響因素多。在傳統(tǒng)的水利信息化管理工作中,只注重項目建設,對項目質量管理重視程度不夠,項目開發(fā)直接由設計單位進行設計,經過設計評審后實施開發(fā),在開發(fā)過程中由于各方面的溝通和協調等原因影響,使得軟件開發(fā)項目頻繁出現需求變更,并最終影響整體項目的實施質量和實施效率。此外,沒有一個系統(tǒng)的質量管理體系和規(guī)范的質量管理方法使得軟件開發(fā)過程中管理混亂,極易出現質量事故。因為水利信息化項目主要應用于水庫、河道、堤防等關系到社會和廣大人民群眾安全的水利工程,一旦出現事故,將會威脅到人民群眾的生命財產安全,所以必須加強對水利信息化工程尤其是相關軟件開發(fā)的質量管理。水利行業(yè)的軟件開發(fā)管理措施和方法都不夠全面、規(guī)范,如何根據現有的知識,對水利行業(yè)的軟件開發(fā)進行研究,最大限度地提升軟件的管理水平,是研究重點。
質量,通常指產品的質量,對軟件行業(yè)來說,軟件質量會導致整個軟件的成敗,一個小小的質量問題可能會導致非常致命的結果。做好軟件的質量管理不但能促進項目決策的合理化、科學化,還能在項目實施過程中實現高效化、準確化,保障項目目標的最終實現,切實提高項目成功率。目前,國際上逐漸開始重視軟件工程的項目管理,一系列理論和方法的出臺提高了軟件開發(fā)的效率和客戶的滿意度,為軟件開發(fā)企業(yè)帶來了非??陀^的經濟效益和社會效益。為此,以國際上的先進經驗為參考,制定適合我國的軟件開發(fā)的項目管理是十分必要的。
分析水利信息化項目中軟件開發(fā)質量的影響因素,通過對企業(yè)組織結構的優(yōu)化和軟件項目過程的改進,獲得項目實施質量的提升,從而減少軟件開發(fā)中產生的問題對開發(fā)部門造成的損失,降低開發(fā)成本,提升整體開發(fā)水平。
就軟件質量而言,影響軟件項目質量包括以下兩大方面因素。
軟件項目的管理要以用戶的想法為根本目標。產品生產就是為了滿足用戶的需求。一個能夠滿足用戶需求的軟件,就是一個優(yōu)質的軟件??蛻舻男枨髸S著開發(fā)的進行而不斷調整。只有在開發(fā)的各個階段都能滿足用戶的需要,達到用戶的要求,這個軟件的質量才能得到保證,而在軟件開發(fā)過程中樹立質量第一的思想就是體現在更好地為用戶服務的行動上。
軟件開發(fā)流程是在軟件開發(fā)模式框架的指導下實施軟件開發(fā)的全過程描述和定義,包括軟件開發(fā)生命周期各階段的定義、開始前提條件、參與者描述、產出物描述、完成條件等。一個合理定義的軟件流程能夠將軟件開發(fā)模型的優(yōu)點充分發(fā)揮出來,同時減少軟件開發(fā)過程中產生的負面影響。
首先,項目總負責人向項目組成員指出水文測報軟件在整體水文監(jiān)測項目中的重要性,并強調質量是最優(yōu)先考慮的。其次,各成員從自己的角度提出幾個目標,如質量經理的目標是保證合格率、開發(fā)人員的目標是保證測試通過率等。再次,團隊在一起討論制定的目標的可行性,是否能夠實現以及需要的條件。最終,確定目標見表1。
表1 項目質量目標
其中,每百段程序BUG 數按照模塊統(tǒng)計,本次制定的目標為每百段程序BUG數小于10處;單元測試分模塊進行,本次目標為每個模塊的單元測試通過率大于90%;集成測試、系統(tǒng)測試、驗收測試為模塊的集合體測試,按照百分制原則分別制定質量目標為得分80分以上及75分以上;本次軟件開發(fā)項目計劃工期45 d,本次制定目標為在計劃工期內完工;本項目概算總投資100萬元,取利潤10%,故目標經費使用為90萬元;客戶滿意度按照優(yōu)良中差四級評定,本次質量目標為取得客戶滿意度優(yōu)。
4.2.1 質量計劃對軟件開發(fā)項目質量的影響
軟件的開發(fā)一般分為4 個過程,即定義需求過程、預開發(fā)過程、開發(fā)過程和維護過程,通過資金使用的情況反映質量計劃的影響。參考以往軟件編制過程中4個階段開發(fā)的使用情況和對開發(fā)結果影響力進行統(tǒng)計分析,影響力按照百分制計算,由參與軟件開發(fā)的各方進行評分取平均數,100 分為影響最大,0分為最小。統(tǒng)計結果,見表2。
表2 資金投入階段影響數據
從表2可以看出,軟件開發(fā)階段,資金在早期使用的效率最高,可以對項目結果起到比較大的影響,而軟件開發(fā)計劃的編制能夠在軟件開發(fā)的定義階段即對軟件開發(fā)的目標、組織、資金安排進行較詳細的定義和計劃,能夠在早期按照合適的比例安排軟件開發(fā)的資金,從而對結果產生比較大的影響。
4.2.2 質量控制對軟件開發(fā)項目質量的影響
軟件開發(fā)中,發(fā)生編制錯誤的次數直接影響軟件開發(fā)的質量。影響軟件開發(fā)項目質量的因素很多,這里選取質量控制中的5 個關鍵因素即控制點的選取、組織領導的責任、測試的規(guī)范性、環(huán)境因素以及質量計劃。在此基礎上,調查統(tǒng)計由于關鍵因素的原因導致軟件開發(fā)發(fā)生編制錯誤的次數,并繪制直方圖,如圖1所示。
圖1 質量控制與編制錯誤次數關系直方圖
由此可見,質量控制能夠對軟件開發(fā)質量產生直接的影響,集中體現在編制發(fā)生錯誤次數方面。
4.2.3 質量保證對軟件開發(fā)項目質量的影響
軟件開發(fā)質量保證主要體現在軟件開發(fā)的模型選擇和應用上。原始的軟件開發(fā)使用的是傳統(tǒng)的瀑布模型,將軟件開發(fā)項目作為一個整體進行設計,方式如圖2所示。采用質量保證措施后開發(fā)模型轉化為圖3的形式,由圖3可以看出,使用質量保證措施將每個開發(fā)階段再次細化,可以對各個環(huán)節(jié)的變化情況加深認識,做到每個開發(fā)階段出現的問題能夠在本階段解決,不拖入下一階段,這對軟件開發(fā)質量起到了保證作用。
圖2 傳統(tǒng)瀑布設計模型
圖3 改進后的設計模型
根據軟件開發(fā)中曾經發(fā)生過的問題和預計會發(fā)生的問題,結合項目質量管理理論,使用質量管理工具,在質量計劃、質量控制、質量保證3 個方面對本次軟件開發(fā)進行質量管理。
4.3.1 軟件開發(fā)項目的質量計劃
(1)制作因果分析圖。在進行質量計劃時,首先明確質量計劃的目標,即開發(fā)質量合格、便于使用、用戶滿意的軟件,根據水文自動測報預警軟件開發(fā)項目的產品說明和水務信息化建設相關規(guī)范要求,運用頭腦風暴法對軟件開發(fā)中可能會導致質量不合格的情況進行整理并繪制因果分析,如圖4所示。
圖4 水文軟件開發(fā)質量管理因果分析
(2)編制軟件開發(fā)工作流程圖。本次項目開發(fā)時,分別從質量計劃、質量控制、質量保證3 個方面進行質量管理,在軟件的可靠性、硬件的可靠性以及軟件硬件結合后的可靠性方面都做了大量的工作。一方面,在項目前期階段,通過對規(guī)劃計劃的質量管理,在項目初期樹立正確的開發(fā)方向,從而在項目前期工作進行質量管理。另一方面,在軟件的開發(fā)階段,通過對人員和開發(fā)流程等方面的管理,實現對項目開發(fā)階段的質量管理。最后,在項目的實施階段中,執(zhí)行項目計劃,嚴格進行項目測試,通過演練、試運行等方式對整體項目進行質量管理。3 個階段中,每個階段的質量管理都非常重要。軟件開發(fā)質量管理流程,如圖5所示。
圖5 軟件開發(fā)質量管理流程
(3)成果輸出。①將總結形成的計劃管理成果匯總,形成各個階段的人員、組織、資金、資源、權限等管理計劃,指導質量管理的進行;②通過一系列質量計劃的管理,最終以質量計劃檢查表的形式輸出質量計劃成果。
4.3.2 軟件開發(fā)項目的質量控制
(1)質量控制點設置與管理。質量控制點是實施質量控制的重要組成部分,軟件開發(fā)的質量控制點是項目質量控制的重點對象。
質量控制點應選擇那些技術要求高、開發(fā)難度大、對工程質量影響大或是發(fā)生質量問題時危害大的對象進行設置。依照質量控制點的要求和特點,選擇了本次軟件開發(fā)中相應的質量控制點,見表3。
表3 軟件開發(fā)項目部分質量控制點
設定了質量控制點,質量控制的目標和工作重點就更加明確。在軟件開發(fā)中,首先要做好項目質量控制點的事前質量預控工作,包括明確質量控制的目標與控制參數、編制開發(fā)指導書和質量控制措施、確定質量檢查方法及抽樣的數量和方法、明確檢查結果的判斷標準及質量記錄與信息反饋要求等。其次,還要做好軟件開發(fā)質量控制點的動態(tài)設置,隨著軟件開發(fā)條件的變化,隨時或定期進行控制點的調整和更新。應用動態(tài)控制原理,落實專人負責跟蹤和記錄控制點質量控制的狀態(tài)和效果,并及時向項目負責人反饋質量控制信息,保持質量控制點的受控狀態(tài)。
4.3.3 軟件開發(fā)項目的質量保證
運用PDCA 循環(huán)法進行軟件開發(fā)的質量保證,在預開發(fā)階段、開發(fā)階段、維護階段3個階段進行。
預開發(fā)階段指開發(fā)團隊針對開發(fā)項目招標情況對軟件開發(fā)項目做出的提前處理,工作體現在下列PDCA 循環(huán)中:計劃,提出軟件開發(fā)的整體流程;實施,開發(fā)自己的技術提案,闡明將使用的技術及所擁有的技術工藝;檢查,提出檢查軟件質量、糾正產品中缺陷的方法;總結,根據檢查結果,提出改善質量控制的計劃。開發(fā)階段是指從軟件產品開發(fā)開始,到移交產品且客戶對軟件性能予以肯定為止。這一階段的PDCA循環(huán)活動有:計劃,開發(fā)者根據需求和風險,提出詳細的開發(fā)過程、要求使用的資源以及要得到的產品;實施,由開發(fā)組織執(zhí)行開發(fā)計劃;檢查,開發(fā)組織和客戶共同檢查計劃與預期得到的結果的一致性;總結,開發(fā)組織根據檢查結果,審查并重新認識風險,作為下一個循環(huán)的基礎。維護階段是修復軟件缺陷、提高軟件性能的階段。這一階段的PDCA 循環(huán)活動有:計劃,制定處理缺陷的計劃;實施,處理缺陷或根據需求變化提高軟件性能;檢查,判斷開發(fā)維護目標是否已經達到;總結,根據檢查結果審查并總結。
通過對本次水文自動測報預警軟件開發(fā)項目的質量管理,大大提升了軟件開發(fā)的質量,結合軟件開發(fā)前期中制定的質量目標,與以往軟件開發(fā)項目進行比對,分析進行軟件開發(fā)質量管理對結果產生的影響。
4.4.1 百段程序BUG數分析
根據質量控制點確定的各個模塊統(tǒng)計各模塊軟件開發(fā)中每百段程序的BUG數量,結合以往類似軟件開發(fā)中的統(tǒng)計數據進行比對,結果見表4。
表4 平均百段程序BUG數 個
4.4.2 客戶滿意度比對
各模塊軟件開發(fā)完成后,分別對客戶進行滿意度調查,按照優(yōu)良中差進行評價,經過與類似軟件開發(fā)客戶滿意度比對,結果見表5。
表5 客戶滿意度比對
以往軟件開發(fā)項目沒有進行過模塊化劃分,整體項目一起進行開發(fā),開發(fā)完成后統(tǒng)一進行評價,無法對內部存在的不足進行查找和梳理。本次劃分了模塊,根據各模塊的用戶滿意度調查,可以在以后的軟件開發(fā)中有針對性地進行改進,保證項目質量的良性發(fā)展。
通過理論介紹和實際項目的描述,具體論證了項目質量管理在軟件開發(fā)項目中的巨大作用,以水文自動測報預警軟件作為實例,說明了質量管理在具體軟件開發(fā)項目中所起到的重要作用以及如何才能在軟件開發(fā)過程中運用質量管理的各類方法和工具來提高軟件項目開發(fā)的整體質量。對項目實施質量管理后,項目的整體質量得到了明顯的提高。