품질 요구사항 (1과목)

개발로 쓰는 개발 노트·2023년 6월 27일

정보처리기사 준비

목록 보기
14/57

품질 요구사항

  • 소프트웨어의 품질은 소프트웨어의 기능, 성능, 만족도 등 소프트웨어에 대한 요구사항이 얼마나 충족하는가를 나타내는 소프트웨어 특성의 총체이다.
  • 소프트웨어의 품질은 사용자의 요구사항을 충족시킴으로 확립된다.
  • ISO/IEC 9126
    • ISO/IEC 9126은 소프트웨어 품질 특성과 평가를 위한 표준 지침으로 국제 표준으로 널리 사용된다.
    • ISO/IEC 9126은 2011년에 호환성과 보안성을 강화하여 ISO/IEC 25010으로 개정되었다.
    • ISO/IEC 9126에서 제시한 소프트웨어의 품질 특성
      • 기능성
      • 신뢰성
      • 사용성
      • 효율성
      • 유지 보수성
      • 이식성
  • ISO/IEC 25010
    • 소프트웨어의 품질 특성
      • 기능 적합성
      • 성능 효율성
      • 호환성
      • 사용성
      • 신뢰성
      • 보안성
      • 유지 보수성
      • 이식성
  • ISO/IEC 12119
    • ISO/IEC 9126을 준수한 품질 표준
    • 테스트 절차를 포함하여 규정하였음.
  • ISO/IEC 14598
    • 소프트웨어 품질의 측정과 평가에 필요 절차를 규정한 표준으로 개발자, 구매자, 평가자 별로 수행해야 할 제품 평가 활동을 규정함.

기능성(Functionality)

  • 소프트웨어가 사용자의 요구사항을 정확하게 만족하는 기능을 제공하는지 여부를 나타낸다.
  • 상세 품질 요구사항은 다음과 같다.
    • 적절성/적합성(Suitability)
      • 지정된 작업과 사용자의 목적 달성을 위해 적절한 기능을 제공할 수 있는 능력
    • 정밀성/정확성(Accuracy)
      • 사용자가 요구하는 결과를 정확하게 산출할 수 있는 능력
    • 상호 운용성(Interoperability)
      • 다른 시스템들과 서로 어울려 작업할 수 있는 능력
    • 보안성(Security)
      • 정보에 대한 접근을 권한에 따라 허용하거나 차단할 수 있는 능력
    • 준수성(Compliance)
      • 기능과 관련된 표준, 관례 및 규정을 준수할 수 있는 능력

신뢰성(Reliability)

  • 소프트웨어가 요구된 기능을 정확하고 일관되게 오류 없이 수행할 수 있는 정도를 나타낸다.
  • 상세 품질 요구사항은 다음과 같다.
    • 성숙성(Maturity)
      • 결함으로 인한 고장을 피해갈 수 있는 능력
    • 고장 허용성(Fault Tolerance)
      • 결함 또는 인터페이스 결여 시에도 규정된 성능 수준을 유지할 수 있는 능력
    • 회복성(Recoverability)
      • 고장 시 규정된 성능 수준까지 다시 회복하고 직접적으로 영향 받은 데이터를 복구할 수 있는 능력

사용성(Usability)

  • 사용자와 컴퓨터 사이에 발생하는 어떠한 행위에 대하여 사용자가 쉽게 배우고 사용할 수 있으며, 향후 다시 사용하고 싶은 정도를 나타낸다.
  • 상세 품질 요구사항은 다음과 같다.
    • 이해성(Understandability)
      • 소프트웨어의 적합성, 사용 방법 등을 사용자가 이해할 수 있는 능력
    • 학습성(Learnability)
      • 소프트웨어 애플리케이션을 학습할 수 있도록 하는 능력
    • 운용성(Operability)
      • 사용자가 소프트웨어를 운용하고 제어할 수 있도록 하는 능력
    • 친밀성(Attractiveness)
      • 사용자가 소프트웨어를 다시 사용하고 싶어 하도록 하는 능력

효율성(Efficiency)

  • 사용자가 요구하는 기능을 할당된 시간 동안 한정된 자원으로 얼마나 빨리 처리할 수 있는지
  • 상세 품질 요구사항
    • 시간 효율성(Time Behavior)
      • 특정 기능을 수행할 때 적절한 반응 시간 및 처리 시간, 처리율을 제공할 수 있는 능력
    • 자원 효율성(Resource Behavior)
      • 특정 기능을 수행할 때 적절한 자원의 양과 종류를 제공할 수 있는 능력

유지 보수성(Maintainability)

  • 환경의 변화 또는 새로운 요구사항이 발생했을 때 소프트웨어를 개선하거나 확장할 수 있는 정도를 나타낸다.
  • 상세 품질 요구사항
    • 분석성(Analyzability)
      • 결함이나 고장의 원인, 수정될 부분들의 식별을 가능하게 하는 능력
    • 변경성(Changeability)
      • 결함 제거 또는 환경 변화로 인한 수정 등을 쉽게 구현할 수 있는 능력
    • 안정성(Stability)
      • 변경으로 인한 예상치 못한 결과를 최소화할 수 있는 능력
    • 시험성(Testability)
      • 소프트웨어의 변경이 검증될 수 있는 능력

이식성(Portability)

  • 소프트웨어가 다른 환경에서도 얼마나 쉽게 적응할 수 있는지
  • 상세 품질 요구사항
    • 적용성(Adaptability)
      • 원래의 목적으로 제공되는 것 외에 다른 환경으로 변경될 수 있는 능력
    • 설치성(Installability)
      • 임의의 환경에 소프트웨어를 설치할 수 있는 능력
    • 대체성(Replaceability)
      • 동일한 환경에서 동일한 목적을 위해 다른 소프트웨어를 대신하여 사용할 수 있는 능력
    • 공존성(Co-existence)
      • 자원을 공유하는 환경에서 다른 소프트웨어와 공존할 수 있는 능력

profile
비전공자 개발초보입니다!

0개의 댓글