Software Requirement Specification의 약자로, 소프트웨어가 무엇을 하고 어떻게 작동할지를 예상하는 문서의 집합이다. 제품이 모든 이해관계자의 요구를 충족시키는데 필요한 기능을 설명한다.
일반적인 SRS에는 다음과 같은 항목이 포함된다.
회사마다 작성하는 방법은 굉장히 다르다. 일반적으로는 기능정의서, IA, 스토리보드, 정책정의서, WBS등의 문서가 따라온다. SRS는 비개발직군도 독자이기 때문에 최대한 이해하기 쉽고 간단하게 작성하는 것이 좋다. 아래는
클라이언트는 개발자의 관점에서 설명하기 보다는 사업적인 관점에서 설명하는 경우가 많다. 이러한 경우 커뮤니케이션이 원활하지 못하기때문에 스토리보드를 작성하는 것이 좋다.
해당 프로젝트에서 제공하는 기능들에 대해 작성한다. 소프트웨어에 들어갈 주요 기능을 리스트업하고 해당 기능의 목적도 같이 작성하면 더욱이 좋다.
설계 구현도 및 구현 Spec을 작성한다. 이는 개발할 때 개발자들이 더욱 뾰족하게 개발할 수 있어서 굉장히 좋은 작성 문서라고 생각한다.
: 사용자 중심의 가이드라인을 제공한다. 해당 제품의 사용자 메뉴얼이나 IA등과 같은 문서를 작성한다.
: 해당 제품이나 프로젝트가 다른 하위 프로젝트들에 대해 호환성을 어떻게 할지에 대한 문제를 작성한다.
: OS Level에서의 환경을 작성한다.
: 개발 환경에 대해 작성한다.
: 테스트 전략에 대해 작성한다.
: 형상 관리에 대한 내용을 작성한다.
: 프로젝트의 범위와 최종산출물을 세부요소로 분할한 계층적 구조.
전체 업무를 분류하여 구성요소로 만든 후 각 요소를 평가하고 일정 별로 계획하며 그것을 완수할 수 있는 사람에게 할당해 주는 역할을 한다.
: 프로젝트 활동의 시작과 종료를 표현하는 차트로 쉽게 이해할 수 있다.
세로 축에는 WBS에서 도출된 프로젝트의 활동을 나열하고,
가로 축에는 활동별 시작일지와 종료일지를 막대 형태로 연결하여 표현한다.
활동의 진행 사항과 자원 할당이 비교적 효과적으로 표현되고 작성하기가 용이하여 주로 프로젝트 팀간의 소통을 위해 사용한다.
: WBS를 기반으로 팀이 프로젝트의 최종 산출물을 생산하기 위한 목표를 설정하고, 그 목표를 중요한 하위 목표들로 세분화하여 각 하위 목표들에 마감시한을 할당한 것이다.
필자는 해당 문서를 많이 작성하고, 좋아한다. 프로젝트의 전체적인 흐름을 바로 파악할 수 있고 앞으로 남아있는 작업 단위의 공수를 계산하여 얼마나 야근해야 할지(?) 파악할 수 있다는 점이 큰 장점이었다. 또한, 각 수명주기 단계에서 각 산출물의 완료 시점을 정하는 것이 가장 유용한 방법이다.
주로 포함되는 것은
참고
https://velog.io/@bagt/%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD-%EC%A0%95%EC%9D%98%EC%84%9C-SRS%EB%9E%80
https://my-first-programming.tistory.com/entry/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EA%B3%B5%ED%95%99
https://dev-tak.tistory.com/7
다음편 언제 나와요