소프트웨어 품질이란 무엇인지 확인하고, IEEE/ISO/IEC 25010(구 ISO/IEC 9126) 품질 모델을 기반으로 소프트웨어 품질 특성을 이해하고, 소프트웨어 품질 분류에 대해서도 알아보겠습니다.
소프트웨어 품질은 무엇인가?
품질의 정의에 대해서는 관점에 따라 여러 학자들이 다양한 견해를 밝히고 있지만, 요구사항 관점으로 품질을 바라보는 점은 동일합니다.
- 목적에 적합 - Fitness for Use, 여러 가지 품질 특성 보유 (Juran)
- 요구사항과의 일치 - 품질 문제는 요구와의 불일치로 발생, 지속적인 모니터링 (Crosby)
- 명확한 요구사항과 잠재된 기대치를 만족시킬 수 있는 능력에 관계되는 제품과 서비스의 특징 및 특성의 총체(ISO 8042)
- 소프트웨어가 지닌 바람직한 속성의 정도 (IEEE)
- 저렴하고 시장에 적합하며, 예측할 수 있는 정도의 균질성과 신뢰성을 가지고 있는 것 (Deming)
- 누군가에 있어서의 가치 (Weinberg)
- 경쟁자가 이루지 못한 매력적, 독창적 제품 및 서비스로 고객 가치를 창조하는 프로세스와 시스템, 기업 문화를 포함한 경영품질 (대한민국 신품질 포럼)
IEEE/ISO/IEC 25010 품질 특성
아래 8가지로 구분되는데, 제품 생산자는 고객의 비즈니스 요구사항은 물론 품질의 8가지 특성을 고려항 사용자의 만족을 얻기 위해 부단한 노력을 합니다.
아래는 각각의 품질 특성을 자세히 설명한 표입니다.
주특성 | 부특성 | 설명 |
기능성 | 기능 성숙도 (Functional Completeness) | 명시된 요구사항의 구현 정도 |
기능 정확도 (Functional Correctness) | 정의된 정밀도에 따라 정확하게 결과를 제공하는 정도 | |
기능 타당성 (Functional Appropriateness) | 사용자의 목적 달성에 소프트웨어가 도움을 주는 정도 | |
효율성 | 시간 반응성 (Time-behavior) | 기능 수행 시 응답, 처리 시간과 처리율이 요구사항을 충족 시키는 정도 |
요소 활용 (Resource Utilization) | 기능 수행 시 사용되는 자원의 유형 및 양이 요구사항을 만족 시키는 정도 | |
기억 용량 (Capacity) | 제품 혹은 시스템 파라미터(최근 사용자 수, 통신 대역폭, 데이터베이스가 저장할 수 있는 데이터양 등)의 최대 한계가 요구사항을 만족시키는 정도 | |
호환성 | 공존성 (Co-existence) | 다른 소프트웨어에 해로운 영향을 주지않고 환경 및 자원을 공유하면서 요구된 기능을 효과적으로 수행하는 정도 |
상호 운용성 (Interoperability) | 둘 혹은 그 이상의 시스템, 제품 혹은 구성요소가 정보를 교환하거나 교환된 정보를 이상 없이 사용할 수 있는 정도 | |
사용성 | 타당성 식별력 (Appropriateness recognisability) | 사용자의 요구에 적절한 기능인지 식별할 수 있는 정도 |
학습성 (Learnability) | 사용자가 소프트웨어의 사용법을 배워 명시된 목적을 달성 할 수 있는 정도 | |
운용성 (Operability) | 제품 혹은 시스템의 작동 및 제어를 쉽게 할 수 있는 정도 | |
사용자 오류 보호 (User error protection) | 소프트웨어가 발생한 오류로부터 사용자를 보호하는 정도(버튼 비활성화, 알림창 등) | |
사용자 인터페이스 미학 (User interface aesthetics) | 사용자 인터페이스가 사용자에게 만족스러운 정도 | |
접근성 (Accessibility) | 연령과 장애에 관계없이 사용할 수 있는 정도 | |
신뢰성 | 성숙성 (Maturity) | 소프트웨어 구성요소가 표준적 환경에서 신뢰도 요구를 충족시키는 정도 |
가용성 (Availability) | 사용자가 원하는 시간에 사용 및 접근이 가능한 정도 | |
결점 완화 (Fault tolerance) | 하드웨어 혹은 소프트웨어에 결함이 존재하더라도 시스템, 제품 및 구성요소가 이를 극복하고 의도한 대로 작동하는 정도 | |
회복 가능성 (Recoverability) | 중단 및 실패 발생 시, 제품 혹은 시스템이 데이터를 복구할 수 있는 정도 | |
보안성 | 기밀성 (Confidentiality) | 제품 혹은 시스템이 반드시 권한이 있는 데이터에만 접근 가능하도록 하는 정도 |
무결성 (Integrity) | 시스템, 제품 혹은 구성요소가 컴퓨터 프로그램 혹은 데이터에 대해 무단으로 접근 혹은 변경되는 것을 방지하는 정도 | |
부인 방지 (Non-repudiation) | 사건 및 행위 후에 부인하지 못하도록 행동 및 사건에 대해 입증되는 정도 | |
책임성 (Accountability) | 시스템 내의 각 개인을 유일하게 식별하여 언제 어떠한 행동을 하였는지 기록하여 필요 시 그 행위자를 추적할 수 있는 정도 | |
진본성(인증성) (Authenticity) | 사건 및 행동에 대해 행위자임을 증명할 수 있는 정도 | |
유지보수성 | 모듈성 (Modularity) | 최소의 영향을 가진 개별 구성요소로 구성된 정도 |
재사용성 (Reusability) | 자산이 하나 이상의 시스템에서 사용될 수 있거나, 다른 자산을 구축하는 데 사용될 수 있는 정도 | |
분석성 (Analyzability) | 시스템 변화에 대해 어떠한 영향을 받는지 효과적이고 효율적으로 평가할 수 있는 정도 | |
수정 가능성 (Modifiability) | 제품 혹은 시스템이 장애 없이 효과적이고 효율적으로 수정될 수 있는 정도 | |
시험 가능성 (Testability) | 제품 혹은 시스템에 대해 테스트 기준을 효과적이고 효율적으로 수립할 수 있는 정도. 또는 이들 기준을 만족하는지 효과적이고 효율적으로 테스트할 수 있는 정도 | |
이식성 | 적용성 (Adaptability) | 제품 혹은 시스템이 다른 하드웨어, 소프트웨어 혹은 기타 사용 환경에 효과적이고 효율적으로 적용될 수 있는 정도 |
설치성 (Installability) | 제품 또는 시스템이 성공적으로 설치 및 제거될 수 있는 정도 | |
대치성 (Replaceability) | 제품이 동일한 환경에서 동일한 목적을 위해 다른 지정 소프트웨어 제품으로 대치될 수 있는 정도 |
소프트웨어 품질의 분류
소프트웨어에는 작은 품질(Little Quality)과 큰 품질(Big Quality)이라는 두 가지 품질이 있습니다. 작은 품질은 결함이 없는 소프트웨어이고 이는 개발자가 주로 생각하는 품질의 개념입니다. 단지 소프트웨어가 요구사항 명세 만족 여부를 기준으로 품질을 판단합니다. 반면에 큰 품질은 고객의 관점으로 고객의 만족 여부가 기준이 됩니다. 즉, 고객이 원하는 것을 정확하게 탁월하게 구현하여 고객 만족을 제공하는 것입니다.
이제 작은 품질을 넘어서 큰 품질을 더 중요하게 여기는 시대가 왔습니다. 여기에는 세 가지 의미가 있습니다. 첫째는 이제 제품과 서비스 제공이 생산자 중심에서 고객중심으로 넘어갔다는 뜻입니다. 즉, 고객의 선택이 중요한 시대이고, 아무리 우수한 제품이라도 고객의 선택이 없으면 불필요한 제품으로 남고 맙니다. 둘째는 제품 자체보다 제품을 만드는 과정에 초점을 맞추게 되었습니다. 즉, 좋은 프로세스를 준수하면 좋은 제품이 나올 수 있다는 의미입니다. 셋째는 고객의 기대사항을 충족시키고 최고를 추구하는 것에 있습니다. 표준화를 통해 균질한 제품과 서비스를 제공하는 전략을 취하여 효율성을 높이는 작업을 합니다. 효율성은 목적과 상관없이 경제적 능률을 높이려고 하는 특성입니다. 또한 고품질의 제품과 서비스를 제공하는 전략을 취해서 최고의 대접을 받고 있다는 느낌을 갖게 만들어서 효과성을 높이는 작업을 하는 경우도 있습니다. 효과성은 어떤 일을 하면서 목적에 부합하려는 특성입니다.
품질에 대한 인식이 전환되는 지금의 시대에서 효과성이 상대적으로 더 중요하게 부각되는 것은 분명해 보입니다. 효과성을 무시하면서 비즈니스의 성공을 기대하기에는 무리가 있습니다. 이제 고객이 기대하는 매력을 갖춘 제품과 서비스를 제공해야 합니다. 고객을 감동시키려면 기대사항을 충족시켜야 한다는 의미입니다.
품질은 다음 세 가지로도 구분할 수 있는데 기본 품질에서 매력품질을 만족 시키는 방향으로 나아가야 합니다.
기본 품질 | 당연한 최소한의 고객요구에 부합함 당연한 제품 특성 및 기능의 유지, 불량 없음 예) 자동차의 기본 기능(핸들, 기어 등) |
성능 품질 | 추가로 기대하거나 특별한 요구사항을 만족하는 수준 경쟁제품과 비교우위의 성능, 기능, 서비스 등 예) 자동차의 연비, 안정성, 부가장착품 등 |
매력 품질 | 기대하지 않은 부가적인 기대를 충족하는 수준 특별한 부가서비스, 디자인, 사회적 인정 등 예) 자동차의 브랜드 이미지, 최첨단 기능, 부가적 경품 등 |
* 해당 내용은 [소프트웨어 품질 관리 실무 가이드] 책에서 일부 요약 발췌하였습니다.
'정보 > IT' 카테고리의 다른 글
상황별 추천 공동 비용 관리 앱 TOP 4 (0) | 2024.12.22 |
---|