Treffer: Automatisierung von Software-Mustern mittels Metaprogrammierung ; Automating Software Design Patterns with Meta-Programming
Weitere Informationen
Abweichender Titel laut Übersetzung der Verfasserin/des Verfassers ; Zsfassung in engl. Sprache ; Das Thema dieser Diplomarbeit ist die Automatisierung von Software-Mustern, welche während der Entwicklung mit konventionellem Java, d.h. ohne die Hilfe von Frameworks und Generatoren, vorkommen. Das deutlichste Kennzeichen solcher Muster ist eine häufige Anwendung von Copy/Paste/Replace. Boilerplate-Code: Getter/Setter, Constructor,. Design-Patterns: Proxy, Strategy,. Abstraktions-Code: Persistenz (Data Access Object),. Cross-Cutting-Concerns: Logging, . Diese Muster führen zu einer großen Menge an manuell erstelltem Code, welcher die Produktivität sowie Wart- und Erweiterbarkeit negativ beeinflusst. Der Lösungsansatz ist, dass die typischen Programmierschritte des Musters in einem Metaprogramm spezifziert werden, damit sie der Computer generieren kann. Im Zuge dieser Diplomarbeit wird ein funktionaler Prototyp eines passenden Metaprogramming-Systems erstellt. Anschließend wird mit dessen Hilfe versucht verschiedene Muster (Boilerplate-Code, Design-Patterns,.) zu automatisieren. Diese werden stichprobenartig ausgewählt um einen statistischen Überblick zu erhalten, ob Muster prinzipiell gut oder schlecht generiert werden können. Am Ende konnte auf folgende konkrete Forschungsfrage eine Antwort gegeben werden: Kann die Automatisierung von Software-Mustern die Programmierung ohne Frameworks in Hinblick auf Produktivität, Erweiterbarkeit und Wartbarkeit verbessern? Es konnten alle ausgewählten Muster sehr gut automatisiert werden, welche nun mittels deklarativer Programmierung (Annotationen) gesteuert werden. Dadurch konnte die Produktivität, Wart- und Erweiterbarkeit aufgrund von reduzierter Codierungsarbeit, besserer Übersicht und zentraler Verwaltung verbessert werden. Statische Codegenerierung macht die Funktion von Metaprogrammen sichtbar und erleichtert das Debugging. Eigenschaften von dynamischer Metaprogrammierung wurden während der Entwicklung nicht vermisst. Weiters führt die Erstellung von Metaprogrammen zu ...