Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke
Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich beider Konzepte 2
Motivation 3
Zentrales Konzept Wiederverwendung [Klaus Pohl: Software Product Line Engineering. Springer, 2005] 4
Software Produkt Linien Idee Software Produktlinien (SPL) > USA Software Familien > Europa SPL für Serien von Produkten Software product line engineering is a paradigm to develop software applications (software intensive systems and software products) using platforms and mass customisation [Klaus Pohl: Software Product Line Engineering. Springer, 2005] Zentrale Ideen: Wiederverwendung Variabilität (individualisierte Massenfertigung) => Plattform 5
Software Produkt Linien Framework 6
Software Produkt Linien Domain Engineering Domänen Engineering: Schaffen einer Plattform Definieren der wiederverwendbaren Artefakte Festlegen von Gemeinsamkeiten und Unterschiede 7
Software Produkt Linien Domain Engineering Produkt Management: wirtschaftlichen Aspekten und Marktstrategie Abgrenzung von Produkten Input: Ziele der Firma Output: Produkt Roadmap 8
Software Produkt Linien Domain Engineering Domänen Anforderungs Spezifikation: definiert und dokumentiert die Gemeinsamkeiten und die Variabilität Input: Produkt Roadmap Output: gemeinsame Anforderungen in Form von Text oder Modellen Variabilitäts Modell 9
Software Produkt Linien Domain Engineering Domänen Design: Referenzarchitektur für SPL Input: Anforderungsliste Variabilitätsmodell Output: Referenzarchitektur Verfeinertes Variabilitätsmodell 10
Software Produkt Linien Domain Engineering Domänen Realisierung: Designen und implementieren der wiederverwendbaren Software Komponenten / Artefakte Input: Referenzarchitektur Liste von zu erstellenden Artefakte Output: implementierte Artefakte 11
Software Produkt Linien Domain Engineering Domänen Testen: Validierung und Verifikation der wiederverwendbaren Komponenten Erstellen von Testfällen für die Applikations Tests Input: Artefakte Output: Testberichte 12
Software Produkt Linien Applikation Engineering Applikation Engineering: Verwendung der Plattform Artefakte für die Definition und Entwicklung von SPL Produkt. Nutzen der Gemeinsamkeiten und der Variabilität der SPL während des Entwicklungsprozesses. Einfügen der produktspezifischen Aspekte 13
Software Produkt Linien Applikation Engineering Applikation Anforderungs Spezifikation: Erstellen der Anforderungsspezifikation für die Applikationen Input: Domänen Anforderungen aus dem Domain Requirements Engineering Prozess Produkt Roadmap mit den Hauptfunktionen Product Management Prozess. Output: Anforderungsspezifikationen für die verschiedenen Anwendungen. 14
Software Produkt Linien Applikation Engineering Applikations Design: Entwickeln der Architektur für die einzelnen Anwendungen Input: Referenzarchitektur des Domain Design Prozesses Output: Eine Anwendungsarchitektur für die spezifische Applikation 15
Software Produkt Linien Applikation Engineering Applikations Realisierung: einzelnen Anwendungen der SPL erstellt Auswahl und Konfiguration der wiederverwendbaren Komponenten Umsetzung der variablen Anforderungen an die Applikation. Input: Applikationsarchitektur wiederverwendbaren Artefakte aus der Plattform. Output: die fertigen Applikation. 16
Software Produkt Linien Applikation Engineering Applikations Testen: Applikation gegen ihre Spezifikation validieren und verifizieren Input: alle verwendeten Arten von Artefakten und die implementierte Applikation Testfälle der Plattform Output: Testbericht 17
Software Factories Initiative von Microsoft und seinen Partnern Gilt als Industrialisierung der Software Entwicklung Zentraler Punkt: Wiederverwendung Eine Software Factory ist eine Software Produktlinie, die erweiter bare Werkzeuge, Prozesse und Inhalte mit einer Software Factory Vorlage konfiguriert, die auf einem Software Factory Schema basiert, um die Entwicklung und Wartung von Varianten eines archetypischen Produkts zu automatisieren, indem Framework basierte Komponenten angepasst, zusammengesetzt und konfiguriert werden. [Jack Greenfield, Software Factories, Moderne Softwarearchitekturen mit SOA, MDA, Patterns und agilen Methoden, 2006] SF Vergleich 18
Software Factory Übersicht SF Vergleich 19
Software Factories Schema Liste von variablen oder fixen Artefakten (Beschreibung) Angeordnet in Matrix oder Graphen Definition von DSLs zum generieren von Artefakten Konfiguration von Schema durch anpassen der Artefakte an spezielle Kundenwünsche SF Vergleich 20
Software Factories Vorlage Implementierte Artefakte Meistens aus DSLs generiert Metadaten Konfiguration der Vorlage durch Anpassen der erweiterbaren Werkzeuge SF Vergleich 21
Software Factories Tools Visual Studio DSL Tools mit Codegeneratoren Automatisierte Applikationserstellung SF Vergleich 22
Vergleich von SPL und SF 23
Zentrale Idee für SPL und SF: Wiederverwendung Variabilität Plattform SPL zwei Hauptprozesse: Domänen Engineering Applikation Engineering SF bestehen aus Schemata, Vorlagen und erweiterbaren Werkzeugen SF sind SPL! Aber SPL sind mehr (DSL, Code Generatoren ) 24
Fragen & Antworten Fragen? 25