본문 바로가기
IT/Architecture

Software Requirement - Part 2

by 물통꿀꿀이 2019. 10. 27.

Functional Requirement Vs Non-Functional Requirement


Functional Requirement

소프트웨어는 동작을 위해서는 Input, Behavior, Output와 같은 3가지 구성이 필수적이다. (코드를 작성할 때 항상 Input, Output 그리고 내부 동작한 로직인 Behavior를 생각하는 것처럼) 때문에 "기능적 요구사항" 은 간단히 소프트웨어를 동작시키기 위한 필수 요소를 정의하는 것이다.


간단히 예를 살펴보면,

- 고객들이 산 물품에 대해 기록해야 한다.

- 배경화면은 RGB 코드의 0x000FF이어야 한다.


등등과 같이 해당 소프트웨어에서 동작시켜야 하는 필수 요구사항이다.


Non-Functional Requirement

기능적 요구사항과 달리 소프트웨어의 품질 속성에 대한 요구사항이다. 즉, 이해관계자가 해당 소프트웨어가 정상적으로 기능을 수행하고 있다고 판단하는 근거이다.

때문에 보통은 소프트웨어를 설계할 때 조건, 제한 사항들이 언급된다.


간단히 예를 살펴보면,

- 서버는 200만명 접근을 충족시켜야 한다.

- 사용자가 특정 정보를 업데이트 하는 것은 제한되어야 한다.


등등과 같이 소프트웨어를 동작시키기 위한 필수 요구사항이 아닌 제한된 조건이다.


Functional Vs Non-Functional


간단히 정리해보면, 기능적 요구사항이 소프트웨어의 각각의 기능을 명시하고 비기능적 요구사항은 이를 보완한다. 2개를 아우를 수 있는 예를 살펴보면 "사용자가 초록색 버튼을 누르면 선택 대화상자가 나타난다"가 기능적 요구사항이고 얼마나 빨리 선택 대화상자가 나타나게 할 것인가"가 비기능적 요구사항에 해당한다.


Reference

https://www.guru99.com/functional-vs-non-functional-requirements.html

https://www.researchgate.net/figure/Functional-and-non-functional-requirements_fig2_221147553

'IT > Architecture' 카테고리의 다른 글

SOLID Principle  (2) 2019.11.17
Software Requirement - Part 1  (0) 2019.10.20
기본 소프트웨어 시스템 설계 관점  (0) 2019.06.24

댓글