  Today's production systems are complex networks of cyber-physical systems
which combine mechanical and electronic parts with software and networking
capabilities. To the inherent complexity of such systems additional complexity
arises from the context in which these systems operate. Manufacturing companies
need to be able to adapt their production to ever changing customer demands as
well as decreasing lot sizes. Engineering such systems, which need to be
combined and reconfigured into different networks under changing conditions,
requires engineering methods to carefully design them for possible future uses.
Such engineering methods need to preserve the flexibility of functions into
runtime, so that reconfiguring machines can be done with as little effort as
possible. In this paper we present a model-based approach that is focused on
machine functions and allows to methodically develop system functionalities for
changing system networks. These functions are implemented as so-called skills
using automated code-generation.
