Software Engineering - Old Questions
4. Differentiate between functional and non-functional requirements of software engineering requirements.
Functional requirements are the statements of services the system should provide, how the system should react to particular input, and how the system should behave in particular situation. The functional requirements for a system should describe what the system do.
Non-functional requirements are the requirements that are not directly concern with the specific function of the system. They define system properties and constraints like readability, response time and storage requirements. It describes how the system will do it.
Functional Requirements |
Non-functional Requirements |
It
defines external behavior of the system. |
It
defines the properties and constraints of the system. |
Functional
requirements are specified by user. |
Non-functional
requirements are specified by technical person, software developers, technical
leader. |
These
requirements are mandatory. |
These
requirements may not be mandatory. |
Helps
to verify the functionality of software. |
Helps
to verify performance of software. |
Describes
what the product (i.e. software) does. |
Describes
how the product work. |
It
uses functional testing like system testing, integration testing etc. |
It
uses non-functional testing like performance, stress, security, usability,
reliability testing etc. |