Fließbandfertigung für Software-Applikationen

Preview:

DESCRIPTION

#eseconf

Citation preview

Fließbandfertigung fürSoftware-Applikationen

Stephan Hochdörfer, bitExpert AG

Über mich Stephan Hochdörfer, bitExpert AG

Department Manager Research Labs

S.Hochdoerfer@bitExpert.de

@shochdoerfer

Eine Software, ein Kunde

Entwickler vs. Geschäftsmann

...mehr Kunden

...viel mehr Kunden

Wohin führt das?

Wartungs-hölle!

Wohin führt das?

Einzellösung

Mieter 1

Anwendung

Datenbank

Hardware

Einzellösung

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1

Anwendung

Datenbank

Hardware

Mieter 3

Anwendung

Datenbank

Hardware

Mandantenlösung

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Anpassbarkeit?

Anpassbarkeit?

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Anpassbarkeit?

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Anpassbarkeit? Wie?

Anpassbarkeit? Wie?

Plugins, Hooks

Anpassbarkeit? Wie?

UI

Plugin 1 Plugin 2

Business-Logik

Konfiguration? Wie?

Konfiguration? Wie?

Dependency Injection

Konfiguration? Wo?

Wo wird die Konfiguration verwaltet?

Konfiguration? Wie?

Wie werden Varianten verwaltet?

Nachteile

Business-Logik kann aufweichen!

Nachteile

Performance!

Abstrahieren du musst!

Keine Einzellösung!

Massenproduktion!

Softwaresystemfamilie

Einzelinstanz

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Multi-Instanz

Mieter 2

Anwendung

Datenbank

Hardware

Mieter 1 Mieter 3

Automatisierung? Wie?

Automatisierung? Wie?

Generative Programmierung

Gen. Programmierung

GeneratorGenerator

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

GeneratorGenerator

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten GeneratorGenerator

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten GeneratorGenerator

ProduktProdukt

1...n

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

GeneratorGenerator

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

GeneratorGeneratorMieter 2Mieter 2

Gen. Programmierung

Konfiguration(DSL)

Konfiguration(DSL)

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

GeneratorGeneratorMieter 2Mieter 2

Mieter 3Mieter 3

Ziel

Erzeugen einer optimierten Anwendung!

Ziel

Erzeugen einer optimierten Anwendung

für einen Kunden!

Ziel

Wartung / Entwicklung aller Applikationen in

einem Repository!

Entwicklungsablauf

Mieter 1Mieter 1

Entwicklungsablauf

Mieter 1Mieter 1 Mieter 2Mieter 2

Entwicklungsablauf

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

Entwicklungsablauf

Mieter 1Mieter 1

Gemeinsamkeiten /Unterschiede

Gemeinsamkeiten /Unterschiede

Mieter 2Mieter 2 Mieter 3Mieter 3

Entwicklungsablauf

Konfigurations-wissen

Konfigurations-wissen

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

Gemeinsamkeiten /Unterschiede

Gemeinsamkeiten /Unterschiede

Mieter 2Mieter 2 Mieter 3Mieter 3

Entwicklungsablauf

Konfigurations-wissen

Konfigurations-wissen

Implementierungs-komponenten

Implementierungs-komponenten

Mieter 1Mieter 1

Gemeinsamkeiten /Unterschiede

Gemeinsamkeiten /Unterschiede

Mieter 2Mieter 2 Mieter 3Mieter 3

GeneratorGenerator

Erzeugungsablauf

Mieter 1Mieter 1

Featurewahl (DSL) u.Baubarkeitsprüfung

Featurewahl (DSL) u.Baubarkeitsprüfung

Generierung derZielsoftware

Generierung derZielsoftware

Bonuspunkt 1

Codekomplexität reduzieren!

Bonuspunkt 2

Wartungsaufwände reduzieren!

Bonuspunkt 3

Updates nur für betroffene Kunden!

Bonuspunkt 3

MerkmalImplementierungs-

komponente

Bonuspunkt 3

Merkmal Kunde

Bonuspunkt 3

Merkmal

Implementierungs-komponente

Kunde

Das Buch

Vielen Dank!

Flickr Credits

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

Recommended