사이드 프로젝트 계획을 수립하고 설계하며 요구사항 분석에 대해 다시 공부하며 설계해보았다.
1. 요구사항 명세서 정의
요구사항은 프로젝트를 수행하기 위해 필요한 조건이나 시스템에서 제공하는 기능과 동작을 정의하며, 요구사항 명세서는 프로젝트에서 무엇이 구현되어야 하는지 작성하며 프로젝트의 모든 요구사항들을 체계적으로 정리하고 문서화한 것이다.
2. 요구사항 종류
요구사항 명세서는 기능적 비기능적 요구사항으로 나뉜다.
2-1. 기능적 요구사항
- 기능 요구사항은 프로젝트에서 수행해야 할 기능에 대한 설명ex) 주문 내역 조회, 장바구니 상품 추가
2-2. 비기능적 요구사항
시스템의 품질 속성과 관련된 요구사항
- 성능 : 처리량, 속도, 응답 시간
- 보안 : 인증방식, 암호화 기법
- 사용성 : 학습 용이성, 만족도, 편리성
- 가용성 : 접근성, 중단 시간
- 신뢰성 : 복구 시간, 오류 발생 빈도, 안정성
3. 요구사항 명세서 역할
프로젝트 품질 평가: 프로젝트가 충족해야 할 기준과 목표를 제시하여 테스트 과정에서 실제 결과와 기대 결과를 비교하고 평가
프로젝트 계획 수립: 프로젝트가 수행 작업에 대한 우선순위와 일정을 결정하여 효율적인 프로젝트 자원 관리와 위험 관리가 가능
프로젝트 범위 정의: 프로젝트가 수행 작업과 비수행 작업들을 구분하여 프로젝트 범위를 정의
4. 요구사항 명세서 작성 방법
- 요구사항 수집 : 사용자 인터뷰, 설문조사, 기존 시스템 분석 등을 통해 요구사항을 수집
- 요구사항 분석 : 수집한 요구사항을 정리하고, 모호하거나 중복된 내용을 제거하며 우선순위를 부여
- 요구사항 분류 : 요구사항을 기능적인 것과 비기능적인 것으로 구분하여 작성하면 가독성과 관리성 향상
- 요구사항 우선 순위 : 요구사항에 우선순위를 부여하여 중요도와 긴급도를 나타내면 프로젝트 계획 수립에 도움
5. 요구사항 명세서 항목
요구사항 ID: 요구사항을 식별할 수 있는 고유한 번호
요구사항 구분: 소프트웨어가 수행해야 할 기능
요구사항(기능): 요구사항의 내용 ex) 장바구니 상품 추가
요구사항 설명: 요청사항(기능)에 대해 자세하게 설명
우선순위: 필수적인 요구사항은 높은 우선순위이며, 부가적인 요구사항은 낮은 우선순위
6. 요구사항 명세서 작성 예시
요구사항 명세서를 작성하며 요구사항이나 기능을 명세하는 것보다 우선순위를 설정하는 과정이 어렵고 시간을 더 필요로 했다.
개인 프로젝트의 우선순위를 정할 때 모든 기능이 중요하고 구현하고 싶어서 순위를 망설였지만 우선순위를 결정하는데 필요한
기준을 나름대로 세워 정리하였다. 사이트에 필수적인 기능을 우선순위로 하고 구현하고 싶은 기능 중 내가 바라는 결과(프로젝트 완성)에 가까운 순서로 요구사항 순위를 세워 작성했다..!
아직은 우선순위 작성이 어렵지만 사실 모든 게 다 1순위 같지만 나름의 기준을 세우고 세분화하는 훈련을 한다면 명확한 기준이 생기고
속도가 빨라질 것이라 생각한다!
참고
https://blog.naver.com/wisestone2007/223338290965?trackingCode=rss