요구공학(Requirements Engineering)이란 요구사항을 정의하고, 문서화하고, 관리하는 프로세스를 의미한다.
요구사항 개발 프로세스
소프트웨어공학 지식체계(SWEBOK: SoftWare Engineering Body of Knowledge)에서는 이 프로세스를 요구사항 도출(Elicitation), 분석(Analsysis), 명세(Specification), 확인(Validation)으로 구분하고 있다.
(1) 요구사항 도출(Requirement Elicitation)
- 요구사항 도출은 소프트웨어가 해결해야 할 문제를 이해하는 첫 번째 단계로서 요구사항이 어디에 있고, 어떻게 수집할 것인가와 관련되어 있다.
- 이 단계에서 이해관계자(Stakeholder)가 식별되고, 개발 팀과 고객 사이의 관계가 만들어진다.
- 이 단계에서는 다양한 이해관계자와 효율적인 의사소통이 중요하다.
(2) 요구사항 분석(Requirement Analysis)
- 요구사항들 간 상충되는 것을 해결하고, 소프트웨어의 범위를 파악하며, 소프트웨어가 환경과 어떻게 상호 작용하는지 이해한다.
- 시스템 요구사항을 정제하여 소프트웨어 요구사항을 도출한다.
(3) 요구사항 명세(Requirement Specification)
- 요구사항 명세란 체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 것을 의미한다.
- 시스템 정의, 시스템 요구사항, 소프트웨어 요구사항을 작성한다.
(4) 요구사항 확인(Requirement Validation)
- 분석가가 요구사항을 이해했는지 확인(Validation)이 필요하고, 요구사항 문서가 회사의 표준에 적합하고 이해 가능하며, 일관성이 있고, 완전한지 검증(Verification)하는 것이 중요하다.
- 이해관계자들이 문서를 검토해야 하고, 요구사항 정의 문서들에 대해 형상 관리를 해야 하는데, 일반적으로 요구사항 관리 툴을 이용한다.
- 리소스가 요구사항에 할당되기 전에 문제를 파악하기 위하여 검증을 수행한다.
위와 같은 요구사항 개발 프로세스 중에서 요구사항 확인하기와 관련된 단계는 분석 및 검증 단계이므로, 필요 지식에서는 도출 및 명세 단계를 생략한 분석 및 검증 단계에 대해서만 기술하기로 한다.
출처
NCS 학습모듈: 20.정보통신 > 01.정보기술 > 02.정보기술개발 > 02.응용SW엔지니어링 (일부 수정)