Software Engineering

[소프트웨어공학] 제4장 소프트웨어 품질 (QA/QC)

iseop 2023. 5. 15. 20:05   인쇄용 버전

1. 단원 요약

  • SW 품질
    • 생산자 시각: 요구사항 만족, 개발 표준 준수 여부
    • 고객 시각: 사용 목적과 기대에 부합하는지 여부
  • SW 품질의 분류
    • 관점에 따른 분류: 사용자 관점, 개발자 관점, 프로젝트 관리자 관점
    • 외부/내부 특성
      • 외부 특성: 사용자 관점에서 신뢰성/사용성 등 실행되는 코드의 행위를 측정한다.
      • 내부 특성: 개발자 관점에서 문서/코드에 대한 정적 평가를 수행한다.
    • 제품/프로세스 특성
      • 제품 특성: SW 제품 자체에 대한 품질을 평가한다.
      • 프로세스 특성: SW 프로세스에 대한 품질을 평가한다. (일정, 비용, 위험관리 등)
  • SW 제품 품질 표준: ISO/IEC 9126, 14598, 25000
    • ISO/IEC 9126: 6가지 품질 특성과 그 부특성들을 정의
      1. 기능성: 적합성, 정확성, 상호운영성, 보안성, 준수성
      2. 신뢰성: 성숙성, 결함내구성, 복구성
      3. 사용성: 이해성, 학습성, 운영성, 매력성
      4. 효율성: 시간효율성, 자원효율성
      5. 유지보수성: 분석성, 변경성, 안정성, 시험성
      6. 이식성: 적응성, 설치성, 공존성, 대체성
    • ISO/IEC 9126-2: 외부 메트릭(실행 중인 SW의 행위를 평가)을 정의
    • ISO/IEC 9126-3: 내부 메트릭(SW 제품 자체를 평가)을 정의
    • ISO/IEC 9126-4: 사용자가 느끼는 제품의 사용 효과, 즉 사용 품질을 정의
      • 효율성, 생산성, 안전성, 만족성
    •  맥 콜의 품질 특성: 11개의 사용자 관점 특성, 23개의 개발자 관점 특성
  • SW 개발 프로세스 품질 표준: ISO 9000, CMMI, ISO/IEC 15504 (SPICE), ISO/IEC 12207
    • 프로세스 품질은 내부 품질에, 내부 품질은 외부 품질에, 외부 품질은 사용 품질에 영향을 미친다.
    • ISO 9000 시리즈: "품질 경영" 인증
      • 9000: "품질관리 시스템"에 대한 정의
      • 9001: 품질관시 시스템 인증 요건에 관한 정의(인증 여/부)
    • CMMI: ISO9001과 ISO/IEC 15504을 통합한 SW 개발 프로세스 성숙도 평가인증
      • 범주 > 역량 영역 > 실무 영역(PA) > 실무 지침(Practices) 순으로 구성
      • 연속적 모델 평가: 20여가지의 실무 영역을 대상으로 평가
        • 1. 미실행
        • 2. 초기
        • 3. 관리됨
        • 4. 정의됨
      • 단계적 모델 평가: 조직 전체의 프로세스 능력을 단일 등급으로 평가
        • 1. 초기
        • 2. 관리됨: 일정/비용 등 기본적 관리
        • 3. 정의됨: 표준 프로세스 존재
        • 4. 양적으로 관리됨: 프로젝트가 정량적으로 관리됨
        • 5. 최적화됨: 지속적 개선이 발생함
  • SW 품질 보증(Quality Assurance)
    • 품질 보증 계획: SQA(SW Quality Assurance) 수행을 위한 로드맵
    • SQA 계획의 순서
      • QA 조직 구성
      • SW품질/프로세스품질 표준 선정
      • 테스트 계획/절차/검토 방법 정의
      • 형상관리/위험관리 방법 정의
    • SQA 작업의 순서
      • 소프트웨어 테스트
      • 형상 관리(Configuration Management)
      • 품질 제어(Quality Control) 활동
  • SW 품질 제어(Quality Control)
    • 품질 제어: 프로세스와 제품이 QA 계획에 따라 개발되는지 확인하는 활동
    • 품질 제어는 결함 발견 및 수정에 관한 활동이다.
    • 이에 비해, 품질 보증은 결함을 사전에 예방하는 활동이다.
    • 품질 보증(QA)는 프로세스를, 품질 제어(QC)는 제품을 주 대상으로 한다.
  • 확인과 검증(Verification & Validation)
    • 확인(確認): 개발자가 제품과 명세가 일치하는지 확인(verify)하는 활동이다.
    • 검증(檢證): 사용자가 제품이 기대에 부합하는지 검증(validate)하는 활동이다.
  • 검토(Review)
    • 코드 워크스루: 동료 개발자 등이 코드를 평가하는 과정
    • 인스펙션: 동료 개발자 또는 전문가 등이 코드를 평가하는 과정
    • 공식 기술 검토(FTR, Formal Technical Review): 표준과 지침을 준수하였는지 전체적으로 검토하는 과정
  • 신뢰도
    • MTTF (F=Failure)
    • MTBF = MTTF + MTTR (R=Recovery)
    • AVAIL = MTTF / (MTTF + MTTR)
    • ROCOF(Rate of Occurrences of Failures): 고장 발생 비율

 

2. 연습문제 요약

  • ISO 9001은 인증 여/부만을 부여하지만, CMMI는 수준에 따른 등급을 부여한다.