Today, advanced technological products often employ information and communication technology to enhance their functionality and quality. Therefore, nowadays software plays an important role in the control of many technical systems such as electrical and mechanical devices, technical processes in the chemical industry, or a modern automobile. This trend towards software-intensive and embedded systems results in the astonishing observation that the technology company Siemens actually employs more software developers than Microsoft. (Reinhold E. Achatz, Keynote: Optimizing the Software Development in Industry (exemplified for Siemens). Peter Liggesmeyer, Klaus Pohl, Michael Goedicke (Eds.): Software Engineering 2005, 8.-11.3.2005 in Essen. LNI 64 GI 2005. (German).) In addition, we can observe that advanced technological sectors such as the automotive industry have started major efforts to address software quality and software integration issues. (cf. AUTOSAR)
In the future, software-intensive systems are in addition expected to be highly distributed and to exhibit adaptive and anticipatory behavior when operating in highly dynamic environments and interfacing with the physical world. (M. Wirsing (Ed.), Report on the EU/NSF Strategic Workshop on Engineering Software-Intensive Systems, in conjunction with the ICSE05, Edinburgh, UK, 2004.) Therefore, appropriate modeling and analysis techniques to address these software-intensive systems are required (NSF Workshop on Modeling and Simulation For Design of Large Software-Intensive Systems: Toward a New Paradigm Recognizing Networked, Distributed and Diffuse-Control Software, Tucson, Arizona, USA, 2003.) that support a mix of models from a multitude of disciplines such as software engineering, control engineering, and business process engineering.
Suitable visual modeling techniques for the software architecture of distributed systems, the modeling of service- and component-based systems, and an approach for the consistent integration of different architectural views by means of synthesis have been developed which enable to systematically study architectural decisions and detect problems early on.
Software-intensive systems are often not only distributed, but also contain embedded systems, which must exhibit hard real-time behavior. To also address these requirements, an approach to model such software-intensive systems and their architectures a multi-agent system with autonomous, self-adaptive agents using UML components and patterns with real-time behavior has been developed. In addition, we made first steps towards the synthesis of the real-time behavior from scenariosto ease the transition from requirements to design.
To be able to integrate the models from the other disciplines usually involved in the development of software-intensive systems, such as control engineering and business process engineering, into our software engineering model, we studied the integration of workflow and UML models and the integration of control-oriented quasi-continuous models into hierarchical UML components and Statecharts. The concepts can be further employed to also describe self-adaptive behavior in form of hierarchical reconfiguration and support the decoupling of soft and non real-time tasks at the architectural level.
As software-intensive systems are often safety-critical systems, suitable means to identify and analyze relevant hazards are mandatory. A compositional hazard analysis which exploits the component structure of the system and an approach for the automatic compositional verification of embedded real-time systems using components and patterns and the modular verification of the hierarchical hybrid systems with modular reconfiguration capabilities have thus been developed. The verification approach is supplemented by a technique to verify structural safety properties for infinite state systems with structural adaptation behavior at run-time.
We further developed concepts for the code-generation of hard real-time systems, which ensure, that the high level properties of the models, which have been analyzed and verified, can also be guaranteed for the generated code.
The results obtained for the modeling, analysis, synthesis, and code generation are supported by the Fujaba Real-Time Tool Suite. This real-time version of the UML CASE tool Fujaba Tool Suite provides seamless tool support for the model-driven development of self-optimizing mechatronic systems.
In the context of the model-driven development of software, some general concepts for the integration of different modeling artifacts at the meta-model level and model synchronization have been developed.
More information can be found on the websites of the particular research projects.