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