2011년 12월 28일 수요일

SCM 도구 스타일

http://fscorner.blogspot.com/2009/06/scm-tools-are-not-configuration.html

SCM 도구는 아래 세가지 구조를 통해 변경을 관리하고 통제를 합니다.
  • 디렉토리 구조
  • 버전 구조
  • 분기 구조
위 세가지 구조를 통해 살펴본 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 때문인지 파악할 수 있는지?
-

댓글 없음:

댓글 쓰기