Context
Das aspektorientierte Programmierparadigma (AOP) definiert neue Mechanismen, um Funktionalitäten zu modellieren, die sich mit herkömmlichen (z.B. objektorientierten) Programmiermethoden nicht sauber kapseln lassen. Programmierer können solche Funktionalitäten mit Hilfe von Aspekten implementieren, die das restliche Programm an bestimmten Stellen (Joinpoints) beeinflussen bzw. erweitern. Die Auswahl der Joinpoints, an denen ein Aspekt "einhakt", erfolgt über deklarative Ausdrücke (Pointcuts). Derzeit entwickeln wir im Rahmen unserer Forschungsarbeit ein leichtgewichtiges, auf Custom Attributes basierendes aspektorientiertes Framework für die .NET-Plattform.Task Description
Es soll ein Joinpoint-Analysewerkzeug für den Einsatz in einem leichtgewichtigen AOP-Framework entworfen werden, das aus der Menge in einem Programm potenziell vorhandener Joinpoints jene herausfiltert, die ein Programmierer durch Pointcuts beschrieben hat. Dies beinhaltet eine High-Level-Analyse der im Program vorhandenen Klassen und Members via Reflection, aber auch eine Low-Level-Untersuchung der im Programm definierten Methoden auf gewisse Eigenschaften (z.B. Modifikation eines gewissen Felds, Aufruf einer bestimmten Methode, usw.).
Requirements
- Objekt-orientierte Programmierung, eventuell sogar aspektorientierte Programmierung
- Erfahrung mit einer .NET-basierten Programmiersprache und dem .NET-Framework wäre sinnvoll
- Idealerweise Erfahrung mit dem .NET-Reflection-API
Student
A.o. Univ.-Prof. Dr. Dipl.-Ing. eva Kühn (please contact eva Kühn)