개념: 요구사항
요구사항은 "시스템이 준수해야 하는 조건 또는 기능"으로 정의됩니다.
관계
기본 설명

요구사항은 시스템이 준수해야 하는 조건 또는 기능"으로 정의됩니다.

여러 유형의 많은 요구사항이 있습니다. 요구사항을 분류하는 한 가지 방법은 FURPS+ 모델 [GRA92]에 설명되어 있습니다(아래에 표시된 서브카테고리와 함께 두문자어 FURPS를 사용하여 요구사항의 주요 카테고리를 설명함).

FURPS+의 "+"는 다음과 같은 요구사항을 포함해야 함을 표시합니다.

([IEEE Std 610.12.1990]도 참조하십시오.)

이러한 비기능적 요구사항 예제와 카테고리를 체크리스트처럼 사용하여 특정 카테고리에 속하는 요구사항이 있는지 확인할 수 있습니다. 그러나 비기능적 요구사항 후보의 전체 세트는 어떻게 작성할 수 있습니까? 몇몇 기타 소스는 다음과 같습니다.

  • FURPS+ 사용 관련 요구사항을 캡처하는 조직적인 접근 방식에 대한 설명은 Peter Eeles가 작성한 Rational Edge 기사 'Capturing Architectural Requirements'(http://www.ibm.com/developerworks/rational/library/4706.html)를 참조하십시오.  이 문서에는 여러 비기능적 요구사항과 함께 요구사항별 적용 가능성을 판별하기 위한 질문서가 함께 제공됩니다.
  • Software Engineering Institute는 또한 여러 다양한 유형의 시스템에서 품질 요구사항을 정의하기 위해 재사용할 수 있는 '일반 시나리오'(품질 속성 요구사항 표현) 카탈로그를 작성하였습니다. 자세한 정보는 http://www.sei.cmu.edu/publications/documents/01.reports/01tr014.html 또는 SoftwareArchitecture in Practice, 2nd Ed( Len Bass, Paul Clements 및 Rick Kazman 공저, Addison-Wesley, 2003)을 참조하십시오.

기능적 요구사항은 실제 제한조건을 고려하지 않고 시스템이 수행할 수 있어야 하는 조치를 지정합니다. 이 요구사항은 종종 유스 케이스 모델유스 케이스에 가장 잘 설명되어 있습니다. 따라서 기능적 요구사항은 시스템의 입력 및 출력 동작을 지정합니다.

아래에 나열된 내용과 같은 비기능적 요구사항은 때때로 비기능적 요구사항이라고 합니다. 많은 요구사항이 비기능적이며 시스템의 속성이나 시스템 환경의 속성만 설명합니다. 비기능적 요구사항은 다음에서 설명하는 문제를 다루는 요구사항입니다.  

기능

기능적 요구사항은 다음과 같습니다.

  • 기능 세트
  • 기능
  • 보안

사용성

사용성 요구사항에는 다음과 같은 서브카테고리가 포함될 수 있습니다.

  • 인적 요소
  • 미적 요소
  • 사용자 인터페이스의 일관성
  • 온라인 및 컨텍스트 도움말
  • 마법사 및 에이전트
  • 사용자 문서
  • 훈련 자료

신뢰성

고려할 신뢰성 요구사항은 다음과 같습니다.

  • 실패 빈도 및 심각도
  • 복구 가능성
  • 예측 가능성
  • 정확성
  • 평균 실패 시간 간격(MTBF)

성능

성능 요구사항에는 기능적 요구사항에 대한 조건이 포함됩니다. 예를 들어, 제공된 조치의 경우 다음과 같은 성능 매개변수를 지정할 수 있습니다.

  • 속도
  • 효율성
  • 가용성
  • 정확성
  • 처리량
  • 응답 시간
  • 복구 시간
  • 자원 사용법

지원 가능성

지원 가능성 요구사항은 다음과 같습니다.

  • 테스트 용이성
  • 확장성
  • 적응성
  • 유지보수성
  • 호환성
  • 구성 가능성
  • 내구성
  • 설치 가능성
  • 번역 가능성(국제화)

디자인 요구사항

디자인 요구사항(종종 디자인 제한조건이라고 함)은 시스템의 디자인을 지정하거나 제한합니다.

구현 요구사항

구현 요구사항은 시스템 코딩 또는 생성을 지정하거나 제한합니다. 예제는 다음과 같습니다.

  • 필수 표준
  • 구현 언어
  • 데이터베이스 무결성 정책
  • 자원 한계
  • 오퍼레이션 환경

인터페이스 요구사항

인터페이스 요구사항은 다음을 지정합니다.

  • 시스템이 상호작용해야 하는 외부 항목
  • 이와 같은 상호작용에 사용되는 형식, 타이밍 또는 기타 요소에 대한 제한조건

실제 요구사항

실제 요구사항은 시스템이 지니고 있어야 하는 실제 특성을 지정합니다. 예를 들어 다음과 같습니다.

  • 자료
  • 모양
  • 크기
  • 중량

이 유형의 요구사항은 필요한 실제 네트워크 형상과 같은 하드웨어 요구사항을 표시하는 데 사용할 수 있습니다.