12주차 소프트웨어 공학: 품질

01. 품질의 이해

  1. 품질 정의

    • 물건의 좋은 정도를 나타내는 개념
    • 하드웨어 품질: 규격서대로 제작, 사용자의 요구 만족
    • 소프트웨어 품질: 요구 분석 명세서 작성이 어려움, 사용 후 만족도 평가​
  2. 소프트웨어 품질 정의

    • 사용자의 요구와 부합되는 정도
    • 결함 없는 프로그램, 요구 분석 명세서대로 만든 소프트웨어
    • US DoD: 사용자 요구 사항 만족 능력
    • IEEE: 필요한 속성 보유 정도, 기대 수준 만족 정도​
  3. 관점에 따른 품질

    • 프로젝트 관리자: 추가 부담 없는 소프트웨어
    • 개발자: 개발 및 수정이 쉬운 소프트웨어
    • 유지보수자: 코딩 규칙 및 표준 준수, 주석 많음
    • 구매 담당자: 값이 싼 소프트웨어
    • 사용자: 배우기 쉽고 사용 편리, 다양한 기능, 응답 시간 빠름​
  4. 품질 목표

    • 처음부터 품질 고려한 계획
    • 품질 요구 사항 명세서 작성
    • 단계별 산출물 점검​

02. 품질 요소와 품질 평가 모델

  1. McCall의 품질 요소

    • 제품 운영
      • 정확성: 사용자의 기능적 요구 사항 일치
      • 효율성: 자원 사용 정도
      • 무결성: 데이터 보호 능력
    • 제품 개선
      • 유지보수성: 변경 용이성
      • 유연성: 환경 변화 적응력
      • 테스트 용이성: 기능 수행 검증 용이성
    • 제품 변환
      • 상호운용성: 다른 소프트웨어와 결합 용이성
      • 재사용성: 다른 애플리케이션에서 사용 가능성
      • 이식성: 환경 변화 적응 용이성​
  2. ISO/IEC 9126 모델

    • 제품 품질 평가 모델
    • 6가지 품질 특성과 프레임워크 정의
    • 외부 품질 (ISO/IEC 9126-2)
      • 개발자/평가자/구매자 사용 가능 외부 메트릭스 제공
      • 성능, 오류 발생, 사용 용이성 평가
    • 내부 품질 (ISO/IEC 9126-3)
      • 내부 메트릭스 제공, 제품 완성 전 품질 문제점 지적
    • 사용 품질 (ISO/IEC 9126-4)
      • 사용 품질 정의, 사용자 요구 충족 정도 평가​
  3. ISO/IEC 14598 모델

    • 소프트웨어 제품의 품질 평가 방법과 절차 정의
    • 특성
      • 반복성, 재생산성, 공정성, 객관성
    • 품질 측정 및 평가 방법
      • 계획과 관리, 개발자/구매자/평가자를 위한 프로세스, 평가 모듈 제공​
  4. ISO/IEC 12119 모델

    • 패키지 소프트웨어 품질 요구 사항 및 테스트 국제 표준
    • 주요 테스트 평가 항목: 기능성, 신뢰성, 사용성, 이식성​
  5. ISO/IEC 25000 모델

    • 소프트웨어 품질 평가 모델로부터 전체 품질 평가 표준 방안 제시​

03. 제품 품질 특성 평가 모델

  1. ISO/IEC 9126의 품질 특성

    • 기능성, 신뢰성, 사용성, 효율성, 유지보수 용이성, 이식성​
  2. ISO/IEC 14598의 제품 품질 측정 및 평가 방법

    • 개발자, 구매자, 평가자를 위한 프로세스와 평가 모듈 제공​

04. 프로세스 품질 특성 평가 모델

  1. 프로세스 품질

    • 소프트웨어 제품의 최종 품질에 영향을 주는 소프트웨어 개발 과정
    • ISO 9000 모델
      • 품질 관리와 품질 보증을 위한 국제 표준 모델
      • 품질 프로세스의 다양한 측면 기술, 공급자와 구매자 간 관리 책임 명시​
    • ISO 12207 모델
      • 소프트웨어 생명주기 프로세스 표준​
  2. 표준 프로세스의 필요성

    • 소프트웨어 개발에서 매뉴얼 역할
    • 생산성 향상 및 품질 향상 목표​
  3. CMMI 모델

    • 조직의 프로세스 개선을 위한 모델
    • 구성
      • 능력, 성숙도, 모델, 통합
      • 성숙도가 높은 조직: 책임감 있는 조직, 객관적이고 정량적 근거에 따른 프로세스 측정 및 개선​
  4. CMMI의 평가 방법

    • 단계적 표현의 성숙 단계, 연속적 표현의 능력 단계로 평가​
  5. SPICE(ISO 15504) 모델

    • 소프트웨어 프로세스 평가를 위한 프레임워크 제공
    • 정보 시스템 분야에 특화된 품질 표준​

06. 품질 관리

  1. 품질 관리

    • 개발 단계에서의 모든 활동과 산출물을 통제하고 보증​
  2. 품질 보증

    • 소프트웨어가 사용자 요구를 만족시키는지를 보장하기 위한 계획적이고 체계적인 활동
    • 문제점 조기 발견 및 제거, 개발 단계 전역에 걸친 보호 활동​