Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Jenkins
- submit 기본동작
- .ppk
- 배포 자동화
- deploy.sh
- vue 추가
- CI/CD
- 채팅 프로젝트
- ..gitignore
- 자바 swing 프로젝트
- 깃허브 토큰 발급
- Quartz 라이브러리
- 되돌리기
- Node Property
- 배열 call by value
- dbeaver 백업/복구
- 소프트웨어
- reset
- 깃허브 토큰 생성
- firstChild
- 환경변수
- document 함수
- git 폴더 모으기
- 클래스 참조
- EL1021E
- 타임리프 참조 오류
- Quartz dependency
- 테스팅
- AWS 생성
- vue 실행
Archives
- Today
- Total
TY blog
소프트웨어 형상관리 본문
1. 형상관리
소프트웨어 시스템은 개발과 사용 중에 변경(오류 수정, 요구사항 변경, 플랫폼 변경)이 되며 각 버전을 유지하고 관리해야 한다.
* 형상 관리의 4가지 활동
- 버전 관리 : 컴포넌트의 버전을 관리
- 시스템 구축 : 컴포넌트와 라이브러리 등으로 프로그램 생성
- 변경 관리 : 고객과 개발자의 변경 요청을 관리
- 릴리즈 관리 : 외부에 릴리즈되는 시스템 버전을 관리
2. CM terminology
- 소프트웨어 형상 항목(software configuration item) : 형상 제어를 받는 소프트웨어 프로젝트와 관련된 모든 것(설계, 코드, 테스트 데이터, 문서 등), 형상 항목은 유일한 이름을 가짐
- 메인라인 (mainline) : 일련의 베이스라인
- 병합(marging) : 서로 다른 코드라인의 버전들을 병합하여 새로운 버전을 생성, 이 코드 라인들은 일반적으로 분기에 의해 생성된 것임, 변경작업이 겹치는 경우 수동 병합이 필요하며 충돌(conflict)을 해결한다.
- 릴리즈(release) : 사용을 목적으로 고객에게 인도하는 시스템의 버전
- 베이스라인(baseline) : 시스템을 구성하는 컴포넌트 버전의 모음, 베이스라인은 그것을 구성하는 컴포넌트 버전들이 변경되지 않도록 제어됨, 베이스라인은 구성 컴포넌트로부터 다시 생성할 수 있음
- 코드라인(codeline) : 컴포넌트의 일련의 버전 집합(한 소스코드 파일의 버전들)
- 분기(branching) : 기존 코드라인 내 버전에서 새로운 코드라인을 생성, 새로운 코드라인은 독립적으로 개발 가능
- 형상/버전 제어(configuration/version control) : 시스템과 컴포넌트의 버전을 기록하고 유지하는 프로세스, 변경사항을 관리하고 컴포넌트의 모든 버전을 저장, 식별할 수 있게 함
- 저장소(repository) : 컴포넌트의 버전들과 변경사항에 대한 메타정보가 저장되는 공유 데이터베이스
- 시스템 구축(system building) : 적절한 컴포넌트 버전과 라이브러리를 컴파일하고 링크하여 실행 가능한 시스템 버전을 생성
- 버전(version) : 형상 항목의 다른 인스턴스 와 구분되는 인스턴스, 버전은 유일한 식별자를 가짐
- 작업공간(workspace) : 소프트웨어를 사용하거나 수정하고 있는 다른 개발자에게 영향을 미치지 않고 소프트웨어를 수정할 수 있는 개인 작업 공간
- 태그(tags) : 버전식별을 위한 사용자 레이블
3. 중앙 버전 관리
* 프로젝트 저장소는 모든 컴포넌트의 마스터 버전을 유지
- check-out : 개발자가 컴포넌트를 수정하기 위해 저장소에서 개인 작업공간으로 복사
- check in : 변경을 완료하면 변경된 컴포넌트를 저장소로 반납
체크아웃 -> 작업 -> 체크인 방식으로 진행
4. 분산 버전 관리
- 마스터 저장소가 서버에 생성됨
- 개발자는 프로젝트 저장소를 복제(clone) 하여 개인 컴퓨터에 설치
- 개인 저장소에서 작업하고 버전을 유지 및 관리
- 변경을 완료하면 커밋(commit)으로 개인 저장소를 갱신
- 개인 저장소의 변경을 프로젝트 저장소에 반영(push)할 수 있음
- 프로젝트 저장소의 변경을 개인 저장소로 가져올(pull) 수 있음
* 참고문헌 : (주)한티에듀 소프트웨어공학 제10판
'소프트웨어 공학' 카테고리의 다른 글
분산 소프트웨어 공학 (0) | 2023.11.28 |
---|---|
소프트웨어 신뢰성, 안전성 공학 (0) | 2023.11.21 |
확실성 있는 소프트웨어 시스템 (0) | 2023.11.14 |
소프트웨어 재공학 (0) | 2023.11.07 |
소프트웨어 개발 테스팅 (0) | 2023.10.17 |
Comments