품질[Software Engeering]

SnowCat·2023년 2월 10일
0

CS - Software Engeerning

목록 보기
8/9
post-thumbnail

품질이란?

  • 소프트웨어에서 품질이란 개발된 소프트웨어에서 사용자의 요구사항을 만족할 수 있는 능력을 의미함
  • 좋은 품질의 소프트웨어가 되기 위해서는 요구분석명세서에 서술된 기능과 성능을 만족해야 함
  • 같은 소프트웨어라도 프로젝트 관리자, 개발자, 유지보수자, 구매 담당자, 사용자 관점에 따라 조금씩 품질에 대한 평가가 다를 수 있음
    프로젝트 관리자 관점에서는 처음 계획되로 개발이 완료되어 추가 비용부담이 없는 소프트웨어를 좋다고 생각할 수 있음
    개발자 관점에서는 개발하기 쉽고 코드의 유지보수가 쉬운 코드를 좋은 소프트웨어라 생각할 수 있음
    유지보수자 관점에서는 코드 컨벤션을 따르고 가독성이 좋은 코드를 좋은 소프트웨어라 생각할 수 있음
    • 구매 담당자 관점에서는 저렴한 소프트웨어를 좋다고 생각할 수 있음
    • 사용자 관점에서는 성능이 좋고, 사용하기 편리한 소프트웨어를 좋은 소프트웨어라 생각할 수 있음
      품질이 좋은 소프트웨어를 개발하기 위해서는 다음과 같은 요건을 만족시켜야 함

제품 품질 특성 평가 모델

  • 소프트웨어 제품이 사용자 의도대로 기능을 수행하는지를 평가하는 모델

ISO/IEC 9126 모델

  • 소프트웨어 품질을 평가하기 위한 매우 일반화된 모델

  • 고객 관점에서 소프트웨어에 관한 품질 특성, 부특성을 정의함

  • 소프트웨어 품질 특성과 척도에 관한 지침으로 사용될 수 있으며, 개발되는 소프트웨어 품질을 측정하는 기준으로 사용됨

  • ISO/IEC 9126 모델은 세부적으로 4개로 나눌 수 있음
    ISO/IEC 9126-1(품질 모델): 6가지 품질 특성과 소프트웨어 제품의 품질 평가를 위한 프레임워크를 정의함
    ISO/IEC 9126-2(외부 품질): 개발자를 위한 표준으로 개발자, 구매자, 평가자가 품질 트성에 대해 사용할 수 있는 외부 매트릭스를 제공함
    ISO/IEC 9126-3(내부 품질): 구매자를 위한 표준으로 소프트웨어 제품 품질을 평가할 수 있도록 도와주며, 해당 소프트웨어 제품을 완성하기 전에 미리 품질의 문제점들을 지적함
    ISO/IEC 9126-4: 사용자를 위한 표준으로 사용 품질을 정의함

  • 품질 특성은 아래 사진과 같음

    기능성: 개발 전에 의도했던 되로 정확하게 사용자의 요구를 만족하는 기능을 제공하는가?
    신뢰성: 소프트웨어를 신뢰하고 사용할 수 있는가?
    사용성: 소프트웨어를 사용하기에 편리한가?
    효율성: 소프트웨어의 작동이 효율적인가?
    유지보수 용이성: 코드를 유지보수하기에 편리한가?
    이식성: 여러 환경에서 소프트웨어를 사용 가능한가?

    ISO/IEC 14598 모델

  • 소프트웨어 공급자와 구매자 사이에서 소프트웨어 개발 과정이나 개발된 제품의 품질을 객관적으로 평가하기 위한 방법과 절차를 정의한 국제 표준 규격

  • 모델의 특성은 다음과 같음

    • 반복성: 특정 제품을 동일한 평가자가 동일 기준을 적용해 평가할 때 동일한 결과가 나와야 함
    • 재생산성: 특정 제품을 다른 평가자가 동일 기준을 적용해 평가할 때 동일한 결과가 나와야 함
    • 공정성: 평가가 특정한 결과를 내기 위해 불공평한 편견이 없어야 함
    • 객관성: 평가는 주관적 판단을 최소화하고 객관적 자료를 근거로 해야 함
    • ISO/IEC9126 표준 준수: 모델에 규정한 표준을 준수해야 함
  • 소프트웨어 평가 절차에 대한 표준은 다음과 같이 규정하고 있음

    • 일반 개요: 소프트웨어 제품의 품질 평가를 수행하기 위한 일반적인 개요로 범위와 용어를 정의하고 ISO/IEC 9126 모델간의 관계를 설명하며 평가 프로세스, 평가 모듈에 대한 로드맵을 제공
    • 계약과 관리: 품질 평가 척도를 프로젝트 성격에 따라 선정하고 적용하기 위한 제품 품질 측정 계획의 준비와 구현을 다룸
    • 개발자를 위한 프로세스: 개발자가 준수할 사항들을 담음
    • 구매자를 위한 프로세스: 소프트웨어 제품을 구매하기 위한 계획을 수립할 때 사용
    • 평가자를 위한 프로세스: 품질 평가를 평가자가 실행할 때 사용
    • 평가 모듈을 위한 문서: 소프트웨어 제품 품질을 평가할 때 사용할 수 있도록 평가 모델에 대한 기본적인 가이드와 이론적인 모델을 제공

