Lade Inhalt...

New Consolidation Wizard im Rahmen des Innovationsprojekts KoPL (von Kopien zu Produktlinien)

Praktikumsbericht / -arbeit 2014 9 Seiten

Informatik - Software

Leseprobe

Inhaltsverzeichnis

1. Einleitung

2. Aufgabenstellung

3. Umsetzung
3.1 Allgemeine Architektur
3.2 Wizard-Container
3.3 Projekte-Auswahl-Seite
3.4 Packages-Scope-Definition-Seite

4. Testen

5. Zusammenfassung

1. Einleitung

Eine der groBten Herausforderungen, vor der viele Softwareunternehmen heutzutage stehen, ist, dass sie ihre Softwareprodukte schnell und flexibel an die Anforderungen ihrer Kunden anpassen mussen. Da oft die Zeit knapp ist auch aus finanziellen Grunden werden dabei bestehende Produkte einfach kopiert und entsprechend den Kundenanforderungen fur den nachsten Einsatz adaptiert. Das scheint die einfachste und schnellste Vorgehensweise zu sein, diese fuhrt aber zu einer schweren und aufwandigen Wartung und macht die gegenseitige Kombination neuer Funktionen und Eigenschaften unmoglich.

Diese Herausforderungen werden mittels der sogenannten Software-Produktlinien gelost. Sie bestehen aus mehreren individuellen Auspragungen einer Software, die aufgrund einer gemeinsamen Plattform erstellt werden. Mit Hilfe der Software-Produktlinien werden verschiedene Software-Komponenten verwaltet, die entsprechend den Kundenanforderungen angepasst werden konnen. Das erhoht den Grad an Wiederverwendung bei Software-Produkten und sinkt den Umsetzungsund Wartungsaufwand kundenspezifischer Softwarevarianten. Dies ist zweifellos eine gute Vorgehensweise, die aber sehr hohe Entwicklungsaufwande voraussetzt und insbesondere fur kleine und mittelstandische Softwareunternehmen ein sehr hohes Investitionsrisiko darstellt.

Dieses Praktikum wurde im Rahmen des Innovationsprojektes KoPL (von Kopien zu Produktlinien) durchgefuhrt, dessen Ziel ist es, die Vorteile von Software-Produktkopien und die Vorteile von Software-Produktlinien zusammenzustellen. KoPL hat die Aufgabe eine einfache und effiziente Methode den Softwareherstellern anzubieten, mit dessen Hilfe von Produktkopien eine Produktlinie erzeugt werden kann.

Im Rahmen des Projektes sollen also Werkzeuge entwickelt werden, die auf aktuellen Forschungsergebnissen basieren und bestehende Software-Produktkopien analysieren und Softwareherstellern Vorschlage fur eine Produktlinie zur Verfugung stellen. Danach soil eine automatisierte Umwandlung der Produktkopien in eine Produktlinie stattfinden.

Das Werkzeug SPLevo (Software Product Line evolution) wird aktuell im Rahmen des KoPL-Projektes entwickelt. Es ist Open-Source und wird auf Basis der Eclipse-Plattform in Java implementiert. Das Werkzeug steht uber eine Nightly Update Seite zur Verfugung.

2. Aufgabenstellung

Aufgabe des Werkzeugs SPLevo ist die effiziente Konsolidierung kundenspezifischer Software-Produktkopien. Das Werkzeug ist in der Lage die Software-Produktkopien zu analysieren, Unterschiede zwischen ihnen zu erkennen und Variationspunkte zur Verfugung zu stellen. Verschiedene Gruppierungen der Variationspunkte aufgrund identifizierter Zusammenhange zwischen ihnen werden auch von SPLevo vorgeschlagen. Derzeit wird am Werkzeug SPLevo immer noch gearbeitet und in Zukunft werden alle Schritte zur Erzeugung einer Software-Produktlinie von bestehenden Software- Produktkopien unterstutzt.

Im Rahmen dieses Praktikums soil ein Eclipse-Wizard fur das Werkzeug SPLevo zur Benutzerfuhrung bei den einzelnen Schritten des Konsolidierungsprozesses entwickelt werden. Dabei ist zu beachten, dass alle Wizard-Elemente moglichst intuitiv und an bestehende Elemente aus Eclipse angelehnt sein sollen, die jeder Entwickler kennt, sodass die Wizard-Oberflache moglichst benutzerfreundlich aussieht. Der Wizard soil den Benutzer nach Konfigurationen fragen und intelligent Vorschlage unterbreiten. Wenn der Wizard abgeschlossen ist, soil ein Konsolidierungsprojekt mit den entsprechenden Konfigurationen im Workspace in Eclipse erstellt werden.

Nach der Installation von SPLevo uber die Nightly Update Seite soil der Wizard bei den Eclipse-Wizards unter der Kategorie „SPLevo“ erscheinen. Die erste Wizard-Seite soil zur Spezifikation des Namen des Konsolidierungsprojektes dienen. Auf der zweiten Seite sollen die zu konsolidierenden Projekte (Leading und Integration Projects) ausgewahlt werden, sowie Variantennamen spezifiziert werden. Die Leading-Projekte reprasentieren die fuhrenden Kopien dar und liefern die Codebasis fur die spatere Produktlinie. Die Integration-Projekte sind die zu integrierenden Kopien und werden spater in die fuhrenden Kopien in Kombination mit Variabilitatsmechanismen integriert. Mindestens ein Leadingund ein Integration-Projekt mussen ausgewahlt und Variantennamen spezifiziert werden. Wenn noch kein Variantenname eingetragen ist, wird dieser bei der Auswahl des ersten Leadingbzw. Integration-Projekts automatisch mit dem Namen des ausgewahlten Projekts gesetzt. Auf der dritten Seite soil der Benutzer Pakete auswahlen konnen, die bei der Analyse und der Konsolidierung ignoriert werden mussen. Das soil eine optionale Eingabe sein. Es sollen alle Pakete, die sich im Class-Path der vorher ausgewahlten Projekte befinden, alphabetisch angeordnet, ohne Wiederholung, in einer hierarchischen Struktur angezeigt werden. By default mussen keine Pakete ausgewahlt sein.

