Creëer je eigen DSL tools met Eclipse De Android Challenge



Vergelijkbare documenten
Ervaringen met het opzetten van een MDD omgeving

Essence Modeller. Datum: 31 mei 2011 Versie: 1.0. Consortium: Forum Standaardisatie, Ordina, RuleManagement Group, Het Expertise Centrum, Novay, TNO

Model Driven Development. Kosten, baten, organisatie

Domain Specific Languages

Android Development CCSS2011

Werkomgeving. Android Studio. Android - werkomgeving 1/6

Enterprise Connectivity. Marnix van Bo. TU Delft Elek Software Architect 20 jaar ervarin ontwikkeling

Inhoud Introductie Development Environment Programmeren voor Android Demo. Android Development. Sven van Haastregt

ANOUK ROUMANS TO CODE OR NOT TO CODE.

App onderdelen. Source files. Android app onderdelen 1/6

Software Factories. Toepassing van Domain Specific Languages. achtergrond

ONTWIKKELING VAN EEN TOOL VOOR ONTOLOGIE-GESTUURDE BEDRIJFSMODELLERING

Indoor Navigation System

User experience voor projecten

Vakgroep CW KAHO Sint-Lieven

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O H A N. N R O D M I D D E

Model driven Application Delivery

Workflow Verrijkte Documenten

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Ontwikkelen voor Android. Het waarom, het hoe en het wat - Sander Tuit

Your View on Business

APEX en JasperReports

ARE methodiek Het ontwikkelen van Informatie Elementen

Kenmerken van DLArchitect

Installatiehandleiding. ixperion Word Import. voor Windows 2008 R2 64bit. Smartsite ixperion WordImport Implementatie. Copyright

APEX vs OutSystems, een vergelijking door een gebruiker

2.ouderbeleid.3.plaatsingsprocedure werk admini Pagina 1 van 14

ANDROID ALGEMEEN VERSIE BEHEER

Curriculum Vitae van Hendrik Jan van Randen blz 1 van 5

Tekenen met een potlood

Jeugdzorg Nederland. Low-Code applicatieontwikkeling; IT up-to-speed met de continue veranderingen in zorg

Capita Selecta Design Patterns voor administratieve applicaties

Acht stappen voor JSF

Webuniversum.

Release notes Release

Het CIBG ervaart een hogere kwaliteit met applicatie-ontwikkeling in Microsoft Visual Studio 2010

Microsoft; applicaties; ontwikkelaar; developer; apps; cloud; app; azure; cloud computing; DevOps; microsoft azure

Ameland binnen handbereik

sales performance Guided Buying software for customer specific solutions Bas Könst

Labo 1 Programmeren II

Introductie ArchiMate

Sparse columns in SQL server 2008

KRW-VSS en (UM)-Aquo. data standaarden in Delft-FEWS. Amersfoort, 23 April Marc van Dijk Deltares

Building rich user interfaces in Java

Deze opleiding bouwt dus verder op uw C# kennis en leert u, hoe gebruikmakend van de Xamarin-omgeving, Crossplatform Apps te ontwikkelen die

Quest Code Tester for Oracle

Wat is JAVA? Peter van Rijn

Web Games en het mobiele web. Hoorcollege Webdesign 9 6 juni 2014 Christof van Nimwegen

Is APEX a worthy substitute for Oracle Forms?

De architect: in spagaat tussen mensen en technische details. Illustratie met een simpel voorbeeld

DIGITAAL WERKEN OP WEG NAAR 2020

Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM

FIT TEST 4 MENDIX. Low code & kwaliteit

React en React Native voor websites en apps

Een fragment wordt afgeleid van de basis klasse "Fragment".

Handreiking Mobiele App Ontwikkeling en Beheer voor de Rijksoverheid

Specialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

+ prototyping. Prototyping CMDDEV01-6. Aron Martin CMD2D

Copyright IBS Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens

INHOUD VAN SERVICE CALLS

MDA experiences in een uitvoeringsorganisatie. Eelco van Mens (Architect, Mn Services) 5 juni 2008

Business Workflow innovaties in SAP S/4 HANA

Slim In De Stad MOD-LAB. Mobile Digital Lab

Feature checklist NeMO 5 Android

Workshop 12 ART-DECOR en Acute overdracht. Michael Tan Kai Heitmann Maarten Ligtvoet

Stap 1. Installeren van CloudSuggest app

Aantrekken. All Features Checklist. Employer Branding. Talent Sourcing

Portfolio. van Maarten Zilverberg

Applicaties ontwerpen voor ios en Android

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

MDA in de praktijk. Freek Bosch, Business Unit Manager Amsterdam, 4 juni 2009

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Een XML SCT bestand creëren op basis van een.csv bestand in Telelink 6. Versie maart ing.be/sepa

Your view on business On your favorite device

DEVELOPING ANDROID AND IOS APPS USING XAMARIN FOR C# DEVELOPERS

DEF. Dsens Educational Framework. Dsens Interactive Amsterdam 1

Mobile. Android: Google op je telefoon. Anno 2008 zijn er anderhalf miljard televisies

Bart ter Steege The Mobile Mindmap

Productspecifieke gebruiksvoorwaarden

SMART-Microsoft Software Factory

Grafisch ontwerp. Referenties.

Challenges ervaringen en tips van de vorige jaargang (in hun eigen woorden)

Ralph van Roosmalen Automatisch testen Theorie en de praktijk

Kleine cursus PHP5. Auteur: Raymond Moesker

Van 6 weken naar 6 minuten. met. OpenSource. Jan-Taeke Schuilenga Infrastructuur Architect Jantaeke.schuilenga@duo.nl

