The NFR Framework constitutes a Goal-Oriented Requirements Engineering (hereafter
GORE) approach [4] for capturing NFRs in the domain of interest, and defining their
interdependencies and operationalizations. Nowadays, the interest in this kind of approach
increases in the RE community as the elaboration process of GORE approaches
ends where the traditional ones (e.g. Rational Unified Process (RUP) and other objectoriented
approaches) start. Thus, the NFR Framework, as well as all GORE approaches,
focuses on activities that precede the requirements specification, and that are performed
during the architecture design stage to drive and validate architectural decisions.
We chose the NFR Framework because it allows: designing alternatives for different
NFRs; dealing with conflicts, tradeoffs, and priorities; evaluating the decisions
impact centered on NFRs that commonly influence the success of ubisystems; and systematically
refining the models through the contributions specification for all alternatives
on the NFRs. The NFR Framework provides graphs – Softgoals Interdependency
Graphs (SIGs) – for NFRs modeling. The SIGs graphically represent NFRs as nodes;
their refinements using AND/OR decompositions links; their positive/negative interdependencies
as some+(hurt), some-(help), some++(make), some--(break) contribution
links; their operationalizations as leaf nodes; and claims as annotations in natural language.
Figure 1 illustrates a very simple SIG that models the Software Ubiquity, by
considering its decompositions – AND links – in Software Pervasiveness, Software
Mobility, and User's Satisfaction; an interdependency between Software Mobility and
User's Satisfaction – Mobility[Software] positively impacts (help) on Satisfaction[User];
an operationalization: “Mobile Agents using special capabilities” help Mobility[
Software]; and a claim “The Software delegates the complex device’s configuration
to the users” hurt the decomposition between Ubiquity[Software] and Satisfaction[
User]..