{{위키데이터 속성 추적}}
[[소프트웨어 공학]]에서 '''소프트웨어 구성 관리'''(software configuration management, '''SCM''', '''S/W CM''')<ref>Atria (later [[:en:Rational Software]], now a part of [[IBM]])</ref>는 더 범위가 큰 [[구성 관리]]의 학문간 분야의 일부인, 소프트웨어의 변경사항을 추적하고 통제하는 작업이다.<ref>{{서적 인용| title = Software Engineering: A Practitioner's Approach | edition = 7th International | author = Roger S. Pressman | year = 2009 | publisher = McGraw-Hill | location = New York}}</ref> SCM 행위에는 [[버전 관리]], [[베이스라인]] 확립이 포함된다. 무언가 잘못되는 경우 SCM은 변경사항과 변경한 사람을 특정할 수 있다. 구성이 잘 된 경우 SCM은 수많은 호스트에 걸쳐 이를 복제(replicate)하는 방법을 결정한다.

"SCM"이라는 약어는 "소스 구성 관리 프로세스"(source configuration management process), "소프트웨어 변경 및 구성 관리"(software change and configuration management)로도 언급된다.<ref>Gartner and Forrester Research</ref> 그러나 "구성"은 일반적으로 [[시스템 관리자]]가 취한 변경사항을 커버하는 것으로 이해된다.

== 목적 ==
SCM의 목적은 대체적으로 다음과 같다:

* 구성 식별 - 구성, [[구성 항목]], [[베이스라인]]의 식별.
* 구성 제어 - 통제된 변경 프로세스의 구현.
* 구성 상태의 체계적 기록 - 개발 프로세스 상태에 필요한 모든 정보의 기록 및 보고.
* 구성 감사(auditing) - 구성에 의도한 부분이 포함되었는지, 요구사항, 아키텍처 사양, 사용자 매뉴얼과 잘 조화되는지를 보증.
* [[소프트웨어 빌드]] - 빌드에 사용되는 프로세스와 도구의 관리.
* [[비즈니스 성과 관리]] - 조직 개발 프로세스 준수 보증.
* 환경 관리 - 시스템을 호스팅하는 소프트웨어와 하드웨어의 관리.
* [[협동]] - 프로세스와 관련한 팀 소통의 용이화.
* 결점 추적 - 모든 결점의 원인 추적 가능.

[[클라우드 컴퓨팅]]이 도입과 함께 SCM 도구의 목적은 일부의 경우 하나로 합쳐지고 있다. SCM 도구들 그 자체는 가상 머신으로 인스턴스화할 수 있는, 또 상태와 버전으로 저장될 수 있는 가상 어플라이언스가 되고 있다. 이 도구들은 가상 어플라이언스, 스토리지 유닛, 소프트웨어 번들을 포함한 클라우드 기반 가상 자원들을 모델링하고 관리할 수 있다. 행위자의 역할과 책임은 현재 가상 서버와 관련 자원을 동적으로 인스턴스화할 수 있는 개발자들로 병합되고 있다.<ref>{{저널 인용| last=Amies | first=A |author2=Peddle S |author3=Pan T M |author4=Zou P X | title = Develop cloud applications with Rational tools | journal = IBM developerWorks | publisher = IBM | date = June 5, 2012 | url = https://www.ibm.com/developerworks/community/blogs/iaas_cloud/entry/develop_cloud_applications_with_rational_tools3}}</ref>

== 역사 ==
컴퓨팅에서 소프트웨어 구성 관리(SCM)의 역사는 본래 하드웨어 개발 및 생산 제어를 위한 CM(구성 관리, 즉 Configuration Management)이 소프트웨어 개발에 적용된 1950년대 초로 거슬러 올라간다. 초기 소프트웨어는 [[천공 카드|카드]], [[천공 테이프|테이프]] 등의 물리적인 매체에 담겼다. 최초의 소프트웨어 구성 관리는 수작업이었다. 언어와 복잡도가 늘어감에 따라 구성 관리와 기타 방식들이 수반되는 [[소프트웨어 공학]]은 스케줄, 예산, 품질과 같은 문제로 인해 주된 문제가 되었다. 실질적인 실례를 통해 수년에 걸쳐 절차와 도구들이 정의되고 확립되었다. 마침내 이 도구들은 소프트웨의 변경을 관리하는 시스템이 되었다.<ref>"1988 "A Guide to Understanding Configuration Management in Trusted Systems" National Computer Security System (via [https://books.google.com/books?id=CScMNjwwK8UC&printsec=frontcover&dq=configuration+management+systems&hl=en&sa=X&ei=bADiUcmJFs3FqQGG4oCYDg&ved=0CDkQ6AEwAA Google])</ref> 산업 부문의 실례가 개방 방식 또는 사유 방식의 솔루션(예: [[버전 관리 시스템]])으로 제공되었다. 컴퓨터 이용률이 높아지면서 [[요구사항 관리]], 디자인 변화, 품질 제어 등 더 넓은 범위를 관리하는 시스템들이 등장하였다. 나중에는 SEI(Software Engineering Institute)의 [[능력 성숙도 모델]] 등 조직의 가이드라인을 따르는 도구들이 생겨났다.

== 같이 보기 ==
* [[코드형 인프라스트럭처]]

== 각주 ==
{{각주}}

== 참고 문헌 ==
* {{서적 인용| doi = 10.1109/IEEESTD.2012.6170935| title = 828-2012 IEEE Standard for Configuration Management in Systems and Software Engineering| year = 2012| isbn = 978-0-7381-7232-3}}
* 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 https://web.archive.org/web/20121008233037/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}}.

== 외부 링크 ==
* [http://www.ssqc.com/do25v6new.pdf SCM and ISO 9001 by Robert Bamford and William Deibler, SSQC]
* [http://www.methodsandtools.com/archive/archive.php?id=40 Use Cases and Implementing Application Lifecycle Management ]
* [http://www.methodsandtools.com/archive/archive.php?id=12 Parallel Development Strategies for Software Configuration Management]

{{소프트웨어 공학}}
{{IEEE 표준}}

[[분류:소프트웨어 공학]]
[[분류:IEEE 표준]]