Contenu connexe
Similaire à ESEconf2011 - Schilling Rüdiger: "Generative Konzepte für den Plattform-Zoo - am Beispiel Mobile-Apps" (20)
ESEconf2011 - Schilling Rüdiger: "Generative Konzepte für den Plattform-Zoo - am Beispiel Mobile-Apps"
- 1. D E L T A
software
technology
The G ener at o r C o m pany
ESE Conference 2011, Zürich
Generative Konzepte für den Plattform-Zoo
- am Beispiel Mobile-Apps
Rüdiger Schilling
Delta Software Technology GmbH
The Perfect Way to Better Software
Copyright © 2011 Delta Software Technology GmbH.
All Rights reserved. 1
- 2. D E L T A
software
technology
The G ener at o r C o m pany
Der mobile Plattform-Zoo
Das MDD-Paradox
Woher kommt der Generator?
HyperSenses™
Ein Beispiel 'live'
Copyright © 2011 Delta Software Technology GmbH.
All Rights reserved. 2
- 3. Der mobile Plattform-Zoo
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
3
- 4. Der Mobility-Trend ist nicht mehr aufzuhalten
COMPUTERWOCHE 9.3.11
2010 weltweit bereits 1,7 Milliarden Dollar Umsatz …
mit Apps für Smartphones und Tablets
In den kommenden 5 Jahren
werden Breite und Tiefe des App-Markts rasant zunehmen
eine "neue Welle der Innovation" mit sich bringen
durchschnittliche jährliche Wachstumsrate von 82%
Forrester Research "Mobile App Internet Recasts the Software and Services Landscape" 2.3.2011
Es begann mit "Consumer Mobile Apps"
Zukünftig werden "Business Mobile Apps" eine immer größere
Rolle spielen
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
4
- 5. Die Hürde
Derzeit 7 verschiedene
Mobile-Plattformen/OS
Verschiedene Architekturen
Verschiedene Sprachen
Java (Blackberry, Android)
Objective C (iOS)
C# (Windows Phone)
C++ (bada, WebOS)
Fragmentierung (bes. Android)
Releases, Formfaktor, Hardware
In der Zukunft
???
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
5
- 6. Beispiel HT Applications
Unternehmen
Leeuwarden, NL
Gegründet 2010
www.htapplications.nl
"Specialist in the mobile software market"
Beratung und Training
Individuelle Apps für Unternehmen
Produktlinien für Apps
Apps speziell konfiguriert
und erzeugt pro Kunde
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
6
- 7. Produktlinie für Apps
Platform
Config
Cust. "A"
Cust. "B"
… … … … … … …
Cust. "N"
Ein neues App wird entwickelt für Kunde "A"
… für 3 Plattformen implementiert
… und für den nächsten Kunden und weitere Plattformen
Am Ende gibt es viele Varianten des einen Apps
Die alle verwaltet und gewartet werden müssen
Und dann soll es eine neue Version geben ……….
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
7
- 8. Variabilität in 2 Dimensionen
Lösungsansätze
N x M Kopien
Irgendwann gibt es viel zu viele Kopien
Scripts & Templates
Schon mit einer Dimension sehr schwierig
Modellgetrieben, mit DSLs und Generatoren
Kaum, wenn es am Ende wieder zu Scripts und Templates führt
OK, wenn die ganze Entwicklung konsequent modellgetrieben ist
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
8
- 9. Das MDD-Paradox
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
9
- 10. Einfache Lösungen für einfache Probleme?
Für eine beschränkte, isolierte Aufgabe …
DSL
… genügt es evtl. nur eine einfache DSL zu
Generator
entwerfen und einen kleinen Generator dazu
Für die nächste kleine Aufgabe ...
D SL
… genügt es evtl. nur eine einfache …
Gen e
rator
Und noch eine, und noch eine etc.
AmEnde gibt es eine Vielzahl von DSLs und
Generatoren
Überschneidend, widersprüchlich, unwartbar
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
10
- 11. Das MDD-Paradox
Die Grundannahme
"Modellgetriebene" Software-Entwicklung ist effizienter,
liefert bessere Qualität und sichert die Wartbarkeit
Modelle (welcher Art auch immer),
Domain Specific Languages und Generatoren
sollen dieses Konzept umsetzen
Der Widerspruch
Modelle, DSLs und Generatoren sind auch Software
Sie werden aber selbst kaum modellgetrieben entwickelt!
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
11
- 12. Die Konsequenz
Die Erkenntnis
Die Entwicklung von MDSD-Konzepten und –Werkzeugen
ist eine eigene Software-Domäne
Eigenständige Modelle und Entwurfsprinzipien sind nötig
Die Lösung
Model Driven Meta Development = (MD)²
Mit Meta-Modellen, -DSLs und –Generatoren
(MD)²
Model driven to the power of two
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
12
- 13. Forderungen
DSL
Generator
Modellbasierte Entwicklung von DSLs und
Generatoren
D SL
Gen e
ra tor
Werkzeuge
Ohne Spezialwissen nutzbar
Das ganze Aufgabensektrum abdeckend
Integriert mit offenen Schnittstellen
DSL
Generator
Bandbreite
Modell
Für einfache Aufgaben
DSL
Fürganze komplexe Systeme
Generator
(z.B. mit mehrdimensionaler Varianten)
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
13
- 14. Woher kommt der Generator?
Konzept für ein (MD)²-System
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
14
- 15. Ein Generator?
Anwendungs- Lösungsidee
Domäne Vorlage
Generator
Anforderung
? Software
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
15
- 16. Ein Generator?
Anwendungs-
Domäne Lösungsidee
Prototyp
Variantenmodell
Domain Specific
Language (DSL) Generator
Zur Formulierung
der Anforderung
Anforderung Software
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
16
- 17. Ein Generator?
Anwendungs- Lösungsidee
Domäne Code-Beispiel
Variantenmodell Code-Patterns
Domain Specific
Language (DSL) Generator Generator
Zur Formulierung
der Anforderung
Generate
(z.B. Software)
Anforderung Software
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
17
- 18. Ein Generator?
Anwendungs- Lösungsidee
Domäne Code-Beispiel
Variantenmodell Code-Patterns
Domain Specific
Language (DSL) Generator
Generate
Konfigurationen
(z.B. Software)
Anforderungen
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
18
- 19. HyperSenses™
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
19
- 20. Variantenmodell/Metamodell
Anwendungs- Lösungsidee
Domäne Code-Beispiel
Variantenmodell Code-Patterns Modell der Variationspunkte
Domain Specific
Was unterscheidet die Mitglieder einer
Language (DSL) Generator
Systemfamilie?
Konfigurationen
Generate
(z.B. Software)
Invariante Eigenschaften sind für einen
Anforderungen
Generator nicht relevant
Feature Model (Merkmalmodell)
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
20
- 21. Konfiguration
Anwendungs- Lösungsidee
Domäne Code-Beispiel
Variantenmodell Code-Patterns Eine Konfiguration legt die Parameter für
Domain Specific
ein bestimmtes Produkt fest
Language (DSL) Generator
Produkt = 1 oder mehrere Generate
Generate
Konfigurationen
(z.B. Software)
Anforderungen
Konfiguration = Instanz Metamodell
Technisches Format: XML
Einstellbar im Metamodell
Tag- und Attributnamen etc.
Austausch
mit beliebigen anderen
Werkzeugen
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
21
- 22. Domain Specific Language
Anwendungs- Lösungsidee
Domäne Code-Beispiel
Variantenmodell Code-Patterns
Variantenmodell (Metamodell)
Domain Specific
Grammatik implizit und vollständig
Language (DSL) Generator
DSL Konkrete Syntax
Konfigurationen
Generate
(z.B. Software) automatisch ableitbar
Anforderungen = Variantenmodell + allgemeine Syntaxregeln
Text-DSL
Interaktive Formular-DSL
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
22
- 23. Code-Pattern
Anwendungs- Lösungsidee
Domäne Code-Beispiel
Variantenmodell Code-Patterns
Wiederverwenbare, parameterisierte Code-
Bausteine
Domain Specific
Language (DSL) Generator
Basierend auf Frame/Slot-Konzept (ANGIE)
Konfigurationen
Generate Alternative Frames mit gleichem Interface
(z.B. Software)
Anforderungen
Blöcke und Slots werden graphisch
dargestellt
Vererben von überladen von Frames
Pattern By Example™ (PBE)
Schrittweise
Ableitung von Code-Pattern aus
Vorlagen und Prototypen
Verknüpfung mit dem Metamodell
Automatische Navigation in der Konfiguration
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
23
- 24. Pattern by Example (1)
Das Code-Fragment wird importiert
und mit einem Metamodell-Knoten verknüpft.
Das ist der "Kontext" für das aktuelle Pattern.
Variable Code-Stellen (Slots) werden markiert
und mit einem Feature oder einer Berechnung verknüpft.
Weitere "passende" Stellen werden automatisch hinzugefügt.
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
24
- 25. Pattern by Example(2)
SubPattern: AsyncOperation
SubPattern: SyncOperation
Optionale Blöcke werden markiert …
und mit Bedingungen versehen.
Substrukturen werden in Subpattern ausgelagert
und durch einen Subpattern-Aufruf ersetzt.
Dieser wird mit einem Composite Feature verknüpft.
Das bildet den neuen Kontext für das Subpattern.
Die Navigation wird automatisch aus dem Metamodell abgeleitet.
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
25
- 26. Generator
Anwendungs- Lösungsidee
Domäne Code-Beispiel
Variantenmodell Code-Patterns Der Generator wird automatisch erzeugt
Domain Specific
aus Meta-Modell und Code-Pattern
Language (DSL) Generator
Konfigurationen
Generate
Montiert als "HyperSenses Executable“
(z.B. Software)
Anforderungen
zur Einbettung in:
HyperSenses Configurator
oder Eclipse
oder Visual Studio
oder ...
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
26
- 27. Ein Beispiel 'Live'
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
27
- 28. Die Aufgabe
Der App-Entwickler HT Applications
möchte ein 'News' App zur Anbindung
spezieller Feeds realisieren
Das App soll für jeden Kunden individuell
generiert werden
Das App soll auf Wunsch auf mehreren
Plattformen verfügbar sein
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
28
- 29. Die Schritte
1. Metamodell und Code-Pattern entwickeln/ableiten
Metamodell und Pattern-Entwurf entstehen meistens
gleichzeitig
Code-Pattern für weitere Plattformen ableiten
2. DSLs konfigurieren
Interaktive Formular-DSL und/oder Text-DSL
3. Code-Generatoren, DSL-Parser und Konfigurator
automatisch erzeugen
4. DSLs und Generatoren anwenden
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
29
- 30. Das Metamodell
Metamodell im
HyperSenses MetaComposer
Das Metamodell für diese
Aufgabe benötigt nur zwei
Feature-Klassen
Application
Name: String
Description: String[0..1]
Version: String
Application + Feed
Feedback: Email
Developers: String
DevelopersAdd: String[0..1]
mit jeweils (nur) den
Feeds
Merkmalen, die variabel sind
0..*
Feed
LanguageCode: String
Address: URL
Metamodell
in UML
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
30
- 31. Live: Pattern By Example
Von der Vorlage …
… zum Code-Pattern
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
31
- 32. Live: Implizite Navigation
Application
Name: String
Description: String[0..1]
Version: String
Feedback: Email
Developers: String
DevelopersAdd: String[0..1]
Feeds
0..*
Feed
LanguageCode: String
Address: URL
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
33
- 33. Live: Code-Vererbung
Eine zusätzliche Dimension
der Variablität
Vererbung von Code
Gezielte Überschreibung
einzelner Teile
Sichtbar!
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
34
- 34. Live: Konfiguration
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
35
- 35. Live: Generierter Code
iOS (Objective C)
Windows Phone7 (C#)
Android (Java)
Copyright © 2011 Delta Software Technology GmbH. ESE Conference 2011, Zürich, Generative Konzepte für den Plattform-Zoo,
All Rights reserved. Rüdiger Schilling, www.d-s-t-g.com
36
- 36. D E L T A
software
technology
The G ener at o r C o m pany
Copyright © 2011 Delta Software Technology GmbH.
All Rights reserved.