micromodels and to trigger subsequent tasks.
The overall development process is iterative and
agile, i.e. at any point in time, there may be multiple
teams working on different features in different phases
of the development lifecycle in parallel. Based on a
continuous integration and deployment process, the
whole system is constantly evolving.
The remainder of the paper is structured as fol-
lows. In Section 2 we present related work. Section 3
elaborates about the connection between Event Storm-
ing and micromodeling in detail. Section 4 especially
addresses the concern for model evolution and, last,
Section 5 concludes the paper.
2 RELATED WORK
Classical modeling approaches opt for a common en-
terprise wide or domain wide model. We call this a
monolithic model. As example, the medical domain
has a standardized domain model, the Reference Infor-
mation Model (RIM) that is provided by the Health
Level 7 (HL7) standard in version 3 (HL7, ). The RIM
is the basis for deriving even more complex models
for processing and exchanging medical information.
This complexity has been difficult and costly to imple-
ment. Thus, in version 4 of the HL7 standard, the RIM
and its derived holistic models have been replaced by
multiple smaller models, so called Fast Healthcare In-
teroperability Resources (FHIR). This relates closely
to our idea of micromodels. However, HL7 is not
yet using Event Storming as a means for modeling
the main workflows and as start for the modeling and
development process.
In industry, the derivation of suitable software ar-
chitectures using Event Storming is an established
practice. For example, Junker (Junker, 2021) describes
a corresponding approach using Event Storming to
derive service boundaries in a microservice architec-
ture in the context of platforms in the healthcare sector.
However, Junker does not refer to an event based archi-
tecture but her microservices exchange more complex
documents which results in a more strong coupling of
microservices.
Generally, the idea of using partitioned smaller
models to address the problem of growing model com-
plexity is a well established method. For example
Scheidgen et al. (Scheidgen et al., 2012) describe a
process to split models into smaller fragments to cope
with transportation and persistence of large models.
Also, the area of Collaborative Model-Driven Soft-
ware Engineering (Di Ruscio et al., 2018) provides
concepts to create smaller models to describe a larger
complex software system. We support these efforts,
but go a step further in our vision. Instead of reassem-
bling smaller models, we think that within the software
engineering process of modern applications it is not
necessary to have a unified, large model of the system
by using the proposed micromodel approach. In addi-
tion, the combination of micromodels with an Event
Storming model is new.
3 EVENT STORMING AND
MICROMODELING
In the following, we illustrate our approach using the
example of a software application for a family doc-
tor. As proposed, the modeling starts with an Event
Storming workshop, cf. (Brandolini, 2013). During
the Event Storming workshop a large group of domain
experts and future users collects domain events us-
ing orange sticky notes that name relevant events in
past tense, e.g. patient registered. A detailed Event
Storming may contain additional sticky notes (using
other colors) that may model commands, policies, read
models, etc. cf. (Brandolini, 2013). cf. Figure 1.
Figure 2 shows a small cutout of an Event Storming
for our medical example. We start with a disease regis-
tered event that adds a disease to our system. Then test
registered events add tests that allow to identify symp-
toms. A patient registered event adds a patient and a
consultation registered event protocols a consultation
where the doctor does tests to identify symptoms that
result in the diagnosis of a disease and a treatment.
Compared to business process models (BPM)
(Recker et al., 2009), Event Storming models work-
flows in a very informal way. According to Brandolini
the informal approach is a major advantage of the
Event Storming model as it allows to involve domain
experts and future users very easily. However, to turn
an Event Storming into software we need to add more
details. This shall be done by a requirements engineer
or a software engineer. For the medical example some
engineer refines the initial Event Storming notes by
adding example data. We call this step event modeling,
cf. Figure 9. The event model specifies the structure of
the events of our system. It is important input for the
implementation or configuration of the event broker
used in our approach, cf. Figure 6. In Figure 2 we use
a simplified YAML notation for our event modeling
data. For example, the disease registered event shows a
name attribute and a symptoms attribute that consists of
a list of symptom names. Similarly, the test registered
event has attributes for the type and for the symptom
that the test clarifies and for the price of the test. Note,
the data model for our events has a relatively simple
overall structure: there are event types with primitive
MODELSWARD 2022 - 10th International Conference on Model-Driven Engineering and Software Development
228