1. 형상관리 개념
SW 구성관리 또는 형상관리 개념
- 소프트웨어 구성관리 또는 형상관리는 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것
- 형상관리는 일반적인 단순 버전관리 기반의 SW 운용을 좀 더 포괄적으로 관리 👉 프로젝트와 관련된 모든 변경사항을 관리
- 구성관리는 SW 소스 코드 뿐 아니라 개발환경, 빌드구조 등 전반적인 환경 전반적인 내역에 대한 관리 체계를 정의
변경관리 , 버전 관리, 형상관리 개념
- 변경 관리 : 소스코드 변경 사항에 대한 관리
- 버전 관리 : 변경사항을 버전이란 개념을 통해 관리
- 형상관리 : 위의 개념을 포함해 프로젝트와 관련된 모든 변경사항을 관리
형상관리 개념 (2)
- 형상 항목을 식별 [형상 식별]
- 식별한 형상 항목의 기능적 물리적 특성을 문서화
- 그러한 특성에 대한 변경을 제어 [형상 제어]
- 변경 처리 상태를 기록 및 보고 [형상 감사]
- 명시된 요구사항에 부합하는지 확인 [형상 상태 보고]
형상관리 대상
- 개발 비용
- 설계 문서
- 소스코드
- 모든 산출물
형상관리의 목적
- 가시성의 결핍 : SW는 무형물
- 통제의 어려움 : 눈에 보이지 않는 상품의 제작은 통제 어려움
- 추적의 어려움 : 프로젝트의 중간 목표들을 연결시키고 개발과정을 추적하기 어려움
- 감시의 미비 : 가시성과 추적성의 결핍은 프로젝트의 진행을 감시하기 어렵게 함
- 무절제한 변경 : 통제
형상관리를 위한 도구와 특징
- CVS (Concurrent Version System)
- 90년대에 출시된 무료 서버-클라이언트 형상관리 시스템
- 파일 전체를 저장하는 것이 아니라 변경사항만을 저장함으로 용량을 적게 차지하지만 속도가 상대적으로 느림
- 다른 개발자가 작업 중인 파일에 덮어쓰기 방지
- Checkout으로 파일을 복사하고, Commit을 통해 변경사항 저장
- 형상관리/소스관리 툴의 일종
- 중앙관리만을 지원
- 다른 사용자의 커밋과 엉키지 않음
- 커밋 실패 시 롤백 기능을 지원
- 안정성에 있어 CVS보다 상대적으로 좋지 않다
- Git에 비해 branch, tag 작업이 어려움
- 최초 1회에 한해 파일 원본을 저장하고 이후에는 실제 파일이 아닌 원본과 차이점을 저장하는 방식
- 분산형 버전관리 시스템
- Repository의 완전한 복사본을 로컬에 저장 가능
- 처리속도가 빠르지만 대용향 코드 관리에 부적절
- Branching 모델, 로컬에 다수의 독립성이 보장되는 branch를 허용하고 쉽게 생성, 병합, 삭제를 지원
- 원격 서버 Git Repository에 push 하지 않은 채 여러 branch 생성 가능
- 빠른 속도 , 빠른 Merge가 가능
- 큰 리소스 관리에 좋다
- 유료이고 파일명이 바뀌면 히스토리 추적 곤란
출처 :
1. naljin, Sep 10, 2019 , https://sujinnaljin.medium.com/software-engineering-%ED%98%95%EC%83%81-%EA%B4%80%EB%A6%AC%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC-932d14f6f341
2. 태태딩, 2019. 9. 17, https://taetae0079.tistory.com/24