[Software Engineering] 소프트웨어 프로세스 개선(SPI) 및 소프트웨어 프로세스(SP) 품질인증 모델

isitcake_yes·2023년 3월 31일
0

소프트웨어공학

목록 보기
2/4
post-thumbnail

⚙️소프트웨어 개발 프로세스 개선 Software Process Improvement(SPI)

소프트웨어 프로세스 & 개발 생명주기

  • 소프트웨어를 개발할 때 일을 수행하는 작은 단위를 작업(task)이라고 한다. 소프트웨어 개발 프로세스는 이 작업 순서의 집합이라고 할 수 있으며, 작업 순서뿐 아니라 일정, 예산, 자원과 같은 제약 조건을 포함하는 일련의 활동을 말한다.
  • 소프트웨어 개발 생명주기 : 계획 > 분석 > 설계 > 구현 > 테스트 > 유지보수

소프트웨어 프로세스 개선(SPI)

  • 소프트웨어 품질을 향상시키기 위해서는 소프트웨어 프로세스를 개선을 통해 소프트웨어 품질을 개선하려는 노력이 필요하다!! = ⭐️Software Process Improvement (SPI)⭐️
  • 소프트웨어 개발과 관련된 모든 활동을 더욱 체계적으로 수행함으로써, 개발 소프트웨어의 결함을 줄이고 더 품질 좋은 제품을 만들기 위함.
  • SPI Benefits
    • 품질, 비용, 시장 출시 시간, 프로세스 품질, 제품 품질, 추정 정확도, 생산성, 고객 만족, 직원 만족도

📌 프로세스 개선 모델

  • CMMI
    • SW 개발 조직의 업무 능력 및 성숙도를 평가하는 모델
    • 초기 -> 관리 -> 정의 -> 정량적 관리 -> 최적화
  • SPICE
    • 소프트웨어 품질 향상을 위해 평가 및 개선하는 국제 표준
    • ISO/IEC15504

📌 프로세스 평가 모델

  • SP인증 제도
    • 5개 영역, 17개 평가항목, 70개 세부평가 항목

⚙️ 소프트웨어 프로세스(SP) 품질인증 모델

인증기준의 평가 영역

  1. 프로젝트 관리 2. 개발 3. 지원 4. 조직관리 5. 프로세스 개선

1. 프로젝트 관리

1.1 프로젝트 계획

프로젝트 계획 수립 활동은 프로젝트의 성공적 수행과 관리를 위해 관련 기준 및 계획을 마련하는
것이다.

세부 평가항목

  1. 프로젝트의 목표 및 범위 결정한다.
  2. 프로젝트에 적용할 생명주기와 프로세스 정의한다.
  3. 공수와 비용 산정한다.
  4. 일정과 예산 결정한다.
  5. 프로젝트 관리에 필요한 계획 수립한다.
  6. 프로젝트 계획서 작성 및 승인의 획득한다.

1.2 프로젝트 통제

프로젝트 통제 활동은 프로젝트 계획 시에 수립하였던 각종 계획 요소들의 실제 수행 상황을
점검하여, 프로젝트의 목표를 달성하도록 하는 것이다.

세부 평가항목

  1. 프로젝트 계획 요소 점검한다.
  2. 프로젝트 진척사항 검토한다.
  3. 주요 단계별 산출물 검토한다.
  4. 식별된 문제들을 분석한다.
  5. 시정조치 활동 수행한다.

1.3 협력업체 관리

협력업체 관리 활동은 프로젝트에 참여하는 외부 조직인 협력업체를 적절하게 선정하고 계약을
체결하며, 계약에 명시된 사항의 이행을 관리하는 것이다.

세부 평가항목

  1. 획득 대상 및 범위 결정한다.
  2. 협력업체 선정한다.
  3. 협력업체와 계약 체결한다.
  4. 협력업체의 계약 이행 여부 확인한다.
  5. 제품 및 서비스 검수한다.

2. 개발

2.1 고객 요구사항 관리

: 고객 요구사항 관리 활동은 시스템 관점에서 개발할 시스템의 범위와 품질 목표를 정의하고, 지속적으로 변할 수 있는 요구사항을 관리하여 고객 요구사항에 부합하는 시스템 개발을 가능하도록 하는 것이다.

세부 평가항목

  1. 고객 요구사항을 정의한다.
  2. 고객 요구사항의 변경을 관리한다.
  3. 고객 요구사항과 산출물간 추적성을 유지한다.

