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

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

on

  • 667 views

 

Statistics

Views

Total Views
667
Views on SlideShare
667
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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.