From our point of view, the purpose of variability is
to consider and represent the large diversity of
options a given application of a given domain may
take. Variability has already been studied in the
domain of software product lines (
van Gurp, 2001)
(Halmans, 2003)
. It can be defined as the ability of an
element (component, system, model…) to be
changed, personalized and configured according to a
specific context. Bachmann and Bass (2001) propose
to classify variability into several categories
(functions, data, technology...). Halmans and Pohl
distinguish between essential variability for
functional and non-functional needs and technical
variability for implementation. Variability is
represented in (Jacobson, 1997) and (Halmans,
2003) by variation points and variants on use cases:
a variation point defines a point in the model where
variation occurs, whereas a variant is a manner of
realizing variability. Moreover, mechanisms such as
optionality, alternative and optional alternative to
organise them are used (Bachmann, 2001),
(Halmans, 2003).
Variability has also been studied in domain
analysis. Among domain analysis methods (Arango,
1994), the FODA method (Kang, 1998) has been the
first one to propose the concept of feature, defined
as a prominent or distinctive user-visible aspect,
quality or characteristic of a software system or
systems. The feature model highlights, in the form of
hierarchy sets, the characteristics that discriminate
systems in a domain. Other approaches study
variability at an early requirement engineering step.
In Crews project (Bennasri, 2004), task and
strategies alternatives are defined in labelled
directed graphs called maps (Rolland, 1998), that
provide support in alternative selection through
guidelines. In (Liaskos, 2006), variability is tackled
through OR decomposition of goals, by stating
variability concerns that use semantic frames based
on linguistic invariants, and with a mechanism of
background variability. This mechanism allows to
describe characteristics of agents, locations and
objects of the domain, that may lead to identify
additional alternatives. A survey of variability in
requirement engineering can be found in (Liaskos,
2007).
The originality of our approach is to apply
variability to goals, not only to analysis, design or
programming products. Our approach of variability
is in continuation of our previous work (Semmak,
2005), (Semmak, 2006) except that we now use a
well-known goal approach (KAOS) rather than a
specific one.
In section 2 we introduce the notion of variant that
seems necessary in respect with our objectives. We
apply it on goal and responsibility models and
sketch out the impacts on the other KAOS models.
In section 3 we group together variants in facets,
organize them in a tree called variant model or
graph, and present a metamodel to relate variant
models with goal models. Finally we conclude in
section 4.
2 VARIANTS
2.1 Variants applied to Goal Models
In KAOS, a goal can be reduced by AND
decomposition; that means that all the subgoals are
necessary to satisfy a goal. Moreover, a goal may be
reduced by OR decomposition that allows several
alternatives to satisfy a goal to be stated. It is
important to observe that OR decompositions are
placed before AND decompositions: we can say that
a goal is satisfied either by this set of subgoals or by
this other one. If we want the contrary, we must
introduce intermediary goals: a goal is achieved by
the satisfaction of all its subgoals, each of them
being possibly decomposed with alternatives.
Another remark is that alternatives may be needed
not only for low-level goals but also for abstract soft
goals. For instance, if we study all kinds of public
libraries, we can find some public libraries that
allow documents to be consulted and borrowed,
while others allow only documents to be consulted
or only documents to be borrowed. Thus, a root goal
“documents put at disposal” may be reduced by
an OR decomposition with the subgoals
“documents put in consultation” and
“documents put in borrowing”. Each of these
subgoals will share some common subgoals such as
“documents managed”, that is the reason why
goal models are not trees even if there is a root: they
just are oriented graphs with a root.
In order to justify the introduction of the variant
concept, we may highlight that some variations in
the requirements cannot be simply represented by
alternatives, because it may have an impact on
different parts of the goal graph. By using an
alternative, it seems that what we can only do is to
determine the smallest subgraph that contains all the
impacts of the variation, to duplicate this subgraph,
to introduce the variations on one of them, and to
link both of them with an OR link to their parent
goal. When several variations are introduced in the
requirements, this mechanism leads quickly to
ICEIS 2008 - International Conference on Enterprise Information Systems
340