一、引言
軟件開發過程中隨著工作的進展會產生許多信息,如:需求分析說明、設計說明、源代碼、可執行碼、用戶手冊、測試用例、測試結果和這些內容形成的相應的技術文檔;以及合同、計劃、會議記錄、報告等管理文檔。另一方面,軟件開發過程中出現變更是不可避免的。面對如此龐大且變動中的信息集合,如何使其有序高效地產生、存放、查找和利用成為軟件工程項目十分突出的問題。如果沒有一套嚴謹、科學的管理辦法,出現混亂和差錯幾乎是必然的。軟件配置管理正是為解決這個問題而提出的,它為軟件開發提供了一套管理辦法和活動原則,成為貫穿軟件開發始終的重要質量保證活動。
二、軟件配置管理的概念
要想掌握一種技術,首先要深刻理解他的概念。那么什么是軟件配置管理呢?這個名詞英文是Software Configuration Management,通常我們將它縮寫為SCM。
我們可以從以下幾個角度理解和掌握它的真正含義:
(1)《ISO/IEC 12207(1995)信息技術--軟件生存期過程》:配置管理過程是在整個軟件生存期中實施管理和技術規程的過程,它標識、定義系統中軟件項并制定基線;控制軟件項的修改和發行;記錄和報告軟件項的狀態和修改申請;保證軟件項的完整性、協調性和正確性;以及控制軟件項的儲存、裝載和交付。
(2)《ISO 9000-3(1997)質量管理和質量保證標準--第3部分:ISO 9001:1994 在計算機軟件開發、供應、安裝和維護中的使用指南》:軟件配置管理是一個管理學科,它對配置項的開發和支持生存期給予技術上和管理上的指導。配置管理的應用取決于項目的規模、復雜程度和風險大小。(3)巴比齊(W.Babich):軟件配置管理能協調軟件開發,使得混亂減少到最小。軟件配置管理是一種標識、組織和控制修改的技術,目的是最有效地提高生產率。
(4)《GB/T 11457(1995)軟件工程術語》:軟件配置管理是標識和確定系統中配置項的過程,在系統整個生存周期內控制這些項的投放和更動,記錄并報告配置的狀態和更動要求,驗證配置項的完整性和正確性。一言以蔽之,配置管理是門通過一系列技術、方法和手段來維護產品的歷史、鑒別和定位產品獨有的版本、在產品開發和發布階段控制變化,從而使管理制度化、有效減少重復性工作、保證產品的質量和效率的科學。
三、軟件配置管理術語
軟件配置管理是軟件工程學科中涉及概念較多的一項內容,為了便于說明,下面給出一些相關術語的定義。
(1)項目委托單位 project entrust organization 指為產品開發提供資金并通常也是(但有時也未必)確定產品需求的單位或個人。
(2)項目承辦單位 project undertaking organization 指為項目委托單位開發、購置或選用軟件產品的單位或個人。
(3)軟件開發單位 software development organization 軟件開發單位是指直接或間接受項目委托單位委托而直接負責開發軟件的單位或個人。
(4)用戶 user 指實際全勝軟件來完成某項計算、控制或數據處理等任務的單位或個人。
(5)軟件 software 指計算機程序及其有關的數據和文檔,也包括固化了的程序。
(6)重要軟件 critical software 指其故障會影響到人身安全、會導致重大經濟損失或社會損失的軟件。
(7)軟件生存周期 software life cycle 指從軟件系統設計對軟件系統提出應用需求開始,經過開發,產生出一個滿足需求的計算機軟件系統,然后投入運行,直至該軟件系統退役為止。其間經歷系統分析與軟件定義、軟件開發以及系統的運行與維護等三個階段。其中軟件開發階段一般又分成需求分析、概要設計、詳細設計、編碼與單元測試、組裝與集成測試、系統測試以及安裝與驗收等七個階段。
(8)軟件開發庫 software development library 指在軟件生存周期的某一個階段期間,存放與該階段軟件開發工作有關的計算機可讀信息和人工可讀信息的庫。
(9)軟件受控庫 software controlled library 指在軟件生存周期的某一個階段結束時,存放作為階段產品而釋放的、與軟件開發工作有關的計算機可讀信息和人工可讀信息的庫。軟件配置管理就是對軟件受控庫中的各軟件項進行管理,因此軟件受控庫也叫做軟件配置管理庫。
(10)軟件產品庫 software product library 指在軟件生存周期的系統測試階段結束后,存放最終產品而后交付給用戶運行或在現場安裝的軟件的庫。
(11)接口控制 interface control 指描述有關由一個或多個部門提供的兩個或兩個以上的配置項接口的所有功能特性和物理特性的過程。在實現之前,要確保對這些功能特性和物理特性所建議的修改已經過評審和批準。
(12)功能基線 functional baseline 指在系統分析與軟件定義階段結束時,經過正式評審和批準的系統設計規格說明書中對待開發系統的規格說明;或是指經過項目委托單位和項目承辦單位雙方簽字同意的協議書或合同中所規定的對待開發軟件系統的規格說明;或是由下級申請經上級同意或直接由上級下達的項目任務書中所規定的對待開發軟件系統的規格說明。功能基線是最初批準的功能配置標識。
(13)指派基線 allocated baseline 指在軟件需求分析階段結束時,經過正式評審和批準的軟件需求的規格說明。指派基線是最初批準的指派配置標識。
(14)產品基線 product baseline 指在軟件組裝與系統測試階段結束時,經過正式評審的批準的有關所開發的軟件產品的全部配置項的規格說明。產品基線是最初批準的產品配置標識。
(15)軟件配置 software configuration 指一個軟件產品在軟件生存周期各個階段所產生的各種形式(機器可讀或人工可讀)和各種版本的文檔、程序及其數據的集合。該集合中的每一個元素稱為該軟件產品軟件配置中的一個配置項(configuration item)。
(16)釋放 release 指在軟件生存周期的各個階段結束時,由該階段向下階段提交該階段產品的過程。它也指將系統測試階段結束時所獲得的最終產品向用戶提交的過程。后面這個過程也叫做交付(delivery)。
(17)配置控制委員會 configuration control board 一組負責評估和審批配置項的變更的人員,以確保所有的變更都是經過審核的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/