소프트웨어 품질

두 개의 서로 관련되면서도 구별된 개념: 기능적 품질, 구조적 품질

소프트웨어 공학에서 소프트웨어 품질(software quality)은 비즈니스 문맥에서 품질이 정의된 곳에 존재하는, 두 개의 서로 관련되면서도 구별된 개념을 가리킨다.

  • 소프트웨어 기능 상의 품질(software functional quality)은 기능 요건이나 사양에 기반하여 주어진 설계를 얼마나 잘 충족하고 있는지를 반영한다. 이러한 특성은 소프트웨어의 목적이 부합하는지, 또 가치가 있는 상품으로서 시장의 경쟁작들과 비견할만한지를 기술할 수 있다.[1]
  • 소프트웨어 구조 상의 품질(software structural quality)은 기능 요건의 전달을 지원하는 비기능 요건을 어떻게 충족하는지를 가리키는데, 이를테면 소프트웨어가 올바르게 개발될 수 있는지를 가늠하는 척도로서 내구성이나 유지보수성을 들 수 있다.

소프트웨어 품질은 소프트웨어 내부 구조, 소스 코드, 단위 수준, 기술 수준, 시스템 수준의 분석을 통해 평가되며, 아키텍처가 OMG의 주제에 따른 논문에 개요로 서술된 소프트웨어 구조의 원칙을 준수하는 방식을 수행한다.[2] 반면, 기능 상의 품질은 일반적으로 소프트웨어 테스트를 통해 강제되어 측정된다.

역사적으로, 소프트웨어 품질 관리에 적용 가능한 특성과 메트릭스의 구조, 분류, 용어는 ISO 9126-3과 이후의 ISO 25000:2005[3] 품질 모델(SQuaRE)[4]로부터 가져온 것이다. 이러한 모델에 기반하여, CISQ(Consortium for IT Software Quality)는 비즈니스 가치를 제공하는 소프트웨어에 필수적인 5가지 주요 구조 특징들을 정의하고 있다: 신뢰성, 효율성, 보안, 유지보수, (적절한) 크기.

같이 보기

각주

외부 링크