FeatureIDE: One Size fits all?

Implementierung der Features

Abbildung 2 zeigt Auszüge aus dem Quelltext der Features Addition und Multiplication. Das Feature Addition führt die Methoden initCalculator()und initUI()erstmals ein. Es enthält Funktionen, um unseren Taschenrechner mit einer Additionsoperation auszustatten. Das Feature Multiplication soll nun den Taschenrechner zusätzlich um eine Multiplikationsoperation erweitern. Dazu werden die Methoden initCalculator()und initUI()verfeinert. Damit die bestehende Funktionalität der beiden Methoden nicht verloren geht, wird das Schlüsselwort original()verwendet. Durch Aufruf von original()wird jeweils die im Feature Addition eingeführte Methode aufgerufen. Es funktioniert ähnlich wie das aus der Objektorientierung bekannte Schlüsselwort super(), bezieht sich aber auf eine Methode eines anderen Features anstatt auf eine Methode der Superklasse.

Abb. 2: Auszüge aus dem QuelltextAbb. 2: Auszüge aus dem Quelltext (Vergrößern)

Varianten generieren

Nachdem wir uns um die Implementierung der Features gekümmert haben, können wir nun Varianten unseres Taschenrechners generieren lassen. Um eine lauffähige Applikation zu erhalten, wählen wir diejenigen Features aus, die wir in der Variante benötigen. Eine solche Auswahl von Features wird Konfiguration genannt und kann mithilfe eines grafischen Editors erstellt werden (Abb. 3). Nachdem wir eine Auswahl getroffen haben, kann die entsprechende Variante automatisch erzeugt werden. So können Varianten generiert werden, die auf funktionale Anforderungen, wie Addition und Multiplikation, sowie nicht funktionale Anforderungen, wie Programmgröße und Ausführungszeit, zugeschnitten sind.

Abb. 3: Grafischer EditorAbb. 3: Grafischer Editor (Vergrößern)

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.