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