형상 관리(System Configuration Management)
소프트웨어가 개발될 때마다 항상 개선의 여지가 있으며 이러한 개선으로 인해 변경이 발생할 수 있다. 기존 솔루션을 수정 또는 업데이트하거나 문제에 대한 새 솔루션을 생성하려면 변경이 필요할 수 있다. 요구 사항은 매번 변경될 수 있으므로 원하는 결과를 얻으려면 현재 요구 사항에 따라 시스템을 계속 업그레이드해야 한다. 기존 시스템을 변경하기 전에 이전 및 이후 상태에 대한 세부 정보를 분석, 기록 및 보고하고 품질을 개선하고 오류를 줄이는 방식으로 제어해야 한다. 여기에서 형상 관리가 필요하다.
SCM(System Configuration Management)은 변경 항목을 식별하고, 해당 항목 간의 관계를 설정하고, 다양한 버전을 관리하기 위한 도구를 생성/정의하고, 현재 시스템에서 구현되는 변경 사항을 제어하고, 변경 사항을 제대로 모니터링하지 않으면 제대로 작동하는 소프트웨어가 손상될 수 있으므로 변경 사항을 제어하는 것이 중요하다. 따라서 SCM은 모든 프로젝트 관리 활동의 필수적인 부분이다. 형상 관리와 같은 SCM에 관련된 프로세스는 작업 산출물을 원활하게 제어할 수 있는 훈련된 환경을 제공한다.
형상 관리가 필요한 이유
소프트웨어 형상 관리(SCM)는 소프트웨어의 변경 사항을 관리하는 데 사용되는 프로세스로, 변경 사항이 통제되고 조직적인 방식으로 이루어지도록 한다. SCM은 팀이 일관성을 유지하고 변경 사항을 추적하며 소프트웨어가 적절하게 문서화되도록 한다.
형상 관리가 중요한 이유는 여러 가지가 있다.
첫째, 소프트웨어의 고품질을 보장하는 데 도움이 된다.
형상관리를 사용하면 제어되고 조직화된 방식으로 소프트웨어 변경이 이루어지므로 오류나 버그가 발생할 가능성이 줄어든다. 형상관리는 또한 소프트웨어 개발 프로세스 전반에 걸쳐 일관성을 유지하는 데 도움이 되므로 관리 및 유지가 더 쉬워진다.
둘째, 형상관리는 팀이 보다 효율적으로 작업할 수 있도록 한다.
소프트웨어가 변경되면 이러한 변경 사항을 추적하고 모든 사람이 이를 알고 있는지 확인하는 것이 중요하다. 형상관리는 이를 수행하는 방법을 제공하여 변경 사항을 효과적으로 전달하고 모든 사람이 동일한 결과물에서 작업할 수 있도록 한다.
셋째, 형상관리는 협업을 도와준다.
여러 개발자가 동일한 소프트웨어 개발 작업하는 경우 모든 사람이 동일한 버전의 소프트웨어에서 작업하는지 확인하는 것이 중요하다. 형상관리는 여러 버전의 소프트웨어를 관리하는 방법을 제공하여 모든 사람이 동일한 버전에서 작업하고 변경 사항이 적절하게 문서화되도록 한다.
마지막으로 형상관리는 규정 준수에 중요하다.
많은 산업 분야에서 소프트웨어 개발 및 변경에 관한 엄격한 규정이 있으며 형상관리는 이러한 규정을 충족할 수 있는 방법을 제공한다. 변경 사항을 적절하게 문서화하고 소프트웨어 개발 프로세스에 대한 제어를 유지함으로써 팀은 규정 요구 사항을 충족하는지 확인할 수 있다.
요약하면 형상관리는 소프트웨어 품질을 보장하고 효율성을 개선하며 협업을 가능하게 하고 규정 준수를 보장하는 데 도움이 되기 때문에 중요하다.
형상 관리 프로세스
일반 적으로 형상 관리는 형상식별, 형상통제, 형상감사, 형상기록의 프로세스로 구성된다. 여기에서는 소프트웨어에 좀 더 최적화된 다섯 단계로 설명한다.
1. 식별 및 설정(Identification and Establishment)
식별 및 설정은 제품 내의 구성 항목을 식별하고 특정 시점에 기준선을 설정하는 프로세스를 말한다. 기준선은 서로 일관성이 있고 공식적으로 검토되고 합의된 구성 항목 집합으로, 추가 개발을 위한 기반 역할을 한다.
이 프로세스 중에 구성 항목 간의 관계가 설정되고 여러 수준의 제어를 관리하기 위한 메커니즘이 생성된다. 여기에는 변경 관리 절차가 포함되어 구성 항목에 대한 변경이 적절하게 관리 및 제어되도록 한다.
2. 버전 통제(Version control)
형상관리의 도움을 받아 새로운 제품을 구축하기 위해 기존 제품의 버전/사양을 생성한다.
버전에 대한 설명은 다음과 같다.
일부 변경 사항이 이루어진 후에 구성 객체(Configuration Object)의 버전이 1.0에서 1.1로 변경된다. 미세한 수정 및 변경으로 1.1.1 버전과 1.1.2 버전이 나오게 되며, 그다음으로는 구성 객체 1.2 버전이 있는 주요한 업데이트가 이루어진다. 구성 객체 1.0의 개발은 1.3 및 1.4를 통해 계속되지만, 마침내 객체에 주목할 만한 변화가 있어 새로운 버전인 2.0 버전이 만들어지게 된다. 1.2 버전과 2.0 버전 모두 현재 지원되고 있다.
3. 변경 통제(Change control)
구성 항목(CI)에 대한 변경을 통제한다. 변경 통제 프로세스는 아래 그림에 설명되어 있다.
변경 요청(CR: Change Request)이 제출되면 기술적 가치, 잠재적 부작용, 다른 구성 항목 및 시스템 기능에 대한 전반적인 영향, 그리고 변경에 대한 예상 비용을 평가한다.
평가 결과는 변경 제어 위원회(CCB: Change Control Board - 변경의 상태와 우선순위에 대한 최종 결정을 내리는 사람 또는 그룹)에 변경 보고서로 제출된다.
각 승인된 변경 사항에 대해 공학적 변경 요청(ECR: Engineering Change Request)을 생성하고, 또한 변경이 거부될 경우 적절한 이유와 함께 CCB에서 개발자에게 통보한다.
ECR은 변경할 내용, 준수해야 할 제약 조건 및 검토 및 감사 기준이 명시되어 있다.
변경 대상은 프로젝트 데이터베이스에 "체크 아웃"되어 변경이 수행하고, 그 후 다시 테스트한다.
그 다음 변경 대상은 데이터베이스에 "체크인"되며 적절한 버전 관리 메커니즘을 사용하여 소프트웨어의 다음 버전을 생성한다.
4. 형상 감사(Configuration auditing)
소프트웨어 형상 감사는 프로세스 및 제품에 대한 공식적인 기술 검토를 보완한다. 수정된 형상 개체의 기술적 정확성에 중점을 둔다. 형상 감사는 SCM 시스템 내 항목의 완전성, 정확성 및 일관성을 확인하고 감사부터 종료까지 조치 항목을 추적한다.
5. 형상 보고(Reporting)
관리자 가이드, 사용자 가이드, FAQ, 릴리스 노트, 메모, 설치 가이드, 구성 가이드 등을 통해 개발자, 테스터, 최종 사용자, 고객 및 이해 관계자에게 정확한 상태 및 현재 구성 데이터를 제공한다.
시스템 형상 관리(SCM)는 소프트웨어 시스템의 형상을 관리하고 소프트웨어 구성 요소가 적절하게 통제되고 추적되며 저장되는 것에 중점을 둔 소프트웨어 공학 기법이다. 형상 관리는 소프트웨어 개발의 중요한 부분으로, 소프트웨어 시스템에 대한 변경 사항이 적절하게 조율되며 시스템이 항상 알려진 안정 상태에 있도록 보장하는 데 도움이 된다.
형상 관리는 소스 코드, 문서 및 기타 자산을 포함한 소프트웨어 시스템의 다양한 구성 요소를 관리하는 데 도움이 되는 프로세스 와 도구를 포함한다. 이를 통해 팀은 소프트웨어 시스템에 대한 변경 사항을 추적하고 변경이 왜 이루어졌는지, 언제 이루어졌는지를 식별해 변경 사항을 최종 제품으로 통합 관리할 수 있다.
형상 관리의 주요 목표
- 소프트웨어 시스템의 변경 통제: 형상 관리는 소프트웨어 시스템에 대한 변경 사항이 적절하게 계획, 테스 트 및 최종 제품에 통합되도록 보장한다.
- 협업 및 조정 지원: 형상관리는 팀이 협업하고 작업을 조정할 수 있도록 지원하여 변경 사항이 적절하게 통합되고 모든 사용자가 동일한 버전의 소프트웨어 시스템에서 작업할 수 있도록 보장한다.
- 버전 제어 제공: 형상관리는 소프트웨어 시스템에 대한 버전 통제를 통해 팀이 시스템의 다른 버전을 관리 및 추적하고 필요한 경우 이전 버전으로 되돌릴 수 있도록 한다.
- 복제 및 배포 용이: 형상관리는 소프트웨어 시스템이 테스트, 프로덕션 및 고객 사이트와 같은 다른 환경으로 쉽게 복제 및 배포될 수 있도록 지원한다.
형상 관리는 소프트웨어 개발의 중요한 구성 요소이며, 효과적인 형상관리 실행은 소프트웨어 시스템의 품질과 신뢰성을 향상시킬 뿐만 아니라 효율성을 높이고 오류 위험을 줄이는 데 도움이 될 수 있다.
형상관리의 장점
1. 소프트웨어 변경 관리에 필요한 시간과 노력을 줄임으로써 생산성과 효율성을 향상시킨다.
2. 모든 변경 사항을 적절하게 테스트하고 검증함으로써 오류 및 결함의 위험을 줄인다.
3. 소프트웨어 산출물에 대한 중앙 저장소를 제공하여 팀원 간의 협업 및 커뮤니케이션을 강화한다.
4. 모든 변경사항을 적절하게 제어 및 관리함으로써 소프트웨어 시스템의 품질 및 안정성을 개선한다.
형상관리의 단점
1. 특히 대규모 소프트웨어 시스템에서 복잡성과 오버헤드가 증가한다.
2. 종속성을 관리하고 모든 변경사항이 적절하게 통합되었는지 확인하는 데 어려움이 있다.
3. 특히 다수의 참여자가 있는 대규모 개발 팀에서 충돌과 지연의 가능성이 있다.
'Software Engineering > 프로젝트 관리' 카테고리의 다른 글
소프트웨어 프로젝트 관리자의 역할 및 책임 (0) | 2023.03.25 |
---|---|
통합 리스크 관리 (0) | 2023.03.25 |
역량 성숙도 통합 모델 (CMMI) (0) | 2023.03.23 |
프로젝트 규모 추정 기법 (0) | 2023.03.19 |
프로젝트 관리 프로세스 (0) | 2023.03.18 |
댓글