Software and Systems Engineering investigates processes, methods, techniques, and tools for developing high-quality software systems, spanning the whole development life-cycle, from requirements engineering to system deployment and maintenance. Software and Systems Engineering is at the heart of our research, teaching and knowledge transfer activities. Our research focuses on safety- and security-critical systems, model-driven development, verification and quality assurance, as well as process development and improvement. Fields of application are, among others, self-organizing (OC-) systems, component-oriented systems, and mechatronics and robotics. We offer courses in Software and Systems Engineering at Augsburg University and especially in the Elite Graduate Program Software Engineering.
The inner quality of software is critical for its sustainability. Techniques from Software Visualization make it possible to find and display technical debt in a software system.
Time-to-market and the ability to rapidly adapt to a changing economic environment are nowadays important characteristics of software development. Agile Methods help to implement features swiftly and nevertheless provide software of a high quality.
For a lot of applications scalability is a key feature. Microservices are an architectural pattern that enables a software design for easy horizontal scaling.
Dr. Dominik Haneberg
Software and Systems Engineering
Software and Systems Engineering addresses the central topics of software development and systems design: Methods, processes and practices for a systematic and well-structured development of software systems. The activities of a software engineer range from the first contact with the customer to work out the requirements for the system through requirements analysis, software architecture and object-oriented design to testing and maintenance. A wide variety of process models is available for different types of projects, ranging from agile methods (e.g. Scrum and Kanban) for smaller and more explorative projects to heavy-weight processes like the Unified Process or the V-Model for large and long-term system development efforts. Formulating artifacts in software development requires knowledge and understanding of different specification techniques like use-cases and UML diagrams as well as formal annotations like OCL. Software architecture, design patterns and the principles of object-oriented design are required to turn the customer’s requirements into a reliable, maintainable and sustainable design of the system. Systems engineering focuses on the specifics of analyzing and designing heterogeneous system landscapes. It deals with coupling software with its environment which can be an enterprise application landscape (Enterprise Application Integration) as well as special hardware (Embedded Software, hardware-software-codesign). These integrated systems often have special requirements emerging from the system as a whole. We are dealing with all these aspects of software and systems engineering in our teaching and offer knowledge-transfer and consulting as well as joint research efforts on all these topics. Our research focuses on modeling techniques and languages for security and safety, software development for self-organizing (OC-) systems and component-oriented software development.
The goal of our research is to enhance the state-of-the-art in Software and Systems Engineering to have applications with higher quality in a shorter time.
Our manifold research activities include:
- SAVE ORCA deals with the systematic design of reliable Organic Computing applications and offers a development guideline for such systems
- Secure-MDD develops a model-driven method for the design and implementation of security-critical systems
- GO!Card combined formal and semi-formal methods into a rigorous development process for secure smartcard applications
- SoftRobot developed a new software architecture for controlling industrial robots
Training in software engineering technologies and methods: modeling, object-oriented analysis and design, classical and agile software engineering processes, requirements engineering, testing
Development and survey of architectures for innovative software projects
Consulting and supervision of software projects and projects for the development of software intensive systems
- Evaluation of the quality of the development process of a development team
- Investigation of legacy systems with a focus on technical debt and architecture erosion
Institute for Software & Systems Engineering
The Institute for Software & Systems Engineering (ISSE), directed by Prof. Dr. Wolfgang Reif, is a scientific institution within the Faculty of Applied Computer Science of the University of Augsburg. In research, the institute supports both fundamental and application-oriented research in all areas of software and systems engineering. In teaching, the institute facilitates the further development of the faculty's and university's relevant course offerings.