Data input. Product Definitions. Product info. Underlying (basket) info. Het product rview maakt het mogelijk om

1.9.9 Release Notes 28 oktober 2014

Geo-data als onderdeel van het eco-systeem van het web. Marcel Reuvers 2 september 2015

Transcriptie:

Creëer je eigen DSL tools met Eclipse De Android Challenge Lex Heerink, Peter Ebben, Jaap Reitsma, Maarten Steen Telematica Instituut

De aanleiding Freeband A-MUSE project Specificatie en ontwerp van mobiele diensten Model gebaseerde ontwikkeling staat centraal Open Handset Alliance introduceert Android Nieuw, veelbelovend platform voor mobiele apps Android Challenge Android als casus Geen killer app The Android Developer Challenge will award $10 million to developers who build great apps for Android. maar ontwikkelstraat voor killer apps volgens MDD filosofie

Het proces 1. Kennisopbouw Android documentatie Prototype applicatie 2. Metamodel definiëren 3. Applicatiemodel definiëren 4. Code templates definiëren 5. Code genereren 6. Itereren 7. Applicatie editor genereren 8. Itereren Kennisopbouw Android documentatie Android metamodel metamodel Android app model app model Android code code prototype applicatie MDD code templates app model editor code engine Instrumenten Legenda meta model app model code

Kennisopbouw: het domein van Android Android SDK Features o.a. Internet, telefonie, camera, GPS, BT, Emulator ondersteuning Belangrijkste applicatie concepten Views (schermen), Activities (taken) en Data Relatie tussen schermen en taken Starten van nieuwe taken Voorbeelden van toepassingen Navigeren met plaatjes Mobiele reisgids Weer informatie

Eclipse als platform voor de ontwikkelstraat Open-source IDE primair voor Java, uitbreidbaar modellen templates «IMPORT «IMPORT "http://www.telin.nl/android"» "http://www.telin.nl/android"» «IMPORT «IMPORT "http://www.eclipse.org/emf/2002/ecore"» "http://www.eclipse.org/emf/2002/ecore"» «IMPORT «IMPORT "http://www.eclipse.org/emf/2002/genmodel"» "http://www.eclipse.org/emf/2002/genmodel"» «EXTENSION «EXTENSION xpt::common::naming» xpt::common::naming» «REM» «REM» Generates Generates an an XML XML element element for for a a specific specific view, view, including including optional optional namespace namespace declaration, declaration, view view properties, properties, layout layout properties properties (if (if specified) specified) and and optional optional child child views. views. «ENDREM» «ENDREM» «DEFINE «DEFINE View(boolean View(boolean istoplevelview) istoplevelview) FOR FOR android::view::view-» android::view::view-» <«EXPAND <«EXPAND ViewName::ViewName-» ViewName::ViewName-» «IF «IF istoplevelview-» istoplevelview-» xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android" «ELSE-» «ELSE-» «IF «IF name name!=!= null null && && name.length() name.length() > > 0-» 0-» android:id="@+id/«viewidentifier(this)»" android:id="@+id/«viewidentifier(this)»" «ENDIF-» «ENDIF-» «ENDIF-» «ENDIF-» «EXPAND «EXPAND ViewProperties::ViewProperties-» ViewProperties::ViewProperties-» «IF «IF layoutparameters layoutparameters!=!= null-» null-» «EXPAND «EXPAND LayoutProperties::LayoutProperties LayoutProperties::LayoutProperties FOR FOR layoutparameters-» layoutparameters-» codegeneratie (Xpand) genereren van code uit modellen editor configuratie Eclipse Modelling Framework (EMF) creëren en beheren van modellen Graphical Modelling Framework (GMF) genereren van grafische model editor

Creëren van een Android metamodel Op basis van de kennisopbouw Beschreven in Ecore (EMF) Het opstellen van een goed metamodel is complex Vaak zijn meerdere iteraties nodig Onze aanpak: klein beginnen stapsgewijs uitbreiden

Een eenvoudige toepassing Navigeren door lijst van contacten Bij selectie bellen MDD vereist een applicatiemodel Tree editor beschikbaar maar lastig in gebruik Grafische editor niet beschikbaar maar prettiger

Een grafische editor voor Android modellen Genereren ipv bouwen Met behulp van GMF GMF 2. Grafische representatie 1. MetaModel 4. Mapping 3. Tool Palette

Het grafisch applicatiemodel van de toepassing View Specifieren van de layout Naam: <naam> Activiteit Specificeren van de acties Verwijst naar View Ophalen <naam> uit lijst van contacten Specificeren van actie bij selectie

AndroMate: de ontwikkelstraat voor Android Opstellen metamodel Constant per applicatie code templates Specificeren applicatiemodel model editor application model Code generatie Voor elke applicatie opnieuw Invullen gaten (5 regels code voor onze applicatie) code applicatie

Het gevolgde ontwikkelproces (kwalitatief) Veranderingen aan het metamodel sijpelen door code template, grafische editor, modellen Domein study tijd Metamodelleren Code templates Editor Modelleren feedback Code voorstudie bouwen van de ontwikkelstraat

Conclusies en ervaringen Eclipse is goed uitgerust voor MDD EMF voor modellen, GMF voor grafische model editor, Xpand voor codegeneratie Nieuwe technologie kinderziektes MDD geeft harde link tussen requirements en code Staat dichter bij domein experts dan traditioneel ontwerptraject Zorg voor stabiele metamodellen Veranderingen propageren door in modellen, templates, editor en code Productiviteitsstijging in ontwikkelomgeving Rudimentaire grafische editor vrij snel operationeel Schatting: O(10) sneller dan zelfbouw Ervaring rijker (Eclipse en MDD), illusie armer (geen prijs)