[소프트웨어공학] 1.5 좋은 소프트웨어의 기준

이두팔·2021년 4월 15일
0

소프트웨어공학

목록 보기
5/12

1.5 좋은 소프트웨어의 기준

소프트웨어의 특성을 좌우하는 여러 품질 기준이 존재한다. 사용성(usability)이나 신뢰도(reliability)와 같이 사용자가 인지할 수 있는 것을 외부 품질이라고 한다. 내부 품질의 향상은 개발자가 외부 품질을 개선하는데 도움을 줄 수 있다. (ex: 잘 작성된 요구사항, 설계 문서)

소프트웨어의 신뢰도(reliability)

  • 사용자가 소프트웨어를 신뢰하는 정도. 오랜 시간 작동되며, 알려진 치명적 오류가 없으며, 오류발생 후에 무난히 복구되며 강건하다는 의미를 포함
  • 소프트웨어 고장 함수가 욕조 곡선과 유사한 형태를 가지는 경우가 있음

소프트웨어는 마모되지 않는데, 그 이유로

  1. 버그를 수정하거나 새로운 기능을 추가하면서 새롭게 생기는 오류 때문
  2. 예상하지 못했던 기반 하드웨어나 운영체제를 변경하는 경우가 생김
  3. 사용자가 SW에 익숙해지면서 적정 용량이나 성능을 초과하는 입력을 주어 SW가 스트레스를 받게 되고, 충분히 테스트되지 못한 기능들이 사용되어 오류 발생

소프트웨어의 정확성(corretness)

  • 신뢰도와 아주 밀접한 관계. 차이점으로는 소프트웨어의 행위가 요구사항에 비추어 아주 작은 차이가 있는 경우에 이것은 결함으로 간주

소프트웨어의 성능(preformance)

  • 지정된 시간 안에 컴퓨터 시스템에서 처리할 수 있는 작업량

소프트웨어의 사용성(usability)

  • 본래의 설계 목적에 따라 효율성 있게 사용할 수 있는 정도
  • prototyping 기술을 적용하여 개발되면 사용성을 높일 수 있다

소프트웨어의 상호운영성(interoperability)

  • 소프트웨어 시스템이 다른 시스템과 공존하며 협력할 수 있는 능력을 의미한다.

소프트웨어의 유지보수성(maintainability)

  • 소프트웨어는 유연하기 때문에 변경되기 쉽다.
  • 유지보수 작업은 새로운 기능 추가, 기존 기능 개선, 환경의 변화에 따른 기존 기능의 수정, 그리고 존재하는 오류를 수정하는 경우가 있다.

소프트웨어의 이식성(portability)

  • 다른 환경에서 쉽게 동작이 가능하다면 소프트웨어의 이식성이 좋다고 한다.

소프트웨어의 검사성(verifiability)

  • 위에서 기술한 품질 요소들을 포함하여 소프트웨어의 속성들을 쉽게 검사할 수 있는 경우에 검사성이 좋다고 한다.
  • 측정하는 손쉬운 방법 중 하나는 성능이나 정확성과 같은 품질 요소를 검사하기 위한 코드를 삽입하는 것이다.

소프트웨어의 추적성(traceability)

  • 요구사항들 간 또는 요구사항, 시스템 설계, 소스 코드 간의 관계를 정의하고 기록하며 유지할 수 있는 방법이 있어야 추적성이 높다고 말할 수 있다.

다음과 같은 관계 정보가 유지되어야 한다.

  1. 요구사항으로부터 요구사항을 제안한 관련자를 파악
  2. 관련성이 있는 요구사항들을 파악
  3. 요구사항으로부터 관련 설계 문서를 파악
  4. 설계 문서로부터 관련 코드 조각을 파악
  5. 요구사항으로부터 테스트 계획서를 파악
  6. 테스트 계획서로부터 테스트 케이스를 파악
profile
Software Engineer

0개의 댓글