비기능 요구사항(NFR)

2022. 12. 29. 16:49컴퓨터 사이언스/소프트웨어공학

PR 양식중에 NFR이라는 모르는 단어가 튀어나와서 정리해보았다. 🤔

 


비기능 요구사항 (NFR: Non-Functional Requirements)

시스템에 부과되는 제약조건 또는 요구사항.

소프트웨어의 품질 속성을 지정.

확장성, 유지 관리 가능성, 성능, 이식성, 보안, 안정성 등을 다룸.

 

 

비기능 요구사항

  1. 품질 속성
    • 전체 품질을 결정하는 시스템의 속성
    • 보안, 성능 및 사용성
  2. 제약
    • 시스템에 부과된 제한 사항
    • 시간, 리소스 및 환경

 

비기능 요구사항의 장점

  1. 시스템이 사용자의 요구사항을 충족하는지 확인하는 데 도움이 됨
  2. 시스템이 목적에 맞는지 확인하는 데 도움이 됨
  3. 시스템의 확장 가능성, 안전성, 신뢰성을 확인하는데 도움이 됨
  4. 시스템의 사용, 유지 관리 가능성에 도움이 됨

 

비기능 요구사항의 단점

  1. 이해하고 구현하기 어려움
  2. 테스트 시간 및 비용이 많이 듦
  3. 제대로 구현되지 않을 경우 시스템 기능에 영향을 줌

 

기능 요구사항 vs 비기능 요구사항

기능 요구사항 비기능 요구사항
- 설계할 시스템의 기능을 설명
- 시스템이 무엇이고 사용자 요구를 충족시키기 위해 어떻게 기능할 지에 대한 설명
- 시스템이 특정 명령, 기능 및 사용자가 기대하는 것에 어떻게 응답해야하는지 명확한 설명을 제공
- 시스템이 수행해야하는 작업을 지정
ex) 연결된 모든 사용자의 목록을 제공한다.
- 설계할 시스템의 제한 사항제약 조건을 설명
- 응용 프로그램의 기능에 영향을 주지 않음
- 시스템이 수행하는 방법을 설명
ex) Windows 및 Linux 시스템에서만 작동한다.

시스템은 모든 기능 요구사항을 충족하지 않고는 작동할 수 없다.

시스템은 비기능 요구사항을 충족하지 않는 경우에도 작동할 수 있다. (원하는 결과를 제공할 수 있다.)

 

 

비기능 요구사항의 예

  1. 보안 : 시스템은 무단 액세스로부터 안전해야 한다.
  2. 성능 : 시스템은 성능 저하 없이 필요한 수의 사용자를 처리할 수 있어야 한다.
  3. 확장성 : 시스템은 필요에 따라 확장 또는 축소할 수 있어야 한다.
  4. 유효성 : 시스템은 필요할 때 사용할 수 있어야 한다.
  5. 유지보수 : 시스템은 유지 관리 및 업데이트가 쉬워야 한다.
  6. 이식성 : 시스템은 최소한의 변경으로 다른 플랫폼에서 실행할 수 있어야 한다.
  7. 신뢰성 : 시스템은 신뢰할 수 있어야 하고 사용자의 요구사항을 충족해야 한다.
  8. 유용성 : 시스템은 사용하기 쉽고 이해하기 쉬워야 한다.
  9. 호환성 : 시스템은 다른 시스템과 호환이 되어야 한다.
  10. 응낙 : 시스템은 모든 관련 법률 및 규정을 준수해야 한다.

 


Reference