**소프트웨어 요구사항 명세서(SRS)**는 소프트웨어가 무엇을 할 것이며 어떻게 작동할 것으로 예상되는지를 설명하는 핵심 문서로, 제품이 비즈니스 및 사용자의 요구를 충족하는 데 필요한 모든 기능을 기술합니다.

SRS에 포함되는 주요 항목은 크게 다음과 같은 범주로 구성됩니다.

  1. 소개 (Introduction): 제품의 목적(Purpose), 문서 작성 규칙, 독자 대상, 그리고 프로젝트의 구체적인 **범위(Project Scope)**와 참조 문서 목록을 포함합니다.
  2. 전체 설명 (Overall Description): 제품이 기존 시스템을 대체하는지 등의 제품 조망, 주요 제품 기능, 예상 사용자의 특징, 운영 환경, 그리고 개발 시 반드시 지켜야 할 설계 및 구현 제약사항을 명시합니다.
  3. 시스템 특징 (System Feature): 각 기능의 설명과 우선순위, 사용자의 행동에 따른 시스템의 반응을 나타내는 자극/응답 순서, 그리고 상세한 기능 요구사항을 항목별로 나열합니다,.
  4. 외부 인터페이스 요구사항: 사용자가 접하는 **사용자 인터페이스(UI)**의 논리적 특징부터 하드웨어, 소프트웨어, 그리고 통신 인터페이스 간의 메시지 형태와 보안 및 암호화 프로토콜 등을 정의합니다,.
  5. 기능 이외의 다른 요구사항 (비기능 요구사항): 시스템의 성능, 안전, 보안 요구사항과 더불어 계량 가능한 소프트웨어 품질 특성을 명시하여 시스템의 신뢰성과 완성도 기준을 제시합니다,.

이 명세서는 프로젝트 기획 단계에서 작성되는 **'큰 그림'**과 같으며, 이후 분석 및 설계 단계에서 작성되는 **소프트웨어 설계 설명서(SDD)**의 근거가 되는 매우 중요한 문서입니다,.

비유하자면 SRS는 건물을 짓기 전 건축주와 설계자가 합의하여 작성하는 **'건축 요구서'**와 같습니다. 집의 용도가 무엇인지, 방은 몇 개가 필요한지, 보안 장치는 어떻게 설치할 것인지 등을 미리 완벽하게 정의해야만, 나중에 시공용 설계도(SDD)를 그릴 때 시행착오 없이 건축주가 원하는 튼튼한 집을 지을 수 있기 때문입니다.

Posted by gurupia
,