Preface
이번 장을 공부하며 소프트웨어 공정 과정에서 매우 중요시 하는 품질 관리가 개발 라이프사이클에 포함되어 있지 않은 이유에 대해 생각해보았다.
그 결과 품질 관리는 어느 특정 단계에서만 실시되는 것이 아닌, 개발 전 과정에 걸쳐 이루어지는 것이므로 독립적인 개념으로 설명할 수밖에 없다는결론을 내릴 수 있었다.
또한, 대입 시험을 예시로 든 CMMI 모델을 살펴보며 소프트웨어 공학을 마친 후 다른 과목을 학습할 때 이 모델을 직접 제작하여 그에 따라 실천한다면 큰 도움이 될 것 같다는 생각이 들어 실제로 CMMI 모델을 작성해 볼 예정이다.
1. 품질 관리
- 소프트웨어 품질 : 소프트웨어의 유용성을 얻기 위해 갖추어야 할 특성들의 집합
1) 사용자의 입장에서 평가
2) 각 공정과정마다 공식기술검토회를 거치는 것이 좋음
- 소프트웨어 품질 보증(SQA : Software Quality Assurance) : 소프트웨어를 개발할 때 과학적 관리 기법을 적용하여 사용자가 요구하는 품질의 제품을 체계적·경제적으로 달성하려는 활동들의 집합
- 소프트웨어 품질 보증 방법
1) 각 공정과정에 적용될 수 있는 방법과 도구들이 확립되어야 함
2) 각 공정과정의 결과물에 대한 공식 기술 검토가 이루어져야 함
3) 다단계 시험 전략이 필요함
4) 문서 관리에 관한 적절한 통제 절차가 필요함
5) 기록 유지와 보고가 체계적으로 이루어져야 함
6) 개발 표준의 확립이 필요함
7) 품질과 진행과정에 대한 측정이 필요함
- 품질 비용 : 제품 및 서비스의 품질과 관련하여 발생하는 비용
1) 예방 비용
2) 평가 비용
3) 실패 비용
- 소프트웨어 품질 요소 : 소프트웨어의 유용성 및 사용 목적을 달성하는 데 필요한 성질
- 프로젝트 품질 관리 활동
1. 품질 계획 수립 : 프로젝트 및 소프트웨어의 품질 기준 수립
1) 프로젝트 계획 단계에서 수행
2) 결과물 : 품질 보증 계획서
2. 품질 보증(QA) 수행 : 프로젝트가 실행되며 품질 요구사항과 표준을 사용하고 있는지 확인
1) 품질 감사, 프로세스 분석을 통해 진행
2) 소프트웨어에 대한 품질 보증이 아닌, 프로젝트의 프로세스가 적합하게 이루어졌다는 것을 보여주는 것
3. 품질 통제(QC) : 프로젝트 각 단계의 산출물이 품질 표준에 부합하는지 감시
1) 결과가 불만족스러운 경우 원인 제거 방안 마련
- 기술 검토의 목적 : 다음 단계로 넘어가기 전 결함을 수정하여 개발 비용 최소화
- 공식 기술 검토 결과물
1) 검토 요약 보고서
2) 행동 항목 리스트 : 추가로 조사해야 할 항목 작성
- 공식 기술 검토 지침
1) 산출자가 아닌 산출물을 검토하라
2) 검토를 위한 시간, 자원을 할당하여 일정을 세운 후 이를 유지하라
3) 검토의 목적은 문제의 발견이므로 논쟁과 반박을 삼가라
4) 참가자의 수를 제한하고 사전 준비를 하라
5) 검토자의 의견을 기록하라
- 소프트웨어를 측정하는 것은 매우 중요하다.
- 소프트웨어 척도(metrics) : 소프트웨어와 관련된 다양한 자료를 수치로 표시하는 것
2. 소프트웨어 프로세스 개선
- 품질과 생산성에 영향을 주는 3요소
1) 사람(peolpe)
2) 문제(problem)
3) 프로세스(process)
- 소프트웨어 프로세스 개선(SPI)의 목적
1) 기존 프로세스를 점검하여 문제 발견
2) 프로세스를 개선하여 제품의 품질 향상
3) 비용과 일정 단축
- 프로세스 개선을 위해선 프로세스 측정이 우선되어야 한다.
- 프로세스 프레임워크 종류
1) CMMI
2) ISO 9001
3) SPICE 등
3. CMMI
- CMM(Capability Maturity Model for Sofrware) : 프로세스 개선 성숙도 모델(SW 영역에 한정)
→ 프로세스들의 모범적인 실무 지침 및 기준 제공
- 표준 프로세스 : 프로젝트를 수행하는 데 꼭 필요한 설명서(가이드라인)
- CMMI : 하드웨어, 시스템, 소프트웨어 영역을 통합하여 만든 프로세스 개선 성숙도 모델
1) 성숙도를 0레벨에서 5레벨까지(초기, 관리, 정의, 정량적 관리, 최적화)로 구별
2) 각 레벨마다 프로세스 영역(PA)을 지정
3) CMMI 평가 지침서는 목적, 주요 프로세스 영역, 주요 행동 지침에 대한 가이드라인을 제공
- 프로세스 영역(PA) : 성숙도를 성취하기 위해 만족시켜야 하는 요구사항
1) SG(Specific Goals) : 특정 목표
2) SP(Specific Practices) : 특정 수행 지침
① 결과물 : 대표적인 작업 산출물
② 실행 가이드라인 : 하부 지침
3) GG(Generic Goals) : 일반 목표
4) GP(Generic Practices) : 일반 수행 지침
- CMMI 모델 컴포넌트
1) 필수(required) : 목표
2) 기대(expected) : 가이드라인
3) 유용(informative) : 필수 구성 요소와 기대 구성 요소에 접근하기 위한 상세 설명
- CMMI 평가 모델
1. 능력 모델
1) 조직의 각 프로세스 영역별로 능력 수준을 보여줌
2) 프로세스 영역 전체를 연속적 표현 방법으로 나타냄
3) 특정 프로세스 영역을 기준으로 조직 간 비교 평가 가능
4) 조직은 대게 각 프로세스 영역의 성숙도 수준이 서로 다름
2. 성숙도 모델
1) 각 레벨에 충족되어야 하는 PA 정의
2) 각 레벨에서 요구되는 모든 PA의 성숙도가 만족되면 다음 단계로 이동
3) 프로세스 영역을 단계적 표현 방법으로 나타냄
4) 대부분 기업들이 사용
- CMMI의 기능
1) 프로세스 표준화
2) 업무 처리 프로세스의 명확화
3) 프로젝트 목표 및 계획의 정량적 수립 가능 etc.
- CMMI 인증 평가 : 조직의 모델 대비 프로세스 적용 수준(성숙도) 판단을 통해 개선사항 도출 및 지속적인 개선 방향을 제시하기 위해 시행
4. ISO 9001
- ISO에서 제정한 품질 경영 시스템에 관한 국제 규격 중 고객에게 제공되는 제품 및 서비스 체계가 규정된 요구사항을 만족하고 지속적으로 유지·관리되고 있음을 인증해주는 제도이다.
- 품질 경영 : 품질을 위해 조직을 지휘하고 관리하는 활동
1) 품질 계획
2) 품질 관리
3) 품질 보증
4) 품질 개선
- 품질 경영 시스템 : 품질을 통한 시장 경쟁 우위 확보에 중점을 두어 조직 지휘·관리
- 국제표준화기구(ISO : International Organization for Standardization)
1) 국제 표준을 개발하고 발행
2) 비정부기구(NGO)
- ISO 9001 표준
1) 프로세스에 기반한 접근방법을 채택하도록 권장하지만, 정형화된 품질 경영 프로세스를 제시하지 않고, 특정 프로세스를 제한하지도 않음
2) 문서화된 품질 경영 시스템 요구
① 품질 방침 및 목표를 기술한 품질 계획서
② 품질 매뉴얼 : 조직의 품질 방침과 품질 경영 시스템을 기술한 가장 상위의 문서
③ 품질 절차서 : 품질 매뉴얼을 실행하기 위한 세부 문서
④ 품질 관련 프로세스를 문서화한 절차서
⑤ 시방서(specification), 설계 도면 등의 기술 문서
⑥ 기록 문서
- ISO 9001 기능
1) 고객 만족
2) 기업의 신뢰도 향상
3) 제품 및 서비스 품질 향상 etc.
- ISO 품질 경영 원칙
1) 고객 중심
2) 리더십
3) 전원 참여
4) 프로세스 접근 방법
5) 경영에 대한 시스템 접근 방식6) 지속적 개선7) 의사 결정에 대한 사실적 접근8) 상호 이익이 되는 공급자 관계
- ISO 인증 준비 과정1) 진단2) 추진 팀 교육3) 품질 경영 시스템 개발4) 품질 시스템 실행5) 최종 점검 및 심사
5. SPICE 모델
- SPICE(Software Process Improvement and Capability dEtermination)
1) 소프트웨어 프로세스 성숙도 평가를 위해 ISO에서 지정한 소프트웨어 심사 표준(인증 규격)
2) CMMI, ISO 9001 등의 장점을 수용하고 통합한 평가 모델
- SPICE의 프로세스 범주
1) CUSTOMER-SUPPLIER (고객- 공급자 )
2) ENGINEERING (엔지니어링)
3) SUPPORT (지원)
4) MANAGEMENT (관리)
5) ORGANIZATION (조직)
- SPICE 심사는 조직을 대상으로 이루어지며, 사업 목적과 관련된 일부 프로세스 영역들만 선택하여 심사받을 수 있다.
참고 문헌 : 윤청, 『소프트웨어 공학 에센셜』(생능출판), 2019, p.476~517.
'CS > 소프트웨어 공학 에센셜' 카테고리의 다른 글
소프트웨어 검증 및 확인 (0) | 2021.07.03 |
---|---|
소프트웨어 형상 관리 (0) | 2021.07.01 |
유지보수 (0) | 2021.06.27 |
소프트웨어 테스트 (0) | 2021.06.26 |
프로그래밍과 코드 검사 (0) | 2021.06.24 |
댓글