SFB 501


A1  Software Engineering Laboratory
     Prof. Rombach Staff

Techniques, methods, and tools for software development must be tested experimentally, in order to gain experiences regarding their strengths and weaknesses under different project conditions. Such experiences are an indispensable requirement for the effective reuse of techniques, methods, and tools, as well as for their systematic improvement.
The sub-project A1 provides a Software Engineering Laboratory which supports other sub-projects of the SFB 501 in the experimental testing of their techniques and methods. For this, the Software Engineering Laboratory assumes the role of the contractor for the experiments. The following aspects, especially, are being supported:

  • Creation of explicit experiment plans
  • Execution of experiments on the basis of such plans
  • Capturing of measurement data during experiment execution for the purpose of empirically gaining experiences
  • Installation of an experience base for storage and administration of models, documentation techniques, products, and processes together with empirically gained experience for the purpose of reuse

A2  Development of a Flexible Modeling and Enactment Environment for Software Development Processes
     Prof. Rombach, Prof. Richter Staff

Software development processes contain a multitude of individual processes. We distinguish between technically-oriented processes for the creation of SE products, and management-oriented processes for the coordination of distributed team and individual activities. Running a project efficiently requires a tool for the integrated support of both types of processes. The following main resaerch topics are:

  • Development of an integrated model for process support which integrates appropriate mechanisms for the support of local replanning within creative individual processes as well as for the support of global replannings;
  • Transformation of the integrated process support model into a modeling tool and a process machine which make it possible to alternate project planning and execution by dynamic interaction;
  • Experimental testing of the approach in the context of case studies and controlled experiments.
Techniques that are used and developed further are the process modeling languages MVP-L and MILOS as well as AI plannning techniques.

A3  Supporting Software Engineering Processes by Object Relational Database Technology
     Prof. Härder, Dr. Ritter Staff

In large software development processes, reuse has to be supported by providing a shared data repository which has to fulfill lots of heterogeneous data management as well as data processing demands. On one hand (data management needs), it is required to manage simply structured data, e. g., measurement data, and complex structured design objects in an integrated way. On the other hand (data processing needs), server-side as well as client-side processing mechanisms are required to support application efficiency. At a first glance, object-relational database technology seems to be best suited for these purposes, since the extensibility property of object-relational database management systems (ORDBMS) promises the possibility of tailoring the database system to the application needs. Although there are already commercially available DBMS calling themselves object-relational, it is by far not clear yet, what the best way of integrating object-oriented and relational modeling concepts is and which extensibility features and processing models an ORDBMS should support. The SENSOR project aims at contributing to answering these questions and finding the best ways to effectively exploit ORDBMS features in the field of software development applications.

B1  Generic Modeling of Processes and Experiments
     Prof. Rombach Staff

The development of high quality software requires effective and efficient software development processes. Their use presumes the experimentally-based adaptation of development processes to specific project goals and characteristics. Software development processes must be achieved empirically. Effective support of the experimental optimization of software development processes requires easy replication and/or modification of experiments; effective support of application development requires easy adaptation of software process models and measurement plans. The long-term goal of sub-project B1 is to support the execution of experiments through easy instantiation of generic experimentation plans and/or generic process models. To achieve this goal the focus is on the following mutually complementary topics:

  • Development of a method for the generation of measurement plans that support specification and analysis of experimental measurement goals;
  • Development of a method for the effective generation of custom-tailored project and experiment plans;
  • Development of a method for the goal-oriented interpretation and on-line visualization of measured data;
Techniques that are used and developed further in subproject B1 are the Goal/Question/Metrics paradigm (GQM) and the process modeling languages MVP-L/MILOS.

B2  Knowledge-based planning and control of SE processes
     Prof. Richter Staff

Software engineering processes are highly creative and therefore prone to frequent changes during both the planning phase and process enactment. Due to the long project duration, and to the fact that experience with a particular kind of software project is often gained only while executing this project, project plans often turn out to be inadequate and need to be adapted. In large, distributed software projects, these changes can easily lead to problems: some concerned people may not be informed of the change in time to adjust their own products before a deadline, or perhaps are not notified of the change at all.
In order to achieve the long-term goal of developing methods and techniques for the flexible planning and coordination of Software Development Processes, sub-project B2 focuses on

  • the development of methods to allow for "on the fly" plan changes and plan deviations during enactment, including Design Rationales management
  • the development of concepts to generate, maintain and operationalize causal and domain-specific dependencies between processes, products and decisions, which are used to ensure project consistency.
