Research projects Herbert Praehofer
Live Queries in Reactive Server Platform
CELUM GmbH is a leading developer and vendor for digital asset management systems. In a current research and development project, CELUM is setting up a collaboration platform which supports creating digital content in a collaborative fashion in globally distributed teams. Core of the system is a reactive server platform which is based on the reactive frameworks vert.x and RxJava as well a key-value data base system. A main challenge in these systems is to handle the workload of small database updates. Typically, data base updates affect a subset of the connected clients which must be notified of changes. However, currently there is no way to determine which clients are affected by which changes and thus all the clients connected must be updated eventually. Goal of this project therefore was to investigate, develop concepts and implement a prototype for incremental notifications of clients after data base updates. The approach allows finding out which clients must be updated when modifications of the database occur and triggering updates to clients.
The project "Multi-Modeling and Evolution in Software Ecosystems" is conducted within the Christian Doppler Laboratory for Monitoring and Evolution of Very-Large-Scale Software Systems (CDL-MEVSS). It focuses on supporting software development and evolution in software ecosystems, a type of VLSS where solutions are developed in a globally distributed manner by internal and external developers based on a core software platform. Results of this module will e.g., help determining the impact of a platform change on globally distributed customer systems in such multi-level ecosystems.
Static Code Analysis for PLC Programs
Static code analysis techniques analyze programs by examining the source code without actually executing them. In common, it is used to increase the quality of software by finding bad code smells and potential defects in early development stages. Today, they are widely spread and intensively used in general purpose programming and tools are numerous for established programming languages like C/C++, Java, C# and others. However, in the domain of programmable logic controller (PLC) programming static code analysis tools are generally not available yet.
In this project we therefore develop methods and tools for static code analysis of PLC programs. The tool allows parsing the source code files of PLC software and builds an internal representation of the programs in form of an abstract syntax tree (AST) augmented with type information. Based on the AST, the tool executes a set of user-definable rules to check for violations, which are written to an XML output file. Issues which can be detected in this way range from naming conventions, program complexity issues, bad code smells, incompatible configuration settings, problematic task interleaving and race conditions, possible performance problems, and violations of dynamic statement dependencies.
Currently the tool works for the KemroIEC which is a proprietary dialect of the IEC 61131 standard from Keba AG
and is used by Engel Austria for analyzing their automation software solutions for their injection molding machines.
GDE&S - Reuse
GDE&S - System Iintegration
GDE&S - Engineering-Synchroniser
ITEA-CAFÉ: Asset base management
JavaBeans Simulation Framework
Computer Aided Systems Architecting
Parallel discrete and discrete-continuous simulation
Foundations of Systems Engineering