요구 사항 분석과 명세
Requirements Analysis · Software Requirements Specification
프로그램 개발의 첫 단계에서는 사용자의 필요성과 문제를 파악하고, 프로그램이 수행해야 할 기능과 지켜야 할 조건을 정리한다. 요구 사항이 불명확하면 이후의 설계와 구현에서도 오류가 생길 수 있으므로 정확하고 구체적으로 분석하는 것이 중요하다.
요구 사항 분석 과정
| 과정 | 내용 |
|---|---|
| 요구 추출 | 면담, 설문, 문서 검토 등을 통해 사용자가 원하는 기능과 조건을 찾아낸다. |
| 도메인 분석 | 문제와 관련된 대상, 관계, 기능, 처리 과정과 제약 조건을 분석한다. |
| 모델링 | 데이터와 제어의 흐름, 처리 과정과 결과를 이해하기 쉬운 형태로 표현한다. |
| 프로토타이핑과 시험 | 필요한 경우 견본을 만들어 기능적 요구가 적절한지 확인한다. |
| 문서화 및 검토 | 분석한 요구를 명세서로 정리하고 빠진 내용이나 모순이 없는지 확인한다. |
기능적 요구 사항과 비기능적 요구 사항
수집한 요구 사항은 프로그램이 실제로 수행해야 하는 기능과, 프로그램이 지켜야 할 성능·품질·환경 등의 조건으로 나누어 정리할 수 있다.
| 구분 | 예 |
|---|---|
| 기능적 요구 사항 | 값 입력, 계산, 검색, 저장, 결과 출력처럼 프로그램이 수행해야 하는 기능 |
| 비기능적 요구 사항 | 성능, 사용 편의성, 안정성, 실행 환경, 인터페이스 등 기능 이외의 조건 |
요구 사항 명세서
소프트웨어 요구 사항 명세서는 프로그램이 수행해야 할 기능과 제약 조건을 명확하고 완전하게 기록한 문서이다. 이후 설계·구현뿐 아니라 테스트의 완료 기준으로도 사용된다.
좋은 요구 사항의 특징
- 정확하고 모호하지 않게 작성한다.
- 필요한 정보가 빠지지 않도록 완전하게 작성한다.
- 서로 모순되거나 충돌하지 않도록 일관성을 유지한다.
- 구현 후 성공과 실패를 판단할 수 있도록 검증 가능하게 작성한다.
- 관련된 설계·구현·테스트 항목과 연결해 추적할 수 있도록 작성한다.