Softwareprojekte werden immer gröößr und komplexer. Die Anforderungen
an Qualität und Quantitat nehmen ständig zu. Um im Wettbewerb
bestehen zu köonnen, wird intensiv nach Mitteln und Wegen gesucht, diesen Anforderungen gerecht zu werden. Ein großes Potenzial liegt in der Verbesserung des Entwurfsprozesses, der Wiederverwendung von Software und der Automatisierung der Applikationserstellung.
Bei der Entwicklung von neuer Software wird zunehmend versucht,
solange wie möoglich unabhäangig von der späateren Implementierung zu
bleiben. Dazu bedient man sich abstrakter Beschreibungsformen wie z.B. der UML1. Auf Grundlage dieser abstrakten Modelle ist es möoglich, Teile des Programmcodes automatisch zu erzeugen. Diese Entwicklung steht aber erst an ihrem Anfang.
In dieser Diplomarbeit wird auf die Vor- und Nachteile der Softwaregenerierung eingegangen und ein Überblick über den aktuellen Stand der Entwicklung gegeben. Weiterhin wird eine Architektur für einen flexiblen Softwaregenerator vorgestellt. Auf Basis dieser Architektur kann z.B. ein Codegenerator erstellt werden, der auf Grundlage eines UML-Modells, welches mit einem CASE-Tool modelliert wurde, Programmcode erzeugt. Bei der Architektur wurde besonderer Wert auf Flexibilität und Erweiterbarkeit des Generators gelegt. So köonnen z.B. verschiedene CASE-Tools unterstützt und verschiedene Arten von Code generiert werden.
[...]
1UML = Uni
ed Modeling Language
Inhaltsverzeichnis
Thesen
1. Einleitung
1.1. Motivation
1.2. Aufgabenstellung
1.3. Aufbau dieser Arbeit
2. Grundlagen
2.1. Voraussetzung zum Verständnis
2.2. Softwarequalität
2.3. Quantität
2.4. Wiederverwendung
2.5. Abstrakte grafische Beschreibungssprache
2.6. CASE-Tool
2.7. Softwaregeneratoren
2.8. Frameworks
2.9. Domain Engineering
2.10. Praxisbeispiel
3. Forschungsschwerpunkte
3.1. Object-Oriented Programming (OOP)
3.2. Subject-Oriented Programming (SOP)
3.3. Aspect-Oriented Programming (AOP)
3.4. Adaptive Programming (AP)/Demeter
3.5. Transformationssysteme
3.6. Parametrisierte Typen
3.7. GenVoca
3.8. Generative Programming
3.9. Intentional Programming (IP)
3.10. Generative Softwarekonstruktion
3.11. Softwaregenerator
3.12. Zusammenfassung
4. Umsetzung von UML in Code
4.1. Klassen, Attribute und Methoden
4.2. Vererbung und Schnittstellenimplementierung
4.3. Assoziation
4.3.1. Unidirektional
4.3.2. Bidirektional
4.4. Zusammenfassung
5. Architektur FlexiGen
5.1. Zweck
5.2. Typ
5.3. Motivation
5.4. Probleme
5.5. Lösungen
5.5.1. Lösung für inkompatible Quellen
5.5.2. Lösung für verschiedene Ausgaben
5.5.3. Lösung für Dynamik
5.5.4. Erweiterte Lösung für Dynamik
5.5.5. Lösung für Codegenerierung
5.6. Struktur
5.7. Teilnehmer
5.8. Interaktionen
5.9. Ablauf
5.10. Konsequenzen
5.11. Implementierung
5.11.1. Statischer Singleton
5.11.2. Manager
5.11.3. Adapter
5.11.4. Generator
5.12. Bekannte Verwendungen
6. Zusammenfassung
6.1. Spekulation über die zukünftige Entwicklung
A. Namenskonventionen
B. Glossar
Zielsetzung & Themen
Die Diplomarbeit befasst sich mit der Entwicklung eines modularen Softwaregenerators, der Applikationen automatisiert auf Basis von UML-Modellierungsinformationen aus CASE-Tools erzeugt. Das Ziel ist es, den Entwurfsprozess zu verbessern, Wiederverwendung zu fördern und die Effizienz in der Softwareentwicklung durch Automatisierung zu steigern.
- Automatisierte Codegenerierung aus UML-Modellen
- Konzept und Architektur des Frameworks FlexiGen
- Einsatz von Entwurfsmustern in Softwaregeneratoren
- Anbindung führender CASE-Tools zur Applikationserstellung
Auszug aus dem Buch
5.1. Zweck
FlexiGen entkoppelt Verarbeitungseinheit und Informationsquelle, erlaubt das dynamische Laden und Kombinieren beider und ermöglicht eine spätere Erweiterung bzw. Anpassung mit minimalem Aufwand.
Zusammenfassung der Kapitel
1. Einleitung: Beschreibt die zunehmende Komplexität von Softwareprojekten und führt in die Thematik der automatisierten Softwaregenerierung ein.
2. Grundlagen: Erläutert zentrale Begriffe wie Softwarequalität, Wiederverwendung, CASE-Tools und Domain Engineering als Basis für die Arbeit.
3. Forschungsschwerpunkte: Gibt einen Überblick über aktuelle Ansätze und Forschungsprojekte im Bereich der generativen und komponentenorientierten Softwareentwicklung.
4. Umsetzung von UML in Code: Analysiert, wie Elemente aus UML-Klassendiagrammen methodisch in C++-Programmcode umgesetzt werden können.
5. Architektur FlexiGen: Stellt das Framework FlexiGen vor, beschreibt dessen Design, die verwendeten Entwurfsmuster und die Implementierungsdetails des Softwaregenerators.
6. Zusammenfassung: Bewertet die Ergebnisse der Arbeit und formuliert Thesen zur zukünftigen Entwicklung der automatisierten Softwareentwicklung.
Schlüsselwörter
Softwaregenerierung, UML, CASE-Tools, Wiederverwendung, Codegenerator, Framework, Softwarearchitektur, Entwurfsmuster, FlexiGen, Objektorientierung, Domain Engineering, C++, Softwarequalität
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit beschäftigt sich mit der Automatisierung der Softwareentwicklung durch den Einsatz von Codegeneratoren, die direkt aus UML-Modellen in CASE-Tools Programmcode erzeugen.
Was sind die zentralen Themenfelder?
Die zentralen Themen sind die Wiederverwendung von Software, generative Programmierung, Softwarearchitekturen sowie die Modellierung mit UML und deren Transformation in Code.
Was ist das primäre Ziel der Arbeit?
Das primäre Ziel ist die Entwicklung eines modularen Architekturmusters namens FlexiGen, das es ermöglicht, Codegeneratoren flexibel und unabhängig von spezifischen CASE-Tools zu gestalten.
Welche wissenschaftliche Methode wird verwendet?
Die Methode umfasst die Untersuchung bestehender Ansätze zur generativen Programmierung, den Entwurf einer flexiblen Architektur unter Verwendung bewährter Entwurfsmuster und eine prototypische Implementierung.
Was wird im Hauptteil behandelt?
Der Hauptteil analysiert die theoretischen Grundlagen der Codegenerierung, diskutiert aktuelle Forschungsschwerpunkte und detailliert die Architektur und Implementierung von FlexiGen.
Welche Schlüsselwörter charakterisieren die Arbeit?
Die Arbeit wird durch Begriffe wie Softwaregenerierung, CASE-Tools, Wiederverwendung, FlexiGen, Entwurfsmuster und modellgetriebene Softwareentwicklung charakterisiert.
Wie löst FlexiGen das Problem inkompatibler CASE-Tool-Schnittstellen?
FlexiGen verwendet das Entwurfsmuster Adapter, um die spezifischen Schnittstellen verschiedener CASE-Tools zu kapseln und eine einheitliche, abstrakte Schnittstelle für den Generator bereitzustellen.
Warum ist der Manager in der Architektur FlexiGen als Singleton implementiert?
Der Manager dient als zentraler Registrierungspunkt für geladene Generatoren und Adapter. Die Implementierung als Singleton stellt sicher, dass zu jedem Zeitpunkt nur eine Instanz existiert und globaler Zugriff auf diese Registry gewährleistet ist.
- Quote paper
- Tobias Lindig (Author), 2000, Automatisierte Softwaregenerierung aus UML-Modellierungsinformationen, Munich, GRIN Verlag, https://www.grin.com/document/10246