[TIL] SRS (Software Requirement Specification)

승은·2024년 11월 16일
0

TIL

목록 보기
23/23

SRS 란?

Software Requirement Specification의 약자로, 소프트웨어가 무엇을 하고 어떻게 작동할지를 예상하는 문서의 집합이다. 제품이 모든 이해관계자의 요구를 충족시키는데 필요한 기능을 설명한다.
일반적인 SRS에는 다음과 같은 항목이 포함된다.

  • 목적
  • 전반적인 설명
  • 특정 요구사항

SRS를 사용하는 이유

  • 소프트웨어 요구사항은 전체 프로젝트의 기반이다.
  • 개발에 참여하는 모든 팀이 따라야 하는 프레임 워크를 마련한다.
  • 전체 개발 시간과 비용을 최소화 할 수 있다.

작성 방법

회사마다 작성하는 방법은 굉장히 다르다. 일반적으로는 기능정의서, IA, 스토리보드, 정책정의서, WBS등의 문서가 따라온다. SRS는 비개발직군도 독자이기 때문에 최대한 이해하기 쉽고 간단하게 작성하는 것이 좋다. 아래는

개요

  • 목적
    : 해당 기능 및 제품의 목표와 목적이 무엇인지 작성한다.
  • 범위
    : 해당 프로젝트의 범위를 작성한다. 하위 프로젝트 및 연관성이 있는 프로젝트도 포함하여 작성한다.
  • 문서 규칙
    : SRS문서의 대해서 규칙을 정한다. 용어 통일하여 독자들의 헷갈림을 방지한다.
  • 참조

전체 설명

유저 플로우

클라이언트는 개발자의 관점에서 설명하기 보다는 사업적인 관점에서 설명하는 경우가 많다. 이러한 경우 커뮤니케이션이 원활하지 못하기때문에 스토리보드를 작성하는 것이 좋다.

제품 기능

해당 프로젝트에서 제공하는 기능들에 대해 작성한다. 소프트웨어에 들어갈 주요 기능을 리스트업하고 해당 기능의 목적도 같이 작성하면 더욱이 좋다.

제약 사항 및 설계

설계 구현도 및 구현 Spec을 작성한다. 이는 개발할 때 개발자들이 더욱 뾰족하게 개발할 수 있어서 굉장히 좋은 작성 문서라고 생각한다.

  • 기종 호환성 범위
  • SNS로 로그인 할 경우 제공하는 정보 확인
  • 게시판
    .
    .
    .

사용자 문서

: 사용자 중심의 가이드라인을 제공한다. 해당 제품의 사용자 메뉴얼이나 IA등과 같은 문서를 작성한다.

하위 호환성

: 해당 제품이나 프로젝트가 다른 하위 프로젝트들에 대해 호환성을 어떻게 할지에 대한 문제를 작성한다.

환경

운영체제 환경

: OS Level에서의 환경을 작성한다.

개발 환경

: 개발 환경에 대해 작성한다.

테스트 환경

: 테스트 전략에 대해 작성한다.

형상 관리

: 형상 관리에 대한 내용을 작성한다.

  • 산출물 위치
  • 소스코드 위치
  • 문서 위치
  • 형상 관리 툴

기능 이외의 다른 요구 사항

WBS (Work-Breakdown Structure)

: 프로젝트의 범위와 최종산출물을 세부요소로 분할한 계층적 구조.
전체 업무를 분류하여 구성요소로 만든 후 각 요소를 평가하고 일정 별로 계획하며 그것을 완수할 수 있는 사람에게 할당해 주는 역할을 한다.

  • 전체를 큰 단위로 분할 > 각 단위에서 더 구체적이고 작은 단위로 쪼개어 계층적으로 구성 > 워크 패키지 작업 단위 > 각 작업 단위에 담당 인력 배치

간트 차트

: 프로젝트 활동의 시작과 종료를 표현하는 차트로 쉽게 이해할 수 있다.
세로 축에는 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

1개의 댓글

comment-user-thumbnail
2024년 11월 21일

다음편 언제 나와요

답글 달기