TY blog

소프트웨어 형상관리 본문

소프트웨어 공학

소프트웨어 형상관리

주짓수하는 개발자 2023. 12. 6. 14:15
1. 형상관리

 

소프트웨어 시스템은 개발과 사용 중에 변경(오류 수정, 요구사항 변경, 플랫폼 변경)이 되며 각 버전을 유지하고 관리해야 한다. 

 

* 형상 관리의 4가지 활동 

  1. 버전 관리 : 컴포넌트의 버전을 관리
  2. 시스템 구축 : 컴포넌트와 라이브러리 등으로 프로그램 생성
  3. 변경 관리 : 고객과 개발자의 변경 요청을 관리 
  4. 릴리즈 관리 : 외부에 릴리즈되는 시스템 버전을 관리 

 

2. CM terminology 

 

 

  1. 소프트웨어 형상 항목(software configuration item) : 형상 제어를 받는 소프트웨어 프로젝트와 관련된 모든 것(설계, 코드, 테스트 데이터, 문서 등), 형상 항목은 유일한 이름을 가짐
  2. 메인라인 (mainline) : 일련의 베이스라인 
  3. 병합(marging) : 서로 다른 코드라인의 버전들을 병합하여 새로운 버전을 생성, 이 코드 라인들은 일반적으로 분기에 의해 생성된 것임, 변경작업이 겹치는 경우 수동 병합이 필요하며 충돌(conflict)을 해결한다. 
  4. 릴리즈(release) : 사용을 목적으로 고객에게 인도하는 시스템의 버전
  5. 베이스라인(baseline) : 시스템을 구성하는 컴포넌트 버전의 모음, 베이스라인은 그것을 구성하는 컴포넌트 버전들이 변경되지 않도록 제어됨, 베이스라인은 구성 컴포넌트로부터 다시 생성할 수 있음 
  6. 코드라인(codeline) : 컴포넌트의 일련의 버전 집합(한 소스코드 파일의 버전들)
  7. 분기(branching) : 기존 코드라인 내 버전에서 새로운 코드라인을 생성, 새로운 코드라인은 독립적으로 개발 가능
  8. 형상/버전 제어(configuration/version control) : 시스템과 컴포넌트의 버전을 기록하고 유지하는 프로세스, 변경사항을 관리하고 컴포넌트의 모든 버전을 저장, 식별할 수 있게 함
  9. 저장소(repository) : 컴포넌트의 버전들과 변경사항에 대한 메타정보가 저장되는 공유 데이터베이스
  10. 시스템 구축(system building) : 적절한 컴포넌트 버전과 라이브러리를 컴파일하고 링크하여 실행 가능한 시스템 버전을 생성 
  11. 버전(version) : 형상 항목의 다른 인스턴스 와 구분되는 인스턴스, 버전은 유일한 식별자를 가짐
  12. 작업공간(workspace) : 소프트웨어를 사용하거나 수정하고 있는 다른 개발자에게 영향을 미치지 않고 소프트웨어를 수정할 수 있는 개인 작업 공간
  13. 태그(tags) : 버전식별을 위한 사용자 레이블 

 

3. 중앙 버전 관리

 

 

* 프로젝트 저장소는 모든 컴포넌트의 마스터 버전을 유지

  1. check-out : 개발자가 컴포넌트를 수정하기 위해 저장소에서 개인 작업공간으로 복사 
  2. check in : 변경을 완료하면 변경된 컴포넌트를 저장소로 반납 

체크아웃 -> 작업 -> 체크인 방식으로 진행 

 

4. 분산 버전 관리

 

  • 마스터 저장소가 서버에 생성됨
  • 개발자는 프로젝트 저장소를 복제(clone) 하여 개인 컴퓨터에 설치
  • 개인 저장소에서 작업하고 버전을 유지 및 관리
  • 변경을 완료하면 커밋(commit)으로 개인 저장소를 갱신 
  • 개인 저장소의 변경을 프로젝트 저장소에 반영(push)할 수 있음
  • 프로젝트 저장소의 변경을 개인 저장소로 가져올(pull) 수 있음

 

 

* 참고문헌 : (주)한티에듀 소프트웨어공학 제10판 

Comments