Profile of the Software Engineering Group at Heidelberg University
Our main focus is Quality Engineering, namely the engineering of quality products and the quality of the engineering process.
The overall goal is to develop effective and efficient methods for achieving high quality of software. The main facets of our quality engineering approach are:
- Process
Create and capture the organization of distributed working groups during projects and beyond - Communication
Create and capture the knowledge necessary for a joint understanding of all process participants - Management
Create and capture decisions during software development by managers, developers and customers - Experience
Create and capture the experience of process participants to allow for continuous improvement - Modeling
Create and capture the understanding of the developed software on different levels of abstraction
Based on this we support customers and developers in elicitation, specification, management, design, inspection and testing of quality. An example of an industrial collaboration where we helped Nokia STP to improve their requirements engineering process along these facets is described in the article B. Paech, J.Doerr, M. Köhler: Improving Requirements Engineering Communication in Multiproject Contexts, IEEE Software, Januaray/February, 2005.
An underlying theme for all these quality engineering facets is rationale. Rationale is the justification behind decisions. It is captured and used in many different forms during and for software engineering. The availability of rationale increases the developers’ understanding of the system, making it easier to adapt or maintain. Being able to explain past decisions also facilitates the training of new members in a development team.
For a few years we are successfully applying our task-oriented requirements engineering approach TORE (Task- and object-oriented requirements engineering, Link to publication) in industry and teaching. It shows how to capture functional requirements with use cases. In addition, it links the use cases to the business and work processes through the notion of tasks, and it links the use cases to user interface design through the notion of the user interface structure. Ongoing work encompasses the integrated treatment of non-functional requirements as well as the link to architecture specification and design. Furthermore, we are working on an approach integrating test planning and specification with requirements engineering.
Our approach is supported by the tool unicase developed by the TU München and recently also by our students. unicase is a CASE tool supporting participants in a distributed software engineering project to collaborate on the development of models over an extended period of time. Among other things, unicase focuses on rationale management.