Zum Hauptinhalt springen

Universität Kaiserslautern

Universität Kaiserslautern
Fachbereich Informatik
Arbeitsgruppe Software Engineering 

Prof. Dr. Dieter Rombach

 

Arbeitsschwerpunkte

Im Rahmen des Themengebietes Software Engineering befaßt sich die Arbeitsgruppe ``Software Engineering'' an der Universität Kaiserslautern mit systematischen Entwicklungsverfahren für Software, die in innovative Produkte oder Dienstleistungen eingebettet ist. Derartige Software wird nach Einschätzungen der Industrie in allen Bereichen der Produktgüter- und Dienstleistungs-Industrie zunehmend eine Schlüsselstellung einnehmen. Insofern ist die Erforschung und Einführung ingenieurmäßiger Softwareenwicklungsverfahren ein entscheidender Faktor für internationale Wettbewerbsfähigkeit.

Seit 1992 wird in Kaiserslautern ein Zentrum für Software Engineering aufgebaut. Dieses Zentrum kombiniert Einrichtungen der Grundlagenforschung (Arbeitsgruppe ``Software Engineering'', DFG-Sonderforschungsbereich 501 zum Themenbereich Software Engineering) mit einer Einrichtung der angewandten Forschung und des Technologie-Transfers (Fraunhofer Einrichtung für Experimentelles Software Engineering, IESE). Im folgenden beschränken wir uns auf die AG ``Software Engineering'' einschließlich ihrer Involvierung in den SFB 501. Schwerpunkte der Forschungsaktivitäten der Arbeitsgruppe ``Software Engineering'' sind

  • die Untersuchung grundlegender Prinzipien des Software Engineering,
  • die Entwicklung verbesserter Methoden und Werkzeuge zur effektiven Unterstützung einzelner Aspekte der Software-Entwicklung,
  • die Weiterentwicklung von Methoden des experimentellen Software Engineering zur empirischen Untersuchung existierender Methoden und Werkzeuge in Labor- und Projektumgebungen.

     

Projekte

Drei Projekte der Arbeitsgruppe ``Software Engineering'' sind eingebettet in den Sonderforschungsbereich 501 ``Entwicklung großer Systeme mit generischen Methoden''. Dieser Sonderforschungsbereich (SFB) hat sich die Aufgabe gestellt, Verfahren zur Entwicklung großer Software-Systeme auf der Basis generischer Methoden zu erarbeiten. Ziel ist die Erforschung neuartiger Verfahren zur Software-Entwicklung auf der Grundlage eines Baukastensystems, das eine leichte Anpassung an verschiedene Anwendungsbereiche ermöglicht. Am SFB 501 sind derzeit 9 Arbeitsgruppen des Fachbereichs Informatik beteiligt, darunter die Arbeitsgruppe ``Software Engineering'' mit den Teilprojekten A1 (``Software-Engineering-Labor''), A2 (``Entwicklung einer flexiblen Modellierungs- und Ausführungsumgebung für Software-Entwicklungsprozesse'') und B1 (``Generische Modellierung von Prozessen und Experimenten''). Zusätzlich zu diesen Projekten beschäftigt sich die Arbeitsgruppe ``Software Engineering'' im Rahmen des Projektes SURE mit dem Thema ``Wiederverwendung von Anforderungen und Entwürfen im Bereich Eingebettete Systeme''.

Projekt Software Engineering Labor (SFB 501, Teilprojekt A1)

Techniken, Methoden und Werkzeuge für die Software-Entwicklung müssen experimentell erprobt werden, um Erfahrungen über ihre Stärken und Schwächen unter verschiedenen Projektbedingungen zu gewinnen. Derartige Erfahrungen sind unerläßliche Voraussetzung für die effektive Wiederverwendung von Techniken, Methoden und Werkzeugen sowie ihre systematische Verbesserung.

