Upload
stephan-hochdoerfer
View
902
Download
0
Embed Size (px)
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
@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/