품질
물건이 얼마나 좋은지 나쁜지를 나타내는 정도다.
소프트웨어 IEEE의 품질 정의 : 사용자의 기대 수준을 만족할 수 있는 정도
학자별 품질요소
| 학자 | 구분 | 품질요소 |
|---|---|---|
| McCall | 제품 개선(수정) | 유지보수 용이성, 유연성, 테스트 용이성 |
| McCall | 제품 전이(변환) | 상호운용성, 재사용성, 이식성 |
| McCall | 제품 운영 | 정확성, 효율성, 무결성, 신뢰성, 사용성 |
| Garvin | - | 성능, 특성 품질, 신뢰성, 일치성, 내구성, 서비스, 미적, 지각 |
| Boehm | - | 이식성, 신뢰성, 효율성, 인간공학성, 테스트성, 이해성, 수정변경성 |
제품 전이(변환)는 변환이 쉬운 정도를 측정한다.
McCall의 품질요소 : 원시코드 뿐 아니라 문서까지도 포함
ISO/IEC 9126 (철회, 후속 ISO/IEC 25010)
SW 품질에 대한 국제 표준 지침
ISO/IEC 9126-1:2001이 철회되면서 품질 모델은 ISO/IEC 25010:2011로 이어졌다. 그 25010:2011도 철회되어 지금은 제품 품질 모델이 ISO/IEC 25010:2023, 사용 품질 모델이 ISO/IEC 25019:2023, 품질 모델 개요가 ISO/IEC 25002:2024로 나뉘어 있다.
요구사항에 따른 적절한 느낌을 상식선에서 이해
품질 모델만 국제 표준이고 메트릭 세 파트는 기술 보고서(TR)로 발행됐다.
- ISO/IEC 9126-1:2001 품질 모델 : 6가지 품질 특성과 품질평가를 위한 프레임워크 정의
- ISO/IEC TR 9126-2:2003 외부 메트릭 : 개발자, 구매자, 평가자 외부 매트릭스 제공
- ISO/IEC TR 9126-3:2003 내부 메트릭 : 완성 전 미리 품질의 문제점을 지적, 품질 특성에 대하여 사용할 수 있는 내부 메트릭스 제공
- ISO/IEC TR 9126-4:2004 사용 품질 메트릭 : 사용해본 결과를 토대로 사용자가 측정
- 기능성, 신뢰성, 사용성, 효율성, 유지보수 용이성, 이식성
- 기능성 : 기본적으로 충족해야 할 품질 속성 - 적합성, 정확성, 상호운용성, 보안성
- 신뢰성 : 신뢰, 결함 - 성숙성, 결함 수용성, 회복성
- 사용성 : 편리한 기능 - 이해성, 학습 용이성, 운용성, 친밀성
ISO/IEC 14598 (철회, 후속 ISO/IEC 25040)
개발자 구매자 평가자 프로세스 규정
반복성, 재생산성, 공정성, 객관성
ISO/IEC 14598-1:1999를 비롯한 계열 전체가 철회됐고, 평가 프로세스는 ISO/IEC 25040:2011로 옮겨간 뒤 현행 ISO/IEC 25040:2024로 이어진다.
ISO/IEC 12119 (철회, 후속 ISO/IEC 25051)
ISO/IEC 12119:1994는 제공·납품되는 소프트웨어 패키지가 갖춰야 할 품질 요구사항과 그 시험 지침을 다룬다. 제작 과정과 공급자의 품질 시스템은 범위 밖이고, 제공된 패키지 자체만 대상으로 한다. 철회 후 ISO/IEC 25051:2006으로 대체됐고, 그 2006년판도 철회되어 현행은 ISO/IEC 25051:2014다. 2014년판에서 대상 용어가 COTS에서 즉시 사용 가능 소프트웨어 제품(RUSP)으로 바뀌었다.
그 외 표준으로 ISO/IEC 25000(SQuaRE)과 생명주기 표준인 ISO/IEC/IEEE 12207이 있다.
CMMI - 능력, 성숙도, 모델, 통합
표준 프로세스의 기준과 방향을 제시 → 프로세스 측정 + 평가 지표
- Capability 능력 : 개발 목표를 달성할 수 있는 힘
- Maturity 성숙도 : 책임감이 있는 조직, 객관적 근거에 따라 프로세스가 측정되고 지속적인 개선이 이루어짐
- Model 모델 : 조직의 역량 개선을 위한 모범 사례를 모은 프레임워크. 감사·심사 활동 자체가 아니다
- Integration 통합 : 프로세스의 기준을 하나로 통합. 개발 생명주기의 각 단계를 통합한 모델
모델과 평가는 별개다. 모델은 무엇이 좋은 실천인지를 정의하고, 조직이 그것을 실제로 지키는지 판정하는 일은 별도의 appraisal method로 수행한다. 현행 체계는 ISACA가 운영하는 CMMI Appraisal Method이며 Benchmark, Sustainment, Evaluation, Action Plan Reappraisal 네 유형을 쓴다. 공식 성숙도·능력 수준 등급은 Benchmark에서 부여된다. SEI의 SCAMPI A·B·C는 CMMI V2.0 이전의 구형 체계다.
소프트웨어 프로세스 성숙도 5단계
| 단계 | 프로세스 | 내용 |
|---|---|---|
| 1. 초기 | 비정형·반응적 | 개인 역량에 의존해 예측 불가능 |
| 2. 관리 | 규칙화. 계획되고 수행 | 프로젝트 별로 프로세스 존재 |
| 3. 정의 | 표준화. 이해 | 조직 차원의 표준 프로세스. 전체에 적용 |
| 4. 정량적 관리 | 예측 가능. 목표 충족 | 측정 통제 |
| 5. 최적화 | 지속적 개선 | 변경 관리, 성능 최적화 |

