UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:      Semester:   
 Lehr-
veranstaltungen
   Personen/
Einrichtungen
   Räume   Forschungs-
bericht
   Publi-
kationen
   Internat.
Kontakte
   Examens-
arbeiten
   Telefon &
E-Mail
 
 
 Darstellung
 
Druckansicht

 
 
Einrichtungen >> Technische Fakultät (TF) >> Department Informatik (INF) >> Lehrstuhl für Informatik 11 (Software Engineering) >>
Toolgestützte Integration vorgefertigter Softwarekomponenten auf Basis einer erweiterten Beschreibungssprache

Die Tendenz zu schneller und kostengünstiger Erstellung von Software zunehmender Komplexität erhöht die Attraktivität wieder verwendbarer Softwareteile. Allerdings können größere Softwaresysteme nur unter der Annahme fehlerfreier Integration bestehender Komponenten kostengünstig und einfach aus Bausteinen zusammengesetzt werden. Infolge der momentan noch unzureichenden Ausdruckskraft von Beschreibungssprachen für Komponenten ist dies aber noch nicht gewährleistet.

In den derzeit üblichen Beschreibungen von Komponenten finden sich Informationen syntaktischer Natur über die Komponentenschnittstellen, aber kaum Informationen über die Semantik angebotener Dienste oder den bisher beobachteten Anwendungskontext der Komponenten. Durch diesen Mangel an wesentlicher Information ist es nicht möglich, bei der Komponentenintegration Inkompatibilitäten aufzudecken oder rechtzeitig zu beherrschen, die sich aus Unstimmigkeiten unter den Komponenten oder zwischen den Komponenten und dem neuen Anwendungskontext ergeben.

Ziel des laufenden Vorhabens ist es deshalb, ein Verfahren zur Unterstützung einer weitgehend automatischen und fehlerfreien Integration von Softwarekomponenten zu entwickeln.

Von den geplanten Teilaufgaben wurden folgende bisher abgeschlossen:

Klassifikation möglicher Inkonsistenzen:

Um die Art und den Umfang der Informationen zu ermitteln, die in die erweiterte Beschreibungssprache aufgenommen werden müssen, wurde zunächst untersucht, welche Arten von Inkonsistenzen an den Schnittstellen von Komponenten bei der Integration auftreten können, die Ergebnisse wurden im Rahmen der internationalen Tagung PSAM7/ESREL'04 publiziert.

Erstellung der erweiterten Beschreibungssprache: Die ermittelten Inkonsistenzklassen wurden hinsichtlich der zu ihrer Erkennung und Beherrschung notwendigen Informationen analysiert. Die Sprache UML 2.0 wurde derart erweitert, dass die Beschreibung der Komponenten an Hand der Funktionen erfolgt, die die jeweiligen Komponenten an ihren Schnittstellen anbieten bzw. von außen benötigen, sowie an Hand ihres internen Verhaltens. Dazu wurde ein UML-Profil namens CCI (Consistent Component Integration) definiert.

Zur Sicherstellung anzustrebender Eigenschaften der geplanten Anwendung können darüber hinaus zulässige Abläufe durch entsprechende Einschränkungen, zum Beispiel hinsichtlich Komponentenzustände oder hinsichtlich Nachrichtenflüsse zwischen den Komponenten beschrieben werden. Ein Werkzeug wurde implementiert, um vorgegebene Komponentenbeschreibungen auf Konformität zum definierten CCI-Profil zu prüfen.

Beherrschung von Inkonsistenzen im integrierten System:

Für eine vorgegebene Menge von Komponenten und eine zu implementierende Anwendung wurde die automatische Erkennung vorgegebener Inkonsistenzklassen in ein Werkzeug umgesetzt. Dazu generiert das entwickelte Werkzeug bei Bedarf Komponenten-Wrappers, die in Abhängigkeit von der erkannten Inkonsistenzart unterschiedliche Beherrschungsmaßnahmen einleiten, darunter z.B. dynamische Konversion von Parametern an den Schnittstellen oder Verzögerungen vorübergehend nicht zugelassener Nachrichten.

Teilprojekt A: „Verfolgbarkeit und Prüfbarkeit nichtfunktionaler Anforderungen in komponentenbasierten Softwaresystemen“ (In Kooperation mit Continental TEMIC)

In diesem Teilprojekt wurde untersucht, inwieweit sich ausgewählte nichtfunktionale Anforderungen von der Anwendungsebene auf die Komponentenebene übertragen und überprüfen lassen. Die entwickelte Vorgehensweise wurde exemplarisch für eine reale Anwendung aus der Automobilindustrie umgesetzt und angewandt.

Teilprojekt B: „Formale Erfassung und Auswertung funktionaler und nichtfunktionaler Metadaten mittels eines Repositories“

Zum Zwecke einer möglichst vollständigen Erfassung bestehender Komponenten wurde in diesem Teilprojekt ein Konzept zur Beschreibung funktionaler (z.B. Prozeduren und Parameter) und nicht-funktionaler Informationen (z.B. Zeitverhalten, Betriebserfahrung, bestehende Testabdeckung) über Komponenten entwickelt und in die bestehende Komponentenbeschreibungssprache integriert. Passend zu den ermittelten Metadaten wurden Suchfunktionen implementiert, die in derartigen Komponenten-Repositories die gezielte Suche nach geeigneten wiederzuverwendenden Komponenten ermöglichen.

