2 RELATED WORK
We agree with the opinion of (Regev and Wegmann,
2005) that Goal-Oriented Requirements Engineering
is an important contribution by the RE research
community and provides many benefits.
Firstly, the GBRAM method (Anton, 1997)
emphasizes the initial identification and abstraction
of goals from various information sources, using
keywords and standard questions for eliciting input
from domain experts and classifying this
information into concepts like goals, constraints,
obstacles and requirements. GBRAM structures the
goal modelling process into several phases:
exploring, identifying, organizing, refining,
elaborating and operationalization.
Secondly, by separating the definition of a goal
and requirement, GORE gives the fundament for
reasoning about the software product in hand.
Thirdly, a goal model can capture variability
through the use of alternative goal refinements,
separating stable information from volatile one, and
making quantitative and qualitative analysis of these
alternatives possible (Lapouchnian, 2005).
Goal models can be developed using a simple
AND/OR tree structure, linking a goal G with sub-
goals G1, G2, …, Gn. An AND relation requires all
sub-goals to be achieved, while an OR relation
provides alternative options. Labelling relations with
identifiers like “++” ,“+”, “-” and “--”, partial goal
satisfaction can be modelled (Giorgini et al., 2003).
There have been several GORE methods defined
over the years that provide more goal modelling
semantics; the most prominent being KAOS (van
Lamsweerde, 2001) and i* (Yu, 1999).
Very little research is available about
reengineering goal models from existing software
systems. Only (Yu et al., 2005) describe a method
for reverse engineering a goal model, but they focus
on design recovery for undocumented software,
creating goal models from legacy code using state
charts and hammock graphs.
However, most software products still have
requirements documented in some form, and
functional experts are often willing to provide
additional information. This means, that it is not
necessary to rely only on legacy code reengineering
the goal models. Existing documentation like
requirements specification documents, user manuals,
marketing brochures and product roadmaps should
be used as a starting and reference point. As the
domain experts often have a busy schedule,
completely relying on their input is a bad strategy
(John, 2006).
Prioritization of goals is not part of any of the
existing GORE modelling methods.
The prioritizing is used only at the level of
software product requirements. According to
(Berander and Andrews, 2005), the prioritizing is
often performed using a hierarchy of high- and low-
level requirements, which are evaluated using
methods like the Analytical Hierarchical Process
(AHP) or Hierarchical Cumulative Voting (HCV). In
our opinion, prioritising at the level of goals
provides more information about the motivation of
priorities and helps to explain the management
decision.
3 A METHOD FOR
REENGINEERING AND
PRIORITIZING OF GOAL
MODELS
In order to design our method of goal-model
reengineering we have combined the useful ideas of
goal-oriented approaches, and extended them with
the process for goal prioritising.
Our method has two different input sorts. At the
stage of initial goal model development, the input is
the documentation of the software product and the
approval of it by the domain experts. At the stage of
prioritising, the input comes from the votes of
experts. The method consists of seven phases, as
shown in Figure 1.
The first four phases (1-4 in Figure 1) copy the
GBRAM method (Anton, 1997), but use
documentation as the input.
During the Explore phase (1), all relevant
documentation is explored. This provides us with
unstructured information, like the terminology used
to describe functionality, core concepts, modules,
etc.
In the Identify phase (2), we try to find the
answers on the WHY-questions and create the first
draft goal models. The draft models are created
using the information obtained during the Explore
phase and input from domain experts in modelling
sessions.
Draft goal models are corrected by experts live
during these sessions, using the KAOS modelling
tool Objectiver™ (Respect-IT, 2007). One of the
reasons why we have chosen to use KAOS instead
other goal modelling methods is that we can easily
separate the parts of goal modelling from other
KAOS functionality (responsibility modelling,
object modelling, operation modelling) by omitting
A Method for Reengineering and Prioritizing Goal Models
205