소프트웨어 공학 공부

소프트웨어 공학 5주차 - 요구분석

NaZZU 2025. 4. 1. 17:34

요구사항의 정의

  • 사용자와 개발자가 합의한 범위 내에서 사용자가 필요로 하는 기능
    • 시스템이 제공하는 기능 요구와 품질과 같은 비기능 요구로 나뉨

요구분석의 목적

  • 목적 사용자에게서 필요한 요구사항을 추출해 목표하는 시스템의 모델을 만들고, '요구분석명세서'를 작성하기 위해
  • 요구분석명세서
    • 요구분석 단계에서 생성되는 최종 산출물로 시스템의 기능이 무엇인지 에만 초점을 두고 정리
    • 요구분석 단계 후 설계단계에서는 설계서가 만들어지는데 이 문서는 어떻게 구현할지 기술

요구사항 수집

  • 자료 수집
  • 인터뷰
  • 설문 조사

요구분석 절차

  1. 자료 수집
  2. 요구사항 도출
  3. 문서화 
  4. 검증

기능 요구사항

  • 사용자가 원하는 기능
  • 사용자는 시스템을 통해 기능을 제공받기 바라며 시스템은 사용자에게 필요한 기능을 제공
  • 사용자가 원하는 기능은 요구분석 명세서에 완전하고 일관성 있게 표현해야 하며 시스템에도 전부 반영
  • 완전성 : 사용자가 원하는 모든 기능이 포함 / 일관성 : 요구사항 간에 모순이 있어서는 안 됨

비 기능 요구사항

  • 수행 가능한 환경, 품질, 제약 사항 등을 말함
  • 비 기능 요구사항이 매우 중요한 소프트웨어는 군사 무기나 의료 장비 등이 해당

제약 사항

  •  개발 소프트웨어가 수행될 환경에 의한 조건

품질

  • 신뢰성
    • 신뢰성 높은 소프트웨어의 조건
      시스템에 오류가 있더라도 고장을 일으키지 않고 회피할 수 있는 능력이 높아야 함
      고장이 발생하더라도 이전 수준으로 성능이 회복되어야 함
      고장으로 영향을 받은 데이터들이 정상적으로 잘 복구됨
  • 가용성
    • 소프트웨어가 총 운용 시간 동안 얼마나 정상적으로 고장 없이 가동되었는지를 비율로 나타냄
    • MTBF (평균 정상 작동 시간 또는 고장 간 평균 시간)
    • MTTR (평균 수리 시간)
    • MTTR(고장까지의 평균 시간)