Functional and Nonfunctional Requirement

Only available on StudyMode
  • Download(s) : 724
  • Published : February 3, 2011
Open Document
Text Preview
Functional Requirement (Function)
A Functional Requirement is a requirement that, when satisfied, will allow the user to perform some kind of function. For example: “The customer must place an order within two minutes of registering” For the most part, when people are talking about Business Requirements, they are referring to Functional Requirements which are generally referred to as “requirements”. Functional Requirements have the following characteristics: • uses simple language

• not ambiguous
• contains only one point
• specific to one type of user
• is qualified
• describes what and not how
Non-Functional Requirement
A Non-Functional Requirement is usually some form of constraint or restriction that must be considered when designing the solution. For example: “The customer must be able to access their account 24 hours a day, seven days a week.” For the most part when people are talking about Constraints, they are referring to Non-Functional Requirements. Non-Functional Requirements have the same following characteristics: • uses simple language

• not ambiguous
• contains only one point
• specific to one type of user
• is qualified
• describes what and not how
Non-Functional requirements tend to identify “user” constraints and “system” constraints. Business requirements should be kept pure and not reflect any solution thinking. A system constraint is a constraint imposed by the system and not dictated by a Business Need. Since system constraints are part of a “solution”, they should be documented in the System Specifications document. For example: “The system must be unavailable from midnight until 1:00am for backups.” This is a restriction imposed by the system and not a user request. Some people like to further classify the Non-Functional Requirments into such categories as “Performance Constraints, Design Constraints, Quality Constraints, etc.. This classification can be used if there is deemed to be a benefit. 

Functional requirements
are typically phrased with subject/predicate
constructions, or noun/verb. "The system prints invoices."
Non-functional requirements may be found in adverbs or modifying clauses, such as "The system prints invoices *quickly*" or "The system prints invoices *with confidentiality*".

>From a mathematical point of view, a "function" takes an input(s) and yields an output(s). "Functional" refers to the set of functions the system it to offer, while "non-functional" refers to the manner in which such functions are performed.

Following are IEEE-ish definitions:

functional requirement --- A system/software requirement that specifies a function that a system/software system or system/software component must be capable of performing. These are software requirements that

define behavior of the system, that is, the fundamental process or transformation that software and hardware components of the system perform
on inputs to produce outputs.

nonfunctional requirement
in software system engineering,
a software requirement that describes not what the software will do, but how the software will do it, for example, software performance requirements, software external interface requirements,
software design constraints, and software quality attributes. Nonfunctional requirements are difficult to test;
therefore, they are usually evaluated subjectively.

>From a software engineering text, regarding non-functional requirements:

"... have been recognized as a vital determinant to the success of just about any software project, and led to proliferation of terms, be they organizational, managerial or technical.
While also referred to as
``desirable attributes", ``non-behavioural requirements",
``design constraints",
``system interface requirements", ``user interface requirements", ``hardware characteristics", ``software quality", etc.,
or more colloquially known as ``--ilities and --ities",
such issues are termed...
tracking img