4.1 Used Techniques
Problem Diagrams. As described in Section 3, prob-
lem diagrams (Jackson, 2001) are well suited for
modelling the six variables, since they show the re-
quirement, the remote problem domains, the connec-
tion domains, and the machine domain in one diagram
together with the shared phenomena. Yet, develop-
ers need guidance in documenting the ‘right’ six vari-
ables therein and not other phenomena. We provide
this guidance in our method (see Section 4.2). Al-
though we use problem diagrams, we do not proceed
in the way suggested by Jackson during problem de-
composition. Our method proceeds in another way.
For creating the problem diagrams, we used the
UML4PF tool (Cote et al., 2011). The benefit of us-
ing this tool is that different other analyses can be per-
formed on the models that are created with this tool.
In UML4PF, problem diagrams are shown as UML
class diagrams with corresponding stereotypes to ex-
press the semantics of problem diagram model ele-
ments. For more details regarding the mapping of the
notations, see (Cote et al., 2011).
Differentiating between Essence and Incarnation.
The differentiation between essence and incarnation
of a system was introduced 1984 by McMenamin and
Palmer (McMenamin and Palmer, 1984). The essence
comprises the capabilities that a system must pos-
sess to fulfil its purpose, regardless of how the sys-
tem is implemented. The incarnation comprises all
implementation details. A heuristic for identifying
the essence of a system is the assumption of perfect
technology, i.e. the assumption that the technology
within the system is perfect, i.e. processors are, for
example, able to do anything constantly and contain-
ers are able to hold an infinite amount of data. We
use the differentiation between essence and incarna-
tion in our method too. Yet, to identify the essence,
we assume that the technology outside the machine
is perfect. This means, for example, that connec-
tion domains like sensors and actuators are consid-
ered to be reliable and are therefore not shown in the
corresponding context/problem diagram. To consider
the incarnation, the assumption of perfect machine-
external technology is then given up.
OVM and Selection Model. To document con-
textual decisions and options/alternatives, we use the
OVM (Orthogonal Variability Model) (Pohl, 2010).
The OVM was originally developed to capture the
variation points and variants of a product line together
with their variability dependencies (mandatory, op-
tional, alternative choice) as well as constraint depen-
dencies (requires, excludes). The variants can be re-
lated to a development artefact like a requirement or
a diagram (or a part of it) by means of so called arte-
fact dependencies. The artefact (or the part of it) is
then defined as being variable. For documenting the
choices that are made, a selection model is created.
We use the OVM to document the contextual deci-
sions to be made, the options/alternatives that are se-
lectable, and dependencies among them. By means
of artefact dependencies, we relate the alternatives
to variable elements of the AND/OR graph (see next
section). To document the choices, we also use a se-
lection model. The strength of the OVM and the main
reason for choosing this approach over others is that
one is able to relate a variant to an entire model, a
model element, or even certain sections of a model.
AND/OR Graph. For documenting the refine-
ment/decomposition of requirements, we use an
AND/OR graph (which is similar to the AND/OR
goal graph described in (Pohl, 2010)). The AND/OR
graph is a directed, acyclic graph with nodes that rep-
resent requirements and edges that represent AND-
decomposition relationships and OR-decomposition
relationships between the requirements. A decom-
position of a requirement R into a set of subrequire-
ments R
1
,..., R
n
is an AND-decomposition iff all sub-
requirements must be satisfied to satisfy the require-
ment R. A decomposition of a requirement R into a set
of subrequirements R
1
,..., R
n
is an OR-decomposition
iff satisfying one of the subrequirements is sufficient
for satisfying the requirement R. What needs to be
documented in addition to the AND/OR graph, is the
reasoning why each AND/OR-decomposition is suf-
ficient. We suggest documenting this information at
least informally in natural language.
4.2 Method Steps
Figure 5 provides an overview of the method steps as
well as the input and output of each step.
Step 1: Create an essential context diagram. As
a first step, the remote problem domains are identi-
fied and a context diagram showing the machine do-
main, the remote problem domains, and the interface
between them with the r and d variables is created
(see Figure 6). The context diagram is essential, since
we assume that the connection domains are all reli-
able and, thus, abstract from them. As input to Step
1, knowledge about the machine and its environment
is needed.
Step 2: Create essential problem diagrams. Dur-
ing this step, the overall problem/requirement is de-
composed/refined and, for each requirement, an es-
sential problem diagram is created. The informa-
tion to be documented in an essential problem dia-
gram is given in Figure 7. An essential problem dia-
ICSOFT-PT 2016 - 11th International Conference on Software Paradigm Trends
20