ISO/IEC 12119 모델

  • 패키지 소프트웨어의 일반적인 제품 품질 요구사항 및 테스트를 위한 국제 표준 규격
  • 규격 내용으로는 품질, 지침, 세부 인증 등이 있으며, 요건 사항으로는 명확화, 유서 문서 정의 변경성, 환경 명세, 보안 등이 있음
  • 패키지 소프트웨어와 수주 개발 소프트웨어에 대해 평가를 진행 할 수 있음
  • 테스트 대상으로는 소프트웨어 제품 명세서, 사용자 메뉴얼, 사용자 요구 테스트 결과서 등이 있음
  • 평가 절차는 제품 설명서 테스트 -> 사용자 문서 테스트 -> 실행 프로그램 테스트 -> 테스트 기록 -> 보고서 작성 순으로 이루어짐
  • 패키지 품질 요구사항에서는 ISO/IEC 9126 모델의 소프트웨어 패키지 품질 요구사항과 테스트 품질 모델을 따르며, 이는 아래 사진과 같음

ISO/IEC 25000 모델

  • 통일되고 일관성 있는 소프트웨어 품질 평가를 위한 표준 문서 모델이며, SQuaRE(Software Quality and Requirement Evalulation)이라고도 함
  • 소프트웨어 모델로부터 시작해 전체적인 품질 평가를 위한 표준 방안을 제시하고 있음
  • ISO/IEC 25000의 국제 표준 문서는 아래와 같이 5개 부분으로 구성되어 있음

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

  • 프로세스는 소프트웨어 제품의 최종 품질에 영향을 줄 수 있는 소프트웨어 개발 과정에 대한 품질을 의미함
  • 프로세스는 품질 특성 평가 모델은 개발 및 관리 프로세스를 평가할 수 있는 모델을 의미함

ISO 9000 모델

  • 국제 표준화 기구(ISO)가 정한 품질 관리와 품질 보증을 위한 모델
  • 일반 품질 인증이 단순히 제품의 품질 규격 합격 여부만을 확인하는 것과 다르게 해당 제품이나 서비스의 설계에서 부터 생산시설, 시험 검사등 전반에 걸쳐 규격 준수 여부를 확인
  • 품질 요소의 구성은 아래와 같음

ISO 12207 모델

  • 개발 생명주기 프로세스인 소프트웨어 생성부터 폐기까지의 프로세스에 해당되는 것
  • 그림과 같이 크게 기본 생명주기, 지원 생명주기, 조직 생명주기로 나눠서 프로세스 품질 특성을 평가하는 모델임

CMMI 모델

  • CMMI는 기업에 표준 프로세스를 만들 수 있는 지침을 제시함
  • 프로세스 표준화의 기준과 방향을 제시함으로 조직 프로세스에 대한 측정 뿐 아니라 평가 지표로도 활용할 수 있음
  • CMMI의 각 약자는 다음과 같은 의미를 지님
    • Capability: 개발 목표(기간, 비용 품질 등)를 달성할 능력이 있는가?
    • Maturity: 객관적이고 정량적인 근거에 의해 프로세스가 측정되고 피드백되는 성숙도가 높은 조직인가?
    • Model: 수행 지침에 맞추어 프로세스가 진행되는가?
    • Integration: 여러 프로세스의 기준을 하나로 통합한 모델이라는 의미
  • CMMI에서는 소프트웨어 프로세스 성숙도를 5단계로 나누어 구분함
  • CMMI에서는 단계별 목적을 달성하기 위해 4가지 범주로 구분된 22개의 프로세서 영역을 구성함
  • 각각의 프로세서 영역을 만족하기 위해 일반 목표와 세부 목표를 만족시켜야 함
    일반 목표: 모든 프로세스 영역에 공통으로 적용되는 목표
    세부 목표: 특정 프로세스 영역에서만 적용되는 구체적인 목표
  • CMMI의 평가 방법으로는 단계적 표현 방법의 성숙 단계와 연속적 표현 방법의 능력 단계로 나뉘어짐
    • 단계적 표현 방법 -> 각 프로세스 영역 중에서 가장 낮은 점수를 바탕으로 5단계의 성숙도 레벨을 평가
    • 연속적 표현 방법 -> 각각의 프로세스 영역별로 능력 수준을 분석

SPICE 모델

  • 소프트웨어 프로세스에 대한 개선 및 능력측정 기준에 대한 국제 표준
  • SPICE 모델의 프로세스와 프로세스 수행 능력 단계는 다음과 같이 표현됨

출처:
쉽게 배우는 소프트웨어 공학 2판, 김치수, 한빛아카데미

profile
냐아아아아아아아아앙

0개의 댓글