requirements (EFR), because they are usually
constraints regarding quality (e.g. functionality,
usability) (Hochmuller, 1999). However, the
specification of this kind of requirements is not a
trivial issue, because of the high number and
diversity of requirements they are related to, and
their high impact in terms of the final architecture of
the system. Therefore, the proper selection of the
requirement specification technique becomes a
challenging and important decision.
In a previous work (Teruel et al., 2011) it was
analyzed which technique, Goal-Oriented (GO), Use
Cases or Viewpoints is more appropriate to specify
the requirements of collaborative systems and it was
determined that GO provides more facilities for this
kind of systems. In this paper, we study the
applicability of three Goal Oriented (GO)
approaches (NFR Framework (Cysneiros and Yu,
2003), i* Framework (Castro, Kolp and Mylopoulos,
2001) and KAOS Methodology (van Lamsweerde,
2001)) for the specification of collaborative systems,
paying special attention to the awareness
requirements. In order to carry out this study, the
awareness requirements of a real system (Google
Docs (Google, 2011)) were specified. After
modelling the system, an empirical analysis was
conducted in order to compare these different
techniques goal-oriented techniques.
This paper is structured as follows. After this
introduction, in section 2, the selection of GO
techniques for modelling this kind of systems is
justified. In section 3, three GO approaches
applicable to awareness requirements for
collaborative systems are analysed. In section 4, an
example of a widely known collaborative system is
presented: Google Docs. In section 5, an empirical
evaluation of the previous techniques for modelling
awareness requirements in Google Docs is
presented. Finally, some conclusions and future
works round up this work.
2 RELATED WORKS
This paper is a follow-up of the work presented in
(Teruel et al., 2011), where we analysed different
Requirement Engineering techniques applied to
collaborative systems. The main result of this
evaluation was that the most appropriate technique
for this kind of systems is Goal Oriented (GO).
Nevertheless, in (Teruel et al., 2011) the evaluation
did not focus on a specific GO proposal.
In the context of Requirements Engineering, the
GO approach (van Lamsweerde, 2001) has proven
its usefulness for eliciting and defining
requirements. More traditional techniques, such as
Use Cases (Cockburn, 2000), only focus on
establishing the features (i.e. activities and entities)
that the system-to-be should support. Nevertheless,
GO proposals focus on why systems are being
constructed by providing the motivation and
rationale to justify the software requirements
specification. They are not only useful for analyzing
goals, but also for elaborating and refining them.
A GO model can be specified in a variety of
formats, by using a more or less formally defined
notation. These notations can be informal, semi-
informal or formal approaches. Informal approaches
generally use natural language to specify goals;
semi-formal use mostly box and arrow diagrams;
finally, in formal approaches goals are expressed as
logical assertions in some formal specification
language (Kavakli and Loucopoulos, 2004). No
matter its formality, a goal model is built as a
directed graph by means of a refinement of the
systems goals. This refinement lasts until goals have
enough granularity and detail so as to be assigned to
an agent (software or environment) so that they are
verifiable within the system-to-be. This refinement
process is performed by using AND/OR/XOR
refinement relationships.
There are a wide number of proposals ranging
from elicitation to validation activities in the RE
process (see (Kavakli and Loucopoulos, 2004) for an
exhaustive survey). However, some concepts are
common to all of them:
Goal describes why a system is being
developed, or has been developed, from the
point of view of the business, organization or
the system itself. In order to specify it, both
functional goals, i.e., expected services of the
system, and softgoals related to the quality of
service, constraints on the design, etc should
be determined.
Agent is any active component, either from the
system itself or from the environment, whose
cooperation is needed to define the
operationalization of a goal, that is, how the
goal is going to be provided by the system-to-
be. This operationalization of the goals is
exploited to maintain the traceability
throughout the process of software
development.
Refinement Relationships: AND/OR/XOR
relationships allow the construction of the goal
model as a directed graph. These relationships
are applied by means of a refinement process
(from generic goals towards sub-goals) until
ENASE 2011 - 6th International Conference on Evaluation of Novel Software Approaches to Software Engineering
132