Das Teilprojekt A1 stellt ein Software-Engineering-Labor bereit, das andere Teilprojekte des SFB 501 bei der experimentellen Erprobung ihrer Beschreibungstechniken und Methoden unterstützt. Dabei übernimmt das Software-Engineering-Labor die Aufgabe des Auftragnehmers für die Durchführung von Experimenten. Insbesondere werden folgende Aspekte unterstützt:

  • Erstellung expliziter Experimentpläne;\
  • Durchführung von Experimenten auf der Basis solcher Pläne;\
  • Meßdatenerfassung während der Experimentdurchführung zum Zwecke der empirischen Erfahrungsgewinnung;\
  • Installation einer Erfahrungsdatenbank zur Ablage und Verwaltung von Modellen, Beschreibungstechniken, Produkten und Prozessen gemeinsam mit empirisch gewonnener Erfahrung zum Zwecke der Wiederverwendung. 

Projekt Entwicklung einer flexiblen Modellierungs- und Ausführungsumgebung für Software-Entwicklungsprozesse (SFB 501, Teilprojekt A2)

Software-Entwicklungsprozesse beinhalten eine Vielzahl von Einzelprozessen. Wir unterscheiden technisch orientiere Prozesse zur Erstellung von SE-Produkten und management-orientierte Prozesse zur Koordination verteilter Team- und Einzelaktivitäten. Effiziente Projektentwicklung erfordert ein Werkzeug zur integrierten Unterstützung beider Arten von Prozessen.

In Kooperation mit der Arbeitsgruppe ``Künstliche Intelligenz: Expertensysteme'' werden folgende Arbeitsschwerpunkte behandelt:

  • Entwicklung eines integrierten Modells zur Prozeßunterstützung, das geeignete Mechanismen zur Unterstützung lokaler Umplanungen innerhalb kreativer Einzelprozesse sowie zur Unterstützung globaler Umplanungen integriert;\
  • Umsetzung des integrierten Prozeßunterstützungsmodells in ein Modellierungswerkzeug und eine Prozeßmaschine, die in einem dynamischen Zusammenspiel die Verzahnung von Projektplanung und -abwicklung ermöglichen;\
  • Experimentelle Erprobung des Ansatzes im Rahmen von Fallstudien und kontrollierten Experimenten.

Als Techniken werden die Prozeßmodellierungssprachen MVP-L und Milos sowie KI-Planungstechniken eingesetzt und weiterentwickelt.

Projekt Generische Modellierung von Prozessen und Experimenten (SFB 501, Teilprojekt B1)

Die Entwicklung qualitativ hochwertiger Software erfordert effektive und effiziente Software-Entwicklungsprozesse. Ihre Verwendung setzt die experimentell basierte Anpassung von Entwicklungsprozessen an spezifische Projektziele und Projektcharakteristika voraus.

Beschreibungen von Software-Entwicklungsprozessen müssen empirisch gewonnen werden. Eine effektive Unterstützung der experimentellen Optimierung von Software-Entwicklungsprozessen erfordert leichte Replikation bzw. Modifikation von Experimenten; eine effektive Unterstützung von Applikationsentwicklungen erfordert leichte Anpassung von Software-Prozeßmodellen und Meßplänen.

Das langfristige Ziel des Teilprojekts B1 ist, die Durchführung von Experimenten durch leichte Instantiierung generischer Experimentierpläne bzw. generischer Prozeßmodelle zu unterstützen. Hierzu werden folgende, sich ergänzende Forschungsschwerpunkte, bearbeitet:

  • Entwicklung einer Methode zur Generierung von Meßplänen, die die Spezifikation und Analyse experimenteller Meßziele unterstützen;\
  • Entwicklung einer Methode zur effektiven Generierung maßgeschneiderter Projektpläne;\
  • Definition eines Schemas zur Ablage experimentell gewonnener Erfahrungen in der Erfahrungsdatenbank des Software Engineering-Labors. 

Als Techniken werden in Teilprojekt B1 der Goal/Question/Metric-Ansatz (GQM) sowie die Prozeßmodellierungssprache MVP-L eingesetzt und weiterentwickelt.

Projekt SURE - Wiederverwendung von Anforderungen und Entwürfen im Bereich ``Eingebettete Systeme''

Die generische Beschreibung von Anforderungen ist eine wesentliche Voraussetzung für die effiziente Entwicklung von Systemvarianten aus einer Domäne. Die Verfolgbarkeit zwischen Anforderungen und Entwurf ist hierfür ebenfalls unabdingbar.

