Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo...

19
Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006

Transcript of Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo...

Page 1: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories

Vortrag im Rahmen des Seminars

Entwicklung verteilter eingebetteter Systeme

Timo Baum27.2.2006

Page 2: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 2

Tendenzen in der Softwareindustrie

● Zunehmende Komplexität in der Softwareentwicklung

● Verlagerung der Entwicklung von der Unterstützung der Produktivität von Systemen und von Entwicklern (um deren Effektivität zu erhöhen) zu Anwendungen, die Geschäftsprozesse automatisieren

● Anforderungen ändern sich immer schneller

Page 3: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 3

Probleme der Software-Industrie

● Die Erwartungen zu erfüllen, bereitet Schwierigkeiten

● Mangel an qualifizierten Entwicklern führt zu– Eskalierenden Kosten– Längeren Produkteinführungszeiten– Verbreiteten Problemen mit der Verlässlichkeit,

Sicherheit, Leistung der Anwendungen● Als Reaktion auf neue Innovationen fordern

Kunden immer mehr● Verfügbare Methoden und Praktiken führen

nicht weiter

Page 4: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 4

Probleme mit hoher Dringlichkeit

● Aufspüren und Schließen von Sicherheitslücken

● Komponenten, die in der Testumgebung funktionieren, in der Produktivumgebung lauffähig machen

● Die Unfähigkeit, trotz der durchdringenden Verfügbarkeit objektorientierter Methoden Wiederverwendung in einem kommerziell bedeutsamen Maße zu verwirklichen

Page 5: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 5

Probleme mit hoher Dringlichkeit (2)

● Die Gratwanderung, die Beweglichkeit eines einzelnen Teams zu bewahren und dabei die die Fähigkeit zur Zusammenarbeit mehrerer Teams zu gewährleisten

=> diese Symptome deuten darauf hin, dass in der Art, wie wir Software entwickeln, fundamentale Mängel vorliegen

Page 6: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 6

Die Hauptursachen

Viele Aspekte sind bedingt durch die beiden Notwendigkeiten, mit Komplexität und rasch auftretenden Veränderungen umzugehen:

● Monolithische Bauweise– „Not Invented Here“-Syndrom

● Programmiersprachen– Für viele Geschäftsprozesse zu umfangreich

● Einmalige Entwicklungen– Ohne Wiederverwendung

● Unausgereifte Entwicklungsprozesse

Page 7: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 7

Software Factories

● Erste offizielle Ankündigung auf der OOPSLA 2004 (19th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications)

● Vision: Industrialisierung der Softwareentwicklung

● Einen Marktplatz für wiederverwendbare Komponenten und Services schaffen

● Unterstützt durch Visual Studio 2005 Team System

Page 8: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 8

Voraussetzungen

● Systematische Wiederverwendung– Familien von Softwareprodukten mit

gemeinsamen Features und Variationen– Kontext der Wiederverwendung muss

spezifiziert werden

Page 9: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 9

Voraussetzungen (2)

● Entwicklung durch Zusammenbau– Wie im Automobilbereich– Voraussetzungen:

● Plattformunabhängige Protokolle● Selbstbeschreibung (WSDL)● deferred encapsulation (Kapselung abhängig vom Kontext, in den die Komponente eingefügt wird)

● Architekturgetriebene Entwicklung ● Zusammenbau durch Instrumentation (z.B. Workflow von Web Services)

Page 10: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 10

Voraussetzungen (3)

● Modellgetriebene Entwicklung– Erhöhung des Abstraktionsniveaus für

Entwickler– Automatisierung– z.B. Business Process Execution

Language (BPEL) als Instrumentationssprache

– Domain Specific Languages (DSL) mit grafischer oder textueller Notation

– Modelltransformationen– Process Frameworks

Page 11: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 11

Economies of Scale

● Kostenersparnisse durch Massenproduktion– Das gleiche Problem auf die gleiche Art lösen und die

Kosten für jede Lösung verringern

Page 12: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 12

Economies of Scope

● Kostenvorteile, die bei einer steigenden Produktvielfalt durch einen Verbundvorteil entstehen.

● für die einzelnen Produkte wird auf gemeinsame Ressourcen (z.B. Produktionsanlagen, Technologien) zurückgegriffen

● Gesamtkosten der Produktion mehrerer Produkte niedriger als die Summe der Produktionskosten der einzelnen Produkte bei getrennter Fertigung(=> SPL)

Page 13: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 13

Was sind Software Factories?

A software factory is a software product line that configures extensible tools, processes, and content using a software factory template based on a software factory schema to automate the development and maintenance of variants of an archetypical product by adapting, assembling, and configuring framework-based components.

Page 14: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 14

Software Factory Schema

Page 15: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 15

Software Factory Schema

● Verschiedene Sichtpunkte (viewpoints), für die definiert ist, welche Sprachen für die Entwicklung von Komponenten verwendet wird

● Beziehungen zwischen den Sichtpunkten

Page 16: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 16

Software Factory Template

● Um ein Mitglied einer Produktfamilie zu bauen, muss das Software Factory Schema implementiert werden:– DSLs definieren– Patterns definieren– Frameworks definieren– Werkzeuge definieren

● Alles zusammen ergibt das Software Factory Template– Beinhaltet Code und Metadaten, die IDEs

konfigurieren (wie Office Templates)

Page 17: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 17

Die Vision der Software Factories

● Entwicklung durch Zusammenbau– Anwendungsentwicklung als Anpassung und

Erweiterung der Komponenten gemäß der Kundenwünsche

– Den Großteil der Funktionalität aus fertigen oder von Vertragspartnern gelieferten Komponenten

– Deutlich weniger Code schreiben müssen● Software-Zulieferketten

– Software Factories bei Kunden installieren (Outsourced Product Line Development)

– Outsource Product Development

Page 18: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 18

Die Vision der Software Factories (2)

● individualisierte Massenfertigung von Software

● Organisatorische Implikationen– Entwickler nehmen spezialisiertere Rollen

ein, Prozesse werden standardisiert, Lizenzierung für Entwickler stärker notwendig (wie in anderen Industriezweigen bereits üblich)

Page 19: Software Factories Vortrag im Rahmen des Seminars Entwicklung verteilter eingebetteter Systeme Timo Baum 27.2.2006.

Software Factories27.2.2006 19

Weiterführende Informationen

● Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools by Jack Greenfield, Keith Short et al., John Wiley & Sons © 2004 (666 pages)

● http://www.generative-programming.org/● Generative Programming - Methods, Tools, and Applications

by Krzysztof Czarnecki and Ulrich W. EiseneckerAddison-Wesley, June 2000

● http://msdn.microsoft.com/vstudio/teamsystem/workshop/sf/default.aspx