개요
소프트웨어의 품질은 한마디로 정의하기 어렵다. IEEE는 소프트웨어의 품질을 다양한 이해 관계자의 명시적이고 암묵적인 요구사항을 충족시킬 수 있는 소프트웨어의 기능 및 특성이라고 정의한다.
품질 모델은 제품 품질 평가 시스템의 초석이며, 소프트웨어 제품의 속성을 평가할 때 고려해야 할 품질 특성을 결정한다.
ISO 25010에 정의된 제품 품질 모델은 아래와 같이 8가지 주특성과 하위 부특성으로 구성된다.
ISO 25010의 주특성 및 부특성에 대한 설명
주특성 | 부특성 | 설명 |
기능성 | 기능 성숙도 | 기능 집합이 지정된 요구사항을 만족하는 정도 |
기능 정확성 | 제품 또는 시스템이 필요한 정밀도로 정확한 결과를 제공하는 정도 | |
기능 타당성 | 기능이 특정 업무 및 목표 달성을 용이하게 하는 정도 | |
효율성 | 시간 반응성 | 기능 수행 시 제품 또는 시스템의 응답 및 처리 시간, 처리속도가 요구 사항을 충족하는 정도 |
자원 활용성 | 기능 수행 시 제품 또는 시스템에서 사용하는 자원의 양과 유형이 요구 사항을 충족하는 정도 | |
기억 용량 | 제품 또는 시스템 매개 변수(최근 사용자 수, 통신 대역폭, 데이터 베이스 저장 용량 등)의 최대 한도가 요구 사항을 충족하는 정도 | |
호환성 | 공존성 | 다른 제품에 해로운 영향을 미치지 않고 환경 및 자원을 공유하면서 요구된 기능을 효과적으로 수행하는 정도 |
상호 운용성 | 둘 이상의 시스템, 제품 또는 구성 요소가 정보를 교환하고 교환된 정보를 사용할 수 있는 정도 | |
사용성 | 타당성 식별도 | 제품이나 시스템이 자신의 필요에 적합한지 여부를 사용자가 인식할 수 있는 정도 |
학습성 | 사용자가 제품이나 시스템의 사용법을 배워서 명시된 목적을 달성할 수 있는 정도 | |
운용성 | 제품 또는 시스템의 작동 및 제어를 쉽게 할 수 있는 정도 | |
사용자 오류 보호 | 시스템이 사용자를 오류로부터 보호하는 정도 | |
사용자 인터페이스 미학 | 사용자 인터페이스가 사용자에게 만족스러운 정도 | |
접근성 | 연령과 장애에 관계없이 시스템을 사용할 수 있는 정도 | |
신뢰성 | 성숙성 | 시스템이 정상 작동 상태에서의 신뢰성에 대한 필요성을 충족시키는 정도 |
가용성 | 사용이 요구되는 시기에 제품 또는 구성요소의 사용 및 접근이 가능한 정도 | |
결점 완화 | 시스템 또는 제품의 구성요소가 하드웨어 또는 소프트웨어의 결함이 존재하더라도 이를 극복하고 의도한 대로 동작해야 함 | |
회복 가능성 | 중단 또는 실패가 발생하는 경우 제품 또는 시스템이 영향을 받는 데이터를 직접 복구하고 시스템의 원하는 정도를 다시 설정할 수 있는 정도 | |
보안성 | 기밀성 | 제품 또는 시스템이 접근 권한이 있는 사람에게만 데이터 접근을 허용하는 정도 |
무결성 | 시스템 또는 제품의 구성요소가 소프트웨어 또는 데이터에 대한 무단 접근 및 수정을 방지하는 정도 | |
부인 방지 | 사건 및 행위에 대해 부인하지 못하도록 행동 및 사건에 대해 입증되는 정도 | |
책임성 | 시스템 내의 각 개인을 유일하게 식별하여 언제 어떤 행동을 하였는지 기록하여 필요 시 그 행위자를 추적할 수 있는 능력 | |
인증성 | 사건 및 행동에 대해 행위자임을 증명할 수 있는 능력 | |
유지보수성 | 모듈성 | 하나의 구성요소에 대한 변경이 다른 구성 요소에 미치는 영향이 최소화되도록 시스템 또는 소프트웨어가 개별 구성요소로 구성되는 정도 |
재사용성 | 하나 이상의 시스템에서 자산을 사용하거나 다른 자산을 구축할 수 있는 정도 | |
분석성 | 하나 이상의 의도된 변경 사항이 제품 또는 시스템에 미치는 영향을 평가하거나 결함 또는 결함 원인에 대해 제품을 진단하거나 수정할 부분을 식별할 수 있는 정도 | |
수정 가능성 | 제품이나 시스템에 결함이 발생한 경우 기존 제품의 품질을 저하시키지 않고 효과적으로 수정할 수 있는 정도 | |
시험 가능성 | 제품 사용 전 사용에 필요한 검증 기능 제공 여부 | |
이식성 | 적용성 | 제품 또는 시스템이 다른 하드웨어나 소프트웨어 또는 기타 사용 환경에 효과적이고 효율적으로 적용될 수 있는 정도 |
설치성 | 제품 또는 시스템이 성공적으로 설치 및 제거될 수 있는 정도 | |
대체성 | 제품이 동일한 환경에서 동일한 목적을 위해 다른 지정 소프트웨어 제품으로 대체될 수 있는 정도 |
공식 사이트: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010
실무 프로젝트에서의 적용 예
아래는 원격검침 시스템에서의 품질 특성에 따른 평가의 기준이다.
- 기능성 - 기능 성숙도: 검침 기능이 요구된 시간 간격에 맞게 정상적으로 동작하는가?
- 기능성 - 기능 정확성: 웹서버에 전송되어 기록된 검침 데이터가 실제 미터의 검침 데이터와 일치하는가?
- 효율성 - 시간 반응성: 웹에서 동작 실행 시 기준 시간 내에 응답하는가? (기준 시간: 일반적인 웹의 경우 3초 이내)
- 효율성 - 자원 활용성: 시스템의 CPU나 메모리 사용량이 적절한가?
- 호환성 - 상호 운용성: 모뎀과 웹서버의 연동 및 데이터 교환 기능이 정상적으로 동작하는가?
- 사용성 - 사용자 오류 보호: 사용 시 입력 창에 잘못된 값을 입력해도 시스템 오류로부터 안전한가?
- 사용성 - 사용자 인터페이스 미학: 사용자에게 만족할 만한 UI(화면 구성, 글자 폰트, 이미지) 를 제공하는가?
- 신뢰성 - 가용성: 데이터 처리량이 많을 때 시스템이 다운되거나 문제가 생기지 않는가?
- 신뢰성 - 회복 가능성: 시스템에 문제가 발생한 경우 데이터가 깨지거나 손실되지 않는가?
- 신뢰성 - 결점완화: 검침주기에 데이터 전송이 실패한 경우 전송 실패한 데이터를 다음 검침 주기에 다시 전송하는가?
- 보안성 - 기밀성: 제품의 동작을 변경하기 위한 위한 CLI (Command Line Interface) 접근이 가능한가?
- 보안성 - 무결성: 시스템을 무단으로 접근하여 파일 변경을 시도하는 경우 이를 막거나 복구하는 기능이 있는가?
- 보안성 - 부인 방지: 시스템의 사건이나 행위 발생 시 이를 로그로 기록하는가?
- 유지보수성 - 분석성: 결함 발생 시 출력되는 오류코드로부터 결함의 원인을 파악할 수 있는가?
- 유지보수성 - 시험 가능성: 검침 데이터 전송을 확인하기 전에 통신 상태나 네트워크 상태를 확인하는 기능이 있는가?
- 이식성 - 설치성: 설치 또는 제거, 업그레이드가 용이한가?