Page 180 - Software and Systems Requirements Engineering in Practice
P. 180
146 S o f t w a r e & S y s t e m s R e q u i r e m e n t s E n g i n e e r i n g : I n P r a c t i c e
One way to deal with “more is better” logic is by using the goal
modeling approach we have discussed in Chapter 3. A goal model is
a graph of nodes and edges, where the nodes are goals and other
decisions, and the edges are “satisficing” relationships. The term
“satisfice” means “satisfy sufficiently.” So, if a design decision seems
to achieve a goal well enough for the purposes of a particular project,
we say that the decision satisfices the goal.
More typically, a single decision contributes toward satisfying
several goals but also interferes with achieving other goals. Some
goal modeling notations therefore support both positive and negative
satisficing relationships, and some even provide for “double-plus”
and “double-minus” links. In these models, an edge A → + B means
“A contributes to satisficing B.” A → − B means “A interferes with
satisficing B.” To decide whether a given node N is satisficed, one
must consider all the edges leading to it, both positive and negative,
and analyze the combined effect of those decisions on the goal. While
this representation can be useful in visualizations, diagrams of large
graphs can be in practice quite unreadable. Their value comes more
from their use in a trace link database, when analyzing the impact of
changing a decision (see later Figure 5.4).
Global Analysis
Global analysis is a methodology for organizing a broad variety of
soft, uncertain information gathered in the early stages of architectural
requirements analysis [Hofmeister et al. 1999], [Paulish 2002]. It is
“global” both in the sense that it looks at the system from all directions
(all external interfaces, all stakeholder concerns, plus any sort of other
constraint, whether from the organization, the marketplace, available
implementation technologies, the job market, or whatever), and the
topics addressed frequently have a broad impact on the system as a
whole, cutting across many subsystems and multiple architectural
views.
Global analysis classifies this information into three types of
entries: factors, issues, and strategies. Architecture-influencing factors
are (alleged) facts that are likely to have significant influence upon
the architecture. Issues are potential conflicts or tradeoffs among
factors. Strategies are proposed decisions that address the issues. All
three types of entries are collected concurrently, as new information
becomes available, opportunities to ask questions arise, and ideas
come to mind. Classifying them this way helps the analysts keep
from confusing external constraints with proposed solutions, helps
them focus on the hard problems first, and helps them build their
rationale for the emerging architecture.
Factors: Beyond Requirements
Any requirement or stakeholder concern might be a factor, but there
are many factors that are neither requirements nor stakeholder