선진국형의 국가경제산업구조로 발전할수록 소프트웨어의 품질 기술은 글로벌 경쟁력의 핵심이다. 품질이라는 어원은 라틴어인 Qualitas에서 유래되었다. 일반적으로 소프트웨어의 품질은 기능성과 비기능으로 구분하여 생각할 수 있다. 기능성이란 소프트웨어의 사용자가 필요로 하는 기능적인 요구사항을 말하며, 기능이 다양하고 편리한 소프트웨어가 품질이 좋은 제품이다. 비기능성으로 성능, 신뢰성, 용량, 가용성, 보안성, 지속성 등이 있다. 예컨대, 성능은 소프트웨어의 시간적인 개념으로 응답에 소요되는 시간, 처리에 소요되는 시간, 검색에 소요되는 시간과 동시 다발적인 접속자의 수에 대한 지원 능력 등을 말한다. 신뢰성이란 고장과 고장 간의 시간(Mean Time Between Failures), 고장이 발생한 후에 수리에 소요되는 시간(Mean Time To Repair), 컴퓨팅 자원의 효율적인 활용, 메모리 누출 현상 등에 대한 것이다. 본 고에서는 소프트웨어의 품질 기술에 대해 살펴보고자 한다.

  미국의 우주 왕복을 위한 챌린저호의 공중 폭파, 보잉 737의 추락, 자동차의 급발진 등에서 경험했듯이 소프트웨어의 조그만 결함이 엄청난 손실을 낳고, 국가사회에 큰 피해를 몰고 온다. 높은 소프트웨어의 품질은 바로 제품과 서비스의 가치를 높여주며 고객의 만족을 통하여 지속적으로 시장을 확대함에 결정적인 역할을 하고 있다. 또한, 높은 소프트웨어의 품질은 추가적인 관리 및 운용의 비용을 절감하는 지름길이다.

  국제표준으로 소프트웨어의 품질 요구사항을 정의한 ISO 9000시리즈 등이 있고, 이를 기초로 ISO 9126의 국제소프트웨어품질모델, ISO 12119의 소프트웨어 패키지평가, ISO 12207의 소프트웨어 시험에 의한 소프트웨어품질모델, ISO 14598의 소프트웨어평가프로세스가 있다. 이와 같은 국제표준에 의한 소프트웨어 품질기준을 충족하여야 해외로 우리의 소프트웨어를 수출할 수 있다. 국제표준은 단지 소프트웨어 품질의 요구사항(What to do)만을 규격화한 문서로, 소프트웨어의 품질을 측정하고 시험평가하기 위한 소프트웨어의 품질 기술은 또 다른 문제이다. 자주적으로 국제수준의 소프트웨어의 품질 기술을 확보하여야 한다.

  미 연방정부는 소프트웨어의 품질 기술을 통해 국제 경쟁력을 강화하기 위해 카네기멜론대학교(CMU)에 소프트웨어엔지니어링연구소(SEI)를 설치하고 전략적인 투자로 능력성숙모델(Capability Maturity Model Integrated)을 개발하여 소프트웨어 생산 능력을 측정 및 평가하고 이를 미연방정부의 입찰시 활용하고 있음은 주지의 사실이다. 또한, 국제표준화기구(ISO/IEC)는 SPICE(Software Process Improvement and Capability dEtermination) 모델을 국제표준으로 제정하고 이를 활용할 것을 권고하고 있다. SPICE도 소프트웨어에 대한 능력성숙모델로 소프트웨어 생산 능력을 평가하고 이를 바탕으로 혁신을 추구하고 있다. 우리도 소프트웨어의 품질기술에 대한 관심과 연구가 더욱 요구되고 있다.

저작권자 © 숭대시보 무단전재 및 재배포 금지