본문 바로가기
Software Engineering/요구사항 관리

소프트웨어 요구사항 분류

by 부뚜기 2023. 4. 1.
반응형

소프트웨어 요구사항 분류

IEEE 729에 따르면, 요구사항은 다음과 같이 정의된다.

- 사용자가 문제를 해결하거나 목표를 달성하기 위해 필요한 조건 또는 기능

- 계약, 표준, 사양, 공식적으로 제공된 문서를 충족하기 위해 시스템 또는 시스템 구성요소가 충족하거나 보유해야 하는 조건 또는 기능

- 위 사항 같이 조건 또는 기능을 표현한 문서

 

소프트웨어 요구 사항은 다음과 같은 세 가지 유형이 있다.

  • 기능 요구사항
  • 비기능 요구사항
  • 도메인 요구 사항

기능 요구사항

최종 사용자가 시스템이 제공해야 하는 기본 기능으로 구체적으로 요구하는 요구 사항이다.

계산, 데이터 조작, 비즈니스 프로세스, 사용자 상호 작용 또는 시스템이 수행할 가능성이 있는 기능을 정의하는 기타 특정 기능이 될 수 있다. 이러한 모든 기능은 반드시 계약의 일부로 시스템에 적용되어야 한다. 이들은 시스템에 제공되는 입력, 수행된 작업 및 예상되는 출력의 형태로 표현되거나 명시된다. 기본적으로 비기능적 요구사항과 달리 최종 소프트웨어에서 직접 볼 수 있는 사용자가 명시한 요구사항이다.

예를 들어, 병원 관리 시스템에서 의사는 환자의 정보를 검색할 수 있어야 한다. 각각의 높은 수준의 기능 요구 사항에는 시스템과 외부 간의 여러 상호 작용 또는 의사소통이 포함될 수 있다. 기능 요구 사항을 정확하게 설명하려면 모든 시나리오를 표현해야 한다. 기능적 요구사항을 표현하는 방법에는 자연어, 엄격한 구문이 없는 구조화 또는 형식화된 언어, 적절한 구문이 있는 공식 사양 언어 등 여러 가지가 있다. 소프트웨어 공학의 기능 요구 사항은 기능 사양이라고도 한다.

비기능 요구사항

기본적으로 프로젝트 계약에 따라 시스템이 충족해야 하는 품질 제약이다.
시스템 기능과 관련이 없는 비기능적 요구사항은 오히려 시스템이 어떻게 수행되어야 하는지를 정의한다. 

이러한 요소들이 구현되는 우선순위나 범위는 프로젝트마다 다르다. 이러한 요구사항을 비행동 요구사항이라고도 한다.

 

비기능 요구항은 다음과 같은 이슈를 처리한다.

  • 이식성 - 다른 환경으로 쉽게 이동하거나 이전할 수 있는 시스템 또는 소프트웨어의 특성
  • 보안 - 무단 액세스, 사용, 수정 또는 파괴로부터 소프트웨어 응용 프로그램을 보호
  • 유지 보수성 - 시간이 지남에 따라 소프트웨어 응용 프로그램을 수정, 업데이트 또는 복구할 수 있는 용이성
  • 신뢰성 - 의도한 기능을 시간이 지남에 따라 정확하고 일관되게 수행할 수 있는 특성
  • 확장성 - 성능을 크게 저하시키지 않고 증가하는 작업, 데이터 또는 트래픽 양을 처리할 수 있는 특성
  • 성능 - 의도한 기능을 효율적이고 빠르고 정확하게 수행하는 특성
  • 재사용성 - 많은 수정 없이 여러 응용 프로그램에서 사용할 수 있는 소프트웨어 구성 요소 또는 모듈의 특성
  • 유연성 - 수정이나 재작업 없이 변화하는 요구 사항이나 조건에 적응할 수 있는 시스템이나 애플리케이션의 특성

비기능 요구사항 다은과 같은 유형으로 분류할 수 있다.

  • 인터페이스 제약 조건
  • 성능 제약: 응답 시간, 보안, 스토리지 공간 등.
  • 운용 제약 조건
  • 라이프사이클 제약: 유지보수성, 휴대성 등.
  • 경제적 제약

비기능 요구 사항 명세화 프로세스에는 시스템 기능에 대한 지식과 시스템이 작동할 상황에 대한 지식이 필요하다.

비기능 요구 사항 명세화는 두가지로 나눌 수 있다.

- 실행 품질(Execution qualities): 실행 중인 소프트웨어 시스템의 동작 및 성능

   예: 보안, 사용성, 성능, 신뢰성

- 진화 품질(Evolution qualities): 정적 구조 및 시간 경과에 따라 진화하고 적응하는 능력

   예: 테스트 가능성, 유지 보수성, 확장성

도메인 요구 사항

도메인 요구 사항은 특정 범주 또는 프로젝트 도메인의 특징인 특정 요구 사항 집합이다. 이러한 요구 사항은 기능적이거나 비기능적일 수 있으며 해당 도메인에서 시스템이 나타내야 하는 필수 기능이다.

