D E L T A                     software                  technologyThe G ener at o r C o m pany                            ...
D E L T A                     software                  technologyThe G ener at o r C o m pany                            ...
Der mobile Plattform-ZooCopyright © 2011 Delta Software Technology GmbH.   ESE Conference 2011, Zürich, Generative Konzept...
Der Mobility-Trend ist nicht mehr aufzuhalten                                                                             ...
Die HürdeDerzeit 7 verschiedene    Mobile-Plattformen/OS     Verschiedene                     Architekturen     Verschie...
Beispiel HT Applications    Unternehmen            Leeuwarden, NL            Gegründet 2010            www.htapplicatio...
Produktlinie für Apps         Platform    Config    Cust. "A"                                        Cust. "B"         ...
Variabilität in 2 Dimensionen    Lösungsansätze            N x M Kopien                   Irgendwann gibt es viel zu vie...
Das MDD-ParadoxCopyright © 2011 Delta Software Technology GmbH.   ESE Conference 2011, Zürich, Generative Konzepte für den...
Einfache Lösungen für einfache Probleme?                                           Für eine beschränkte, isolierte Aufgabe...
Das MDD-Paradox    Die Grundannahme            "Modellgetriebene" Software-Entwicklung ist effizienter,             liefe...
Die Konsequenz    Die Erkenntnis            Die Entwicklung von MDSD-Konzepten und –Werkzeugen             ist eine eigen...
Forderungen               DSL             Generator                                              Modellbasierte Entwicklun...
Woher kommt der Generator?                                       Konzept für ein (MD)²-SystemCopyright © 2011 Delta Softwa...
Ein Generator?                                     Anwendungs-                                                Lösungsidee ...
Ein Generator?                                          Anwendungs-                                            Domäne     ...
Ein Generator?                                          Anwendungs-                                       Lösungsidee     ...
Ein Generator?                                          Anwendungs-                                        Lösungsidee    ...
HyperSenses™Copyright © 2011 Delta Software Technology GmbH.   ESE Conference 2011, Zürich, Generative Konzepte für den Pl...
Variantenmodell/Metamodell Anwendungs-              Lösungsidee   Domäne                 Code-BeispielVariantenmodell     ...
Konfiguration Anwendungs-              Lösungsidee   Domäne                 Code-BeispielVariantenmodell           Code-Pa...
Domain Specific Language Anwendungs-              Lösungsidee   Domäne                 Code-BeispielVariantenmodell       ...
Code-Pattern Anwendungs-              Lösungsidee   Domäne                 Code-BeispielVariantenmodell           Code-Pat...
Pattern by Example (1)                                                                                                   ...
Pattern by Example(2)                                                                                              SubPat...
Generator Anwendungs-              Lösungsidee   Domäne                 Code-BeispielVariantenmodell           Code-Patter...
Ein Beispiel LiveCopyright © 2011 Delta Software Technology GmbH.   ESE Conference 2011, Zürich, Generative Konzepte für d...
Die Aufgabe                                                   Der App-Entwickler HT Applications                          ...
Die Schritte    1. Metamodell und Code-Pattern entwickeln/ableiten                 Metamodell und Pattern-Entwurf entsteh...
Das MetamodellMetamodell imHyperSenses MetaComposer                                                                       ...
Live: Pattern By ExampleVon der Vorlage …                                                                                 ...
Live: Implizite Navigation                                                                                                ...
Live: Code-Vererbung                                                                          Eine zusätzliche Dimension  ...
Live: KonfigurationCopyright © 2011 Delta Software Technology GmbH.   ESE Conference 2011, Zürich, Generative Konzepte für...
Live: Generierter Code                                                                             iOS (Objective C)      ...
D E L T A                software             technologyThe G ener at o r C o m pany    Copyright © 2011 Delta Software Te...
Upcoming SlideShare
Loading in...5
×

ESEconf2011 - Schilling Rüdiger: "Generative Konzepte für den Plattform-Zoo - am Beispiel Mobile-Apps"

429

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
429
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "ESEconf2011 - Schilling Rüdiger: "Generative Konzepte für den Plattform-Zoo - am Beispiel Mobile-Apps""

  1. 1. D E L T A software technologyThe 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. 2. D E L T A software technologyThe 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. 3. Der mobile Plattform-ZooCopyright © 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. 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 spielenCopyright © 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. 5. Die HürdeDerzeit 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, HardwareIn 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. 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 KundeCopyright © 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. 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. 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 istCopyright © 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. 9. Das MDD-ParadoxCopyright © 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. 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, unwartbarCopyright © 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. 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. 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 twoCopyright © 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. 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 DSLGenerator 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. 14. Woher kommt der Generator? Konzept für ein (MD)²-SystemCopyright © 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. 15. Ein Generator? Anwendungs- Lösungsidee Domäne Vorlage Generator Anforderung ? SoftwareCopyright © 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. 16. Ein Generator? Anwendungs- Domäne Lösungsidee Prototyp Variantenmodell Domain Specific Language (DSL) Generator Zur Formulierung der Anforderung Anforderung SoftwareCopyright © 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. 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 SoftwareCopyright © 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. 18. Ein Generator? Anwendungs- Lösungsidee Domäne Code-Beispiel Variantenmodell Code-Patterns Domain Specific Language (DSL) Generator Generate Konfigurationen (z.B. Software) AnforderungenCopyright © 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. 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. 20. Variantenmodell/Metamodell Anwendungs- Lösungsidee Domäne Code-BeispielVariantenmodell Code-Patterns Modell der VariationspunkteDomain Specific  Was unterscheidet die Mitglieder einerLanguage (DSL) Generator Systemfamilie?Konfigurationen Generate (z.B. Software)  Invariante Eigenschaften sind für einenAnforderungen 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. 21. Konfiguration Anwendungs- Lösungsidee Domäne Code-BeispielVariantenmodell Code-Patterns Eine Konfiguration legt die Parameter fürDomain Specific ein bestimmtes Produkt festLanguage (DSL) Generator  Produkt = 1 oder mehrere Generate GenerateKonfigurationen (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. 22. Domain Specific Language Anwendungs- Lösungsidee Domäne Code-BeispielVariantenmodell Code-Patterns Variantenmodell (Metamodell)Domain Specific  Grammatik implizit und vollständigLanguage (DSL) Generator DSL  Konkrete SyntaxKonfigurationen Generate (z.B. Software)  automatisch ableitbarAnforderungen = 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. 23. Code-Pattern Anwendungs- Lösungsidee Domäne Code-BeispielVariantenmodell Code-Patterns Wiederverwenbare, parameterisierte Code- BausteineDomain SpecificLanguage (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. 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. 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. 26. Generator Anwendungs- Lösungsidee Domäne Code-BeispielVariantenmodell Code-Patterns Der Generator wird automatisch erzeugtDomain Specific  aus Meta-Modell und Code-PatternLanguage (DSL) GeneratorKonfigurationen 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. 27. Ein Beispiel LiveCopyright © 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. 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 seinCopyright © 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. 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 anwendenCopyright © 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. 30. Das MetamodellMetamodell imHyperSenses 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 UMLCopyright © 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. 31. Live: Pattern By ExampleVon der Vorlage … … zum Code-PatternCopyright © 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. 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: URLCopyright © 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. 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. 34. Live: KonfigurationCopyright © 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. 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. 36. D E L T A software technologyThe G ener at o r C o m pany Copyright © 2011 Delta Software Technology GmbH. All Rights reserved.

×