★ 機構
公司或其他實體中的一個單位,它從整體上管理許多項目。機構內的所有項目由一個共同的頂層負責人管理,并采用共同的策略。
★ 機構標準軟件過程
可在機構內使用的基本過程定義,用它來引導建立項目的一般軟件過程。它描述每個軟件項目打算并入自己的項目定義的軟件過程中的基本軟件過程要素,還描述這些軟件過程要素之間的關系(如排序和接口)。
★ 項目定義的軟件過程
由某項目使用的軟件過程的操作定義。利用軟件標準、規程、工具和方法對項目定義的軟件過程進行恰當的表征和描述,使其易于理解。項目定義的軟件過程是根據項目特點通過剪裁機構標準軟件過程而獲得的。
★ 剪裁
修改一個過程、標準或規程,以更好地匹配過程或產品需求。
★ SEPG(Software Engineering Process Group)
協組對機構使用的軟件過程進行定義、維護和改進的一個專家組。在關鍵實踐中,這個小組通常稱為“負責機構的軟件過程活動的小組”。
項目實施CMM一般包括三個部分:定義項目軟件過程、制定軟件開發計劃、軟件開發及管理。
1. 定義項目軟件過程
項目經理在SQA人員(軟件質量保證人員)、SEPG成員的幫助下,針對項目的實際情況,選擇或剪裁機構標準軟件過程,形成項目定義的軟件過程。
CMM實施初期,機構標準軟件過程不完善的情況下,需要對機構標準軟件過程進行剪裁,以適應項目的實際需要。機構標準軟件過程較完善時,一般只需要從機構標準軟件過程中選擇模板、方法等形成項目軟件過程,建議不再采用剪裁的方式。
項目軟件過程的內容為:項目采用的軟件生命周期模型(如:瀑布模型、V模型等);項目軟件開發及管理(如:軟件開發計劃、需求分析、概要設計、詳細設計、編碼、測試、發布、項目跟蹤等)應遵循的方法與模板。
項目軟件過程由一到多個文檔構成。至少應有一個文檔詳細描述項目的軟件生命周期模型、軟件開發及管理應遵循的標準、項目軟件過程與機構標準軟件過程的偏差(即進行了剪裁的內容)。如果進行了剪裁,還將存在項目定義的方法和模板文檔。
項目軟件過程定義完成后,需要經過SQA人員、SEPG成員的評審,并得到上級主管領導的批準認可。主要是評審項目軟件過程與機構標準軟件過程的偏差,看看發生的偏差是否符合機構的標準,并滿足CMM標準的要求。
2. 制定軟件開發計劃
項目經理參照項目軟件過程中的生命周期模型、方法與模板,結合客戶需求制定軟件開發計劃。軟件開發計劃是軟件開發活動的依據,也是軟件開發管理的基礎。
軟件開發計劃的內容有:軟件規模估計、工作量估計、成本估計、制定工作進度、識別風險、風險管理計劃、跟蹤管理、配置管理等。其中軟件估計、風險識別與管理、制定工作進度是軟件開發計劃的重點與難點。
軟件估計主要為規模估計、工作量估計、成本估計。軟件規模估計是工作量估計的基礎,而工作量估計的結果是成本估計的基礎。軟件規模估計的方法有很多,最常用的功能點估計、代碼行估計、界面數估計。各種估計方法有其優缺點,需要根據公司或項目的實際情況來選擇估計方法。軟件規模估計選定估計方法后,還必須結合以往項目的開發經驗或收集的歷史數據。開發經驗或歷史數據的豐富程度,決定了規模估計結果與實際情況的接近程度。軟件工作量除了依賴軟件規模的估計,同時與公司的軟件開發生產率密切相關(什么是軟件開發生產率?以界面數估計方法為例。3個界面,需要花費的工作量為1人月。那么軟件開發生產率為3界面/人月)。因此規模相同的軟件,不同公司開發軟件所花費的工作量不同。估計了工作量以后,軟件成本的估計就相對比較容易。我們一般將軟件成本簡單分為:軟件開發成本、其他成本。軟件開發成本等于工作量與人員平均花費之積。其他成本包括管理成本、差旅費等各種費用。這些需要根據公司的實際情況來確定。
軟件風險是指軟件開發過程中及軟件產品本身可能造成的傷害或損失。我們需要關注以下的問題:什么樣的風險會導致軟件項目的徹底失敗?用戶需求、開發技術、目標計算機、以及所有其它與項目有關的因素的改變將會對按時交付和總體成功產生什么影響?對于采用什么方法和工具,需要多少人員參與工作的問題,我們如何選擇和決策?對軟件質量要達到什么程度才是“足夠的”?
風險識別與管理的目的,就是識別出軟件開發過程中可能產生的問題,制定預防問題的措施,及問題發生時的解決方法。公司內不同項目的風險不同,不同公司開發相同軟件的風險不同。識別風險需要采用科學的風險識別方法,同時也需要經驗與歷史數據的積累。根據風險發生的可能性與發生時產生的影響,可以對風險進行分級。在風險識別的基礎上,制定詳細的預防措施和解決方法。用以避免風險的發生,當風險發生時將損失減小到最低程度。隨著軟件開發活動的進行,風險在不斷的變化。計劃時預測的部分風險可能消失,同時可能產生一些新的風險。因此在制定預防和解決的方法同時,還需要制定風險監控計劃。在風險監控點上,監控風險的變化情況,并制定新的措施和方法。
工作進度的制定主要基于工作量估計的結果、采用的軟件生命周期模型。制定工作進度主要需要詳細描述,“什么人?什么時候?做什么事情?產生什么軟件工作產品?”。制定工作進度使用的工具可以根據個人習慣來選擇,比較好的有MS Project。制定工作進度的過程中需要綜合考慮軟件開發過程中可能遇到的困難,必須將時間安排得比較合理。時間太緊,將造成計劃不能按時完成,不能起到指導軟件開發的作用。而太松,又將降低工作效率。工作進度的時間把握存在很大的難度,和軟件規模估計一樣,需要經驗和歷史數據的積累。
軟件開發計劃制定完成后,需要得到項目組成員的認可,并獲得承諾。最后需要項目上級主管領導的簽字批準。
3. 軟件開發及管理
軟件開發將按軟件開發計劃進行,所有開發活動必須遵從項目定義的軟件過程。軟件開發過程中,SQA人員將按照SQA計劃(軟件質量保證計劃)對軟件開發活動和產生的軟件工作產品進行審核。以保證軟件開發活動和產生的軟件工作產品符合項目軟件過程定義的標準。
軟件開發是一個復雜的過程,其間存在著各種不確定因素。軟件計劃無法做到與實際情況完全吻合,好的計劃也只能盡量接近實際情況。因此,軟件開發過程需要進行管理,以保證軟件開發能按客戶的要求按時按質完成。軟件開發的管理主要包括:跟蹤軟件開發活動、測量花費的工作量、實時調整計劃。
跟蹤軟件開發活動,主要是跟蹤軟件規模、工作量、成本、進度、風險等。跟蹤的方式很多,主要分為定期與非定期。定期方式常見的有:周例會、里程碑會議。項目組每周或里程碑處召開會議,以便項目經理、項目上級主管領導能夠實時地掌握項目的進展與存在的問題。非定期一般為,項目出現問題時,項目經理、項目上級主管領導對產生的問題進行了解分析,并幫助解決問題。
測量花費的工作量,是測量前一階段軟件開發活動實際所花費的工作量。并將實際的工作量與計劃估計的工作量進行對比分析,為后一階段計劃的改進提供依據。
在跟蹤、測量的基礎上,看看是否有必要調整計劃。對計劃的調整表現為:重新估計規模、工作量、成本,重新識別風險并管理風險,調整工作進度的時間人員安排等。 CMM在項目中的實施還有很多工作要做,以上只是描述了其中的一部分。從印度軟件成功的經驗,讓我們認識到實施CMM將提高我們的軟件產品質量,幫助我們打開國際市場,振興我國的軟件產業。但CMM的實施也存在很大的難度,特別在CMM實施初期,我們將遇到很多困難。例如:增加了軟件開發的工作量,降低了軟件開發效率等?朔@些困難,通過實施CMM持續地改進軟件開發過程,我們一定能從中受益。
文章來源于領測軟件測試網 http://www.kjueaiud.com/