are expected to achieve. For hard-goals, there are
clear-cut criteria for whether they are achieved. But
there are no clear-cut criteria for soft-goals. It is then
usually very hard or even impossible to satisfy
completely a soft-goal. One might compare hard-
goals to functional requirements and soft-goals to
quality requirements. However, this is not an
adequate comparison since, for examples,
Availability (of system) requirement is, indeed, a
soft-goal but Happy Customers soft-goal is not a
quality requirement. As we will see, the relation
between soft-goals and quality requirements is not
simply an inclusion.
A recent approach presented in (Jureta,
Mylopoulos & Faulkner 2008) uses the notion
quality requirements to define well-defined and
measurable quality and uses soft-goals to define
abstract qualities that cannot be defined in a clear
cut way. Actually, these definitions only provide a
classification of quality requirement in to well-
defined qualities and abstract qualities and they do
not take into account other soft-goals than qualities.
Although this approach uses a very interesting
analysis, i.e. analysis of speech acts in
communicated content between stakeholders, to
ground its concepts, its applicability is still open and
depends on future applications.
In order to give quality requirements a new role
that is qualifier on hard-goals and soft-goals, we
propose, in this paper, a new definition for the three
most important notions: hard-goals, soft-goals and
quality requirements. We also propose the analysis
with this new definition to keep track of quality
requirement from early requirements until the final
products. As a result, quality requirements will play
a much more active role in the development process
than being just criteria for comparing design
alternatives. Goal decompositions with quality
requirements will be easy to be derived. The paper
will also reveal a clearer connection between hard-
goals/soft-goals and functional/non-functional
requirements.
From the analyses proposed by the paper, quality
requirements can be seen as an additional dimension
to the goal dimension. Goals elicit quality
requirements and qualities constrain goals in a
reinforcing relationship.
We start this paper by giving an overview, in the
Section 2, of goal-based requirements engineering.
In Section 3, we will reposition quality requirements
inside this framework in order to introduce the
quality-aware goal analysis. QTropos, a quality-
aware agent-oriented software development process
that keeps track of quality requirements from the
requirement analysis to the final products will be
briefly presented in Section 4. We will end this
paper with some concluding remarks.
2 GOAL-BASED REQUIREMENT
ENGINEERING
In software requirements engineering, goals have
become promising tools for requirements eliciting
and elaborating. Goals whose satisfaction criteria
can be formally described and correctly checked are
hard-goals; otherwise they are soft-goals. We can
satisfy hard-goals but only satisfice soft-goals
(Chung et al. 2000). Satisficing a goal is a weaker
notion of satisfaction where goals are only partly
satisfied. In practice, the term goal is used
extendedly for hard-goals in contrast to soft-goals.
This is sometimes very misleading. We will
explicitly use the terms hard-goal and soft-goal and
the term goal will used to specify the general
concept containing both hard-goals and soft-goals.
In the remaining part of this section, we will
outline some essential points that make goals really
attractive in requirements engineering.
First, goals are objectives that developers expect
the system-to-be to achieve. By definition, a goal
describes only a state of the world that the system
should bring about. Usually, a high level goal does
not contain any detail of what and how the system
should do to obtain it. Examples of such goals are
Market Share Increased, Happy Customer, etc.
These high-level goals can be found quite easily in
preliminary documents, interviews of stakeholders,
etc. Lower-level goals are then elicited through the
analysis of higher-level goals or through the
subsequent interactive communications between
developers and stakeholders. A common mistake is
to consider goals as function designs or algorithmic
sketches. Indeed, a goal is usually a description of
the outcome of an operation (posterior conditions),
while a function design is a plan of how to carry out
an operation. Given a goal, there can be zero, one or
more than one ways (plans or function descriptions)
to completely achieve it. It can be said that using
goals to model requirements can reduce the gap
between the stakeholders’ desires and the outcomes
of the system by starting directly from the needs and
imposing minimally, a priori, on the choice of
structure and technique to be used.
Second, goals provide a greater expressibility,
the ability to express, than functional and non-
functional requirements. Goals can be divided into
two classes based on their satisfiability. Compared
to traditional approaches, every functional
ICEIS 2010 - 12th International Conference on Enterprise Information Systems
14