57
Fließbandfertigung für Software-Applikationen Stephan Hochdörfer, bitExpert AG

Fließbandfertigung für Software-Applikationen

Embed Size (px)

DESCRIPTION

#eseconf

Citation preview

Page 1: Fließbandfertigung für Software-Applikationen

Fließbandfertigung fürSoftware-Applikationen

Stephan Hochdörfer, bitExpert AG

Page 2: Fließbandfertigung für Software-Applikationen

Über mich Stephan Hochdörfer, bitExpert AG

Department Manager Research Labs

[email protected]

@shochdoerfer

Page 3: Fließbandfertigung für Software-Applikationen

Eine Software, ein Kunde

Page 4: Fließbandfertigung für Software-Applikationen

Entwickler vs. Geschäftsmann

Page 5: Fließbandfertigung für Software-Applikationen

...mehr Kunden

Page 6: Fließbandfertigung für Software-Applikationen

...viel mehr Kunden

Page 7: Fließbandfertigung für Software-Applikationen

Wohin führt das?

Page 8: Fließbandfertigung für Software-Applikationen

Wartungs-hölle!

Wohin führt das?

Page 9: Fließbandfertigung für Software-Applikationen

Einzellösung

Mieter 1

Anwendung

Datenbank

Hardware

Page 10: Fließbandfertigung für Software-Applikationen

Einzellösung

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1

Anwendung

Datenbank

Hardware

Mieter 3

Anwendung

Datenbank

Hardware

Page 11: Fließbandfertigung für Software-Applikationen

Mandantenlösung

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Page 12: Fließbandfertigung für Software-Applikationen

Anpassbarkeit?

Page 13: Fließbandfertigung für Software-Applikationen

Anpassbarkeit?

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Page 14: Fließbandfertigung für Software-Applikationen

Anpassbarkeit?

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Page 15: Fließbandfertigung für Software-Applikationen

Anpassbarkeit? Wie?

Page 16: Fließbandfertigung für Software-Applikationen

Anpassbarkeit? Wie?

Plugins, Hooks

Page 17: Fließbandfertigung für Software-Applikationen

Anpassbarkeit? Wie?

UI

Plugin 1 Plugin 2

Business-Logik

Page 18: Fließbandfertigung für Software-Applikationen

Konfiguration? Wie?

Page 19: Fließbandfertigung für Software-Applikationen

Konfiguration? Wie?

Dependency Injection

Page 20: Fließbandfertigung für Software-Applikationen

Konfiguration? Wo?

Wo wird die Konfiguration verwaltet?

Page 21: Fließbandfertigung für Software-Applikationen

Konfiguration? Wie?

Wie werden Varianten verwaltet?

Page 22: Fließbandfertigung für Software-Applikationen

Nachteile

Business-Logik kann aufweichen!

Page 23: Fließbandfertigung für Software-Applikationen

Nachteile

Performance!

Page 24: Fließbandfertigung für Software-Applikationen

Abstrahieren du musst!

Page 25: Fließbandfertigung für Software-Applikationen

Keine Einzellösung!

Page 26: Fließbandfertigung für Software-Applikationen

Massenproduktion!

Page 27: Fließbandfertigung für Software-Applikationen

Softwaresystemfamilie

Page 28: Fließbandfertigung für Software-Applikationen

Einzelinstanz

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Page 29: Fließbandfertigung für Software-Applikationen

Multi-Instanz

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Page 30: Fließbandfertigung für Software-Applikationen

Automatisierung? Wie?

Page 31: Fließbandfertigung für Software-Applikationen

Automatisierung? Wie?

Generative Programmierung

Page 32: Fließbandfertigung für Software-Applikationen

Gen. Programmierung

GeneratorGenerator

Page 33: Fließbandfertigung für Software-Applikationen

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

GeneratorGenerator

Page 34: Fließbandfertigung für Software-Applikationen

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten GeneratorGenerator

Page 35: Fließbandfertigung für Software-Applikationen

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten GeneratorGenerator

ProduktProdukt

1...n

Page 36: Fließbandfertigung für Software-Applikationen

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

GeneratorGenerator

Page 37: Fließbandfertigung für Software-Applikationen

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

GeneratorGeneratorMieter 2Mieter 2

Page 38: Fließbandfertigung für Software-Applikationen

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

GeneratorGeneratorMieter 2Mieter 2

Mieter 3Mieter 3

Page 39: Fließbandfertigung für Software-Applikationen

Ziel

Erzeugen einer optimierten Anwendung!

Page 40: Fließbandfertigung für Software-Applikationen

Ziel

Erzeugen einer optimierten Anwendung

für einen Kunden!

Page 41: Fließbandfertigung für Software-Applikationen

Ziel

Wartung / Entwicklung aller Applikationen in

einem Repository!

Page 42: Fließbandfertigung für Software-Applikationen

Entwicklungsablauf

Mieter 1Mieter 1

Page 43: Fließbandfertigung für Software-Applikationen

Entwicklungsablauf

Mieter 1Mieter 1 Mieter 2Mieter 2

Page 44: Fließbandfertigung für Software-Applikationen

Entwicklungsablauf

Mieter 1Mieter 1 Mieter 2Mieter 2 Mieter 3Mieter 3

Page 45: Fließbandfertigung für Software-Applikationen

Entwicklungsablauf

Mieter 1Mieter 1

Gemeinsamkeiten /Unterschiede

Gemeinsamkeiten /Unterschiede

Mieter 2Mieter 2 Mieter 3Mieter 3

Page 46: Fließbandfertigung für Software-Applikationen

Entwicklungsablauf

Konfigurations-wissen

Konfigurations-wissen

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

Gemeinsamkeiten /Unterschiede

Gemeinsamkeiten /Unterschiede

Mieter 2Mieter 2 Mieter 3Mieter 3

Page 47: Fließbandfertigung für Software-Applikationen

Entwicklungsablauf

Konfigurations-wissen

Konfigurations-wissen

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

Gemeinsamkeiten /Unterschiede

Gemeinsamkeiten /Unterschiede

Mieter 2Mieter 2 Mieter 3Mieter 3

GeneratorGenerator

Page 48: Fließbandfertigung für Software-Applikationen

Erzeugungsablauf

Mieter 1Mieter 1

Featurewahl (DSL) u.Baubarkeitsprüfung

Featurewahl (DSL) u.Baubarkeitsprüfung

Generierung derZielsoftware

Generierung derZielsoftware

Page 49: Fließbandfertigung für Software-Applikationen

Bonuspunkt 1

Codekomplexität reduzieren!

Page 50: Fließbandfertigung für Software-Applikationen

Bonuspunkt 2

Wartungsaufwände reduzieren!

Page 51: Fließbandfertigung für Software-Applikationen

Bonuspunkt 3

Updates nur für betroffene Kunden!

Page 52: Fließbandfertigung für Software-Applikationen

Bonuspunkt 3

MerkmalImplementierungs-

komponente

Page 53: Fließbandfertigung für Software-Applikationen

Bonuspunkt 3

Merkmal Kunde

Page 54: Fließbandfertigung für Software-Applikationen

Bonuspunkt 3

Merkmal

Implementierungs-komponente

Kunde

Page 55: Fließbandfertigung für Software-Applikationen

Das Buch

Page 56: Fließbandfertigung für Software-Applikationen

Vielen Dank!

Page 57: Fließbandfertigung für Software-Applikationen

Flickr Credits

http://www.flickr.com/photos/andresrueda/3452940751/http://www.flickr.com/photos/andresrueda/3455410635/http://www.flickr.com/photos/serpicolugnut/172616929/