2.2 분석

: 분석 활동은 고객 요구사항을 바탕으로 SW 개발에 필요한 하위 수준의 요구 사항을 식별하고 상세화하며 이를 검토하여 정확한 SW를 개발하고자 하는 것이다.

  • 해결해야 할 사용자의 문제(Problem) 에 대한 분석
  • 시스템이 사용자에서 무엇을 제공해야 하는지 “What” 을 정의
  • 기능 요구사항 뿐 아니라 비기능 요구사항 (성능, 사용성 등 품질 요구사항)에 대한 정의가 중요함
  • 품질 요구사항간 트레이드 오프 (Trade-off) 분석 및 검토 필요

세부 평가항목

  1. 소프트웨어 요구사항을 정의한다.
  2. 소프트웨어 요구사항을 분석한다.
  3. 소프트웨어 요구사항을 검토한다.

2.3 설계

: 설계 활동은 구현 시 참조할 수 있고 요구사항에 부합하는지 검증할 수 있는 산출물을 작성하여 SW 개발을 준비하는 것이다.

세부 평가항목

  1. 구조 설계를 수행한다.
  2. 상세 설계를 수행한다.
  3. 테스트 계획을 수행한다.

구조설계 vs 상세설계

  • 구조설계 : 전체 시스템의 구성요소와 이들 간의 상관관계 식별. 비기능적 요구사항(NFR)이 반영되어야 함. 여러 가능한 대안 도출 및 검토. 의사결정 내역에 대한 문서화.
  • 상세설계 : 개별 구성요소의 내부구조를 설계하는 활동. 구현가능한 소프트웨어 단위로 분할하고, 내부로직 및 인터페이스 정의

2.4 구현

구현 활동은 설계 결과물을 반영하여 고객 요구사항을 만족하는 실행가능한 SW를 만들어 내는
것이다.

세부 평가항목

  1. 소프트웨어 단위를 구현한다.
  2. 단위 테스트를 수행한다.
  3. 소프트웨어를 통합한다.

2.5 테스트

테스트 활동은 계획된 절차에 따라 시스템의 결함을 제거하여 고객의 요구사항을 만족하는 SW를
제공하는 것이다

세부 평가항목

  1. 통합 테스트를 수행한다.
  2. 시스템 테스트를 수행한다.
  3. 인수를 지원한다.

통합 테스트 vs 시스템 테스트

  • 통합 테스트 : 개발자 관점. 통합 단계에 따라 테스트. 통합환경(개발환경). 기능완성도에 초점.
  • 시스템 테스트 : 사용자 관점. 실 운영환경. 비기능 품질 목표에 초점. 100% 통합이 완료된 시점.

3. 지원

3.1 품질보증

: 품질보증 활동은 프로젝트의 프로세스가 프로젝트 전체 과정의 활동에 대해 적합성을 유지하고 있는지와 작업산출물이 고객 요구사항을 만족 시키고 있는지를 확인하여 정확한 프로젝트 진행을 보증하는 것이다.

세부 평가항목

  1. 품질보증 계획을 수립한다.
  2. 품질보증 활동을 수행한다.
  3. 품질보증 활동 결과를 관리한다.

3.2 형상관리

: 형상관리 활동은 프로젝트 생명주기 전체 기간 동안의 작업산출물에 대해 베이스라인을 수립하고, 주요 단계별로 변경을 추적하고 통제하여 작업산출물의 무결성을 보장 하고 유지하는 것이다.

  • 변경 통제가 필요한 대상 및 버전에 대해 베이스라인(기준선)의 설정 및 이후 공식 절차에
    따라 변경 수행한다.

세부 평가항목

  1. 형상 항목을 식별하고 계획을 수립한다.
  2. 형상 통제를 실시한다.
  3. 형상관리 기록을 관리한다.
  4. 형상 감사를 실시한다.

형상항목 예시

  • 소스코드 / 실행파일 / 데이터구조 (DB스키마) / 사용자 메뉴얼 / 운영자 메뉴얼 / 분석서, 설계서, 테스트케이스 등 개발 산출물 / 프로젝트 계획서 등 관리 산출물

형상통제 절차 예시

  • 통제가 필요한 대상에 대해 베이스라인(기준선) 설정 -> 공식절차에 따라 변경 수행
  • 단계별 업무 완료 -> 베이스라인 설정 -> 변경심사(영향평가, 개발자, 고객…) -> 변경실시 -> 변경공지

