본문 바로가기

프로그래밍/CS

[소프트웨어 공학] 소프트웨어 품질

소프트웨어 품질 표준

  • ISO/IEC 9126
    • 소프트웨어 제품의 품질 분류와 메트릭 정의한 표준
    • 사용자 관점에 따라 품질 특성을 6가지로 분류
      1. 기능성
      2. 신뢰성
      3. 사용성
      4. 효율성
      5. 유지보수성
      6. 이식성
  • 외부 메트릭 : 완성된 소프트웨어를 실행하여 제품의 품질 측정 ex) 평균 고장 간격(MTBF)
  • 내부 메트릭 : 개발 과정 중 소프트웨어 산출물의 품질 측정
  • 맥콜 : 11개의 품질 요인, 23개의 품질 기준(개발자 관점) 제시.

프로세스 품질 표준

  • ISO/IEC 15504 (SPICE; Software Process Improvement and Capability dEtermination)
    • 프로세스 평가 프레임워크
  • ISO/IEC 12207
    • 소프트웨어 생명주기 프로세스 공통 프레임워크
  • CMMI
    • 조직의 프로세스 역량 성숙도 평가하고 개선하기 위한 모델
      • 단계적 모델 (성숙도 수준 평가) : 1~5 수준
      • 연속적 모델 (역량 수준 평가) : 20여 개 영역에 대해 각각 0~3 등급
    • CMMI 성숙도 의미
      • 수준 1 : 초기 상태
      • 수준 2 : 관리됨 (기본적인 프로젝트 관리 프로세스)
      • 수준 3 : 정의됨 (조직 특성에 맞는 표준 프로세스)
      • 수준 4 : 양적으로 관리됨 (프로젝트 정략적으로 관리 및 통제됨)
      • 수준 5 : 최적화됨 (지속적인 개선 활동 정착화)
  • ISO 9000
    • 품질 관리 시스템의 기본과 관련된 용어 설명
  • ISO 9001
    • 품질 관리 시스템의 요건 설명 -> 조직에 품질 경영 체제 도입 및 프로세스 품질 인증 획득

소프트웨어 품질 보증 (SQA; Software Quality Assurance)

: 프로세스 대상으로 사전 예방 목적 

cf) 품질 제어 (QC) : 제품을 대상으로 결함 발견하여 수정하기 위한 목적

  • 확인 : 소프트웨어가 명세서와 일치하는가
  • 검증 : 고객의 기대를 충족하는가
  • 검토 (= 정적 테스트) : 프로그램 실행하지 않고 검토 회의
    • 공식 기술 검토(공식적 회의)
    • 인스펙션(동료 및 전문가 팀)
    • 코드 워크스루(비공식적, 본인)

신뢰도

: 결함 != 고장

  • MTTF (Mean Time To Failures) : 가동~고장 발생 까지의 평균 시간. 고장 복구 고려하지 않음
  • MTBF (Mean Time Between Failures) : 고장 복구 후~고장 까지의 평균 간격
  • AVAIL : 전체 시간에서 가용 시간 비율. 논스톱 시스템 신뢰도 측정에 사용
  • ROCOF : 고장 발생 비율. 규칙적이고 빈번한 서비스 요청 들어오는 시스템 신뢰도 측정