소프트웨어 엔지니어링의 소프트웨어 구성 관리

소프트웨어 구성 관리란 무엇입니까?

소프트웨어 공학에서는 소프트웨어 구성 관리(SCM) 소프트웨어 개발 수명주기 동안 문서, 코드 및 기타 엔터티의 변경 사항을 체계적으로 관리, 구성 및 제어하는 ​​프로세스입니다. 주요 목표는 실수를 최소화하면서 생산성을 높이는 것입니다. SCM은 구성 관리의 학제간 분야의 일부이며 누가 어떤 개정을 했는지 정확하게 확인할 수 있습니다.

구성 관리가 필요한 이유는 무엇입니까?

기술 소프트웨어 구성 관리 시스템을 구현하는 주요 이유는 다음과 같습니다.

  • 지속적으로 업데이트되는 소프트웨어를 작업하는 사람이 여러 명 있습니다.
  • 여러 버전, 분기, 작성자가 소프트웨어 구성 프로젝트에 참여하고 팀이 지리적으로 분산되어 동시에 작업하는 경우가 있을 수 있습니다.
  • 사용자 요구 사항, 정책, 예산, 일정의 변경 사항을 수용해야 합니다.
  • 소프트웨어는 다양한 기계에서 실행될 수 있어야 하며, Opera팅 시스템
  • 이해관계자 간의 조정을 개발하는 데 도움이 됩니다.
  • SCM 프로세스는 시스템 변경과 관련된 비용을 제어하는 ​​데에도 유용합니다.

구성 관리가 필요함

소프트웨어 구성 항목의 변경 사항은 최종 제품에 영향을 미칩니다. 따라서 구성 항목의 변경 사항을 제어하고 관리해야 합니다.

SCM 프로세스의 업무

  • 구성 식별
  • 기준선
  • 변경 제어
  • 구성 상태 회계
  • 구성 감사 및 Rev봐요

구성 식별

구성 식별은 소프트웨어 시스템의 범위를 결정하는 방법입니다. 이 단계를 사용하면 그것이 무엇인지 모르더라도 무언가를 관리하거나 제어할 수 있습니다. CSCI 유형(Computer Software Configuration Item), 프로젝트 식별자, 버전 정보를 포함하는 설명입니다.

이 과정 중 활동:

  • 소스 코드 모듈과 같은 구성 항목 식별, 테스트 사례및 요구 사항 사양.
  • 객체 지향 접근 방식을 사용하여 SCM 저장소에서 각 CSCI 식별
  • 프로세스는 집계 객체로 그룹화된 기본 객체로 시작합니다. 테스트에서 변경 사항이 무엇, 왜, 언제, 누구에 의해 수행되는지에 대한 세부 정보
  • 모든 객체에는 다른 모든 객체에 명시적인 이름을 식별하는 고유한 기능이 있습니다.
  • 문서, 파일, 도구 등 필요한 리소스 목록입니다.

예:

파일 이름을 login.php로 지정하는 대신 login_v1.2.php로 이름을 지정해야 합니다. 여기서 v1.2는 파일의 버전 번호를 나타냅니다.

폴더 이름을 "Code"로 지정하는 대신 "Code_D"로 지정해야 합니다. 여기서 D는 매일 백업해야 하는 코드를 나타냅니다.

기준

기준선은 소프트웨어 구성 항목의 공식적으로 승인된 버전입니다. SCM 프로세스를 진행하면서 특정 시점으로 지정되어 고정됩니다. 공식적인 변경 관리 절차를 통해서만 변경할 수 있습니다.

이 과정 중 활동:

  • 다양한 버전의 애플리케이션 구축을 촉진합니다.
  • 이러한 작업 산출물의 다양한 버전을 관리하기 위한 메커니즘 정의 및 결정
  • 기능 기준은 검토된 시스템 요구 사항과 일치합니다.
  • 널리 사용되는 기준선에는 기능적, 개발적, 제품 기준선이 포함됩니다.

간단히 말해서 기준선은 출시 준비가 완료되었음을 의미합니다.

