옐그's 코딩라이프

[TOPCIT][01] XI. 소프트웨어 형상관리 (에센스 정리 요약) 본문

TOPCIT

[TOPCIT][01] XI. 소프트웨어 형상관리 (에센스 정리 요약)

옐그멍이 2023. 2. 25. 14:46

학습 목표

1. 소프트웨어 형상관리의 개념과 활동에 대하여 설명할 수 있다.

2. 소프트웨어 형상관리 도구를 활용할 수 있다.

 

핵심 키워드

- 소프트웨어 형상, 소프트웨어 형상관리 요소, 변경 제어 절차

- 버전관리 도구, 형상관리 도구

 

01 소프트웨어 형상관리의 개요

형상관리(Software Configuration Management)의 정의

- 소프트웨어의 개발 과정에서 소프트웨어의 변경사항을 관리하기 위해 개발된 일련의 활동

 

형상관리 필요 배경

문제원인 내용
가시성 미흡 소프트웨어는 무형의 산출물이므로 가시성이 없음
컨트롤 어려움 눈에 보이지 않는 소프트웨어 개발에 대한 컨트롤이 현실적으로 어려움
추적성 미흡 소프트웨어 개발 전체 과정에 대한 추적의 어려움
감시의 미비 가시성 미흡 및 추적의 어려움으로 프로젝트 관리를 지속적으로 하기 어려움
끊임없는 변경 끊임없는 사용자의 요구사항

 

02 형상관리 개념도 및 구성 요소

형상관리의 개념도

형상관리의 구성요소

구성요소 내용
기준선(Baseline) 각 형상 항목들의 기술적 통제시점, 모든 변화를 통제하는 시점의 기준
형상항목(Configuration Item) 소프트웨어 생명주기 중 공식적으로 정의되어 기술되는 기본 대상
형상물(Configuration Product) 소프트웨어 개발 생명주기 중 공식적으로 구현되는 형체가 있는 실현된 형상관리의 대상
기술문서, 하드웨어 제품, 소프트웨어 제품
형상정보(Configuration Information) 형상정보 = 형상항목 + 형상물

 

03 형상관리 활동

형상관리 활동

활동   내용
형상식별 - 형상관리 대상 구분, 관리 항목에 대한 번호 부여
- 형솽 항목 식별 목표: 문서 구조를 명료하고 예측 가능한 모습으로 정의, 정보기록에 의해 추적, 관리를 용이하게 함
- 형상항목 식별내용: 제품/각종문서/형상항목 번호
형상컨트롤 - 소프트웨어 형상 변경 요청을 검토 승인하여 정의된 베이스라인에 반영할 수 있도록 컨트롤
- 변경 요구관리/변경제어/형상관리 조직의 운영 및 개발업체, 외주업체에 대한 형상 통제 지원
형상감사 - 소프트웨어 베이스라인의 무결성 판단 수단
- 성공적인 형상감사는 소프트웨어 베이스라인을 성공적으로 설정
- 베이스라인 변경 시 요구사항과 일치 여부 검토
- 검증(Verification), 확인(Validation)
형상기록 - 소프트웨어 형상 및 변경 관리에 대한 각종 현황 및 수행 결과를 기록하고, 데이터베이스에 의한 관리를 하여 보고서를 작성하는 기능

 

형상관리 효과

구분 내용
관리자 측면
(운영자)
- 프로젝트의 체계적이고 효과적인 관리의 기준 제공
- 프로젝트의 통제 용이
- 프로젝트의 가시성 확보와 추적성 보장
- 품질 보증을 위한 베이스라인 제시
개발자 측면 - 소프트웨어 변경에 따른 영향 최소화, 관리의 용이
- 소프트웨어 품질보증 기법
- 소프트웨어의 적절한 변경 관리 가능
- 유지 보수성 향상

 

형상관리 고려사항

- 적절한 운영 조직 구성,  관리 전문 도구의 활용

- 지속적인 관리와 관리 기준 필요, 이에 따른 문제 해결 방안 필요

- 소규모 프로젝트일수록 형상관리 정도를 적절히 테일러링

- 형상관리 항목을 정하곡 모든 변경 사항은 공식적인 합의에 의해 실시

- 운영중인 소프트웨어의 변경은 신중하게 진행

 

04 형상관리 도구

형상관리도구

구분 도구 비고
Folder 공유 RCS, SCCS  
Client/Server Subversion(SVN), CVN, Perforce, ClearCase, TFS 중앙 저장소
분산 저장소 Git, Mercurial, Bitkeeper, SVK, Darcs 분산 저장소 제공
Offline 개발 작업 다수일 경우 유리

 

서브버전(Subversion, SVN)

- 오픈 소프트웨어 버전 관리 시스템

- 서버-클라이언트 모델을 따름

- 서브버전같은 중앙 집중형 저장소 시스템은 다수의 클라이언트가 중앙 서버로부터 파일을 Check-out하여 사용함

 

분산형 저장소(Git)

- 클라이언트가 마지막 Snapshot을 직접 다운받지 않고 저장소 전부를 복제함

- 소스코드가 하나의 중앙 서버에만 저장되는 것이 아니라, 다수의 서버나 다수의 개발자 local PC에 저장될 수 있음, 각각이 소스 코드 저장소가 됨

 

TFS(Team Foundation Server)

- 소스 코드 관리, 보고, 요구 사항 관리, 프로젝트 관리(애자일 소프트웨어 개발, 폭포수 모델), 자동화된 빌드, 랩 관리, 테스트 및 출시 관리 기능을 제공하는 마이크로소프트의 제품

728x90