
 
2 FUNCTIONAL AND NON-
FUNCTIONAL REQUIREMENTS 
Application requirement is an overloaded notion, 
crossing various levels of abstraction. A convenient 
road map, which helps the understanding of what 
requirements we are dealing with, is presented in 
(Leffingwell, 2003). Application properties are 
initially stated as a list of simple descriptions from 
the stakeholders’ viewpoint. They are features, or 
services, provided by the application that fulfils one 
or more stakeholder’ needs. Features are general 
requirements that must be refined into more specific 
requirements to guide the construction of the 
application: the software application requirements. 
As an example of a feature we may have: “The 
purchase system should provide purchase trend 
information on product items”. As an example of 
correspondent application requirements we may 
have: “Configure purchase trend report on product 
items” and “Compile purchase trend history of 
product items based on the configuration parameters 
of the purchase trend report on product items”. The 
separation of requirements into needs, features and 
application software, helps the requirements 
management, providing a general model for 
requirements traceability: from stakeholder’s needs 
to application software requirements, via application 
features.  
On the other hand, application requirements can 
be characterized as functional and non-functional 
requirements. Functional requirements express the 
expected system behavior, i.e. how the system 
should react to particular inputs and how the system 
should behave in particular situations. Non-
functional requirements are constraints on the 
functional requirements, e.g., reliability, 
performance, project costs, etc. Almost all practical 
methods concerning requirements elicitation, 
analysis, specification and validation deal with 
functional requirements. Non-functional 
requirements (NFRs) are far much lesser understood 
than functional requirements (FRs), in part because 
they are intertwined (NFRs are always related to 
some FR), or because some NFRs exert negative 
influences on others, leading to conflicts. NFRs 
studies and characterizations originated in technical 
works on software quality metrics, e.g. (Boehm, 
1996). But despite their vital nature, the predominant 
state of practice does not provide guidelines 
allowing requirement analysts to reason about NFRs 
and the relations between FRs and NFRs.  
On the FR side, a renowned method amidst the 
plethora of application software requirements 
elicitation methods is the use case model (OMG, 
2002). The fundamental elements of the use case 
model are: actor, use case and association between 
an actor and a use case. An actor is an external entity 
– human or system – with a specific role that 
interacts with the system under consideration. A use 
case is the description of the functional use of the 
system from the actor’s (actors’) viewpoint: the 
system must deliver a result with a measurable value 
to actors. An actor-use case association denotes the 
interaction between an actor and a use case. There 
are some well-established use case model 
specification templates, e.g. (IBM, 2002), allowing 
the refinement of functional application software 
requirements expressed as sequence of interactions 
between actors and use cases. Use cases have also a 
visual model – the use case diagram -, which is very 
convenient to show the whole picture. However, the 
use case model is not appropriate to state application 
features, it is a model of application requirements. 
(IBM, 2002) has another artifact to record 
application features: the Vision document. The 
Vision document defines the scope of the application 
from the product point of view and is produced as an 
outcome of stakeholders’ negotiation. There are 
specific sections to define stakeholders’ and users’ 
needs, and product features as well. 
On the NFR side, the use case model is not 
adequate to state NFRs, not only because it does not 
model and organize NFRs, but also because it is 
error prone if NFRs are applicable to multiple use 
cases (Supakkul, 2004). The Supplementary 
Specification  (IBM, 2002) only records NFRs as 
declarative textual sentences. On the other hand, 
there is a very promising alternative approach that 
tries to rationalize the development process in terms 
of non-functional requirements, providing ways to 
reason about the NFRs and their relationships: the 
NFR Framework (Chung, 1995) (Chung, 2000). This 
approach is far from being known as use cases are, 
but provides a unified framework to specify NFRs as 
“first-class citizens” in requirements context. 
We will present the NFR framework by quoting 
(Supakkul, 2004) extensively. The framework is 
goal-oriented, where NFRs are represented as 
“softgoals” that must be satisfied where there is 
sufficient positive and little negative evidence for 
the claim. In fact, softgoals are “satisficed”, a term 
coined to refer solutions that are sufficiently good, 
even if they may not be optimal (Chung, 1995). The 
“satisficeability” is determined by considering 
design alternatives or decisions, analysing design 
tradeoffs, recording the design rationale and 
choosing design decisions. This rationale is 
modelled in a softgoal interdependency graph (SIG), 
representing softgoal decompositions. The selected 
design decisions are used to guide application 
architecture and design. Figure 1 depicts a SIG 
fragment of Confidentiality softgoal. The light cloud 
ICEIS 2005 - INFORMATION SYSTEMS ANALYSIS AND SPECIFICATION
344