關於
cmm在專案中的實施
隨著cmm
理念的引入,國內軟體公司激起了實施
cmm的熱潮。雖然
cmm的主要思想很清楚,標準的條例也很明確,但如何達到這種標準的可操作性比較差。在缺乏基礎和經驗的情況下,許多企業在實施
cmm的過程中,往往感到迷茫,不知從何處下手。而
cmm實施的難點在專案的具體實施。本文將結合我公司
cmm3
實施經驗,簡單論述如何在專案中實施
cmm。
首先看看
cmm標準中相關的定義:★機構
公司或其他實體中的乙個單位,它從整體上管理許多專案。機構內的所有專案由乙個共同的頂層負責人管理,並採用共同的策略。
★機構標準軟體過程
可在機構內使用的基本過程定義,用它來引導建立專案的一般軟體過程。它描述每個軟體專案打算併入自己的專案定義的軟體過程中的基本軟體過程要素,還描述這些軟體過程要素之間的關係(如排序和介面)。
★專案定義的軟體過程
由某專案使用的軟體過程的操作定義。利用軟體標準、規程、工具和方法對專案定義的軟體過程進行恰當的表徵和描述,使其易於理解。專案定義的軟體過程是根據專案特點通過剪裁機構標準軟體過程而獲得的。★剪裁
修改乙個過程、標準或規程,以更好地匹配過程或產品需求。
★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持續地改進軟體開發過程,我們一定能從中受益。
CMM 專案策劃過程的實施
實驗專案 專案策劃過程的實施 一 實驗目的 1.學習並實踐專案策劃過程的關鍵活動和流程。2.掌握 專案計畫 文件的撰寫。二 實驗學時 建議2學時。三 實驗原理 專案策劃的目的為專案開發和管理工作制定合理的行動綱領 即計畫 以便所有的專案人員按照該計畫有條不紊地開展工作。專案籌備結束之後,由專案經理負...
關於 cdn 在專案中的使用
當我們在專案中引入公共 cdn 時,想要考慮一些東西,現在我把他描寫一下 這裡只討論免費的 cdn bootcdn 又拍雲cdnjs jsdelivr unpkg 七牛75cdn 較好用的,比較穩定的基本上就上述這些,如果有問題可用此 實時測試 如果專案一直執行在國內,可以選擇 bootcdn,又拍...
關於cachedrowset在實際專案中的應用
由於專案需求原因,需要實現乙個功能就是,抽取大量的資料庫資料然後寫入文字並打包上傳。看似乙個很簡單的東西,在大資料量的環境下就顯得不是那麼簡單了。首先有60張左右的表需要進行資料的處理。各個公司情況不同,表的總資料量可能是幾千萬到幾十億不等。所以,耗時非常嚴重。由於只是單純的進行資料的提取加工寫入文...