ment becomes satisfactory. According to Jackson’s
approach (Jackson, 2001), first a context diagram is
created showing the machine in its environment. Then
the overall software development problem is decom-
posed into subproblems and each subproblem is doc-
umented in a problem diagram. A context diagram
usually consists of the following modelling elements:
the machine domain, problem domains, and interfaces
between them (see Fig. 8 for an example). The ma-
chine domain is the software-to-be. A problem do-
main represents a material or immaterial object in the
environment (e.g. people, other systems, a physical
representation of data). An interface expresses that
phenomena (e.g. events, states, values) are shared be-
tween the domains it connects. At the interface, the
shared phenomena are annotated and, by means of
an exclamation mark, the domain controlling them is
indicated. For creating problem diagrams, the same
modelling elements are used. In addition, a problem
diagram contains a requirement which is to be satis-
fied by the machine domain and the problem domains
shown in the problem diagram (see Fig. 9 for an ex-
ample). The requirement is connected to the problem
domains by means of at least one constraining ref-
erence, and optionally a requirement reference. The
latter means that the requirement refers somehow to
the domain phenomena. The former means that the
requirement even constrains the domain phenomena.
In context and problem diagrams, so called connec-
tion domains may be modelled as well. A connec-
tion domain is “a domain that is interposed between
the machine and a problem domain” (Jackson, 2001).
Examples of connection domains are sensors and ac-
tuators. They connect the machine to the environmen-
tal domains that are monitored/controlled. According
to Jackson, they can be omitted in context/problem
diagrams if they are reliable.
The Six-Variable Model. We introduced the Six-
Variable Model in previous work (Ulfat-Bunyadi
et al., 2016). It is based on the famous Four-Variable
Model for control systems defined by Parnas and
Madey (Parnas and Madey, 1995). The four vari-
ables are monitored, controlled, input, and output
variables. Monitored variables m are environmen-
tal quantities the control software monitors through
input devices like sensors. Controlled variables c
are environmental quantities the software controls
through output devices like actuators. Input vari-
ables i are data items that the software needs as in-
put, and output variables o are quantities that the
software produces as output. We made the obser-
vation that in practice it is sometimes not sufficient
to document only the four variables. As require-
ments are refined and the decision is made which sen-
Control
machine
Environmental
domain W
REQ
Environmental
domain Z
SE!i
CM!o
Sensors
EW!m
EW!r
Actuators
EZ!d
AC!c
Legend:
r: environmental properties originally referenced by the requirement
d: environmental properties that shall be as desired by the requirement
m: variables actually monitored by sensors
c: variables actually controlled by actuators
i: input variables
o: output variables
Sensors/actuators/other
systrems connecting
software-to-be to reality
Requirement
in real world
Software-to-be
Remote problem
domains
in real world
Figure 1: Six-Variable Model (Ulfat-Bunyadi et al., 2016).
sors/actuators/other systems to use for monitoring and
controlling, the environmental quantities that have
been relevant in the requirements at first (i.e. before
decision making) are replaced by the environmental
quantities that can actually be monitored/controlled
by the selected sensors/actuators/other systems. Ex-
isting approaches (like the Four-Variable Model) only
call for documenting the environmental quantities
that are finally relevant and that are actually moni-
tored/controlled. The quantities that have been rele-
vant originally, are not documented. This results in
problems when the software shall be reused in an-
other context/environment with slightly different sen-
sors/actuators. Then it is hard for developers to de-
cide, which environmental quantities still need to be
monitored/controlled and which ones not. Therefore,
we argue that six variables should be documented: the
four variables i, o, m, c and additionally r and d (see
Fig. 1). r represents the environmental quantities that
were originally referenced in the requirement and d
represent the environmental quantities that shall be as
desired by the requirement.
In Fig. 2, an example of documenting the six vari-
ables is given. We used the famous patient monitoring
system as an example here. The machine is intended
to notify a nurse if the patient’s heartbeat stops. The
machine is connected to a sensor and an actuator. The
sensor detects the sound in the patient’s chest. If the
patient’s heart has stopped beating, the sound from
the patient’s chest falls below a threshold for a cer-
tain time. Then, the machine raises the sound of the
buzzer to inform the nurse. The referenced variable is
the patient’s heartbeat, the monitored variable is the
sound in the patient’s chest, and the input variable is
the corresponding value measured by the sensor. The
output variable is ‘sound on/off’, the controlled vari-
able is the buzzing of the buzzer, and the desired vari-
able is that the nurse is informed.
Essence versus Incaration. The differentiation be-
tween essence and incarnation of a system was intro-
duced as part of Essential Systems Analsis in 1984
Introducing Product Line Engineering in a Bottom-up Approach
147