ESE Conference 2011, Zürich. Generative Konzepte für den Plattform-Zoo - am Beispiel Mobile-Apps. Rüdiger Schilling Delta Software Technology GmbH



Ähnliche Dokumente
Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Informationen als Leistung

Präsentation Von Laura Baake und Janina Schwemer

Ein mobiler Electronic Program Guide

zwanzignull8 DIE MODULARE VERTRIEBS SOFTWARE im Einsatz für die Sto SE & Co KGaA info@1a-p.com (0)

Comparing Software Factories and Software Product Lines

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Generatives Programmieren

TELIS FINANZ Login App

BENUTZERANLEITUNG KASSANDRO -APP

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

WhiteStarUML Tutorial

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1

UML-DSLs effizient eingesetzt. Insight 07, Klaus Weber

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Die ersten Schritte mit. DIG-CAD 5.0 Aufmaß

HOSTED EXCHANGE EINRICHTUNG AUF SMARTPHONES & TABLETS

emlp: e-learning Plattform und mobile Lösungen für Military Operations EUROKEY Software GmbH Ludwig Kuhn

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Unified Communication Client Installation Guide

Informationen zum neuen Studmail häufige Fragen

Das Projekt wird durchgeführt von den Bezirksregierungen in Nordrhein- Westfalen in ihrer Funktion als Fachstelle für die öffentlichen Bibliotheken

ARAkoll 2013 Dokumentation. Datum:

Logics App-Designer V3.1 Schnellstart

Waimea Phone Monitor. Handbuch. Anzeige von eingehenden Anrufen auf Telefonanlagen mit TAPI-Interface

Installations- und Bedienungsanleitung CrontoSign Swiss

Zwischenablage (Bilder, Texte,...)

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Herzlich willkommen. Die Zukunft von Client und Mobile Device Management. Tobias Frank, baramundi software AG

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

Professionelle Seminare im Bereich MS-Office

Variabilität in Produktlinien und das orthogonale Variabilitätsmodell

Hilfe zur Konfiguration der Software Smart-eShop & Smart-Admin-Bereich

Freigabemitteilung 39 Version: 4.50

Die Rückgabe kann über folgende, von uns getestete Programme / Apps vorgenommen werden: Adobe Digital Editions Sony Reader for PC Bluefire Reader

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

AutoTexte und AutoKorrektur unter Outlook verwenden

Willkommen bei Dropbox!

Process4.biz Release Features Übersicht. Repository. Das Schützen von Diagrammen wurde optimiert (check-in, check-out)

Synchronisations- Assistent

SCHNELLEINSTIEG FÜR HOSTED EXCHANGE BASIC / PREMIUM

FEHLER! TEXTMARKE NICHT DEFINIERT.

Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

iphone- und ipad-praxis: Kalender optimal synchronisieren

Update / Inbetriebnahme domovea Server. Update/Inbetriebnahme domovea Server Technische Änderungen vorbehalten

Der Weg zur eigenen App

ROFIN App Benutzerhandbuch. Version 1.0

Vodafone MailboxAnsage Pro

Leitfaden: geoport in FlowFact

Dokumentation PuSCH App. android phone

Der schnelle Weg zu Ihrer eigenen App

Webshop Tutorial. E-Commerce ECM ERP SFA EDI. Backup. Integration des Comarch Webshops mit Facebook.

Bildquelle:

PocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember PocketPC.ch_Review_iLauncher.

B12-TOUCH VERSION 3.5

Speicher in der Cloud

Das weltweit persönlichste Smartphone.

Windows Server 2012 RC2 konfigurieren

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

FritzCall.CoCPit Schnelleinrichtung

Was sind Jahres- und Zielvereinbarungsgespräche?

Dokumentation IBIS Monitor

Software Release Notes

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

Zum Gebrauch mit QR Code-Scanner/Lesegeräten

