품질의 이해
소프트웨어 품질 정의: 사용자의 요구와 부합되는 정도
US DoD: 개발된 소픙트웨어가 사용자의 요구사항을 만족할 수 있는 능력
IEEE: 소프트웨어가 필요한 속성을 보유하고 있는 정도, 사용자의 기대 수준을 만족할 수 있는 정도를 결정하는 소프트웨어의 특성
프로젝트 관리자의 관점
추가 부담(기간, 비용)이 발생하지 않는 소프트웨어
개발자의 관점
개발하기 쉽고 사용 중 내용 추가 및 코드 수정이 쉽고 편리하게 변경 가능한 소프트웨어 -> 코딩 표준에 맞게 개발된 프로그램
유지보수자 관점
작성된 코드가 코딩 규칙, 표준을 따르고 주석문이 많이 포함된 소프트웨어 -> 가독성이 높고 쉽게 이해할 수 있게 개발된 소프트웨어
구매 담당자 관점
값이 싼 소프트웨어
사용자 관점
배우기 쉽고, 사용하기 편리하며 다양한 기능을 제공하고 응답시간이 빠른 소프트웨어
품질 목표
1. 정확성: 사용자가 요구하는 기능을 충족시키는 정도, 요구 분석 명세서와 일치하는 정도
2. 신뢰성: 사용자가 요구한 기능을 정확하고 일관괴게 원하는 정밀도로 수행할 수 있는 정도
3. 효율성: 사용자가 요구하는 기능을 수행하는 데 최소의 시간과 기억 용량을 사용해 요구되는 기능을 수행할 수 있느 정도
4. 무결성: 허가받지 않은 사용자가 데이터 접근을 통해 변경을 시도했을 떄 보호할 수 있는 정도
5. 사용성: 소프트웨어를 사용하는 데 있어서 혼란스러워 하거나 사용한느 수낙ㄴ에 고민하지 않도록 편리한 기능을 제공하는 정도
6. 유지보수 용이성: 프로그램 내에 존재하는 오류를 찾아 수정하고 패치할 때 쉽게 변경할 수 있는 정도
7. 테스트 용이성: 쉽고 철저하게 테스트할 수 있는 정도
8. 유연성: 운영 환경의 변화에 따라 새로운 기능을 추가하거나 다른 환경에 적용할 수 있게 운용되는 프로그램을 쉽게 수정할 수 있는 정도
9. 이식성: 다른 하드웨어 환경에서도 운용 가능하도록 쉽게 수정하여 이식할 수 있는 정도
10. 재사용성: 시스템의 일부나 전체를 다른 애플리케이션에서도 쉽게 상요할 수 있는 정도
11. 상호운용성: 한 소프트웨어를 다른 소프트웨어와 쉽게 연계하거나 결합하여 정보를 교환할 수 있는 정도
품질요소와 품질 평가 모델
1. 제품 운영
1.1 정확성: 개발된 소프트웨어가 사용자의 기능적 요구 사항을 담은 요구분석 명세서와 얼마나 일치하는지를 나타낸다
1.2 효율성: 사용자가 요구하는 기능을 수행하는데 CPU와 메모리 같은 자원을 얼마나 사용하는가와 관련된 특성이다
1.3 무결성: 허가받지 않은 사용자가 데이터 접근을 통해 변경을 시도했을 때 얼마나 보호할 수 있는지를 나타낸다
1.4 신뢰성: 소프트웨어가 명세된 대로 기능을 수행할 수 있는 능력을 나타낸다
1.5 가용성: 요청에 대한 응답을 할 수 있는 능력
2. 제품 개선
2.1 유지보수성: 사용중인 소프트웨어를 얼마나 쉽게 변경할 수 있는지, 변경한 후에도 문제없이 안정적으로 운영되는지를 나타낸다
2.2 유연성: 운영 환경의 변화에 따라 새로운 기능을 쉽게 추가할 수 있는지, 다른 환경에 적용할 수 있도록 운용되는 프로그램을 얼마나 쉽게 수정할 수 있는지르 나타낸다
2.3 테스트 용이성: 사용자가 요구하는 기능을 만족할 만큼 잘 수행하고 있는지에 대해 얼마나 쉽고, 철저하게 테스트할 수 있는지를 나타낸다
3. 제품 변화
3.1 상호운용성: 다른 소프트웨어와 얼마나 쉽게 연계 또는 결합하여 정보를 교환할 수 있는지르 나타낸다
3.2 재사용성: 시스템의 일부나 전체를 다른 애플리케이션에서도 얼마나 쉽게 사용할 수 있는지를 나타낸다
3.3 이식성: 하드웨어 또는 운영체제와 같은 환경에서 또 다른 환경으로 옮겨도 환경 변화에 무리없이 잘 작동할 수 있도록 프로그램을 수정해 이식하는 것이 얼마나 쉬운가를 나타낸다.