all context into overlapping parts, each describing the
concrete context for a subsystem. Last, we use prob-
lem diagrams to make dependencies between require-
ments explicit. For each step of the method, we define
validation conditions that ensure detecting errors dur-
ing the application of the method as early as possible.
Using diagrams, we provide a user-friendly view on
the elements of the model.
To simplify the application of our method, we pro-
vide a tool
1
based on the Eclipse Modeling Frame-
work (Steinberg et al., 2009). The tool assists
software engineers in instantiating the model using
graphical editors and wizards that guide through the
method’s application. Using the semantics of the
models along with OCL (Object Constraint Lan-
guage), we formalize the validation conditions for au-
tomatic evaluation. For the diagrams we use in our
method, we provide an intuitive notation based on
Google’s Material Design
2
. In the present paper, we
describe the tool for each step of the method in detail.
The remainder of the paper is the following: In
Section 2, we introduce Michael Jackson’s problem
frames as background knowledge. We introduce our
requirements model for distributed systems in Sec-
tion 3, and we describe our proposed method in Sec-
tion 4. Using a small case study, we exemplify the
application of the method in Section 5. We discuss
related work in Section 6 and conclude the paper in
Section 7 with a brief summary and an outlook on fu-
ture research directions.
2 BACKGROUND
To model functional requirements, we make use of the
problem frames approach as introduced by Michael
Jackson (Jackson, 2001). We consider two types of
diagrams, context diagrams and problem diagrams,
which both consist of domains, phenomena and in-
terfaces.
Machine domains (
) represent the piece of soft-
ware to be developed.
Problem domains represent entities of the real
world. There are different types: biddable domains
with an unpredictable behavior, e.g. persons ( ),
causal domains ( ) with a predictable behavior, e.g.
technical equipment, and lexical domains ( ) for data
representation. A domain can take the role of a con-
nection domain ( ), connecting two other domains,
e.g. user interfaces.
1
RE4DIST - https://swe.uni-due.de (last access: May
16, 2019)
2
Google Material - https://material.io (last access:
March 15, 2019)
S!{requestInformation}
I!{information}
Figure 1: Example for Context Diagram.
Interfaces between domains consists of phenom-
ena. There are symbolic phenomena, representing
some kind of information or a state, and causal phe-
nomena, representing events, actions and so on. Each
phenomenon is controlled by exactly one domain and
can be observed by other domains. A phenomenon
controlled by one domain and observed by another is
called a shared phenomenon between these two do-
mains. Interfaces (solid lines) contain sets of shared
phenomena. Such a set contains phenomena con-
trolled by one domain indicated by X!{...}, where X
stands for an abbreviation of the controlling domain).
A context diagram describes where the problem,
i.e. software to be developed, is located and which
domains it concerns. It does not contain any require-
ment. We show an example of such a diagram in Fig-
ure 1. It contains four domains and the corresponding
interfaces. There are Software , Equipment , In-
formation , and Person .
A problem diagram is a projection of the context.
It contains a functional requirement (represented by
the symbol ) describing a specific functionality to
be developed. A requirement is an optative statement
which describes how the environment should behave
when the software is installed.
Some phenomena are referred to by a requirement
(dashed line to controlling domain), and at least one
phenomenon is constrained by a requirement (dashed
line with arrowhead and italics). The domains and
their phenomena that are referred to by a requirement
are not influenced by the machine, whereas we build
the machine to influence the constrained domain’s
phenomena in such a way that the requirement is ful-
filled.
In Figure 2, we show a small example describing a
functional requirement for updating some information
which is a projection of the context given in Figure 1.
A Person provides information to Software to
be updated. We make use of a lexical domain Infor-
mation to illustrate a database. The functional re-
quirement Update refers to the phenomenon up-
ICSOFT 2019 - 14th International Conference on Software Technologies
72