변경 제어

변경 제어는 구성 개체가 변경될 때 품질과 일관성을 보장하는 절차적 방법입니다. 이 단계에서는 변경 요청이 소프트웨어 구성 관리자에 제출됩니다.

이 과정 중 활동:

  • 안정적인 소프트웨어 개발 환경 구축을 위해 임시 변경을 제어합니다. 변경 사항이 저장소에 커밋됩니다.
  • 요청은 기술적 장점, 가능한 부작용 및 다른 구성 개체에 대한 전반적인 영향을 기반으로 확인됩니다.
  • 소프트웨어 수명 주기 동안 변경 사항을 관리하고 구성 항목을 사용할 수 있도록 합니다.

구성 상태 회계

구성 상태 계산은 SCM 프로세스 중 각 릴리스를 추적합니다. 이 단계에는 각 버전의 내용과 이 버전으로 이어지는 변경 사항을 추적하는 작업이 포함됩니다.

이 과정 중 활동:

  • 새로운 기준에 도달하기 위해 이전 기준에 적용된 모든 변경 사항을 기록합니다.
  • 소프트웨어 구성을 정의하는 모든 항목을 식별합니다.
  • 변경 요청 상태 모니터링
  • 마지막 기준 이후 모든 변경 사항의 전체 목록
  • 다음 기준선까지의 진행 상황을 추적할 수 있습니다.
  • 테스트를 위해 추출할 이전 릴리스/버전을 확인할 수 있습니다.

구성 감사 및 Rev봐요

소프트웨어 구성 감사는 모든 소프트웨어 제품이 기본 요구 사항을 충족하는지 확인합니다. 이는 구축된 것이 전달되는 것을 보장합니다.

이 과정 중 활동:

  • 구성 감사는 정의된 프로세스가 준수되고 있는지 확인하고 SCM 목표가 충족되는지 확인하여 감사자가 수행합니다.
  • 구성 제어 표준을 준수하는지 확인합니다. 변경 사항을 감사하고 보고합니다.
  • SCM 감사는 또한 프로세스 중에 추적성이 유지되는지 확인합니다.
  • 기준선에 대한 변경 사항이 구성 상태 보고서를 준수하는지 확인합니다.
  • 완전성 및 일관성 검증

SCM 프로세스 참여자

SCM의 주요 참여자는 다음과 같습니다.

SCM 프로세스 참여자

1. 구성 관리자

  • 구성 관리자는 구성 항목 식별을 담당하는 책임자입니다.
  • CM은 팀이 SCM 프로세스를 따르도록 보장합니다.
  • 변경 요청을 승인하거나 거부해야 합니다.

2. 개발자

  • 개발자는 표준 개발 활동이나 변경 요청에 따라 코드를 변경해야 합니다. 그는 코드 구성을 유지 관리하는 일을 담당합니다.
  • 개발자는 변경 사항을 확인하고 충돌을 해결해야 합니다.

3 감사원

  • 감사자는 SCM 감사 및 검토를 담당합니다.
  • 릴리스의 일관성과 완전성을 보장해야 합니다.

4. 프로젝트 매니저:

  • 특정 기간 내에 제품이 개발되는지 확인
  • 개발 진행 상황을 모니터링하고 SCM 프로세스의 문제를 인식합니다.
  • 소프트웨어 시스템 상태에 대한 보고서 생성
  • 생성, 변경, 테스트에 대한 프로세스와 정책을 준수하는지 확인하세요.

5. 사용자

최종 사용자는 최신 버전의 소프트웨어를 보유하고 있는지 확인하기 위해 주요 SCM ​​용어를 이해해야 합니다.

소프트웨어 구성 관리 계획

