軟件組態管理(Software Configuration Management,簡稱:SCM),又稱軟件形態管理、或軟件建構管理,簡稱軟件形管。界定軟件的組成項目,對每個項目變更進行管控(版本控制),並維護不同項目之間的版本關聯,以使軟件在開發過程中任一時間的內容都可以被追溯,包括某幾個具有重要意義的數個組合,例如某一次交付給客戶的軟件內容。
SCM的簡稱已經擴展為「原始碼組態管理」(source configuration management)以及「軟件修改及組態管理」
(software change and configuration management)[1]。不過,「組態」一詞一般還是會指系統管理員才能進行的變更。
SCM的目標一般包括以下幾項:
- 組態識別:識別組態、組態項目和基準。
- 組態控管:匯入變更控管流程。該流程通常由變更控制委員會來執行,其主要的職責是核准或拒絕有悖任何基準的所有變更請求。
- 組態狀態報告:記錄和呈報與開發過程狀態相關的所有必要資訊。
- 組態稽核:確保這些組態包含所有預期內容,且備有完整的規定檔案(包括要求、結構規範和用戶手冊)。
- 建構管理:管理用於建構的流程和工具。
- 流程管理:確保遵循企業組織的開發流程。
- 環境管理:管理承載系統的軟硬件。
- 團隊合作:促進流程中團隊彼此間的互動。
- 缺陷追蹤:確保可溯及每個缺陷的源頭。
隨着雲端運算的引進,SCM工具的用途有時已互相整合。SCM工具本身轉變為虛擬設施,可以在虛擬機上執行並儲存狀態和版本。這些工具能管理並為雲端虛擬資源(包括虛擬裝置、儲存裝置和軟件套件)建立模型。如今,因為現在已經可以動態的啟用虛擬伺服器和相關資源,SCM管理人員的角色和職責已經與開發人員合併[2]。
軟件組態管理(SCM)在運算領域的應用可以追溯至1950年代。當時,原先用於硬件開發和生產控制的CM(組態管理)概念,轉而應用於軟件開發。早期的軟件都有實體,如打孔卡、打孔帶、磁帶和其他媒介。第一個軟件組態管理需經由人為操作。隨着程式語言及其複雜性不斷進展,涉及組態管理和其他方法的軟件工程由於時程、預算和質素等因素而成為主要隱憂。多年來的實踐經驗,為軟件開發流程和工具提供定義並奠定基礎。而這些工具最終成為管理軟件變更的系統[3]。業界普遍的做法,即是採用開放或專有方式(如修訂控制系統)來作為解決方案。隨着電腦的使用越來越普及,可處理大型任務範疇的系統也因應而生,包括需求管理、設計替代方案、質素控管等。隨後,工具均遵循企業組織的守則,如軟件工程學院建立的能力成熟度模型(CMM)。
Gartner and Forrester Research
"1988 "A Guide to Understanding Configuration Management in Trusted Systems" National Computer Security System (via Google (頁面存檔備份,存於互聯網檔案館))
- 828-2012 IEEE Standard for Configuration Management in Systems and Software Engineering. 2012. ISBN 978-0-7381-7232-3. doi:10.1109/IEEESTD.2012.6170935.
- Aiello, R. (2010). Configuration Management Best Practices: Practical Methods that Work in the Real World (1st ed.). Addison-Wesley. ISBN 0-321-68586-5.
- Babich, W.A. (1986). Software Configuration Management, Coordination for Team Productivity. 1st edition. Boston: Addison-Wesley
- Berczuk, Appleton; (2003). Software Configuration Management Patterns: Effective TeamWork, Practical Integration (1st ed.). Addison-Wesley. ISBN 0-201-74117-2.
- Bersoff, E.H. (1997). Elements of Software Configuration Management. IEEE Computer Society Press, Los Alamitos, CA, 1-32
- Dennis, A., Wixom, B.H. & Tegarden, D. (2002). System Analysis & Design: An Object-Oriented Approach with UML. Hoboken, New York: John Wiley & Sons, Inc.
- Department of Defense, USA (2001). Military Handbook: Configuration management guidance (rev. A) (MIL-HDBK-61A). Retrieved January 5, 2010, from http://www.everyspec.com/MIL-HDBK/MIL-HDBK-0001-0099/MIL-HDBK-61_11531/ (頁面存檔備份,存於互聯網檔案館)
- Futrell, R.T. et al. (2002). Quality Software Project Management. 1st edition. Prentice-Hall.
- International Organization for Standardization (2003). ISO 10007: Quality management systems – Guidelines for configuration management.
- Saeki M. (2003). Embedding Metrics into Information Systems Development Methods: An Application of Method Engineering Technique. CAiSE 2003, 374–389.
- Scott, J.A. & Nisse, D. (2001). Software configuration management. In: Guide to Software Engineering Body of Knowledge. Retrieved January 5, 2010, from http://www.computer.org/portal/web/swebok/htmlformat (頁面存檔備份,存於互聯網檔案館)
- Paul M. Duvall, Steve Matyas, and Andrew Glover (2007). Continuous Integration: Improving Software Quality and Reducing Risk. (1st ed.). Addison-Wesley Professional. ISBN 0-321-33638-0.