page 1  (22 pages)
2to next section

Formale Begriffsanalyse im Software Engineering

Christian Lindig, Gregor Snelting
TU Braunschweig
Abteilung Softwaretechnologie

Zusammenfassung. Reuse und Reengineering sind aktuelle Probleme im Software-Engineering. Reuse zielt auf die Wiederverwendung von Software-Komponenten oder -Schablonen aus einer Bibliothek; dazu ist es notwendig, effektive Verfahren zur Komponentensuche bereitzustellen. Reengineering befasst sich mit der Rekonstruktion von Systemstrukturen aus alter Software; Ziel ist es, Altsoftware so zu transformieren, dass sie auch weiterhin lebensf?ahig bleibt.

Wir pr?asentieren zwei Werkzeuge zur Unterst?utzung von Reuse und Reengineering, die auf formaler Begriffsanalyse basieren. Nora/Recs rekonstruiert Konfigurationsstrukturen aus Quelltexten und stellt sie graphisch dar. Man erh?alt bemerkenswerte Einsichten in die Struktur des Konfigurationsraums: alle Abh?angigkeiten zwischen Konfigurationspfaden werden dargestellt, und unerw?unschte Interferenzen zwischen Konfigurationen werden aufgedeckt. Nora/Focs bietet interaktive, inkrementelle Unterst?utzung zur Suche in SoftwareKomponentenbibliotheken, in denen die einzelnen Komponenten mit Attributen indiziert sind.

1 Einleitung: (Re)3

Wiederverwendung und Altlastensanierung sind hochaktuelle Themen im Software Engineering. Fr?uher befasste sich Software Engineering allein mit dem Problem, neue Programme nach einer gegebenen Spezifikation zu entwickeln, wobei Qualit?atskriterien wie Korrektheit, Effizienz, Robustheit usw. erf?ullt werden m?ussen. Heute wird dies v?ollig anders gesehen, denn die klassische statische Sichtweise, dass Software einmal entwickelt und nach einer gewissen Lebensdauer ausrangiert wird, hat zu immensen Wartungskosten gef?uhrt. Allgemein zielt Software Engineering heute auf eine bessere Evolutionsf?ahigkeit von Software { m?oglichst schon beim Entwurf soll auf zuk?unftige ?Anderungen R?ucksicht genommen werden (Antizipation des Wandels). Aus Rationalisierungs- und Qualit?atsgr?unden sollen ferner vorgefertigte Komponenten und Schablonen eingesetzt werden, so wie dies in anderen Ingenieursbereichen l?angst ?ublich ist.

Ganz massiv ist in diesem Zusammenhang das Problem der Altsoftware in den Blickpunkt ger?uckt: viele (fast) unersetzliche Systeme sind schon 20 Jahre alt und wurden nicht nach modernen softwaretechnischen Kriterien entwickelt. Durch fortw?ahrende Fehlerreparaturen und Funktionserweiterungen unterlagen sie zudem einem andauernden Strukturverlust (Gesetz der zunehmenden Entropie). Nur durch Software-Geriatrie [Pa94] k?onnen alte Systeme auch weiterhin lebensf?ahig erhalten werden.
Als Reaktion auf die genannten Problemfelder entwickelten sich in den letzten Jahren die

"(Re)3{Technologien: Reuse, Reengineering und Restructuring.