Options
2001
Journal Article
Title
Systematische Implementierung objekt-orientierter Systeme durch wiederverwendbare Muster
Abstract
Die Software-Industrie setzt ihre Hoffnungen für zukünftige Produktivitäts- und Qualitätsgewinne verstärkt in Methoden und Techniken der komponentenbasierten Software-Entwicklung. Insbesondere Mechanismen wie Vererbung, Polymorphimus und dynamische Bindung versprechen institutionalisierte Wiederverwendung von Software-Komponenten bzw. Wissen und damit einen Markt für wiederverwendbare COTS Komponenten. Die hiermit verbundene Popularität des objektorientierten bzw. komponentenbasierten Entwicklungsparadigmas führte zwar zu vielen Verbesserungen innerhalb der Software-Entwicklung, nicht aber zu einer signifikanten Steigerung der Qualität dieser Systeme. Die Größe und Komplexität heutiger Systeme in Bereichen wie der Telekommunikation oder auch der wissensbasierten Entscheidungsunterstützung erfordern daher eine systematische Unterstützung bei der Anwendung von Objekttechnologie. Ein möglicher Grund für Qualitätsprobleme liegt dabei in der Abbildung graphischer Modelle, z. B. UML Modelle, auf ausführbare Systeme. Typischerweise werden innerhalb eines objekt-orientierten Projektes zahlreiche Modelle in unterschiedlichen Notationen eingesetzt, wobei die Beziehungen zwischen diesen Modellen nicht definiert sind. Dies trifft insbesondere auch auf moderne Entwicklungsmethoden wie den Unified Process oder Catalysis zu, die zwar die Bedeutung der Abbildung erkannt haben, aber nur rudimentäre Unterstützung für Entwickler bieten. Ein Grund hierfür sind sicherlich CASE-Tools, die eine "einfache" Übersetzung von Modellen in Kode mittels Mausklick versprechen. Allerdings existiert bislang kein Werkzeug, das auf einfachen Mausklick ein semantisch reiches Modell in eine optimale und effiziente Implementierung übertragen kann. Die in den letzten Jahren aufgekommene Standardmodellierungsnotation UML wirkt sich dabei sowohl positiv als auch negativ aus. Soweit es den Einsatz einer uniformen Notation sowohl für die Analyse als auch den Entwurf betrifft, wurde die Abbildungsproblematik verringert. Andererseits hat die hohe Anzahl von Modellierungskonstrukten, auf unterschiedlichen Abstraktionsebenen, in der UML die korrekte und optimale Abbildung der Modelle auf Source-Code erschwert. Häufig ist innerhalb von Projekten das Wissen um eine "gute" Abbildung nur implizit vorhanden und die zur Abbildung notwendigen Entscheidungen werden nicht dokumentiert. In meiner Dissertation wird der SORT (Systematic Object-Oriented Refinement and Translation") Ansatz zur systematischen Unterstützung der Implementierung von objekt-orientierten Modellen vorgestellt, der auf dem Konzept einer strikten Trennung von Verfeinerungs- und Übersetzungsaktivitäten innerhalb der Entwicklung beruht. Dieses Konzept wird durch "Patterns", d. h. wiederverwendbare Muster, unterstützt, die "korrekte" Verfeinerungen innerhalb der UML bzw. Übersetzungen in eine programmiersprache beinhalten und somit Entwicklungswissen und Erfahrung zur Verfügung stellen. Zur Definition des Grads der notwendigen Verfeinerung enthält der SORT Ansatz ein sogenanntes "Profile", d. h. eine spezialisierte Version der UML, genannt Normal Object Form (NOF). Im folgenden werden die Komponenten von SORT wie die bereitgestellten Pattern, die NOF und der zugehörige Prozess kurz vorgestellt, bevor auf die experimentelle Validierung des Ansatzes eingegangen wird. Abschließend wird der Einsatz von SORT in praktischen Projekten diskutiert und eine kurze Zusammenfassung gegeben.