요구사항이란,
문제를 해결하기 위해 무엇을 구현해야 하는가에 대한 명세
- 시스템이 동작하는 방법이나 속성 혹은 특성을 설명
- 시스템 개발 프로세스의 제약조건이라고 볼 수 있음
그림 https://www.allofsoftware.net/2020/02/software-spec-series-5.html
요구사항 -> 소프트웨어 개발의 첫 단계
언제 발견하느냐에 따라 오류에 대한 수정 비용이 달라짐
해당 조직에서 프로젝트를 수행하여 시스템을 구현하는 이유
(이윤 증가, 비용 절감, 이윤 방어, 미래에 소용될 수 있는 비용을 피하거나 절감)
제품을 개발함으로써 얻을 수 있는 이득을 명확하게 함
비전과 범위 문서(vision and scope document)
예제
- 30~45세 연령대의 고수익 고객 수를 6개월 이내에 30% 증가
- 한 학기동안 도서관 이용자 수를 5% 증가
- 은행 창구 직원 유지비용을 25% 절감
비즈니스 요구사항(목표)을 만족할 수 있는지에 따라 범위 결정
이해관계자(stakeholder)가 기능 추가를 원하는 경우 제안된 변경이 비즈니스 목표를 달성하는데 어떤 도움이 되는지 판별
범위를 명확하게 함으로써 Scope creep 예방
- 고객이나 이해관계자로부터 프로젝트 본래의 목적과는 관련이 없는 기능들이 예산이나 기간, 자원 등을 조정없이 계속 추가하는 현상
범위 모델링 -> 배경도(Context Diagram), 유스케이스 다이어그램(Usecase Diagram)
구조적 분석 및 설계 기법에서 사용
그림: https://33cram.tistory.com/138
UML(Unified Modeling Language)
- usecase들을 통해 각 actor들이 system을 통해 달성하려고 하는 목표를 user requirement로 기술
그림 https://zdnet.co.kr/view/?no=00000039134587
예) 카페테리아 주문 시스템
[비즈니스 요구사항] : 추상적 X, 명확하게 수치로 표현
- 음식 낭비비용을 6개월 이내 40% 감소
- 운용비용을 12개월 이내에 15% 감소
- 평균 업무 집중 시간을 6개월 이내 직원당 15분 증가
[사용자 요구사항] : 사용자가 목표로 하는 태스크
- 식사 주문
- 메뉴 생성
- 급여 공제 등록
[기능적 요구사항]
- 고객이 급여 공제에 등록되어 있는지 확인
- 고객이 선택한 날짜에 이용가능한 메뉴 표시
- 결제 금액 계산
그림 https://ee-22-joo.tistory.com/2
Ian Sommerville이 분류
시스템이 제공하는 기능이나 서비스에 대한 제약
제품에 품질에 대한 비기능적 요구사항
- 사용성(Usability)
사용자 인터페이스 방식, 다국어 지원 요구사항 등 사용자가 소프트웨어를 어떻게 쉽게 사용할 수 있을지가 기술되는 요구사항
주어진 조건 하에서 주어진 시간동안 의도된 서비스를 장애 발생 없이 제공하는 능력
MTBF(Mean Time Between Failures) = 전체 가동 시간/장애 발생 수
Failure rate = 1/MTBF
주어진 시점에서 요청된 서비스가 제공되고 운영될 수 있는 확률, 사용자가 서비스를 요청했을 때, 서비스를 제공할 수 있는 확률을 말함
가용성(%) = MTTF/MTBF = MTTF/(MTTR+MTTF)
- MTTF(Mean Time To Failure): 오작동까지 걸리는 평균시간(정상적으로 운영되는 시간)
- MTTR(Mean Time To Refair): 고장을 수리하는 평균시간
- MTBF(Mean Time Between Failures) = MTTF + MTTR
그림 https://easypeashenglish.tistory.com/39