[ 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 |