軟件組織在進行軟件過程改善(簡稱SPI)時,其核心工作之一就是建立和維護組織的軟件過程財富。所謂軟件過程財富,顧名思義,就是組織在SPI過程中通過積累而得到的用于指導軟件項目的過程文檔和數據等重要信息。
任何一項組織認為在進行過程定義和維護軟件方面有用的實體均可成為過程財富的組成成分。軟件過程財富能夠為軟件項目在制定、裁剪、維護和實施軟件過程時提供了全面的指導。
總體上,組織的軟件過程財富包括以下5個方面內容:
● 組織批準的軟件生命周期;
● 組織標準軟件過程;
● 裁剪指南;
● 組織的軟件過程數據庫;
● 組織的軟件過程有關的文檔庫。
一般情況下,只有達到了CMM Level 3成熟度的組織,才會建立上述包括5個方面內容的、完整的軟件過程財富。
由于CMM Level 2僅關注項目級的一些管理過程,因此組織通常在CMM Level 2時只實現了對特定類型項目的管理控制,實現了同類項目的可重復性。在持續的SPI工作中,組織會基于CMM Level 3的要求對特定項目的軟件過程進一步升華,針對組織的所有項目建立一個共同的軟件過程,并逐步建立其他的軟件過程財富。
組織能夠以多種方式來組織軟件過程財富,具體取決于組織建立其標準軟件過程的方法。例如,軟件生命周期的描述可以是組織標準軟件過程的一個組成部分。此外,軟件過程有關文檔庫中的一些部分也可以存放在組織的軟件過程數據庫中。東軟股份則是將軟件生命周期的描述和裁剪指南作為組織標準軟件過程的組成部分,對組織的程序文件進行統一管理。
本文結合東軟股份在這方面的工作經驗介紹軟件過程財富的含義及其具體應用。
軟件生命周期
軟件生命周期是指一段時間,指從設想一軟件產品開始到軟件不再供使用為止的時間間隔。軟件生命周期一般包括:概念階段、需求階段、設計階段、實現階段、測試階段、安裝和調整階段、運行和維護階段,有時還包括退役階段。
選擇一個適當的軟件生命周期對項目來說至關重要。在項目策劃的初期,就應該確定項目所采用的軟件生命周期,統籌規劃項目的整體開發流程。為了做好這項工作,組織需要預先識別并總結出可供項目選擇的軟件生命周期,同時,還需要提供指導原則(這部分通常在裁剪指南中)幫助項目選擇適當的軟件生命周期。
一個組織通常為多個客戶生產軟件,而客戶的要求也是多樣化的。一種軟件生命周期往往不能適合所有的情況,因此組織可以規定多種軟件生命周期供項目使用。這些軟件生命周期一般從軟件工程文獻中獲得,并可加以修改,使之適于組織的情況。在制定項目定義軟件過程時,這些軟件生命周期可以和組織標準軟件過程結合在一起使用。
東軟股份依據組織內各個項目的需求特點和開發周期等特征,總結了如下表所示的幾種供不同項目選擇的軟件生命周期。
表 軟件生命周期
東軟股份在組織的程序文件中詳細描述了每個軟件生命周期,包括原理、優缺點、適合哪些類型的項目等,通過這些描述可幫助項目人員很好地理解和運用組織已批準的軟件生命周期。
另外,如果在實際工作中,基于特定項目的經驗積累和總結,可能需要形成新的軟件生命周期,此時可依照一定的流程將其定義和描述加入到組織的軟件過程財富中。
標準軟件過程和裁剪指南
組織標準軟件過程是組織中所有軟件開發和維護項目共用的軟件過程,是項目定義軟件過程的基礎。它保證組織過程活動的連續性,是組織軟件過程的測量和長期改進的依據。
裁剪指南則用來指導項目對組織標準軟件過程進行裁剪,以形成適合項目特征的項目定義軟件過程。
下面是幾個有關的基本概念:
● 組織標準軟件過程
組織標準軟件過程是基本過程的可操作的定義,基本過程指導在組織中建立一個針對所有軟件項目的共用的軟件過程。該軟件過程描述預計每個項目的軟件過程均會包含的基本的軟件過程元素。
● 軟件過程元素
軟件過程元素是指一個軟件過程描述的構成元素。每個過程元素包括一組妥善定義的、有限制的、緊密相關的作業(例如軟件估計元素、軟件設計元素等)。過程元素的描述可以是待填充的樣板、待完成的片段、待精煉的抽象、待修改的完整描述,或已使用的無須修改的完整描述。
● 項目定義軟件過程
項目定義軟件過程是指對項目所用軟件過程的可操作的定義。項目定義軟件過程是一個已很好特征化的和已理解的軟件過程,用軟件標準、規程、工具和方法予以描述。通過裁剪組織標準軟件過程以適合項目的具體特征的方法來制定它。
基于上面的定義,我們可以了解到:組織標準軟件過程是由已定義的組織內所有項目通用的一些軟件過程元素組成的。在進行具體描述時,可以首先依據這些過程元素的特點,按照一定的方式將這些“零散”的過程元素加以組織。
東軟在SPI實踐中將已識別的過程元素分成三類,主要內容如下:
● 主要的生命周期過程組:包括供應過程、開發過程、維護過程;
● 支持的生命周期過程組:包括配置管理、文檔編制、問題解決、質量保證、同行評審、組間協調;
● 組織的生命周期過程組: 包括管理、基礎設施、軟件過程改善、培訓。
要清晰地描述組織的標準軟件過程,僅僅將過程元素分組還不夠,還需要描述這些過程元素之間的聯系,即軟件過程體系結構。
軟件過程體系結構是對組織標準軟件過程的高層次(即概括的)描述。它描述組織標準軟件過程中軟件過程元素的排序、界面、相互依賴關系及其他關系。
圖1為東軟股份確定的軟件過程體系結構。
組織標準軟件過程是在通用的層次上予以描述的(有關組織標準軟件過程的具體內容將在今后的連載中給出詳細的論述),因此項目可能無法直接使用它,裁剪指南的目的就是幫助項目裁剪組織標準軟件過程,形成項目定義軟件過程(如圖2所示)。
文章來源于領測軟件測試網 http://www.kjueaiud.com/