SCMP(소프트웨어 구성 관리 계획) 프로세스 계획은 프로젝트의 초기 코딩 단계에서 시작됩니다. 계획 단계의 결과는 프로젝트 중에 확장되거나 수정될 수 있는 SCM 계획입니다.

  • SCMP는 IEEE 828과 같은 공개 표준이나 조직별 표준을 따를 수 있습니다.
  • 관리할 문서의 종류와 문서명을 정의합니다. 예 Test_v1
  • SCMP는 전체 SCM 프로세스와 기준선 생성을 담당하는 사람을 정의합니다.
  • 버전 관리 및 변경 제어를 위한 정책 수정
  • SCM 프로세스 중에 사용할 수 있는 도구 정의
  • 구성 정보를 기록하기 위한 구성 관리 데이터베이스입니다.

소프트웨어 구성 관리 도구

모든 변경 관리 소프트웨어는 다음의 3가지 핵심 기능을 갖춰야 합니다.

동시성 관리:

두 개 이상의 작업이 동시에 진행되는 경우 이를 동시 작업이라고 합니다. SCM 맥락에서 동시성은 여러 사람이 동시에 같은 파일을 편집하는 것을 의미합니다.

SCM 도구를 사용하여 동시성을 올바르게 관리하지 않으면 많은 시급한 문제가 발생할 수 있습니다.

버전 관리 :

SCM은 보관 방법을 사용하거나 파일에 대한 모든 변경 사항을 저장합니다. 보관 또는 저장 기능의 도움으로 문제가 발생할 경우 이전 버전으로 롤백할 수 있습니다.

Sync동기화:

사용자는 여러 파일이나 저장소의 전체 사본을 체크아웃할 수 있습니다. 그런 다음 사용자는 필요한 파일에서 작업하고 변경 사항을 저장소에 다시 체크인합니다. 로컬 사본을 동기화하여 다른 팀원이 변경한 내용으로 최신 상태를 유지할 수 있습니다.

다음은 인기 있는 도구입니다.

1.힘내: Git은 버전 관리에 도움이 되는 무료 오픈 소스 도구입니다. 모든 유형의 프로젝트를 빠르고 효율적으로 처리하도록 설계되었습니다.

링크를 다운로드 : https://git-scm.com/

2. 팀 Foundation 서버 : Bowman Foundation 팀이 제품 구축을 위해 협업하고 조정할 수 있도록 하는 도구 및 기술 그룹입니다.

링크를 다운로드 : https://azure.microsoft.com/en-us/services/devops/server/

3. 앤서블: 오픈 소스 소프트웨어 구성 관리 도구입니다. 구성 관리 외에도 애플리케이션 배포 및 작업 자동화도 제공합니다.

링크를 다운로드 : https://www.ansible.com/

더 많은 SW 구성 도구를 확인하세요. https://www.guru99.com/software-configuration-management-tools.html

결론

  • 구성 관리 모범 사례는 조직이 작업 중에 문서, 코드 및 기타 엔터티의 변경 사항을 체계적으로 관리, 구성 및 제어하는 ​​데 도움이 됩니다. 소프트웨어 개발 수명주기.
  • SCM 프로세스의 주요 목표는 실수를 최소화하면서 생산성을 높이는 것입니다.
  • 구성 관리 프로세스의 주된 이유는 지속적으로 업데이트되는 소프트웨어에서 여러 사람이 작업하고 있다는 것입니다. SCM은 동시성, 동기화 및 버전 제어를 확립하는 데 도움이 됩니다.
  • 기준선은 소프트웨어 구성 항목의 공식적으로 승인된 버전입니다.
  • 변경 제어는 구성 개체가 변경될 때 품질과 일관성을 보장하는 절차적 방법입니다.
  • 구성 상태 회계는 SCM 프로세스 중 각 릴리스를 추적합니다.
  • 소프트웨어 구성 감사는 모든 소프트웨어 제품이 기본 요구 사항을 충족하는지 확인합니다.
  • 프로젝트 관리자, 구성 관리자, 개발자, 감사자 및 사용자가 SCM 프로세스에 참여합니다.
  • SCM 프로세스 계획은 프로젝트 초기 단계에서 시작됩니다.
  • Git, Team Foundation Sever, Ansible은 인기 있는 SCM 도구입니다.