SCM 도구는 아래 세가지 구조를 통해 변경을 관리하고 통제를 합니다.
- 디렉토리 구조
- 버전 구조
- 분기 구조
- 스타일 1
main/gui/generic/foo-v1.c
main/webgui/unix/foo-v1.c
main/webgui/unix/foo-v2.c
main/webgui/unix/foo-v3.c
main/webgui/winxp/foo-v1.c
main/webgui/winxp/foo-v2.c
R1.0.0.0/gui/generic/foo-v1.c
R1.0.0.0/webgui/unix/foo-v2.c
R1.0.0.0/webgui/winxp/foo-v2.c
- 스타일 2
main/gui/generic/foo.c (version 1)
main/webgui/unix/foo.c (version 1,2,3)
main/webgui/winxp/foo.c (version 1,2)
R1.0.0.0/gui/generic/foo.c (version 1)
R1.0.0.0/webgui/unix/foo.c (version 2)
R1.0.0.0/webgui/winxp/foo.c (version 2)
- 스타일 3
gui/foo.c (version 1 on branch main)
webgui/foo.c (version 1 on branch main;
version 2,3 on branch unix;
version 2 on branch winxp)
SCM 도구의 근본 기능은 의존관계를 식별하는 겁니다.의존관계는 함께 관리할 개체들을 정의합니다. 여러가지 의존관계들이 있습니다.
- 디렉토리 의존관계: 같은 디렉토리에 있는 모든 파일들
- 분기 의존관계: 같은 분기에 있는 모든 파일들
- 버전 의존관계: 모든 최신 버전들
- 상태 의존관계: 같은 상태(예, 릴리즈 R1.0.0.0)의 모든 파일들
- 내용 의존관계: 상관 관계(예, 요구사항-설계-코드)에 있는 모든 파일들
상태 의존관계는 소위 승급모델로 모형화합니다. 같은 상태의 모든 파일들은 사전 정의된 여러 단계를 통과합니다: 개발, 통합테스트, 시스템테스트, 운영.
SCM 도구들은 승급모델을 지원합니다.
- 분기를 통한 승급 : ClearCase/UCM의 deliver와 rebase, SVN의 디렉토리 복사
- 선택 규칙을 통한 승급
SCM 도구는 내용 의존관계 지원이 필요합니다.
- 설계 변경의 코드, 요구사항 및 테스트에 대한 영향은?
- 코드 변경에 의한 타 코드, 인터페이스 및 설계 모델에 대한 영향 식별은?
- 효과적인 의존관계 정보관리 방안은? 의존관계 정보의 완성도는?
- 제품 X의 릴리즈 3.2는 프레이웍 릴리즈 1.2와는 동작하고 프레임웍 릴리즈 1.1과는 동작하지 않는 것은 어떻게 파악하는지?
- 제품 Y의 릴리즈 6.1는 제품 X와 동작하지 않는 이유가 프레임웍 릴리즈 1.2 때문인지 파악할 수 있는지?
댓글 없음:
댓글 쓰기