요구사항
2025. 1. 23. 12:41ㆍ기반기술/SW공학
요구사항의 이해와 정의
- 요구사항이란?
- 사용자 또는 이해관계자가 시스템이나 소프트웨어로부터 기대하는 기능, 서비스 및 조건을 명시하는 것이다.
- 프로젝트의 기초를 형성하며 개발 전반에 걸쳐 중요한 지침 역할을 한다.
- 요구사항의 목적
- 요구사항은 프로젝트의 목표를 명확히 하고, 개발 팀이 무엇을 개발해야 할지를 구체적으로 안내한다.
- 프로젝트의 범위를 정의하고 이해관계자 간의 의사소통을 원활하게 하는 데 중요한 역할을 한다.
- 기능적 / 비기능적 요구사항
- 기능적 요구사항: 시스템이 수행해야 하는 구체적인 기능들을 명시한다. ex) 사용자가 로그인 할 수 있어야 함, 결제 시스템이 신용카드를 수락해야 함 등
- 비기능적 요구사항: 시스템이 어떻게 동작해야 하는지에 대한 요구사항으로 성능, 보안, 신뢰성, 사용 편의성을 포함한다. ex) 시스템이 사용자 요청에 3초 이내로 응답해야 함, 데이터베이스에 있는 일부 정보는 암호화해야 함
요구사항 추출 과정
- 인터뷰: 다양한 이해관계자들이 일대일로 진행하는 대화를 통해 그들의 요구사항을 직접 듣고 개별적인 관점과 깊이 있는 정보를 얻을 수 있다.
- 워크숍: 다양한 이해관계자들이 함께 모여 요구사항에 대해 토론하는 집단적인 활동이다. 상호작용이 많은 세션을 통해 다양한 관점을 수렴하고 합의점에 도달할 수 있다.
- 설문조사: 특정한 질문에 대한 답변을 통해 많은 수의 사용자로부터 요구사항을 수집하는 방법이다. 빠르고 비용 효율적으로 대규모 데이터를 수집할 수 있다.
요구사항 분석 및 명세서 작성
- 요구사항 분석 절차
- 요구사항 정리 및 분류: 추출(수집)된 요구사항을 기능적, 비기능적 요구사항으로 분류하고, 사용자 스토리 형식으로 정리한다. 이때 각 사용자 스토리는 "As a [role], I want [feature], so that [reason]"의 형식을 따른다.
- 요구사항 검토 및 우선순위 결정: 사용자 스토리를 기반으로 각 요구사항의 우선순위를 결정하며, 중요도와 프로젝트 목표에 따라 조정한다.
- 모델링 및 분석: 사용자 스토리를 사용하여 유스케이스, 시퀀스 다이어그램, 활동 다이어그램 등을 생성하며, 요구사항을 더 깊이 분석하고 시스템의 행동을 모델링한다.
- 검증 및 승인: 생성된 사용자 스토리를 이해관계자와 함께 검토하여 명확성과 완전성을 검증하고 승인을 받는다.
- 명세서 작성: 승인된 사용자 스토리를 요구사항 명세서에 포함시키며, 이 문서는 개발 및 테스트의 기준이 된다.
- 반복 및 정제: 프로젝트의 진행 상황에 따라 사용자 스토리를 계속해서 검토하고, 필요한 경우 정제하거나 업데이트한다.
- 명세서 작성시 지킬 것
- 명확성: 모든 이해관계자가 이해할 수 있도록 명확하고 구체적인 언어를 사용한다.
- 일관성: 문서 내의 정보가 서로 모순되지 않아야 한다.
- 검증 가능성: 요구사항이 실제로 검증 가능해야 하며, 측정 가능한 기준을 포함해야 한다.
- 추적 가능성: 각 요구사항이 원본 출처로 추적될 수 있도록 한다. (ID 사용 등)
- 완전성: 모든 필수 요구사항을 포함하며, 누락된 내용이 없어야 한다.
요구사항 검증 및 유지보수
- 요구사항 검증 방법
- 리뷰: 문서화된 요구사항을 이해관계자와 함께 검토하여 정확성, 완전성, 가독성을 확인한다.
- 테스트 케이스: 각 요구사항에 대해 테스트 케이스를 작성하고, 해당 테스트를 실행하여 요구사항이 충족되는지 검증한다.
- 프로토타입: 초기 단계에서 요구사항을 기반으로 프로토타입을 제작하고 이를 이해관계자에게 제시하여 피드백을 받는다.
- 시뮬레이션: 복잡한 시스템의 경우, 시뮬레이션을 통해 요구사항이 실제 운영 환경에서 어떻게 작동하는지 평가할 수 있다.
- 요구사항 변경 관리
- 변경 요청 프로세스: 모든 변경 요청은 공식적인 프로세스를 통해 제출되어야 한다.
- 변경 승인: 변경 사항에 대한 승인은 이해관계자나 변경 관리 위원회가 담당한다.
- 통신 및 업데이트: 승인된 변경 사항은 모든 관련 이해관계자에게 통신되며, 관련 문서 및 계획은 업데이트 된다.
- 변경 기록 및 추적: 모든 변경 사항은 문서화 되고 추적 가능해야 한다.
- 영향 분석: 제안된 변경이 프로젝트에 미칠 영향을 분석한다.