![Page 1: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/1.jpg)
03.05.2007 Marko Rosenmüller
Universität Magdeburg 1
Software Produktlinien und Featureorientierte Programmierung
![Page 2: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/2.jpg)
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++
![Page 3: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/3.jpg)
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
![Page 4: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/4.jpg)
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
![Page 5: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/5.jpg)
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
![Page 6: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/6.jpg)
Marko RosenmüllerUniversität Magdeburg 603.05.2007
Produktlinien und Featureorientierte Programmierung
Wo ist das Problem?
Problem: Was ist, wenn wir beide Eigenschaften wollen?
![Page 7: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/7.jpg)
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
![Page 8: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/8.jpg)
Marko RosenmüllerUniversität Magdeburg 803.05.2007
Produktlinien und Featureorientierte Programmierung
OOP
Abgrenzung von OOP
![Page 9: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/9.jpg)
Marko RosenmüllerUniversität Magdeburg 903.05.2007
Produktlinien und Featureorientierte Programmierung
FOPOOP
Abgrenzung von OOP
Schrittweise Erweiterung der Basisimplementierung durch Verfeinerungen (Refinements)
![Page 10: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/10.jpg)
Marko RosenmüllerUniversität Magdeburg 1003.05.2007
Produktlinien und Featureorientierte Programmierung
Abstrakte Sicht auf Refinements
Features
Refinements
![Page 11: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/11.jpg)
Marko RosenmüllerUniversität Magdeburg 1103.05.2007
Produktlinien und Featureorientierte Programmierung
Abstrakte Sicht auf Refinements
Beliebige Merkmalskombinationen erstellbar
Sortierte Liste
![Page 12: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/12.jpg)
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.
![Page 13: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/13.jpg)
Marko RosenmüllerUniversität Magdeburg 1303.05.2007
Produktlinien und Featureorientierte Programmierung
Large Scale Refinements
![Page 14: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/14.jpg)
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++)
![Page 15: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/15.jpg)
Marko RosenmüllerUniversität Magdeburg 1503.05.2007
Produktlinien und Featureorientierte Programmierung
Liste mit FeatureC++
Basis: Herkömmliche Implementierung einer Liste mit OOP (C++)
![Page 16: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/16.jpg)
Marko RosenmüllerUniversität Magdeburg 1603.05.2007
Produktlinien und Featureorientierte Programmierung
Liste mit FeatureC++
Feature Sort
Feature Base
![Page 17: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/17.jpg)
Marko RosenmüllerUniversität Magdeburg 1703.05.2007
Produktlinien und Featureorientierte Programmierung
Liste mit FeatureC++
Feature Base
Feature Sort
Methodenverfeinerung
Super-Aufruf
![Page 18: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/18.jpg)
Marko RosenmüllerUniversität Magdeburg 1803.05.2007
Produktlinien und Featureorientierte Programmierung
Liste mit FeatureC++
Feature Base
Neu eingeführte Methode
Feature Sort
![Page 19: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/19.jpg)
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
![Page 20: 03.05.2007 Marko Rosenmüller Universität Magdeburg 1 Software Produktlinien und Featureorientierte Programmierung](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6649795902118bb8ed/html5/thumbnails/20.jpg)
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++