Um Fehler bei der Entwicklung großer Systeme zu vermeiden, ist es wichtig, Anforderungen präzise und gleichzeitig in einer für den Benutzer verständlichen Repräsentation zu beschreiben.

Ziel des Projekts ist die Bereitstellung von Methoden und Werkzeugen

  • zur generischen Beschreibung von Anforderungen aus Benutzersicht,
  • für deren systematische Inspektion,
  • zum automatischen Testen von fertiggestellten Systemen zwecks Zuverlässigkeitszertifizierung,
  • zur geeigneten Integration von Benutzeranforderungen in ein Vorgehensmodell der Software-Entwicklung,
  • zur Wiederverwendung und Verifikation von Entwürfen.

Die Ziele des Projekts unterstützen ein ``Subcontracting'' bei der Software-Entwicklung, d. h. die Vergabe der Entwicklung von einzelnen Systemkomponenten als Aufträge an Lieferanten. Insbesondere hierfür müssen die Anforderungen verständlich und präzise beschrieben und die Qualität der gelieferten Komponenten durch Testen der Zuverlässigkeit feststellbar sein.

Sprachliche Grundlage der Arbeiten bildet die SCR-Beschreibungstechnik, die einen Kompromiß zwischen der formalen und für Kunden und Benutzer leicht verständlichen Darstellung von Anforderungen anbietet und sich bereits bei der benutzerorientierten Spezifikation reaktiver Systeme in der Praxis bewährt hat.

 

Veröffentlichungen

  • V. Basili, G. Caldiera und D. Rombach, Experience Factory, in: Encyclopedia of Software Engineering, Editor: John J. Marciniak, John Wiley & Sons, Volume I, Seiten 469 - 476, 1994.
  • V. Basili, G. Caldiera und D. Rombach, Goal/Question/Metric Paradigm, in: Encyclopedia of Software Engineering, Editor: John J. Marciniak, John Wiley & Sons, Volume I, Seiten 528 - 532, 1994.
  • V. Basili und D. Rombach. Support for Comprehensive Reuse, IEEE Software Engineering Journal, Volume 6, Number 5, 1991.
  • L. Briand, C. Differding, D. Rombach. Practical Guidelines for Measurement-Based Process Improvement, Software Process Improvement and Practice, Volume 2, 1996.
  • L. Briand, C Bunse, J. Daly und C. Differding.  An Experimental Comparison of the Maintainability of Object-Oriented and Structured Design Documents, International Journal of Empirical Software Engineering, Volume 2, Number 3, 1997.
  • B. Dellen, F. Maurer, J. Münch, M. Verlage. Enriching Software Process Support by Knowledge-Based Techniques, Special Issue of the International Journal of SE and KE, 1997.\
  • R. Feldmann, J. Münch und S. Vorwieger. Experiences with Systematic Reuse: Applying the EF/QIP Approach, Proceedings of the European Reuse Workshop, Brussels, 1997.
  • C. Lott und D. Rombach. Repeatable Software Engineering Experiments for Comparing Defect-Detection Techniques, International Journal of Empirical Software Engineering, Volume 1, Number 3, 1996.
  • D. Rombach und M. Verlage. Directions in Software Process Research, Advances in Computers, 1995.\
  • D. Rombach. Inspections and Testing: Core Competencies for Reliability Engineering, Keynote, the International Symposium on Software Reliability Engineering, Albuquerque, New Mexico, USA, 1997.
  • D. Rombach. Software-Entwicklungskompetenz: Voraussetzung für Wettbewerbsfähigkeit, 3. Mannheimer Unternehmerforum, Mannheim, 7.10.97.

     

Produkte und Werkzeuge

Die Arbeitsgruppe Software Engineering entwickelt Werkzeuge ausschließlich in Form von Forschungsprototypen. Beispiele sind Editoren und Ausführungsmaschinen für die Prozeßmodellierunssprache MVP-L sowie Editoren und Analysewerkzeuge für den Meßansatz GQM.

Kontaktadresse:

Prof. Dr. Dieter Rombach
Universität Kaiserslautern
Fachbereich Informatik
Arbeitsgruppe Software Engineering
Postfach 3049
67653 Kaiserslautern
Tel.: (0631) 205-3341, Fax: -3331