맥콜(McCall)의 소프트웨어 품질 모델은 사용자와 개발자의 관점에서 소프트웨어의 품질을 평가하기 위해 제안된 고전적인 모델입니다. 이 모델은 소프트웨어의 특성을 3가지 관점으로 분류하고, 이를 다시 11가지 세부 품질 요소로 정의합니다.
구체적인 분류 내용은 다음과 같습니다.
1. 제품 운용 (Product Operation)
사용자가 소프트웨어를 실제로 실행할 때 느끼는 품질 요소입니다. (사용자 관점)
| 품질 요소 | 설명 |
| 정확성 (Correctness) | 사용자의 요구사항을 정확히 충족시키는 정도 |
| 신뢰성 (Reliability) | 정해진 기간 동안 오류 없이 기능을 수행하는 정도 |
| 효율성 (Efficiency) | 자원(메모리, CPU 등)을 최소한으로 사용하며 성능을 내는 정도 |
| 무결성 (Integrity) | 허가되지 않은 접근으로부터 데이터를 보호하고 보안을 유지하는 정도 |
| 사용성 (Usability) | 사용자가 소프트웨어를 쉽게 배우고 사용할 수 있는 정도 |
2. 제품 수정 (Product Revision)
소프트웨어를 유지보수하거나 변경할 때의 용이성입니다. (개발자/유지보수 관점)
| 품질 요소 | 설명 |
| 유지보수성 (Maintainability) | 오류를 찾아 수정하거나 기능을 개선하기 쉬운 정도 |
| 유연성 (Flexibility) | 새로운 기능 추가나 변경 요구에 얼마나 쉽게 대응할 수 있는가 |
| 시험성 (Testability) | 소프트웨어가 제대로 작동하는지 검증(테스트)하기 쉬운 정도 |
3. 제품 전이 (Product Transition)
소프트웨어를 다른 환경으로 옮기거나 재사용할 때의 특성입니다. (환경 적응 관점)
| 품질 요소 | 설명 |
| 이식성 (Portability) | 다른 하드웨어나 운영체제 환경으로 쉽게 옮길 수 있는 정도 |
| 재사용성 (Reusability) | 전체 혹은 일부 코드를 다른 프로젝트에서 다시 사용할 수 있는 정도 |
| 상호운용성 (Interoperability) | 다른 시스템이나 소프트웨어와 데이터를 주고받으며 협업할 수 있는 정도 |
McCall의 품질 요소 암기법
운용 : 정·신·효·무·사 (정확성, 신뢰성, 효율성, 무결성, 사용성)
수정 : 유·유·시 (유지보수성, 유연성, 시험성)
전이 : 이·재·상 (이식성, 재사용성, 상호운용성)