Results of sub-project B2 are implemented as part of the process support system MILOS, to be developed by sub-project A2.

B4  Generic Communication Systems
     Prof. Gotzhein Staff

Complex systems often are concurrent and distributed. Because of their distributed nature, communication systems are usually an integral part of these systems, they form the basis for applications and operating systems. Due to the large variety of applications and technologies, the requirements on communication systems are diverse, and therefore cannot be satisfied by a small number of general-purpose protocol stacks.
The objective of the subproject is to provide and apply methods, techniques, and tools for the development of application-specific, customized communication systems. To overcome the additional development effort resulting from customization, genericity is exploited in all development phases. Starting point are application requirements that are analysed to derive communication requirements, which in turn are the basis for the communication system design and implementation. In the early development phases, pattern- and component-based methods (requirement patterns, SDL-Patterns, micro protocols) based on formal techniques are applied in order to achieve a high degree of reuse. Code is then generated automatically from the protocol design.

B5  Generic System Software
     Prof. Nehmer Staff

Operating systems are the indispensable basis for the run-time support of large application systems. Especially in the case of embedded systems with their diverse requirements concerning the amount of run-time support and concerning the quality of operating system services, there is a natural demand for highly specialized solutions. Current approaches to the customization of operating systems do not support this demand sufficiently. The subproject's aim therefore is to develop methods, techniques, and tools to support the construction of run-time platforms that are tailored for a specific application. The scientific approach is based on an open architecture for run-time platforms and on an appropriate component technology allowing for the reuse of component code while at the same time supporting the flexible customization of components by generators and generic parameters. Techniques and methods for coding and reusing the operating system expert's knowledge further allow to guide and partly automate the development process by tools.

B10  Software development with pre-configured systems
     Prof. Nehmer Staff

The main goal of project B10 is the examination of reuse activities in the software development process. Experience has shown that reuse has to start in the early phases of development in order to be effective. At his point, it can noticeably limit possible solutions to a manageable amount in which searching for reusable artefacts makes sense. To achieve this goal, software architecture is used as the carrier of reusable domain knowledge as well as basis for further reuse activities. The software architecture is embedded in a core system which additionaly offers architecture compatible reusable artefacts and a specific development process. This process describes how the reusable artefacts have to be adapted to solve a concrete problem.
In contrast to the other projects in the SFB which concentrate on the production of run-time plattforms and infrastructure services, B10 concentrates on the entire application development process. B10 develops a generic, domain independent framework of technologies used in the context of core systems. A concrete core system is an instance of this framework for a specific application domain. For validation purposes, the domain of home automation systems is used.

C1  Formal description techniques
     Prof. Avenhaus, Prof. Madlener Staff

The use of formal description techniques can support the development of large systems, because they allow a precise specification of systems and they are a prerequisite for automatic analyses. The investigation and improvement of the methodical usage of formal description techniques is the goal of subproject C1.
The investigations are conducted in the context of the application domain building automation. Furthermore, subproject C1 supports the other subprojects of the SFB in the use of formal description techniques.
In detail subproject C1 works on the following topics:

  • Combination of formal description techniques: TLA and statecharts
  • Criteria to analyze description techniques
  • Formal, object oriented problem specifications: The FOREST approach (Cooperation with subproject B4)

D1  Application Area 'Building'
     Prof. Zimmermann Staff

The project has two major goals:

  • it provides the infrastructure for building automation experiments for all SFB projects
  • an efficient domain-specific requirements engineering method for large reactive systems.

Building automation systems can be executed and tested in real or simulated building environments. Solutions for both cases and combinations of the two are provided. In parallel, the generation of building and person simulators is pursued. Object orientation and design patterns are employed to automate the generation process.
Embedded system testing should be supported during all phases of the developed process. Functional as well as non-functional requirements have to be tested. Therefore, a prototyping environment and a development method are necessary to make intermediate models executable. The prototyping environment is part of the provided infrastructure.
During requirements engineering the customer's informal requirements have to be transformed into consistent, complete and validated system requirements for the system design phase. Domain expert knowledge has to be incorporated to provide an initial solution for executable requirements. A project goal is the development of an efficient analysis method and process that makes this development phase applicable in real applications.



SFB 501 - Development of Large Systems with Generic Methods