소프트웨어 품질

allocProc·2020년 1월 13일
1

softwareEngineering

목록 보기
2/2

Software Quality

Software Quality의 정의

  • 소프트웨어가 본래 의도한대로 기능들이 얼마나 잘 작동하는지의 정도
  • 기준과 일치하는가 / 의도와 적합한가

하지만 Quality는

  • 절대적이지않으며
  • 다차원적이고
  • 제약에 종속적이며
  • 서로 독립적이지 않다.

Software Quality의 분류

  • External Quality vs. Internal Quality
  • 기준이 명확하지는 않다.
  • External Quality : 유저의 눈에 보이는 것
  • Internal Quality : 개발자의 관점에서 바라본 것
  • 하지만 Internal Quality는 개발자가 External Quality를 높일 수 있게 돕는다. (서로 연관이 있다.)
  • External Quality = Product Quality : 주로 측정 가능한 것 → 기능성, 유용성, 효율성
  • Internal Quality = Process Quality

왜 Software Quality는 다른 Quality와 다른가?

  • 눈에 보이지않는다.
  • Client는 SW관련 지식이 부족하다.
  • 요구사항이 매번 변한다.
  • HW와 SW의 발전 속도가 빠르다.
  • Client의 높은 기대감

Representative Qualities

  • Correctness

    • 정해진 기준(specification)에 따라 정확히 동작하는가
    • specification이 명확히 주어져야 한다.
  • Reliability

    • 유저가 SW를 믿고 의지할 수 있는가
    • failure가 얼마나 자주 일어나는지, 얼마나 치명적인지를 측정
    • 유저에 따라 상대적으로 느낄 수 있다.
    • reliability는 correctness를 보장하지만 correctness는 reliability를 보장하지 않는다.
  • Robustness

    • 요구 사항에 명시되어있지 않은 예상치 못한 환경에서도 합리적으로 작동하는가

      Untitled.png

  • Performance

    • 시간, 공간적 효율을 말한다.
    • 모니터링, 분석, 시뮬레이션으로 측정
    • 개발 시작하기 전부터 측정할 필요가 있다.
    • performance는 productivity와 직결된다.
  • User friendliness

    • 얼마나 쓰기 쉬운가
  • Verifiability

    • 검증가능한가
  • Maintainability

    • 유지보수가 가능한가
    • Corrective, Adaptive, Perfective
    • Repairability
      • SW가 오류를 수정할 수 있는가
      • 모듈화를 통해 이룰 수 있다.
    • Evolvability
      • 새로운 요구사항을 만족하기 위해 변화가 가능한가
      • 새로운 기능, 기존 기능의 변화
  • Reusability

    • 새로운 제품 제작을 위해 기존의 요소들을 활용할 수 있는가
  • Portability

    • 다른 환경에서도 작동할 수 있는가
  • Understandability

    • 설계를 얼마나 잘 이해할 수 있는가
    • Internal Quality이다. → External Quality에 영향을 준다.
    • 유지보수가 쉬워진다.
  • Interoperability

    • 기존의 다른 system과 잘 동작하는가 → 상호운용성
  • Productivity

    • SW생산과정의 quality이다.
    • 측정이 어렵다.
  • Timeliness

    • 제한된 시간에 맞춰서 제품을 제공할 수 있는가
    • Incremental delivery로 해결한다. → delivery를 나누어 한다.
  • Visibility

    • 개발과정을 document화 한다.
    • 눈에 보이지않는 부분이 눈에 보이게 한다.
    • 올바른 결정을 내리는데 도움을 준다.
profile
많이 부족합니다.

0개의 댓글