3.3 측정분석

: 측정 및 분석 활동은 프로젝트 수행 중 필요한 정보를 수집하고 분석하여 프로젝트의 목표 달성 정도를 관리하는 것이다. 측정을 할 수 있어야 통제, 개선이 가능하다. 품질, 비용, 시간 등을 측정한다.

세부평가항목

  1. 측정 및 분석 계획을 수립한다.
  2. 측정을 실시한다.
  3. 측정 결과를 분석한다.
  4. 측정 분석 결과를 관리한다.

측정지표 (Metric)

  • 속성을 표현하기 위해 어느 메트릭을 사용할것인지 결정한다.
  • Ex) 속성: 자동차의 경제성, 메트릭 : 연비 / 엔진오일 교체주기 / 중고차 시세 …

4.조직관리

4.1 조직 프로세스 관리

: 조직 프로세스 관리 활동은 조직 및 프로젝트의 목표에 대한 이해를 바탕으로 프로젝트 수행을 위한 조직 차원의 기본 지침을 정의하여 유지하고 관리하는 것이다.

세부평가항목

  1. 조직의 표준 프로세스를 정의한다.
  2. 표준 생명주기 모델을 정의한다.
  3. 표준 프로세스 조정을 위한 기준 및 가이드라인을 수립한다.
  4. 조직의 표준 프로세스를 확산한다.
  5. 조직 프로세스 적용 상황을 확인한다.
  6. 프로세스 관련 경험을 자산으로 축적한다.

4.2 기반구조 관리

: 조직의 기반구조 관리 활동은 프로세스 수행성과를 향상시키기 위해 HW, SW, 표준, 기술 등 조직의 기반 작업환경을 구축하고 관리하는 것이다.

세부평가항목

  1. 조직 기반구조에 대한 요구사항을 정의한다.
  2. 조직 기반구조를 구축한다.
  3. 조직 기반구조를 관리하고 개선한다.

4.3 구성원 교육

: 조직 구성원 교육 활동은 구성원 각자의 역할을 효과적이고 효율적으로 수행할 수 있도록 구성원들의 역량을 강화 시키는 것이다.

세부평가항목

  1. 교육 및 훈련 계획을 수립한다.
  2. 교육 및 훈련을 실시한다.
  3. 교육 및 훈련의 효과를 평가한다.

5.프로세스 개선

5.1 정량적 프로세스 관리

: 정량적 프로세스 관리 활동은 조직 프로세스 및 프로젝트의 목표를 달성하기 위하여 프로세스 수행을 정량적으로 통제하고 관리하는 것이다.

세부평가항목

  1. 조직의 표준 프로세스 성과 목표를 정의한다.
  2. 조직 프로세스 성과 베이스라인을 정의한다.
  3. 조직 프로세스 성과 모델을 정의한다.
  4. 프로젝트의 프로세스 성과 목표를 정의한다.
  5. 프로젝트의 프로세스를 측정하고 분석하는 방법을 정의한다.
  6. 프로젝트의 프로세스 성과를 확인한다.

5.2 문제 해결

: 문제 해결 활동은 자주 발생되는 문제들에 대해 근본 원인을 분석하고 식별하여 적절한 시정조치를 수행하는 것이다.

세부평가항목

  1. 문제 해결을 위한 가이드라인을 수립한다.
  2. 해결할 문제를 선정한다.
  3. 선정된 문제의 원인을 분석하고 해결방안을 정의한다.
  4. 해결방안에 따라 문제를 해결한다.
  5. 문제 해결방안의 성과를 기록하고 관리한다.

5.3 프로세스 개선 관리

: 프로세스 개선 관리 활동은 조직과 프로젝트의 프로세스에 대한 이해를 형성하고 유지하며, 프로세스를 평가하여 개선하고 유지하는 것이다.

세부평가항목

  1. 조직의 표준 프로세스에 대한 요구 및 목표를 식별한다.
  2. 조직 프로세스의 강점 및 약점을 평가한다.
  3. 프로세스 개선을 위한 계획을 수립한다.
  4. 프로세스 개선 활동을 수행한다.
  5. 프로세스 개선 활동의 성과를 기록하고 관리한다.


다음에는 소프트웨어 프로세스 모델들도 알아보자 ~~!
profile
주니어 개발자 주니어발록 주니어예티 주니어레이스

0개의 댓글