요구공학
요구공학 (Requirements Engineering, RE)은 소프트웨어 개발 또는 시스템 개발 과정에서 사용자의 요구사항을 도출, 분석, 명세, 검증, 관리하는 체계적인 프로세스와 관련된 학문 분야 및 실천 활동을 의미한다. 즉, 이해관계자들의 니즈를 파악하여 개발될 시스템이나 소프트웨어가 충족해야 할 조건을 명확하게 정의하고, 이를 개발 과정 전반에 걸쳐 추적 관리하는 활동을 포괄한다.
요구공학은 프로젝트의 성공적인 완료에 필수적인 요소로 간주되며, 부실한 요구사항 관리는 프로젝트 실패의 주요 원인 중 하나로 지적된다. 효과적인 요구공학은 프로젝트 비용 절감, 개발 기간 단축, 사용자 만족도 향상 등의 긍정적인 효과를 가져올 수 있다.
주요 활동:
- 요구사항 도출 (Elicitation): 다양한 소스(사용자 인터뷰, 설문 조사, 문서 분석 등)로부터 요구사항을 수집하고 발견하는 과정이다.
- 요구사항 분석 (Analysis): 도출된 요구사항을 이해하고, 충돌이나 모호성을 해결하며, 우선순위를 결정하는 과정이다.
- 요구사항 명세 (Specification): 분석된 요구사항을 명확하고 일관성 있게 문서화하는 과정이다. 일반적으로 요구사항 명세서는 자연어, 다이어그램, 모델 등 다양한 형태로 작성될 수 있다.
- 요구사항 검증 (Validation): 명세된 요구사항이 사용자의 실제 니즈를 충족하는지 확인하는 과정이다. 프로토타입 제작, 사용자 리뷰, 테스트 등의 방법을 활용한다.
- 요구사항 관리 (Management): 요구사항의 변경을 추적하고 제어하며, 요구사항 문서의 최신 상태를 유지하는 과정이다. 요구사항 추적성 확보는 변경 영향 분석에 중요한 역할을 한다.
관련 기술 및 기법:
- 사용자 스토리 (User Story)
- 유스 케이스 (Use Case)
- 프로토타이핑 (Prototyping)
- 애자일 방법론 (Agile Methodology)
- 모델 기반 개발 (Model-Driven Development)
요구공학은 소프트웨어 공학의 중요한 하위 분야이며, 시스템 엔지니어링, 비즈니스 분석 등 다른 분야와도 밀접하게 관련되어 있다.