[ Version management ]

 컴포넌트들이 사용되어진 소프트웨어 시스템의 다른 버전을 유지하도록 하는 절차이다.

 시스템의 버전이 필요할 때 검색할 수 있고 개발팀에 의해 우연히 변경되지 않도록 보장하는 절차를 고안한다.

 그러므로, 버전 관리는 codeline baseline을 관리하는 절차로 생각 하면 된다.

Codeline

- 이전 버전에서 파상된 다음 버전과 소스코드 버전의 순서이다.

- 일반적으로 시스템의 컴포넌트를 적용 시키기 때문에 각 컴포넌트의 버전은 다르다

Baseline

구체적인 시스템의 정의이다.

- 시스템에 포함되어있는 컴포넌트 버전과 더불어 사용된 라이브러리, 환경설정파일 등을 표현한 것이다.

 

[ Version Management System ]

 버전 컨트롤 시스템이라고도 불리며 다른 버전의 접근을 제한, 식별, 저장 한다.

 특징

버전과 배포의 식별

대형 소프트웨어 시스템 내에는 수백 개의 소프트웨어 컴포넌트들이 존재하는데, 이들 각각은 여러 상이한 버전들 내에 존재한다. 따라서 각 컴포넌트 버전을 식별하여 시스템에 바른 컴포넌트들이 포함되도록 보장하는, 모호하지 않은 방식이 존재해야 한다. 따라서 관리된 버전은 시스템으로 제출할 때 식별자를 할당 받는다.

저장소 관리

약간 다른 컴포넌트의 수많은 버전을 위한 공간을 줄이기 위해 저장소 관리를 제공한다.

히스토리 기록 변경

모든 변경사항은 기록되고 나열된 코드를 만든다.

독립적 개발

수정을 위해 Check out된 컴포넌트의 흔적을 유지한다.

변경사항이 다른 개발자를 방해하지 않도록 보장한다.

프로젝트 support

컴포넌트를 공유한 많은 프로젝트 개발을 도와준다.

 

[ Check in and Check out ]

 다른 멤버가 동시에 같은 컴포넌트를 작업 할 수 있다.

 version management system은 충돌없이 독립적인 개발을 도와준다.

 공동 repository와 개인 workplace가 있다.

 - 개발자는 공동 repository로부터 그들의 사적인 workspace에 컴포넌트를 check out 한다. 그리고 그들의 공간에서 변경을 한다.

 - 개발자는 변경이 완료되면 repository로 컴포넌트를 check in 한다.

 

[ Branching and Merging ]

 codeline이 일종의 branch이다.

 - 같은 컴포넌트는 다른 개발자에 의해 독립적으로 변경 될 수 있기 때문에 branch는 일반적인 것이다.

 Branch merge된다.

 - 컴포넌트의 모든 변경사항을 모아 새로운 버전을 만든다.

 - 변경들 사이에 overlap이 없으면 버전 관리 시스템은 자동으로 merge 할 수 있다.

 - 변경들 사이에 overlap이 있다면 개발자가 직접 merge 해야 한다.

 

댓글이나 공감 남겨주는 사람 착한사람

'학사 그리고 석사 > 소프트웨어공학' 카테고리의 다른 글

Release Management  (0) 2019.11.03
System Building  (0) 2019.11.03
Configuration Management  (0) 2019.11.03
Open source development  (0) 2019.10.28
Host-target development  (0) 2019.10.28

+ Recent posts