This common approach ends below the system
level, but systems have to be consistently explained
in the whole. Therefore a new paradigm has been de-
veloped to support system synthesis. This platform
based design is shown in Figure 1 by a Y-structure.
It is distinguished between the different views Ap-
plication, Platform and System, as further discussed
in (Sangiovanni-Vincentelli and Martin, 2001). This
means the development of the application’s function-
ality is separated from the development of the hard-
ware and software platform. Hence, this approach
takes into account that in many projects, platforms
are used for different products. The system axis de-
scribes the mapping or binding of application func-
tions to the hardware components. Although the ap-
plication and the platform view are covered by UML
and AUTOSAR (AUTOSAR development coopera-
tion, 2013), the system view is not supported well by
these techniques.
3.1 Application View
The application view as described in (Slomka et al.,
2011) is supported in three abstraction levels (see also
Figure 1) We distinguish between the module and the
task level that is subdivided into the task level itself
and the technology partitioned level. The behavior
of specific system parts is encapsulated by a task and
tasks may communicate with each other. Note that in
this context a task does not mean an operating system
task or process. The tasks are mapped to the platform
in a later stage described in detail in the step “system
view”.
3.2 Platform View
The platform view considers hardware as well as ba-
sic software (operating systems and frameworks). It
is an enhancement of the classic hardware and soft-
ware abstraction layers as described in Sect. 3 but it
focuses on the description of systems. In this paper
the platform view is limited to the digital domain. The
process starts with the module level to describe the
approximated platform consisting of modules like de-
vices, cards or chips and their interconnections. The
refinement step component level defines the system
platform in more detail. Components are the basic
functional blocks of the platform hardware. The com-
ponent level is a new abstraction level considering the
entire system’s hardware. It reduces hardware plat-
forms to addressable objects and their interconnec-
tions but encapsulates from wiring and physical di-
mensions.
The resulting architecture from the component
level can then be refined at the domain level that is
especially new in our methodology. Groups of com-
ponents are transformed to platform domains describ-
ing the resources and services that are offered by these
components. Domains describe the scheduling behav-
ior, memory layout and usable resources (e.g. com-
munication buses, I/O) of the platform.
Note that this is a new abstraction level to better
support the mapping of applications. For the applica-
tions it is not important how the components are con-
nected. It is important which memory can be used,
what resources are available and when it gets resource
time. Therefore this level supports an abstraction for
operating systems and frameworks.
3.3 System View
The system view unites the application and platform
view. At this level application elements (like tasks,
ports and links) are bound to the elements of the plat-
form domains that are called service access points.
Each computational task is assigned to a platform
domain describing its scheduling and memory layout.
Each port of the computational task is mapped to a
communication service access point of that domain.
The information what ports are involved in the com-
munication is given by the related computational link
and can be distributed through the system. Based on
the mapping it is possible to classify if a task is imple-
mented as a thread sharing memory with other threads
or as a process having its own memory or if an appli-
cation task is implemented as a function call.
In MARTE, allocation means the mapping of ap-
plication to a platform (Boulet et al., 2007). Un-
fortunately software engineers are talking about de-
ployment if they want to map software functions to
components. In system synthesis, allocation means
to choose a component, while binding is the term to
describe mappings of tasks to allocated components.
In this paper we use the system synthesis terms in-
stead, as the aim of the methodology is to synthesize
embedded systems.
First we introduce domains. Domains are an ab-
stract model of the platform and are especially useful
for the binding of application elements to platforms.
We introduce two types of domains that describe re-
sources, services with access points and the memory
layout. Domains group platform elements in a logical
way.
However, domains and their contained elements
are not the concept needed by synthesis, because they
hide architectural aspects. Therefore domains allow
an abstract formulation of architectures. Using the
concept of hierarchical composition of domains, it
AbstractModelingofembeddedSystemsHardware
253