빈칸에 들어갈 단계는 초기 → 관리 → 정의 → 정량적 관리 → 최적화 순이다.
SPICE(ISO/IEC 15504, 철회 → ISO/IEC 33000 계열)
조직의 프로세스가 표준에 맞게 수행되고 있는지, 또 어떤 부분을 개선할 필요가 있는지
여섯 수준은 CMMI의 조직 성숙도 수준이 아니라 프로세스별 능력 수준이다.
- 0 불완전(Incomplete)
- 1 수행(Performed)
- 2 관리(Managed)
- 3 확립(Established)
- 4 예측 가능(Predictable)
- 5 최적화(Optimizing)
ISO/IEC 15504-2:2003을 비롯한 계열은 철회됐고, 프로세스 심사 표준은 ISO/IEC 33001:2015 이후의 33000 계열로 대체됐다. 능력 수준 측정 프레임워크는 ISO/IEC 33020:2019가 맡는다.
품질 관리
품질 보증은 프로세스를, 품질 통제는 산출물을 본다는 점에서 갈린다.
- 품질 계획 : 프로세스를 정의하여 규정을 만드는 것
- 품질 보증 QA : IEEE 개발 단계 전역에 걸친 체계적인 작업. 프로세스가 규정대로 수행되는지를 관리해 품질이 목표한 수준에 있다는 것을 보증
- 품질 통제 QC : 산출물을 검사·측정해 요구한 품질을 만족하는지 확인하고 결함을 걸러냄. 요구사항·설계 문서, 프로토타입, 테스트 산출물 같은 중간 산출물도 대상이다
NASA 소프트웨어 공학 핸드북도 산출물 평가를 산출물이 완성되거나 베이스라인으로 지정되는 시점에 수행하도록 권고한다.
프로젝트 관리
한시성, 유일성, 참여자의 일시성, 한정된 자원
프로젝트 매니저 PM : 총괄, 진척 관리, 많은 대화, 책임감
프로젝트관리지식체계 PMBOK
PMI에서 제작한 프로젝트 관리 프로세스 및 지식 체계
Project + Management + Body + Of + Knowledge
아래 5개 프로세스 그룹과 10개 지식 영역은 제5판(2013)과 제6판(2017) 기준이다. 제7판(2021)은 12개 원칙과 8개 성과 영역, 제8판(2025)은 6개 원칙과 7개 성과 영역을 주요 구조로 삼는다. 프로세스 그룹과 지식 영역을 주요 구조로 쓰지는 않지만 예측형 접근에서는 계속 사용할 수 있고, 제7판은 프로세스 그룹을 모델의 하나로 포함한다.
- 착수(Initiating)
- 기획(Planning)
- 실행(Executing)
- 감시 및 통제(Monitoring and Controlling)
- 종료(Closing) : 고객 또는 스폰서의 공식 인수를 받고 계약·행정 종료 절차를 마쳐야 종료할 수 있음
10개 지식 영역
통합, 범위, 일정, 원가, 품질, 자원, 의사소통, 리스크, 조달, 이해관계자
이해관계자 관리는 제5판에서 의사소통 관리로부터 분리돼 추가됐다. 제5판은 일정을 시간, 자원을 인적 자원으로 부른다.
형상관리
변경관리
버전 관리 : 개발 단계 또는 순서를 번호로 표시한 것
- 릴리즈
형상 관리 : 특정 항목의 변화에 대해 관리, 시스템의 통합과 일치를 보장함
- 기존 부품들과의 인터페이스에 문제가 없어야 시스템이 안정적으로 작동
- git
- SCM 소프트웨어 형상 관리
- 가시성, 추적성 보장, 생산성 안전성 높임
- IEEE-Std-1042에서 형상관리 정의
- 절차
- 식별 : 이름 명명, 베이스라인 설정. 베이스라인은 특정 시점에 공식 검토와 합의를 거친 산출물 집합이며, 이후 변경은 형상 통제 절차를 통해서만 반영한다
- 통제 : 요청을 심사하여 반영(실시, 확인)될 수 있도록 통제
- 상태보고 : 관련된 사람들에게 보고함
- 감사 : 반영과 갱신 검정
- 형상통제위원회 CCB : 변경을 수락하거나 거절하는 역할
유지보수
ISO/IEC/IEEE 14764:2022가 정의하는 네 유형이다.
- 수정(교정, Corrective) : 배포 후 발견된 결함을 바로잡는다
- 적응(Adaptive) : 변경된 운영 환경에서 소프트웨어를 계속 사용할 수 있도록 수정한다
- 기능 보강(완전화, Perfective) : 기능뿐 아니라 문서, 성능, 유지보수성 개선도 포함한다
- 예방(Preventive) : 잠재 결함을 줄여 향후 유지보수성과 신뢰성을 높인다