Software applications and games can quickly become very complex systems that are far from static products throughout their lifecycles. Updating such an application can be desirable for many different reasons, including fixing game-critical bugs, adding new levels and features, or providing security updates. Developing such systems relies on well-prepared planning as well as execution of the construction, deployment, and maintenance phases.
Developing and maintaining software systems not only involves understanding hardware integration, user-behaviour, and the environment in which the application is most likely to be used; but also require expressive tools that enhance code-clarity for the developer. As a result, one of our main focusses lies on how programming languages, methods, and tools can be designed and applied to support the construction of programs and related artefacts.