728x90
이번 글에서는 소프트웨어 공학에서 말하는 형상 관리에 대해 알아보고자 한다.
소프트웨어 시스템은 개발과 사용 중에 끊임없이 변경된다. 시스템 요구사항이 변경되고 시스템의 새로운 버저네서 이런 변경이 구현되어야 한다는 것이다. 하드웨어가 변경되면 소프트웨어가 변경되어야 한다. 경쟁사가 새로운 기능을 도입하면 그것에 대응해야 하는 것도 포함이다. 그렇기 때문에 대부분의 시스템은 버전들의 집합(set)으로 생각될 수 있으며, 각각의 버전들은 유지되고 관리되어야 한다.
728x90
형상 관리
형상 관리(CM : Configuration Management)는 변화하는 소프트웨어 시스템을 관리하기 위한 정책, 프로세스, 그리고 도구들과 관련된다. 각각의 시스템 버전에 어떤 변경들이 있고 컴포넌트 버전들이 포함되어 있는지를 놓치기 쉽기 때문에 우리는 시스템을 관리할 필요가 있다.
형상 관리는 한 사람이 처리해야 하는 변경을 잊기 쉬우므로 개별 프로젝트들에 유용하다.
그런데 여러 개발자들이 소프트웨어 시스템에 대해 동시에 작업하는 팀 프로젝트에서는 필수적이다.
결국 형상 관리는 규모가 크든 작든 필수적으로 해야한다는 것이다.
형상 관리의 활동
- 버전 관리
시스템 컴포넌트들의 여러 버전들을 추적 관리하고 여러 개발자들에 의한 컴포넌트 변경이 서로 방해받지 않도록 보장하는 것을 의미한다. - 시스템 구축
프로그램 컴포넌트, 데이터, 그리고 라이브러리들을 조립하고, 실행가능한 프로그램을 생성하기 이해 이것들을 컴파일하고 링킹하는 프로세스이다. - 변경 관리
인도된 소프트웨어에 대한 고객과 개발자들의 변경 요청을 추적 관리하고, 이런 변경을 수행하기 위한 비용과 영향을 파악하여 변경을 구현할 것인지, 구현한다면 언제 할 것인지 등을 판단한다. - 릴리스 관리
외부 릴리스를 위해 소프트웨어를 준비하고 고객 사용을 위해 릴리스되는 시스템 버전들을 추척 관리하는 것을 포함한다.

해당 내용은 아래의 링크에서 원문 확인이 가능하다.
https://cs.ccsu.edu/~stan/classes/CS530/Notes18/25-ConfigurationManagement.html
728x90
'CS > Software Engineering' 카테고리의 다른 글
| [소프트웨어공학/Software Engineering] 시스템 설계와 구조 - system design and architecture (0) | 2026.06.02 |
|---|---|
| [소프트웨어공학/Software Engineering] 객체지향과 인터페이스 (0) | 2026.04.10 |
| [소프트웨어공학/Software Engineering] Polymorphism 다형성 (0) | 2026.04.10 |
| [소프트웨어공학/Software Engineering] 객체 지향이란? (2) | 2026.04.09 |
| [소프트웨어공학/Software Engineering] 애자일 소프트웨어 개발 (0) | 2026.04.07 |