Teilprojekt C: „Konfiguration und Erstellung komponentenbasierter Softwaresysteme aus Repositories“

In diesem Teilprojekt wurde ein Verfahren entwickelt und implementiert, das die Konfiguration komponentenbasierter Softwaresysteme zu beschreiben und den für die Verknüpfung der Komponenten notwendigen Programmcode (sog. „Glue-code“) daraus automatisch zu erzeugen erlaubt. Dabei wurden unter anderem unterschiedliche Verknüpfungsarten (z.B. Broker, direkte Verknüpfung oder Mischformen) untersucht und hinsichtlich daraus resultierender Systemeigenschaften, insbesondere Performance und Ausfallwahrscheinlichkeit, analysiert.

Mittels der vorangehend beschriebenen, in Teilprojekten gewonnenen Einsichten und auf Basis zum Teil dabei implementierter bzw. kommerziell verfügbarer Werkzeuge und Modelltransformatoren wurde folgendes Gesamtkonzept zur sicheren Integration realisiert:

1. Einsatz eines Werkzeugs zur Modellierung der Komponenten und Systeme mittels UML: Durch Einsatz des Modellierungstools Poseidon lassen sich mittels eines generischen Schablonenprojektes alle für die CCI-Modellierung erforderlichen Stereotypen anlegen und bereitstellen.

2. Einlesen der Beschreibungen und Konversion in das CCI-Metamodell: Die mit Poseidon erstellten Modelle werden über implementierte Tools eingelesen, als Instanz des CCI-Metamodells interpretiert und in einem MDR (sog. metadata repository) gespeichert.

3. Prüfung der Anwendungsbeschreibungen und Erzeugung von Beherrschungsmechanismen:

Das im MDR gespeicherte CCI-Modell der Komponenten und der Anwendung wird auf Inkonsistenzen bei der Integration hin untersucht. Werden Inkonsistenzen gefunden, so werden individuelle Wrappers für einzelne Komponenten sowie anwendungszentrale Elemente, welche den Zustand des gesamten Systems und die Interaktion aller Komponenten im System überwachen, erzeugt.

4. Erzeugung einer fertigen Anwendung aus dem Komponentencode und den Schutzmechanismen

Die im Punkt 3 erzeugten Schutzmechanismen werden zusammen mit dem Code der Komponenten zu einer fertigen Anwendung verpackt, die dann ausgeliefert und zur Ausführung gebracht werden kann.

Eine anzustrebende Fortsetzung der bisherigen Forschungsarbeiten besteht in einer weitgehend automatisierten Lokalisierung geeigneter, vorgefertigter Komponenten anhand erfasster funktionaler und nicht-funktionaler Eigenschaften, idealerweise auf der Basis semantischer Mustererkennung. Auf diesem Weg identifizierte, funktional äquivalente, jedoch unterschiedliche Komponenten können darüber hinaus eingesetzt werden, um Fehlertoleranz systematisch zu erzielen.

Projektleitung:
Prof. Dr. rer. nat. habil. Francesca Saglietti

Beteiligte:
Dipl.-Inf. Martin Jung

Stichwörter:
Softwarekomponenten; Integration; Schnittstellen; Wiederverwendung; Bausteine

Laufzeit: 1.12.2002 - 31.12.2006

Publikationen
Saglietti, Francesca ; Jung, Martin: Classification, Analysis and Detection of Interface Inconsistencies in Safety-Relevant Component-based Systems. In: Spitzer, Cornelia ; Schmocker, Ulrich ; Dang, Vinh (Hrsg.) : Probabilistic Safety Assessment and Management, Volume 4 (PSAM7 - ESREL’04 Berlin 14 - 18 June 2004). London : Springer-Verlag, 2004, S. 1864-1869. - ISBN 1-85233-827-X
Jung, Martin ; Saglietti, Francesca ; Sauerborn, Verena: Beherrschung von Schnittstelleninkonsistenzen in komponentenbasierten Softwaresystemen. In: Federrath, Hannes (Hrsg.) : Sicherheit - Schutz und Zuverlässigkeit (Sicherheit 2005 Regensburg 5. - 8. April 2005). Bonn : Gesellschaft für Informatik, 2005, S. 101-112. (Lecture Notes in Informatics Bd. P-62) - ISBN 3-88579-391-1
Jung, Martin ; Saglietti, Francesca: Supporting Component and Architectural Re-usage by Detection and Tolerance of Integration Faults. In: IEEE Computer Society (Hrsg.) : High Assurance Systems Engineering (9th IEEE International Symposium on High Assurance Systems Engineering (HASE 2005) Heidelberg (D) 13 - 14 October 2005). Los Alamitos, California : IEEE Computer Society, 2005, S. 47-55. - ISBN 0-7695-2377-3
Jung, Martin ; Saglietti, Francesca: Tolerieren von Inkonsistenzen in komponentenbasierten Systemen. In: Bode, A. (Editor der Research Report Series) ; Czornack, Jan-Thomas ; Stodden, Daniel ; Trinitis, Carsten ; Walter, Max (Hrsg.) : Diskussionskreis Fehlertoleranz 2005 (28. Diskussionskreis Fehlertoleranz, München, 10. - 11. März 2005). München : Shaker Verlag, 2005, S. 53-59. (Research Report Series, Lehrstuhl für Rechnertechnik und Rechnerorganisation (LRR-TUM), Technische Universität München Bd. 31) - ISBN 3-8322-4427-1
UnivIS ist ein Produkt der Config eG, Buckenhof