03.05.2007 marko rosenmüller universität magdeburg 1 software produktlinien und featureorientierte...
Post on 05-Apr-2015
110 Views
Preview:
TRANSCRIPT
03.05.2007 Marko Rosenmüller
Universität Magdeburg 1
Software Produktlinien und Featureorientierte Programmierung
Marko RosenmüllerUniversität Magdeburg 203.05.2007
Produktlinien und Featureorientierte Programmierung
Agenda
Featureorientierte Programmierung (FOP) Produktlinienentwicklung Abgrenzung von OOP Abstrakte Sicht auf Refinements Large Scale Refinements Jak und FeatureC++
Marko RosenmüllerUniversität Magdeburg 303.05.2007
Produktlinien und Featureorientierte Programmierung
Featureorientierte Programmierung
Schrittweise Erweiterung einer Software um neue Features (Stepwise Refinement)
Feature: Für den Anwender wesentliche Funktionalität einer Software. Z.B.: Sortierung einer Liste Suche in einer Liste Beliebige weitere (doppelt verlinkt, synchronisiert, etc.)
Anwender sucht sich gewünschte Features aus
Marko RosenmüllerUniversität Magdeburg 403.05.2007
Produktlinien und Featureorientierte Programmierung
Vergleich – Automobilbau
Ähnliche Herangehensweise: Käufer sucht sich gewünschte Merkmale (Features) aus: Automatik- / Schaltgetriebe Klimaanlage Navigationssystem
Zum Teil beliebig Kombinierbar z.B. Klimaanlage und Navigationssystem
Zum Teil gegenseitig ausschließend z.B. Automatik- / Schaltgetriebe
Marko RosenmüllerUniversität Magdeburg 503.05.2007
Produktlinien und Featureorientierte Programmierung
Produktlinienentwicklung
Automobilbau: Vielzahl möglicher Modelle erstellbar Produktlinie
Anwendung auf Software Software Produktlinien
Bsp.: Bibliothek von Container-Klassen (Liste, Array, etc.): Sortierung Suche Synchronisation etc.
Umsetzung mit Hilfe von FOP
Marko RosenmüllerUniversität Magdeburg 603.05.2007
Produktlinien und Featureorientierte Programmierung
Wo ist das Problem?
Problem: Was ist, wenn wir beide Eigenschaften wollen?
Marko RosenmüllerUniversität Magdeburg 703.05.2007
Produktlinien und Featureorientierte Programmierung
Wo ist das Problem?
Problem: Was ist, wenn wir beide Eigenschaften wollen?
Codereplikation
Marko RosenmüllerUniversität Magdeburg 803.05.2007
Produktlinien und Featureorientierte Programmierung
OOP
Abgrenzung von OOP
Marko RosenmüllerUniversität Magdeburg 903.05.2007
Produktlinien und Featureorientierte Programmierung
FOPOOP
Abgrenzung von OOP
Schrittweise Erweiterung der Basisimplementierung durch Verfeinerungen (Refinements)
Marko RosenmüllerUniversität Magdeburg 1003.05.2007
Produktlinien und Featureorientierte Programmierung
Abstrakte Sicht auf Refinements
Features
Refinements
Marko RosenmüllerUniversität Magdeburg 1103.05.2007
Produktlinien und Featureorientierte Programmierung
Abstrakte Sicht auf Refinements
Beliebige Merkmalskombinationen erstellbar
Sortierte Liste
Marko RosenmüllerUniversität Magdeburg 1203.05.2007
Produktlinien und Featureorientierte Programmierung
Large Scale Refinements
Für Software Produktlinien Skalierung auf ganze Software (mehrere Klassen) notwendig Large Scale Refinements
Gleichzeitige Erweiterung mehrerer Klassen
Bsp.: Bibliothek von Container-Klassen Klassen (List, Array, etc.), werden um Features (Sortierung, Suche, etc.) erweitert.
Marko RosenmüllerUniversität Magdeburg 1303.05.2007
Produktlinien und Featureorientierte Programmierung
Large Scale Refinements
Marko RosenmüllerUniversität Magdeburg 1403.05.2007
Produktlinien und Featureorientierte Programmierung
Jak und FeatureC++
Jak: Umsetzung von FOP für Java Teil der AHEAD Toolsuite http://www.cs.utexas.edu/users/schwartz/ATS.html
FeatureC++: Umsetzung von FOP für C++ http://wwwiti.cs.uni-magdeburg.de/iti_db/fcc/
Beide Ansätze basieren auf Codetransformation: Umwandlung des FOP Quelltextes (Jak, FeatureC++) in OOP Quelltext
(Java, C++)
Marko RosenmüllerUniversität Magdeburg 1503.05.2007
Produktlinien und Featureorientierte Programmierung
Liste mit FeatureC++
Basis: Herkömmliche Implementierung einer Liste mit OOP (C++)
Marko RosenmüllerUniversität Magdeburg 1603.05.2007
Produktlinien und Featureorientierte Programmierung
Liste mit FeatureC++
Feature Sort
Feature Base
Marko RosenmüllerUniversität Magdeburg 1703.05.2007
Produktlinien und Featureorientierte Programmierung
Liste mit FeatureC++
Feature Base
Feature Sort
Methodenverfeinerung
Super-Aufruf
Marko RosenmüllerUniversität Magdeburg 1803.05.2007
Produktlinien und Featureorientierte Programmierung
Liste mit FeatureC++
Feature Base
Neu eingeführte Methode
Feature Sort
Marko RosenmüllerUniversität Magdeburg 1903.05.2007
Produktlinien und Featureorientierte Programmierung
Feature Base
Liste mit FeatureC++
Konfiguration durch Auswahl der benötigten Features in einer Datei
BaseSort
[SortedList.equation]
BaseSortFind
[SortFindList.equation]
Feature Sort
Marko RosenmüllerUniversität Magdeburg 2003.05.2007
Produktlinien und Featureorientierte Programmierung
Zusammenfassung
FOP zur Entwicklung von Produktlinien: Analogie zu anderen Industriezweigen Software Produktlinie: Menge ähnlicher Programme, die erstellt werden
können Erstellung einer konkreten Instanz einer Software entsprechend
Auswahl notwendiger Features durch den Anwender
Umsetzungen Jak als Teil von AHEAD FeatureC++
top related