Software quality
소프트웨어 공학에서 소프트웨어 품질(software quality)은 비즈니스 문맥에서 품질이 정의된 곳에 존재하는, 두 개의 서로 관련되면서도 구별된 개념을 가리킨다.
- 소프트웨어 기능 상의 품질(software functional quality)은 기능 요건이나 사양에 기반하여 주어진 설계를 얼마나 잘 충족하고 있는지를 반영한다. 이러한 특성은 소프트웨어의 목적이 부합하는지, 또 가치가 있는 상품으로서 시장의 경쟁작들과 비견할만한지를 기술할 수 있다.
- 소프트웨어 구조 상의 품질(software structural quality)은 기능 요건의 전달을 지원하는 비기능 요건을 어떻게 충족하는지를 가리키는데, 이를테면 소프트웨어가 올바르게 개발될 수 있는지를 가늠하는 척도로서 내구성이나 유지보수성을 들 수 있다.
소프트웨어 품질은 소프트웨어 내부 구조, 소스 코드, 단위 수준, 기술 수준, 시스템 수준의 분석을 통해 평가되며, 아키텍처가 OMG의 주제에 따른 논문에 개요로 서술된 소프트웨어 구조의 원칙을 준수하는 방식을 수행한다. 반면, 기능 상의 품질은 일반적으로 소프트웨어 테스트를 통해 강제되어 측정된다.
역사적으로, 소프트웨어 품질 관리에 적용 가능한 특성과 메트릭스의 구조, 분류, 용어는 ISO 9126-3과 이후의 ISO 25000:2005 품질 모델(SQuaRE)로부터 가져온 것이다. 이러한 모델에 기반하여, CISQ(Consortium for IT Software Quality)는 비즈니스 가치를 제공하는 소프트웨어에 필수적인 5가지 주요 구조 특징들을 정의하고 있다: 신뢰성, 효율성, 보안, 유지보수, (적절한) 크기.
정의
소프트웨어 품질 (Software quality)의 정의:
- 소프트웨어의 바람직한 속성의 정도 및 사용자의 요구사항 기능 확보 정도.
- 개발 소프트웨어의 완전성 및 기능 만족성을 평가하는 척도.
특징
- 품질은 상대적 개념: 정량적 측정이 어려움, 상대에 따라 다름
- 품질은 여러 자원에 종속적: 비용, 시간, 인력, 도구 등
- 품질은 적정선에서 타협하는 것
- 품질 요소들은 서로 연관성을 가짐
표준모델
제품품질
- ISO9126
- ISO14598
- ISO12119
- ISO9001
- ISO9002
- ISO25000
SW프로세스품질
- ISO12207
- CMMI
- SPICE
품질경영
- 6시그마
- ISO9000
Measurement
- Code-based analysis
방법론은 헛소리다: 제품 속도에 대한 원칙
Software development process#방법론은 헛소리다: 제품 속도에 대한 원칙 항목 참조.
See also
- Software development
- 소프트웨어 개발 방법론 (Software development process)
- 소프트웨어 테스트 (Software testing)
- 소프트웨어 개발 생명주기 (Software Development Life Cycle) (SDLC)
- 컴퓨터 공학 (Computer engineering)