도메인 요구 사항은 소프트웨어에서 개발될 예측 가능한 모든 응용 프로그램에 대한 요구 사항을 사전 예방적 차원에서 정의하는 지속적인 프로세스다.

이 프로세스에는 특정 도메인에서 사용자 및 이해 관계자의 요구 사항을 식별 및 분석하고 이러한 요구 사항을 충족하는 데 필요한 요구 사항을 정의하는 작업을 진행한다.
예를 들어, 학교 또는 대학의 기록을 유지 관리하는 학술 소프트웨어 시스템에서 각 학년의 교수 목록 및 학생 목록에 액세스 할 수 있는 기능은 도메인 요구 사항이다. 이러한 요구 사항은 도메인 모델에서 식별되며 특정 사용자에게 한정되지 않는다.
도메인 요구 사항에 집중함으로써 개발자는 자신의 소프트웨어가 프로젝트의 특정 범주 또는 도메인의 특정 요구 사항을 충족하는지 확인하고 사용자의 요구 사항에 더 적합한 소프트웨어를 만들 수 있다.

 

소프트웨어 요구 사항을 특성 및 세부 수준에 따라 좀 더 상세하게 분류하면 다음과 같이 분류할 수 있다.

 

기능 요구사항
- 소프트웨어 시스템의 기능과 기능을 정의하는 요구 사항이다.

소프트웨어가 수행해야 하는 작업과 특정 사용자 작업 또는 입력이 제공될 때 소프트웨어가 수행해야 하는 작업을 표현한다. 기능 요구사항은 종종 유스케이스로 문서화한다.

 

비기능 요구사항
- 성능, 신뢰성, 확장성, 사용성, 보안 및 호환성과 같은 소프트웨어 시스템의 품질 속성에 대한 요구 사항이다.

소프트웨어가 사용자의 요구와 기대를 충족시키려면 비기능적 요구사항이 매우 중요하다.

 

비즈니스 요구사항
- 소프트웨어 시스템이 충족하고자 하는 비즈니스 요구사항과 목표를 말한다.

소프트웨어가 해결하도록 설계된 문제 또는 기회는 물론 비즈니스에 제공할 것으로 예상되는 이점을 말한다. 비즈니스 요구 사항은 소프트웨어 개발의 기초 역할을 하며 시스템이 비즈니스의 요구와 목표를 충족하도록 시스템의 설계 및 구현시 안내서 역할을 한다.

 

사용자 요구 사항
- 소프트웨어 시스템 최종 사용자의 요구 사항과 기대치를 나타낸다. 

사용자의 작업, 워크플로 및 기본 설정등을 소프트웨어가 정보를 제공하고 지원하는 방법을 말한다.

사용자 요구 사항은 의도된 사용자의 요구 사항을 충족하는 소프트웨어를 설계하는 데 필수적이다.

 

시스템 요구 사항
- 소프트웨어 시스템이 올바르게 작동하는 데 필요한 하드웨어 및 소프트웨어 인프라에 대한 요구사항이다. 운영 체제, 데이터베이스 관리 시스템, 네트워크 프로토콜 및 소프트웨어 실행에 필요한 기타 구성 요소에 대한 정보가 포함된다.


설계 요구사항
- 소프트웨어 시스템의 기술 설계에 관련된 요구사항이다. 소프트웨어 아키텍처, 데이터 구조, 알고리즘 및 소프트웨어의 기타 기술적 측면에 대한 정보가 포함된다.

 

인터페이스 요구사항
- 소프트웨어 시스템과 다른 시스템, 장치 또는 서비스 간의 인터페이스 요구사항이다. 소프트웨어가 다른 시스템과 통합하는 데 사용해야 하는 데이터 형식, 프로토콜 및 통신 채널에 대한 정보가 포함된다.

 

소프트웨어 요구 사항을 분류함으로써 소프트웨어 엔지니어와 프로젝트 관리자는 소프트웨어 시스템의 모든 측면을 철저히 고려하고 해결하며 소프트웨어 시스템이 최종 사용자의 요구와 기대를 충족하도록 설계되었는지 확인할 수 있다.

요구 사항 분류에는 특성과 목적에 따라 요구 사항을 그룹 또는 유형으로 구성하고 요구 사항 관리 및 우선순위 지정, 차이 또는 중복 식별, 소프트웨어 개발 프로세스 중에 모든 요구 사항을 충족하도록 하는 데 도움이 된다.

요구 사항을 분류함으로써 개발 팀은 수행해야 할 작업을 보다 명확하게 이해할 수 있고 프로젝트 관리자는 프로젝트 진행 상황을 보다 잘 추적할 수 있으므로 위험과 문제를 보다 쉽게 ​​식별하고 관리할 수 있다.

반응형

'Software Engineering > 요구사항 관리' 카테고리의 다른 글

요구사항 도출의 어려움  (0) 2023.04.15
요구사항 추출  (0) 2023.04.09
SRS의 품질 특성  (1) 2023.04.08
프로젝트에 적합한 SRS를 작성하는 방법  (0) 2023.04.02
요구공학 프로세스  (0) 2023.03.27

댓글