彭 銀
(六盤水職業技術學院 貴州 六盤水 553001)
軟件開發項目的質量管理策略在實際項目中的應用研究
彭 銀
(六盤水職業技術學院 貴州 六盤水 553001)
近年來,軟件項目的質量問題越來越突出,總體上來說,軟件的質量較差,成為制約軟件項目發展的一個瓶頸。本文通過水文監測平臺這一軟件開發項目,充分將軟件開發項目的質量計劃、質量控制、質量保證中的具體方法(成本效益分析法、流程圖法、質量成本分析、抽樣統計、帕累托圖)應用到該軟件開發項目中,項目取得了不錯的成績。
質量計劃;質量控制;質量保證;水文監測
某政府部門由于工作需要,需要對全縣所有測站進行水文監測,以方便對這些測站進行統一管理,我公司接手該項目后,作為項目負責人的我,引進了軟件開發項目的項目對該項目進行管理,最終,該項目提前完成。
(一)產品的基本介紹
項目名稱:水文數據監測平臺,開發語言與環境:VC++、Apache、SQL SERVER 2008、Visio Studio 2010,預計用時:30天,預計成本:5萬元。
(二)產品部分功能
該軟件項目平臺主要包括幾個分系統:測站管理、雨量站管理、數據管理、數據采集、用戶管理和平臺管理。
測站管理功能包括:添加測站、測站查詢、測站河床信息、測站地圖定位以及測站地圖管理。
雨量站管理功能包括:添加雨量站、雨量站查詢、雨量站地圖定位。
數據管理功能包括:水位查詢、流量查詢、測站綜合查詢、云臺控制、照片查看以及視頻回放。
數據采集功能包括:添加采集數據、采集時間設置、采集記錄查詢。
用戶管理功能包括:用戶組管理、用戶組查詢、添加用戶、用戶查詢。
平臺管理功能包括:系統信息、全局參數的設置、系統日志和地圖管理。
(一)質量計劃階段
在做該項目的時候,項目開發小組根據軟件的需求開會討論后,項目負責人組建了項目開發小組,認真做好了需求調查分享,然后開始做質量計劃,項目小組經過如下步驟策劃了軟件的質量計劃。
1.組建文檔管理小組。質量計劃階段第一件事情是組建文檔管理小組,檔管理小組的設立是為了確保項目研發完畢的同時,能夠將內部文件和外部文件都順利完成。內部文件是確保項目研發小組成員能夠更好的接口和溝通的重要前提,從另一個層次來講,也是確保整個工程能夠順利開展的前提,其重要性不言而喻。文檔管理小組成員的主要任務有幾個方面:完善各個部門之間需要存檔和版本控制的代碼、文件以及階段性成果;對代碼、文件等進行單向出入的控制;對所有需要保存的文檔進行版本控制,統一規范,并傳達到研發組中。
2.明確項目的范圍、中間產品和最終產品。首先項目小組確定了項目的范圍是關于做一個水文監測方面的系統,項目的中間產品是要用PHP與SQL SERVER 2008完成水文監測系統的一般功能,如測站的管理、測站的河床信息管理、雨量站的管理等基本功能,在完成這些基本功能的同時,由1名開發人員對軟件所需的地圖進行繪制,同時由兩位負責視頻的捕獲以及雨量曲線圖等的繪制,軟件的美工人員也在不斷的工作。項目的最終產品是基本達到用戶的需求,在軟件開發過程當中,即便是有做好了需求調查分析,然而這些都還是不夠的,在軟件開發的過程當中,用戶經常到公司進行交流,很多方面的功能得到了不斷的完善。
3.明確關于中間產品和最終產品的有關規范、標準。該過程需要確定可能影響軟件質量的技術要點,與此同時找出能夠確保高效滿足相關規定、標準的過程方法。該項目采用的標準和規范是《中華人民共和國國家標準》的《計算機軟件產品開發文件編制指南》,能夠滿足軟件項目的要求規范。
4.設置關鍵的待檢點。在軟件開發過程當中,除了必要的臨時檢查,設置合理的停工待檢點是非常必要的,在該項目的開發過程當中,項目小組明確要求每次做完一個單元,都要進行測試,稱為臨時檢查,每次做完一個綜合的功能都要停工進行檢查,這個時候是開發小組的成員進行相互的檢查,彼此檢查功能是否完善,例如負責測站管理的小組成員完成開發之后,要接受檢查,檢查他所做的功能是否達到要求,如測站添加是否正常,測站的查詢是否得到完善等等。
5.明確質量計劃采用的方法、技術和工具。在軟件的項目當中,項目經理特別首先跟我們開會的時候都特別強調文檔的重要性,其次他特別強調我們要做好質量計劃的工作,需要利用如下的方法和技術。
(1)系統流程圖。根據需求調查分析做出系統的流程圖。
(2)因果分析圖。軟件開發小組的成員在開發軟件的過程當中,如果遇到什么問題,應該用因果分析圖將其記錄下來,以方便解決所遇到的問題,也可以為以后的軟件開發作為借鑒。在軟件開發過程當中,每次遇到無法解決的問題或者解決有誤的問題,都用一個表將其記錄下來,表的內容大體包括,問題描述、問題的解決思路、方法、出現問題的原因,以及建議等等。
(3)質量成本分析法v在項目開發的最初階段,項目小組根據認真的需求調查分析,認真做好軟件需求規格說明書。該軟件項目的規模不大,公司根據實際的研究決定,成立包括項目經理在內的6個人進行軟件項目的開發,項目的合同開發周期是30天,項目小組在策劃的過程當中根據實際的調查分析和以往的經驗給出了25天完成項目的開發,其他的成本都有考慮,因為軟件的規模相對較小,項目小組主要針對項目的后期維護進行了成本估計,項目小組估計該項目的后期維護需要一個人不定期的到公司進行相關的維護,預計時間維持3個月左右,總共預計開發資金大概需要40000元左右,也即項目的總成本在合同成本之下,合同成本50000元。經過成本分析法分析之后,項目小組認為該項目具有效益,最終開發小組還可能得到一定的獎金,最終,項目小組接收下該項目。
(二)質量控制階段
質量控制階段,項目小組根據項目的實際情況,在軟件的開發過程制定了相應的策略,該項目的質量控制方法和步驟如下:
1.測試小組的建立。項目小組每個開發成員必須根據詳細設計的相關文檔說明對軟件要實現的功能進行一一測試,這種測試被稱為單元測試,單元測試能夠確保軟件的執行正確的實現設計需求,與此同時,也證實了軟件的設計思想,當然,它并不能從根本上解決用戶的需求,是否真正反映了用戶的需求,需要做功能性測試。
由于項目規模不大的緣故,公司沒有組織專家組的測試小組,功能性的測試都由開發小組的成員之間進行測試,但是這并不代表公司對軟件測試的不重視,公司開會的時候還特別強調了軟件測試的重要性,而且小組的開發成員當中大部分都有過參與測試的經驗,只是不是專門的測試專家,當然最終的產品還要經過項目經理進行測試,項目經理是軟件測試方面的專家,有著豐富的測試經驗。
2.質量標桿法。公司是一個專職的軟件開發公司,開發過許多的軟件項目,有很多成功的案例和經驗值得借鑒,項目的開發過程當中,項目小組經常開會進行交流,其中每次開會都會給項目的開發人員分發公司以前開發的一些項目作為借鑒。以前開發的一些項目的文檔,有很多值得借鑒的地方,成功的地方,失敗的地方,需要明確注意的地方,遇到問題的地方,解決辦法的地方等等。
3.檢查。在質量計劃階段專門設有關鍵的待檢點,這就是為了檢查軟件產品是否符合預期的標準,在該項目質量計劃當中,每個獨立的功能模塊要進行停工檢查,檢查的過程當中都要有進行相應的記錄,遇到的問題要記錄在案,并形成相應的文檔,交與專門負責文檔管理的成員,該項目的規模小,所以文檔管理的成員只有一名,而且該成員不參與代碼的編寫工作,專門負責文檔的管理。
4.抽樣統計。在該項目當中,用戶更加的關心的是水位、流量等曲線,以及視頻的采集和回放等功能,針對這些用戶特別關心的單元,項目小組在開發過程當中予以了特別的注意,項目小組的成員之間,在這幾塊功能的時候互相交流學習,這些功能實現過程當中,項目經理對每個模塊的實現都進行了檢查。項目完成后,用戶對這次項目的成功,特別是這些方面給以了高度的評價,這些都是我們在這些方面特別注重的結果。
5.控制圖。在該項目當中,項目小組也使用了控制圖這一重要的工具進行質量的控制,項目小組對軟件項目當中的關鍵質量特性值進行測定、記錄、評估并監測過程是否處于控制狀態,并以圖的形式展示出來。在項目當中,影響項目的關鍵地方有水位曲線圖、流量曲線圖,視頻的采集等,項目的開發過程當中,重點對這些關鍵的地方進行分析,繪制出控制圖。
6.測試。公司多年來接收了很多項目,有很多成功的項目,也有很多失敗的項目,公司成立初期失敗的項目居多,后期也就是現在,大部分的項目都是成功的,少部分會出現一些問題,公司之所以在后期的項目能夠大部分成功,一個很重要的原因就是公司特別注意軟件的測試。公司有很多關于軟件測試方面的經驗都總結成文檔,公司還專門開會總結前輩們的經驗,總結出了很多軟件測試的經驗,在實踐理論一章當中已經有所描述,在此不再贅述。
7.其他方法。需要指出的是,由于項目的規模以及其他方面的原因,有些方法、工具沒有使用到軟件的項目當中,如帕累托圖、質量分析法等,另外,要特別指出的是質量計劃階段的方法、工具和技術在質量控制階段也可以使用,根據相應的項目,采取合適的方法、工具和技術。能夠使軟件的項目達到事半功倍的效果。
(三)質量保證階段
1.項目進度的質量保證
(1)需求分析。該做該項目的時候,雖然項目規模小,但是項目小組的成員還是很用心的做好需求分析,做好需求調查,盡可能的得到用戶的需求,盡可能早的得到用戶的需求,認真完成了軟件需求規格說明書。項目的開發過程當中,項目小組成員深切體會到了需求分析做得全面的好處,雖然盡早的邀請用戶參和,仍然避免不了項目進行中用戶的需求變更請求。用戶對軟件的需求可能會發生變化,項目小組在開發的過程當中,都有相應的應急措施,當得知用戶的需求有所變化的時候,將項目變化需求申請單發送給項目設置管理員(項目小組的成員),項目開發小組成員要對其進行分析,要對這種變動可能造成的影響和風險進行分析,無論那種變更都需要對相應的文件實施同步變更(包括需求規格說明書、周詳設計文、安裝手冊、操作手冊等)。在開發的過程當中,小組實際上接收到一次用戶對需求的變化,就是系統中的菜單應該可以是動態變化的,要讓他們隨時可以不用改源代碼就能夠改變菜單的位置,后來軟件開發小組根據用戶的需求進行了分析,花了一天的時間完成用戶的這些需求。
(2)系統設計。在項目的開發過程當中,用戶沒有明確我們采用什么樣的語言進行編程,也沒有要求我們采用面向對象還是面向過程進行開發,最終,經項目小組研究決定,采用面向對象的開發語言,PHP與VC++,選擇面向對象開發的原因,不是只看其設計方法的優勢選擇的,更多的是結合公司的實際情況,公司的開發人員能夠掌握PHP的還是占多數,C++也相對較為熟悉。
除設計選型,項目小組還注意了公告類的開發,在軟件需求分析的過程當中我們可以得到,有測站管理、雨量站管理,那么這兩個功能實際上是相通的,只要對其中一個開發出來,另外一個就可以不用進行開發。只要以第一個為模版進行修改即可成功。還有測站水位、流量和雨量的相關功能也是相通的,只要完成其中一個功能即可很快完成整個功能,這就充分考慮到了軟件的可重用性。
(3)實現。實現不僅包括代碼的生成,同時也包括測試用例的生成。根據詳細設計,程式員開始編碼并且調試程式,測試人員則根據設計進行測試用例的設計,設計出來的用例需要得到項目組成員認可由項目經理審核通過才能進入設置庫。同時程式員調試完程后提交測試人員進行程式正確性檢測。程序員在調試完程序之后應該盡早提交測試人員進行測試,并盡可能跟測試員進行溝通,使得測試達到更加完善的效果。
(4)文件管理。鑒于文件的重要性,開發小組根據情況從6個人當中,抽出一名專門負責文檔的管理,這里需要特別說明的是由于項目規模小的緣故,所以才只讓一名負責文檔的管理,設置文檔管理小組真正核心的工作是對文件的組織管理。根據文件的不同,文件的來源也不同,有些文件是通過質量保證小組經過復審之后轉交文檔管理小組,有些則會直接從文件的出處到達設置文檔管理小組。
2.服務的質量保證
服務質量保證,項目完成之后,也就是后期的運行維護階段的時候,公司制度分為如下幾個方面,在服務時間方面,為用戶服務主動、及時、準時、適時、周到的程度,不管用戶什么時候需要服務,都不能進行推脫,不能因為有其它事情,或者什么原因而不對用戶進行服務;在服務能力方面,為了能夠為用戶服務時間時準確判斷,迅速排除故障,指導用戶合理使用產品的程度,公司選擇了參與到軟件項目的開發小組的成員進行維護,而且此人具有豐富的服務經驗和技術;在服務態度方面,在服務過程中熱情、誠懇、有禮貌、守信用、建立良好服務信譽的程度。
項目小組建立了系統的質量保證體系,質量保證應貫穿整個系統每一項工作,要建立從系統總體設計、可行性研究、需求分析、立項、概要設計、詳細設計、編碼、試用、測試,到簽訂評審、運行維護全過程的質量保證體系;特別要加強系統質量的后期管理,即從試用、測試到鑒定評審到系統運行維護階段的質量控制;要建立規章制度,包括軟件的回訪制度和版本更新制度等。
3.產品的質量保證
在產品的質量保證方面,公司對項目做到了如下的幾點:有清晰、完整的規格說明,使用完善的標準和規范,在該項目當中我們使用了《中華人民共和國國家標準》中的《計算機軟件產品開發文件編制指南》;積累豐富的歷史經驗,該項目完成之后,項目小組對該項目的質量保證進行總結,加上公司以前的項目總結的經驗,可謂是經驗豐富;進行公正的設計復審,項目小組的成員進行設計復審的時候本著客觀的態度,不帶任何感情色彩進行了復審,這是公司對每一個開發小組成員必須進行培訓的地方;實施變化控制,當用戶的需求有變化時,項目小組會有相關人員對需求變化進行記錄,然后提交到項目經理的手中,項目經理組織小組開會研究,并對項目的變化進行了可行性分析、風險分析,確定項目的變化可行之后,并派相關人員對文檔進行修改,幾乎所有的文檔都要進行修改,為項目今后的開發提供了強有力的基礎和保證。
[1]王克仁,陳允明,陳養正.軟件項目管理[M].北京:科學出版社,2002.22~23.
[2]凱西.施瓦爾貝著,楊坤等譯.IT項目管理[M].機械工業出版社出版,2010
[3]鄧子云,張友生.系統集成項目管理工程師老師全程指導[M].清華大學出版社,2009
彭銀(1988-),男,漢族,貴州盤縣人,講師,計算機應用技術碩士,六盤水職業技術學院信息工程系,研究方向:大數據技術與應用、云計算技術與應用。