天天看點

《軟體工程方法與實踐》—— 2.3 軟體産品與過程

軟體過程提高了軟體工程活動的穩定性、可控性和有組織性,過程受到嚴格的限制,保證軟體活動有序進行。軟體工程師和管理人員根據需要調整開發過程和遵循該過程。從技術的角度來看,軟體過程注重軟體開發中采用的方法。

從軟體工程師的觀點來看,産品就是過程定義的一系列活動和任務的結果,即要傳遞的軟體。産品依賴過程,軟體團隊會根據産品的特征以及自身特點選擇特定的軟體過程來開發該産品。

首先,當産品比較複雜,開發周期比較長(一般持續一年及以上),開發成本比較高時,團隊就要選擇重型軟體過程,如螺旋模型或者統一過程模型等。因為當軟體比較複雜時,軟體需要大量的文檔記錄軟體的分析和設計結果,以便與客戶、開發者之間進行交流,進而了解問題并達到一緻。其次,當軟體持續周期較長時,開發人員中途會退出,其結果也會完全通過文檔被保留下來,以便于後來者能夠閱讀文檔,快速了解問題和投入到開發中。最後,随着項目不斷進展,複雜的軟體産品一般都經過多次更改和演化,後面的結果跟當初的設想肯定存在很大的差異,隻有通過文檔和相關的管理過程來儲存這些更改和變化,才能适應軟體産品的進化。

當産品較為簡單或需求比較穩定時,一般開發周期也比較短(3個月以内),開發人員也比較少(一般4~8人),這樣的軟體就可以采用輕型軟體過程,如極限程式設計方法或者瀑布模型即可。

軟體過程并不能保證軟體按期傳遞,也不能保證軟體滿足客戶需求。軟體過程本身也要進行評估,以确認滿足了成功軟體工程所必需的基本過程标準要求。軟體過程評估作用如圖2-1所示。

《軟體工程方法與實踐》—— 2.3 軟體産品與過程

軟體過程評估對現有的過程進行評估,并引發過程改進和能力與風險确定,以便完善軟體過程。

常見的軟體過程評估方法主要有以下幾種。

用于過程改進的标準cmmi評估方法scampi提供了一個過程評估模型,包括啟動、診斷、建立、執行和學習。scampi方法采用了卡内基梅隆大學軟體研究所的cmmi作為評估的依據。

用于團隊内部過程改進的cmm評估方法cbaipi提供了一種診斷方法,用以分析軟體或軟體團隊的相對成熟度。cbaipi方法采用了卡内基梅隆大學軟體研究所的cmm作為評估的依據。

spice标準定義了軟體過程評估的一系列要求,目的是幫助軟體開發團隊建立客觀的評價體系,以評估定義的軟體過程的有效性。

軟體iso 9001:2000标準是一個通用标準,該标準用于評估軟體産品、系統或服務的整體品質。該标準可直接應用于軟體團隊和公司。iso 9001:2000标準采用“計劃—實施—檢查—行動”循環,将其應用于軟體項目的品質管理環節。

随着軟體工程知識的普及,軟體工程師都知道,要開發高品質的軟體,必須改進軟體生産的過程,包括個人軟體過程(personal software process,psp)和團隊軟體過程 (team software process,tsp)。

psp是一種可用于控制、管理和改進個人工作方式的自我持續改進過程,是一個包括軟體開發表格、指南和規程的結構化架構。psp與具體的技術(程式設計語言、工具或者設計方法)相對獨立,其原則能夠應用到幾乎任何的軟體工程任務之中。cmm側重于軟體企業中有關軟體過程的宏觀管理,面向軟體開發機關;psp則側重于企業中有關軟體過程的微觀優化,面向軟體開發人員。二者互相支援,互相補充,缺一不可。

按照psp規程,改進軟體過程首先需要明确品質目标,也就是軟體将要在功能和性能上滿足的要求和使用者潛在的需求。其次是度量産品品質,對目标進行分解和度量,使軟體品質能夠“測量”。然後是了解目前過程,查找問題,并對過程進行調整。最後應用調整後的過程,度量實踐結果,将結果與目标做比較,找出差距,分析原因,對軟體過程進行持續改進。

psp為個體的能力也提供了一個階梯式的進化架構,以循序漸進的方法介紹過程的概念,每一級别都包含了更低的級别中的所有元素,并增加了新的元素。這個進化架構是學習psp過程基本概念的好方法,它賦予軟體人員度量和分析工具,使其清楚地認識到自己的表現和潛力,進而可以提高自己的技能和水準。

tsp由美國卡内基梅隆大學軟體工程研究所提供,可以幫助軟體開發組織建立成熟和紀律性的工程實踐,生産安全和可信的軟體。tsp 支援cmm 中的16 個關鍵過程域,在實際應用中取得了良好的效果。實施tsp,是改進軟體過程的有效途徑之一。團隊軟體過程為開發軟體産品的開發團隊提供指導,tsp的早期實踐側重于幫助開發團隊改善其品質和生産率,以使其更好地滿足成本及進度的目标。tsp被設計為滿足2~20人規模的開發團隊,大型的多團隊過程的tsp被設計為最多大約為150人的規模。

團隊軟體過程加上psp幫助高績效的工程師在一個團隊中工作,以開發有品質保證的軟體産品,生産安全的軟體産品,改進組織中的過程管理。通過tsp,一個組織能夠建立起自我管理的團隊來計劃追蹤他們的工作、建立目标,并擁有自己的過程和計劃。這些團隊可以是純粹的軟體開發團隊,也可以是內建産品的團隊,規模可以為3~20個工程師不等。tsp 團隊在廣泛領域裡可能運用xp、rup或其他方法。tsp使具備psp的工程人員組成的團隊能夠學習并取得成功。如果組織運用tsp,它會幫助組織建立一套成熟、規範的工程實踐,確定安全可靠的軟體。

團隊成員在psp 的訓練中,了解使用tsp 所需的知識和技能。這些訓練包括如何制作詳細的計劃、收集和使用過程資料、制作掙值管理、跟蹤項目進度、度量和管理産品品質以及定義和使用可操作的過程。

tsp 采用了循環遞增的開發政策,整個軟體生産過程由多個循環出現的開發周期組成,每個開發周期劃分出若幹個相對獨立的階段。每一次循環,都以啟動階段開始。在啟動階段,所有成員一起制定政策、過程和完成工作的計劃。