3. Umsetzung

In diesem Kapitel wird die praktische Umsetzung der Aufgabe diskutiert. Dabei wird ein Uberblick uber die wichtigsten Stellen im Code gegeben und die Software-Architektur des Wizards betrachtet.

3.1 Allgemeine Architektur

Die Implementierung des Wizards erfolgt in einem separaten Java-Projekt: org.splevo.ui.wizard.consolidation. In diesem Java-Projekt sind vier Packages enthalten. Jede Seite des Wizards ist in einer separaten Klasse im Package org.splevo.ui.wizard.consolidation implementiert. Im gleichen Package befindet sich auch der Wizard-Container, wo die einzelnen Seiten hinzugefugt werden. Im Package org.splevo.ui.wizard.consolidation.provider sind verschiedene Provider implementiert. Aktuell gibt es zwei Label-Provider und einen Content-Provider in diesem Package. Das Package org.splevo.ui. wizard, consolidation, listener ist fur verschiedene Listener vorgesehen. Im Package org.splevo.ui.wizard.consolidation.util liegen Klassen mit Hilfsmethoden. Da es sich bei diesem Projekt urn ein Eclipse-Werkzeug handelt, werden Abhangigkeiten durch das OSGi-Framework gelost. Diese werden in der META- INF/MANIFEST.MF Datei beschrieben. Bei der Implementierung wird vor allem die Eclipse JFace API benutzt.

3.2 Wizard-Container

Der Wizard-Container stellt einen Rahmen dar, zu dem die einzelnen Seiten des Wizards hinzugefugt werden. Er wird in der Klasse NewConsolidationProjectWizard implementiert, die die abstrakte Klasse Wizard erbt. Im Konstruktor wird Titel des Wizards definiert. Die Hilfsmethode createBaseProject() erstellt ein Projekt im Workspace, wenn dieses bereits nicht existiert. Die andere Hilfsmethode addNature() weist dem Projekt ein SPLevo-Nature zu. Dadurch wird das erstellte Projekt als ein SPLevo-Projekt bezeichnet. Die Methode addPages() ist eine der wichtigsten Methode in dieser Klasse. Hier werden die einzelnen Seiten zu dem Wizard-Container hinzugefugt. Mit Hilfe der Methode performFinish() wird ein SPLevo-Projekt mit den vom Benutzer spezifizierten Konfigurationen im Workspace erstellt. Dies passiert am Ende, wenn der Wizard beendet wird.

Die erste Wizard-Seite, die zur Spezifikation des Namen des Konsolidierungsprojekts dient, muss nicht implementiert werden, da eine solche Seite in der Eclipse API bereits existiert und benutzt werden kann. In diesem Fall muss also nur ein Objekt der Klasse WizardNewProjectCreationPage in der Methode addPages() erzeugt werden. Diese Seite sieht folgenderma&en aus:

Abbildung in dieser Leseprobe nicht enthalten

Abb. 1: Erste Wizard-Seite

3.3 Projekte-Auswahl-Seite

Auf dieser Seite mussen Integrationund Leading-Projekte ausgewahlt und Variantennamen spezifiziert werden. Die Implementierung der Seite erfolgt in der Klasse ProjectsSelectionWizardPage, die die abstrakte Klasse WizardPage erbt. Im Konstruktor werden Titel und kurze Beschreibung der Seite definiert. In der Methode createControl() werden die grafischen Elemente der Wizard-Seite erzeugt. Dabei wird GridLayout als Layout-Manager benutzt. Alle Labels werden mittels der Hilfsmethode createLabel() erzeugt. Die Eingabefelder erzeugt die Hilfsmethode createVarianNameField(). Ihnen wird ein Listener registriert, der uberpruft, ob die Eingabefelder ausgefullt sind und mindestens ein Projekt von jedem Typ ausgewahlt ist, nur dann ist der Next-Button aktiv. Eine andere Hilfsmethode - createProjectsTable() erzeugt die Tabellen, wo die Projekte, die sich aktuell im Workspace befinden, angezeigt werden. Den Tabellen wird ein weiterer Listener registriert, der den CheckPageCompletedListner erweitert und nicht nur auf Vollstandigkeit der Seite uberpruft, sondern auch Variantennamen eintragt, falls das entsprechende Variantennamenfeld bei der Auswahl eines Projekts noch leer ist.

[...]

Details

Seiten
9
Jahr
2014
ISBN (eBook)
9783668695238
ISBN (Buch)
9783668695245
Dateigröße
534 KB
Sprache
Deutsch
Katalognummer
v424121
Institution / Hochschule
Karlsruher Institut für Technologie (KIT)
Note
1,7
Schlagworte
consolidation wizard rahmen innovationsprojekts kopl kopien produktlinien

Autor

Teilen

Zurück

Titel: New Consolidation Wizard im Rahmen des Innovationsprojekts KoPL (von Kopien zu Produktlinien)