(Last modified Thu Apr 17 22:42 2008)

home teaching schedule

In4matx 115
Software Specification and
Quality Engineering
Spring 2008
Kinds of requirements

Functional / non-functional

This is the most commonly-encountered division.

Nonfunctional requirements are often called goals

Examples "Provide safe, reliable, and quick transportation around campus"  (functional)
"Print a receipt for every transaction"  (functional)
"Be self-explanatory and easy to use".  (non-functional)

Behavioral / developmental-quality

A slightly different classification is also made for them.  behavioral requirements or developmental quality requirements (or requirements that are neither): 

Examples "Turn out the lights when the room is unoccupied"  (behavioral)
"Be thoroughly testable so that customers will have a high level of confidence".  (developmental quality)

Functional/non-functional and behavioral/developmental-quality don't quite divide requirements the same way.  Most notably, there are nonfunctional requirements (such as, perhaps, "Cost less than $500 per copy") that are arguably neither behavioral requirements (because they don't address the system's behavior) nor developmental quality requirements (because they don't characterize the development process).  There are arguably behavioral requirements (such as, perhaps, "Secretly provide access to internal program state needed to make testing more effective") that are more closely related to a nonfunctional requirements such as testability than to any ordinary functional requirements.  It seems that every developmental-quality requirement would also be a non-functional requirement, and any functional requirement would also be a behavioral requirement (I have not come up with counterexamples, in any case). 

Subdividing non-functional requirements

Nonfunctional requirements can be divided into operationalizable and checkable NFRs (and perhaps a third category of neither operationalizable nor testable -- this has not been established yet)

Share-Alike Made with jEdit Valid CSS! Valid HTML 4.01! UC Irvine Thomas A. Alspaugh
Assistant Professor, Informatics Dept.
School of Information and Computer Sciences