[요구사항 정의서] 작성하는 법

주연쓰·2022년 7월 6일
31

프로젝트를 주먹구구식이 아닌 계획과 체계에 맞추어 진행하기 위해 공식 문서들이 필요할 때가 많은데, 이중 하나가 <요구사항 정의서>이다.

<요구사항 정의서>는 고객에게 우리 서비스의 기능들을 정리해 보여주고, 추후 소통 과정에서 발생하는 갈등을 예방할 수 있도록 한다. 보통 고객사의 요구사항에 따라 기능들을 정의한다.

예시 프로젝트인 '청약 부적격 검사 프로젝트'에서는 고객사와 따로 미팅은 없었지만, 고객사와의 미팅 시에 사용할 자료라고 생각하고 요구사항 정의서를 적어보았다.


요구사항 정의서에는 기본적으로
1. 구분 (웹/앱/사용자/관리자/공통 등)
2. 요구사항명, 요구사항ID
3. 세부기능명, 세부기능ID
4. 상세설명
5. 비고

등이 필요하다. 필요에따라 추가하거나 뺄 수 있다.

'청약 부적격 검사 프로젝트' 는 웹으로만 진행하고, 사용자용 기능만 있기 때문에 "구분" 섹션을 제외하고, 각 기능별로 필요한 데이터들이 중요하기 때문에 "필수 데이터"와 "선택 데이터" 섹션을 추가했다.
작성된 요구사항 정의서는 다음과 같다.

(1) 요구사항 ID

: 고객사와 소통할때, 또는 개발시에 소통을 원활하게 하기 위해 요구사항 ID를 사용한다.
네이밍은 따로 정해진 규칙은 없다.

해당 프로젝트에서는 요구사항을 큰 주제별로 나누어 MEM(회원관리 관련 요구사항), MAIN(메인기능 관련 요구사항), ADD(부가기능 관련 요구사항), WEB(웹 호스팅,보안 등 관련 요구사항) 으로 구분하였다.

ex) [MEM01], [MAIN03] ...

(2) 요구사항명

: 요구사항을 명시한다. 명사형을 주로 사용하고, 최대한 알아보기 쉽게 작성한다.
보통 요구사항에서 세부기능을 나누지 않고 요구사항 자체만으로 나열하기도 한다.

ex) [로그인], [커뮤니티] ...

(3) 기능 ID

: 상호간에 소통을 원활하게 하기 위해 기능 ID로 부르는 것으로, 요구사항 ID와 마찬가지로 따로 정해진 네이밍 규칙은 없다.

해당 프로젝트는 개발자간의 소통만 존재했기 때문에, 변수 네이밍과 비슷한 형식으로 요구사항ID_기능별변수 로 기능ID를 표현했다.

ex) [MEM01_LOGIN01], [MAIN03_INPUT05] ...

(4) 기능명

: 요구사항에서 한뎁스 더 들어간 세부 기능명을 명시한다.
리프뎁스 이므로 최대한 자세하게, 명사형으로 기능을 적는 것이 중요하다.

ex) [자체 로그인 기능], [카카오 연동 로그인 기능], [자격진단 결과(성공)] ...

(5) 상세 설명

: 각 기능에 대한 상세 설명을 서술한다. 비개발자도 이해할 수 있도록 적는 것이 중요하다.

(6) 필수 데이터

: 각 기능별 입력되어야 할 필수 데이터를 적어놓았다.

(7) 선택 데이터

: 각 기능별 선택적으로 입력할 데이터들을 적어놓았다.


아래는 작성한 전체 요구사항 정의서이다.

profile
( •̀ ω •́ )✧

4개의 댓글

comment-user-thumbnail
2022년 11월 29일

안녕하세요 요구사항정의서에대한 내용을 찾아 헤매다가 단비 같은 자료를 포스팅해 주셔서 덕분에 업무 진행을 하고 있습니다 감사합니다!

혹시 이 요구사항들이 어떻게 구현이 되었는지도 볼 수 있는 자료가 있을까요?
주연님 자료 참고하여 요구사항 작성은 했는데 구현을 어떤 식으로 시켜야 할지 감이 잘 오질 않네요..!

다시 한번 좋은 자료 감사합니다

2개의 답글
comment-user-thumbnail
2023년 5월 8일

오.. 혹시 ㅅ주연..맞으신가요? 요구사항 정의서 검색하다가 아는 사람을 본 것 같아 신기해서 댓글 남깁니다,, 아니라면 죄송합니다,,

답글 달기