• Save
ESEconf2011 - Schilling Rüdiger: "Generative Konzepte für den Plattform-Zoo - am Beispiel Mobile-Apps"
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 725 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
725
On Slideshare
725
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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. 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. 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. 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. 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. 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 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. 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. 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. 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 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. 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. 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. 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. 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. 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. 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. 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-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. 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. 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. 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. 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-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. 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. 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. 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. 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. 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. 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. 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: 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. 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 technologyThe G ener at o r C o m pany Copyright © 2011 Delta Software Technology GmbH. All Rights reserved.