-
소프트웨어 형상 관리Topcit/소프트웨어 개발 2018. 6. 11. 23:02
- 소프트웨어 형상관리의 개요
- 형상 관리의 정의
- 소프트웨어 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동
- 소프트웨어 변경의 원인을 찾아 컨트롤하며 적절히 변경되고 있는지 확인하여 관련 담당자에게 통보
- 소프트웨어 개발의 전체 비용을 감소시키고 리스크 요인들을 최소화 하는 것을 목표로 한다.
- 형상
- 소프트웨어 개발 단계의 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터
- 형상관리 필요 배경
- 가시성 미흡 : 소프트웨어는 무형의 산출물이므로 가시성이 없음
- 컨트롤 어려움 : 눈에 보이지 않는 소프트웨어 개발에 대한 컨트롤이 현실적으로 어려움
- 추적성 미흡 : 소프트웨어 개발 전체 과정에 대한 추적의 어려움
- 감시의 미비 : 가시성 미흡, 추적의 어려움으로 프로젝트 관리를 지속적으로 하기 어려움
- 끊임없는 변경 : 끊임없는 사용자의 요구사항
- 형상관리의 개념도
- 형상관리 개념
- 형상 관리의 구성요소
- 기준선
- 각 형상 학목들의 기술적 통제 시점, 모든 변화를 통제하는 시점의 기준
- 형상항목
- 소프트웨어 생명주기 중 공식적으로 정의되어 기술 되어지는 기본 대상
- 형상물
- 소프트웨어 개발 생명주기 중 공식적으로 구현되어 지는 형체가 있는 실현된 형상관리의 대상
- 기술 문서, 하드웨어 제품, 소프트웨어 제품
- 형상 정보
- 형상항목 + 형상물
- 형상관리 활동
- 형상관리 활동
- 형상 식별
- 형상 관리 대상 구분, 관리 항목에 대한 번호 부여
- 형상 항목 식별 목표 : 문서 구조를 명료하고 예측 가능한 모습으로 정의, 정보 기록에 의해 추적, 관리를 용이하게 함
- 형상 항목 식별 내용 : 제품, 각종 문서, 형상 항목 번호
- 형상 컨트롤
- 소프트웨어 형상 변경 요청을 검토, 승인하여 정의된 베이스라인에 반영할 수 있도록 컨트롤
- 변경 요구 관리, 변경 제어, 형상 관리 조직의 운영, 개발 업체, 외주업체에 대한 형상 통계 지원
- 형상 감사
- 소프트웨어 베이스라인의 무결성 판단 수단
- 성공적인 형상 감사는 소프트웨어 베이스라인을 성공적으로 설정
- 베이스라인 변경 시 요구사항과 일치 여부 검토
- 검증, 확인
- 형상 기록
- 소프트웨어 형상, 변경 관리에 대해 각종 현황, 수행 결과를 기록하고 데이터베이스에 의한 관리를 하여 보고서를 작성하는 기능
- 형상관리의 효과
- 관리자 측면
- 프로젝트의 체계적이고 효과적인 관리 기준 제공
- 프로젝트의 통제 용이
- 프로젝트의 가시성 확보와 추적성 보장
- 품질 보증을 위한 베이스라인 제시
- 개발자 측면
- 소프트웨어 변경에 따른 영향 최소화, 관리의 용이
- 소프트웨어 품질보증 기법
- 소프트웨어의 적절한 변경 관리 기능
- 유지보수성 향상
- 형상관리 고려사항
- 적절한 운영 조직 구성, 관리 전문 도구의 활용
- 지속적인 관리와 관리 기준, 문제 해결 방안
- 소규모 프로젝트 일수록 형상 관리 정도를 적절히 테일러링
- 형상 관리 항목을 정하고 모든 변경 사항은 공식적인 합의에 의해 실시
- 운영중인 소프트웨어의 변경은 신중하게 진행
- 형상관리 도구
- 형상관리 도구
- Folder 공유
- RCS, SCCS
- Cilent/Server
- SVN, CVS, Perforce, ClearCase, TFS
- 분산 저장소
- Git, Mercurial, Bitkeeper, SVK, Darcs
- 서브버전
- SVN은 오픈 소프트웨어 버전 관리 시스템이다.
- 코드가 서버 한 곳에만 저장된다.
- 버전 관리 서버가 한 곳으로 집중되어 있어야 하며, 서버의 계정에 전적으로 의존한다.
- 분산형 저장소
- 분산형 저장소 시스템은 클라이언트가 저장소 전부를 복제한다.
- 서버에 문제가 생기면 클라이언트의 카피본으로 서버를 복원할 수 있다.
- 팀, 기능 단위로 저장소를 분리해서 개발할 수 있다.
- 서버 장애로 저장소가 손상된다 해도 다른 서버, PC에서 소스코드와 히스토리들을 모두 저장하고 있다.
- 중앙 서버 방식에 비해 복구가 쉽다.
- TFS
- 여러가지 프로젝트 관리 기능을 지원하는 마이크로소프트의 제품
- 기능
- 버전 컨트롤 : 버전 관리가 필요한 소스코드, 실행파일 관리
- Work item 계획, 관리 : 결함, 이슈, 요구사항, 태스크, 시나리오와 같은 항목에 대한 지속적인 수정
- 프로젝트 관리 : 사용자가 테일러링 할 수 있는 소프트웨어 프로세스에 따라 팀 프로젝트를 구성
- 팀 빌드 : 실행 가능한 제품으로 빌드할 수 있도록 프로세스, 워크플로우 제공
- 데이터 수집 및 보고 : TFS에서 얻은 다양한 정보를 기반으로 팀 프로젝트의 상태를 평가하고 의사결정 할 수 있도록 지원
- 팀 프로젝트 포털 : 팀 프로젝트의 원활한 커뮤니케이션이 가능하도록 협업 워크 플레이스 제공
- 팀 파운데이션 공유 서비스 : 최종 사용자는 볼 수 없지만 도구 개발자, 확장 공급자에게 중요한 공용 인프라 서비스 제공
'Topcit > 소프트웨어 개발' 카테고리의 다른 글
애자일 개발 (0) 2018.06.11 소프트웨어 품질 관리 (0) 2018.06.11 소프트웨어의 요구사항 관리 (0) 2018.06.11 소프트웨어 유지보수, 역공학, 재공학 (0) 2018.06.11 소프트웨어 테스팅 (0) 2018.06.11 댓글