study/software develop

SDLC 방법론 <1-1> | 소프트웨어 요구 사항이란? [1/5]

yjlee06 2024. 11. 16. 23:32
반응형
시작하기 전.

해당 포스팅은 포스트 <1> 과정에서 언급된 소프트웨어 요구사항에 대해 자세히 설명하고자 합니다. 해당 포스트를 포함 총 5단계로 구성되어 있으며 소프트 웨어 요구사항 > 기능적 요구 사항 > 비 기능적 요구 사항 > 도메인 요구 사항 > 소프트웨어 요구 사항을 작성에 대한 장/단점과 같은 구성으로 진행하겠습니다.

 

Software Requirement 
소프트웨어 요구 사항

IEEE 표준 729에 따르면 아래와 같이 정의됩니다.

  1. 사용자가 문제 또는 목표를 달성하기 위해 필요한 조건이나 능력
  2. 계약, 표준, 사양이나 다른 공식적으로 도입된 문서충족하기 위해 시스템 또는 시스템 구성 요소충족하거나 보유해야 하는 조건 또는 능력
  3. 1과 2에서와 같이 조건이나 능력에 대해 문서화된 표현
한마디로 요약하자면

사용자, 개발자, 분석가와 같은 내, 외부 이해 관계자가 소프트웨어 개발을 위하여 필요로 하는 조건 및 기능을 정리하고 분석하여 문서화한 것을 의미합니다.

소프트웨어 요구사항은 대표적으로 아래와 같은 정보를 통하여 작성할 수 있습니다.

1.  사용자 요구 사항

인터뷰나 설문조사를 통하여 사용자가 소프트웨어를 이용하면서 필요로 하는 기능들을 의미합니다.

 

수집된 요구사항은 자연어로 표현되어 정리합니다.

2. 시스템 요구 사항
시스템 아키텍처, 하드웨어 요구 사항, 소프트웨어 구성 요소 및 인터페이스와 같은 소프트웨어에서 필요로 하는 기술적인 내용입니다.

 

시스템 요구사항은 시스템 설계의 기초로 사용되기도 합니다.  

3. 비즈니스 요구 사항
수익, 시장 점유율, 고객 만족도 또는 기타 사업지표를 고려하여 프로젝트의 목적과 목표를 설정합니다. 

4. 규제 요구 사항
소프트웨어 개발에서 준수해야 하는 법적 준수 사항( 개인정보 보안(개인정보 보호 법률에 관한 내용), 소비자에게 합리적인 약관 제시(약관법) )작성합니다.

5. 인터페이스 요구 사항
소프트웨어와 데이터베이스, 웹 서비스와 같은 구성 요소 간 상호작용이나 기타 소프트웨어 응용 프로그램과 과 같은 외부 시스템 상호 작용작성합니다. 

6. 설계 요구사항
소프트웨어 아키텍처, 데이터 구조, 알고리즘과 같이 소프트웨어의 기술적 측면에서 필요한 정보를 설명합니다.

 

이러한 정보를 포함한 SRS를 굳이 작성하는 이유

SDLC에 작성된 모든 내용은 꼭 지켜야 하는 형식이 아닙니다. 하지만 일반적으로 요구사항에서는 이러한 내용들을 수집한다는 것을 알고 있어야 수정이나 개선을 하기 수월하지기에 학습을 하는 것이 좋습니다.

 

또한 소프트웨어 요구 사항을 분류와 같은 과정을 거치면 우선순위 지정을 하여 효율적으로 개발을 진행할 수 있으며 내용을 효율적으로 관리할 수 있어 정리된 내용을 쉽게 문서화할 수 있습니다. 또한 프로젝트를 진행하면서 정리된 SRS를 통하여 요구 사항을 고려한 개발할 수 있습니다.