[PDF][PDF] Statische Referenzanalyse in C-Präprozessor-konfigurierten Anwendungen

A Kenner, DWIT Leich - 2010 - wwwiti.cs.uni-magdeburg.de
A Kenner, DWIT Leich
2010wwwiti.cs.uni-magdeburg.de
Eine Softwareproduktlinie (SPL) beschreibt eine Menge von Anwendungen, die mit einer
gemeinsamen Quellcodebasis erschaffen werden. Die Anwendungen besitzen
Gemeinsamkeiten und Unterschiede, die durch Merkmale beschrieben werden. Je nach der
Auswahl der in einem bestimmten Produkt enthaltenen Funktionalitäten werden die
dazugehörigen Merkmale kombiniert und eine Variante der SPL generiert. Die
Variantenanzahl kann exponentiell mit der Anzahl der Merkmale ansteigen. Daher ist es …
Eine Softwareproduktlinie (SPL) beschreibt eine Menge von Anwendungen, die mit einer gemeinsamen Quellcodebasis erschaffen werden. Die Anwendungen besitzen Gemeinsamkeiten und Unterschiede, die durch Merkmale beschrieben werden. Je nach der Auswahl der in einem bestimmten Produkt enthaltenen Funktionalitäten werden die dazugehörigen Merkmale kombiniert und eine Variante der SPL generiert. Die Variantenanzahl kann exponentiell mit der Anzahl der Merkmale ansteigen. Daher ist es nicht realistisch alle Varianten isoliert auf Korrektheit zu untersuchen, sondern es werden neue Mechanismen gebraucht, welche die gesamte SPL auf einmal prüfen. Eine Klasse von Fehlern, genannt Typfehler, kann statisch von einem Typsystem der Sprache erkannt werden. Dazu gehören etwa Aufrufe von nicht definierten Funktionen. Die aktuelle Forschung hat Prinzipien produktlinienorientierter Typsysteme, welche die gesamte Produktlinie in einem Schritt prüfen, aufgezeigt und für verschiedene Implementierungsmechanismen zur Verfügung gestellt. In der Praxis wird ein Grossteil der Variabilität in Softwareproduktlinien mit Annotationstechniken wie dem C-Präprozessor erzeugt. Ziel dieser Arbeit ist es ein produktlinienorientiertes Typsystem für C zu entwickeln bzw. zu untersuchen inwieweit eine solche Entwicklung möglich ist. Der Fokus liegt auf dem Prüfen von Referenzen im Quelltext, wie Variablenzugriffe und Methodenaufrufe. Dabei soll insbesondere untersucht werden, inwieweit Rückwärtskompatibilität zum C-Präprozessor möglich ist, so dass auch existierende SPL-Implementierungen geprüft werden können. iii
wwwiti.cs.uni-magdeburg.de