1 Planung Migration UNIMOD collect (=neues Release

HANDBUCH ZUR AKTIVIERUNG UND NUTZUNG DER HANDY-SIGNATUR APP

WLAN mit WPA (wpa4fh)

Zum Lesen von News-Feeds unter Windows bieten sich diverse kostenlose bzw. kostenpflichtige Feed-Reader an:

Eine Anwendung mit InstantRails 1.7

Datenabgleich. Meine Welt auf einen Blick erleben.

1. Laptop: Benutzen Sie die Anleitung ab Seite 2 2. Tablet / Smartphone: Benutzen Sie die Anleitung ab Seite 4. Seite 2 Seite 4

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

Model Driven Development im Überblick

Print2CAD 2017, 8th Generation. Netzwerkversionen

Arbeiten mit UMLed und Delphi

Schulung Marketing Engine Thema : Einrichtung der App

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

Lotter24 die E-Commerce-Plattform mit direkter Anbindung an das IBM i basierte WWS UPOS

Pelletofen mit WLAN Modul für einfaches Heizen von zuhause aus oder von unterwegs!

AppOcalypse now! Die Zukunft des Intranets ist Mobile Jussi Mori

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. 7 Key Features.

Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!

ObjectBridge Java Edition

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Einführung in die Java- Programmierung

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Intuitive Kassensysteme für Shop und Ticketing. Willkommen bei Ihrem Software-Partner. Schön, dass Sie uns gefunden haben.

impact ordering Info Produktkonfigurator

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

IT-Projekt-Management

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Transkript:

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 1

Der mobile Plattform-Zoo Das MDD-Paradox Woher kommt der Generator? HyperSenses Ein Beispiel 'live' 2

Der mobile Plattform-Zoo 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 spielen 4

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??? 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 Kunde 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. 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 ist 8

Das MDD-Paradox 9

Einfache Lösungen für einfache Probleme? DSL Generator Für eine beschränkte, isolierte Aufgabe genügt es evtl. nur eine einfache DSL zu entwerfen und einen kleinen Generator dazu Für die nächste kleine Aufgabe... DSL Generator genügt es evtl. nur eine einfache Und noch eine, und noch eine etc. Am Ende gibt es eine Vielzahl von DSLs und Generatoren Überschneidend, widersprüchlich, unwartbar 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! 11

Die Konsequenz Die Erkenntnis Die Entwicklung von MDD-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, Meta-DSLs und Meta-Generatoren (MD)² Model driven to the power of two 12

Forderungen DSL Generator Modellbasierte Entwicklung von DSLs und Generatoren DSL Generator Werkzeuge Ohne Spezialwissen nutzbar Das ganze Aufgabenspektrum abdeckend DSL Generator Modell Integriert mit offenen Schnittstellen Bandbreite Für einfache Aufgaben DSL Generator Für ganze komplexe Systeme (z.b. mit mehrdimensionalen Varianten) 13

Woher kommt der Generator? Konzept für ein (MD)²-System 14

Ein Generator? Anwendungs- Domäne Lösungsidee Vorlage Generator Anforderung? Software 15

Ein Generator? Anwendungs- Domäne Lösungsidee Vorlage Variantenmodell Domain Specific Language (DSL) Generator Zur Formulierung der Anforderung Anforderung Software 16

Ein Generator? Anwendungs- Domäne Lösungsidee Code-Beispiel Variantenmodell Code-Patterns Domain Specific Language (DSL) Generator Generator Generator Zur Formulierung der Anforderung Generate (z.b. Software) Anforderung Software 17

Ein Generator? Anwendungs- Domäne Lösungsidee Code-Beispiel Variantenmodell Code-Patterns Domain Specific Language (DSL) Generator Konfigurationen Generate (z.b. Software) Anforderungen 18

HyperSenses 19

HyperSenses Generator- und DSL-Entwicklungs-Suite Vollständig (meta)modellgetrieben Realisiert das (MD)²-Prinzips Eine Weiterentwicklung des mit ANGIE eingeführten Konzepts framebasierter Generatoren Erprobte Technologie Im Laufe der letzten zehn Jahre (weiter)entwickelt Basis für umfangreiche Generatorsysteme, die seit Jahren erfolgreich im Einsatz sind Teil mehrerer staatl. geförderter Forschungsprojekte Jetzt allgemein als Produkt verfügbar 20

Variantenmodell/Metamodell Anwendungs- Domäne Variantenmodell Domain Specific Language (DSL) Konfigurationen Anforderungen Lösungsidee Code-Beispiel Code-Patterns Generator Generate (z.b. Software) Modell der Variationspunkte Was unterscheidet die Mitglieder einer Systemfamilie? Invariante Eigenschaften sind für einen Generator nicht relevant Feature Model (Merkmalmodell) 21

Konfiguration Anwendungs- Domäne Variantenmodell Domain Specific Language (DSL) Konfigurationen Anforderungen Lösungsidee Code-Beispiel Code-Patterns Generator Generate (z.b. Software) Eine Konfiguration legt die Parameter für ein bestimmtes Produkt fest Produkt = 1 oder mehrere Generate Konfiguration = Instanz Metamodell Technisches Format: XML Einstellbar im Metamodell Tag- und Attributnamen etc. Austausch mit beliebigen anderen Werkzeugen 22

Domain Specific Language Anwendungs- Domäne Variantenmodell Domain Specific Language (DSL) Konfigurationen Anforderungen Lösungsidee Code-Beispiel Code-Patterns Generator Generate (z.b. Software) Variantenmodell (Metamodell) Grammatik implizit und vollständig DSL Konkrete Syntax automatisch ableitbar = Variantenmodell + allgemeine Syntaxregeln Text-DSL Interaktive Formular-DSL 23

Code-Pattern Anwendungs- Domäne Variantenmodell Domain Specific Language (DSL) Konfigurationen Anforderungen Lösungsidee Code-Beispiel Code-Patterns Generator Generate (z.b. Software) Wiederverwendbare, parametrisierte Code-Bausteine Basierend auf Frame/Slot-Konzept Alternative Frames mit gleichem Interface Blöcke und Slots werden graphisch dargestellt Vererben und überschreiben 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 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. 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. 26

Generator Anwendungs- Domäne Variantenmodell Domain Specific Language (DSL) Konfigurationen Anforderungen Lösungsidee Code-Beispiel Code-Patterns Generator Generate (z.b. Software) Der Generator wird automatisch erzeugt aus Meta-Modell und Code-Pattern Montiert als "HyperSenses Executable zur Einbettung in: HyperSenses Configurator oder Eclipse oder Visual Studio oder... 27

Ein Beispiel 'Live' 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 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 30

Das Metamodell Metamodell im HyperSenses MetaComposer Application Na me : St ring Description: String[0..1] Version: String Feedback: Email Developers: String DevelopersAdd: String[0..1] Feeds 0..* Das Metamodell für diese Aufgabe benötigt nur zwei Feature-Klassen Application + Feed mit jeweils (nur) den Merkmalen, die variabel sind Feed LanguageCode: String Address: URL Metamodell in UML 31

Live: Pattern By Example Von der Vorlage zum Code-Pattern 32

Live: Implizite Navigation Application Na me : St ring Description: String[0..1] Version: String Feedback: Email Developers: String DevelopersAdd: String[0..1] Feeds 0..* Feed LanguageCode: String Address: URL 33

Live: Code-Vererbung Eine zusätzliche Dimension der Variabilität Vererbung von Code Gezielte Überschreibung einzelner Teile Sichtbar! 34

Live: Konfiguration 35

Live: Generierter Code ios (Objective C) Windows Phone7 (C#) Android (Java) 36