Lieferung 4.2 Entwicklungsumgebung für die Integration von der modellgetriebenen Entwicklung in den Entwicklungszyklus



Ähnliche Dokumente
Übung: Verwendung von Java-Threads

Installation und Inbetriebnahme von Microsoft Visual C Express

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Informationen zur Verwendung von Visual Studio und cmake

Qt-Projekte mit Visual Studio 2005

Informatik I Tutorial

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Informatik 1 Tutorial

Speichern. Speichern unter

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

GeoPilot (Android) die App

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Kurzeinführung Excel2App. Version 1.0.0

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Lieferung 2.2 Validierung der Anforderungen

25 Import der Beispiele

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

! " # $ " % & Nicki Wruck worldwidewruck

Installation älterer Programmversionen unter Windows 7

INSTALLATION VON INSTANTRAILS 1.7

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Hex Datei mit Atmel Studio 6 erstellen

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge

LEHRSTUHL FÜR DATENBANKEN

Konvertieren von Settingsdateien

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Neue Schriftarten installieren

Task: Nmap Skripte ausführen

Anleitung zur Webservice Entwicklung unter Eclipse

Arbeiten mit UMLed und Delphi

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Die Dateiablage Der Weg zur Dateiablage

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Anleitung für TYPO Bevor Sie beginnen Newsletter anlegen Inhalt platzieren und bearbeiten Neuen Inhalt anlegen...

Dienstleistungen Zentrum Medienbildung. Anleitung für das Überspielen von Videomaterial einer SD- und HDD-Kamera via USB

Leitfaden zur Installation von Bitbyters.WinShutdown

MetaQuotes Empfehlungen zum Gebrauch von

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Bilder zum Upload verkleinern

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Installation und Test von Android Apps in der Entwicklungs- und Testphase

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Kommunikations-Management

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Kurzanleitung zu. von Daniel Jettka

Durchführung der Datenübernahme nach Reisekosten 2011

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox

iphone-kontakte zu Exchange übertragen

TeamSpeak3 Einrichten

Manuelle Konfiguration einer VPN Verbindung. mit Microsoft Windows 7

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

ISA Server 2004 Protokollierung - Von Marc Grote. Die Informationen in diesem Artikel beziehen sich auf:

Stapelverarbeitung Teil 1

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Datenspooler Installationsanleitung Gültig ab Datenspooler-Version X

Daten verschlüsseln: warum? wie? Das Programm herunterladen und auf dem USB-Stick installieren Dateien mit Challenger verschlüsseln - entschlüsseln

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

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

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Neue Seiten erstellen

Synchronisations- Assistent

Adminer: Installationsanleitung

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

3. Neuen Newsbeitrag erstellen Klicken Sie auf das Datensatzsymbol mit dem +, damit Sie einen neuen Newsbeitrag erstellen können.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

DOKUMENTATION VOGELZUCHT 2015 PLUS

Kommunikations-Management

Benutzung der Avid Liquid Edition Schnittplätze an der Universität Innsbruck

ROFIN App Benutzerhandbuch. Version 1.0

Der einfache Weg zum CFX-Demokonto

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Titel. SCSM ITIL - CMDB - neue CI Klasse erstellen und benutzen. Eine beispielhafte Installationsanleitung zur Verwendung im Testlab

Einfügen von Bildern innerhalb eines Beitrages

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Hinweise zum Ausfüllen der Zeiterfassung

Die Formatierungsregeln (die so genannte Wiki-Syntax) für Texte in DokuWiki sind zu großen Teilen die selben, wie in anderen Wiki-Systemen.

Leere Zeilen aus Excel-Dateien entfernen

KURZANLEITUNG CLOUD OBJECT STORAGE

Handbuch B4000+ Preset Manager

Urlaubsregel in David

Tevalo Handbuch v 1.1 vom

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Eine Liste der offiziellen Versionen für verschiedene Betriebssysteme findet sich unter /download.html.

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

32.4 Anpassen von Menüs und Symbolleisten 795i

Transkript:

Lieferung 4.2 Entwicklungsumgebung für die Integration von der modellgetriebenen Entwicklung in den Entwicklungszyklus für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket Arbeitspaketleitung Förderkennzeichen Projektleitung Partner Autoren Lieferdatum AP 4 Agile Entwicklungsumgebung andrena objects 01IS11012A andrena objects AG Jochen Winzen andrena objects ag arconsis IT-Solutions GmbH FZI Forschungszentrum Informatik Christian Jansohn, Martin Küster, Johannes Tysiak, Antonia Volk, Jochen Winzen M24 Letztes Änderungsdatum 29.04.2013 Version 1.0 Entwicklungszyklus 1

1 Einleitung In diesem Dokument wird die im Projekt ModAgile Mobile verwendete Entwicklungsumgebung beschrieben. Diese basiert zunächst auf der frei verfügbaren Eclipse-IDE (www.eclipse.org ) und wurde um eigene Editoren und Werkzeuge erweitert, um den kompletten modellgetriebenen Entwicklungszyklus (soweit möglich) in einer Umgebung abbilden zu können. Schon im Projektantrag wurde für die Entwicklungsumgebung folgendes Ziel definiert: Die modellgetriebene Entwicklung, das Schreiben von Unit- und Integrationstest und die manuelle Entwicklung der Anwendung muss in einer Entwicklungsumgebung ermöglicht werden. In den folgenden Kapiteln wird der aktuelle Stand der Entwicklungsumgebung mit einer schrittweisen Anleitung zur Erstellung einer mobilen Anwendung für die jeweilige Plattform vorgestellt. Am Ende erfolgt eine kurze Zusammenfassung, inwieweit das ursprüngliche Ziel erfüllt werden konnte. 2 Schrittweise Anleitung Das hier vorliegende Tutorial zur Erstellung einer einfachen mobilen App findet man auch auf der Webseite des Projektes: http://www.modagile-mobile.de/web/tutorial/ Der erste Schritt zur Generierung von Apps mit ModAgile Mobile ist die Modellerstellung (siehe Kapitel 2.1). Diese ist zielplattformunabhängig und erfolgt in der Eclipse-IDE. Die genaue Version der IDE und weitere verwendete Tools (z.b. Android SDK) findet man unter der URL: http://www.modagile-mobile.de/web/downloads/ Nach der Modellerstellung folgt dann die Generierung für die jeweilige Plattform. Momentan unterstützt das ModAgile Mobile Framework die Generierung von Apps für Android, ios und Windows Phone. Die Generierung für jede Plattform wird dabei in einem eigenen Kapitel beschrieben, weil zumindest die manuelle Implementierung von Code in der nativen Entwicklungsumgebung erfolgt (Microsoft Visual Studio bzw. XCode unter ios). Das ist nötig, weil sich keine Anwendung zu 100% generieren lässt. Es gibt immer Anteile (insbesondere Geschäftslogik), die manuell implementiert werden müssen. Das Framework generiert hierfür dann Methodenrümpfe (Hooks), so dass die App jederzeit lauffähig ist. 2.1 Modellerstellung Hinweis: Dieses Kapitel kann auch ohne Vorkenntnisse mit den Eclipse Modeling Tools durchgearbeitet werden. Wer sich weitergehende Informationen zur Einarbeitung wünscht, kann zunächst diese beiden Dokumente lesen (dort sind auch viele Begriffe genauer erläutert): Lieferung 6.2 Modellierungsumgebung: Graphische Editoren für alle identifizierten Sichten Lieferung 6.3 Textuelle Editoren für alle identifizierten Sichten Entwicklungszyklus 2

Unter der URL <http://www.modagile-mobile.de/web/fileadmin/user_upload/modagilemobile/downloads/modagil-models.zip> findet man ein Archiv mit mehreren Beispielprojekten. Darin befindet sich auch das Projekt de.modagile.validation.dynamiclist.models, das ein komplettes Modell einer mobilen Anwendung enthält. Anhand dieses Beispiels wird in diesem Kapitel die Struktur der notwenigen Modelle erläutert. Nach dem Download kann das Projekt über File Import General Existing Projects into Workspace als Archiv-File in den Workspace importiert werden. Das Modell, welches unsere Minimalapplikation beschreibt liegt im Projekt de.modagile.validation.dynamiclist.models im Unterverzeichnis model. Folgende Modelldateien repräsentieren unsere Beispielapplikation: Das oben abgebildete Modell repräsentiert die UI-Elemente der zu generierenden Applikation. Das StoryBoard definiert einzelne Screens der Anwendung und die Übergänge zwischen den Screens (Screenflow). Im BindingRepository werden Display-Elemente an Attribute von Domänenentitäten gebunden. Im Composite Display Element Type Repository können komplexere Displayelemente vordefiniert werden, die später innerhalb von Screens instanziiert werden können. Im Generator Config Container findet man die Konfigurationen, die für die Generatoren jeder Plattform notwendig sind. Der Event Container beinhaltet die Definition aller benötigten Events, die beispielsweise beim Klick auf einen Button ausgelöst werden. Entwicklungszyklus 3

Die Modelldatei example.app_storyboard ist eine graphische Darstellung des Screenflows aus dem App-Modell. Im gezeigten Beispiel ist der Startscreen mit einer dynamischen Liste zu sehen. Dieser ist über einen Flow mit dem Secondscreen verbunden. Der Übergang wird durch Betätigen des Buttons ausgelöst. Auf dem zweiten Screen befindet sich ein Inputfield, das genutzt werden kann, um die dynamische Liste zu füllen. Über den Button wird wieder der Flow auf den ersten Screen ausgelöst. Entwicklungszyklus 4

In der Ecore-Modell-Datei (example.ecore) ist das Domänenmodell der Anwendung repräsentiert. Unser Minimalbeispiel enthält eine Entität Greeting mit dem Attribut message und eine Entität GreetingList, die alle Greetings zusammenfasst. Das Domänenmodell kann sowohl im baumbasierten Editor als auch in einem graphischen Editor angezeigt werden. Dazu muss aus der Ecore-Datei nur eine entsprechende graphische Darstellung erzeugt werden. 2.2 Generierung Android Um aus den zuvor erstellten Modelldateien den Rumpf einer Android-Anwendung generieren zu können, muss das example.app Modell geöffnet werden. Im Baumeditor muss nun der oberste Knoten geöffnet werden, so dass Mobile App ExampleApp sichtbar ist. Mit einem Rechtsklick auf Mobile App ExampleApp kann die Option Generate Android App ausgeführt werden. Dabei entstehen zwei Projekte: com.actionbarsherlock und de.modagile.validation.dynamiclist.models.gen.android. Im ActionBarSherlock Projekt (siehe auch http://www.actionbarsherlock.com/) liegen Kompatibilitätsbibliotheken, die die Funktionalitäten der ActionBar aus Android 3.0 (und größer) auch für vorhergehende Android-Versionen zur Verfügung stellt. Dieses Projekt muss in der Regel nicht mehr editiert werden. Das Projekt de.modagile.validation.dynamiclist.models.gen.android ist das eigentliche Anwendungsprojekt. Das Projekt enthält ein Verzeichnis src-gen, in dem sich die generierten Java-Klassen befinden. Inhalte dieses Ordners werden bei jeder Generierung vollständig überschrieben. Aus diesem Grund dürfen innerhalb dieses Ordners keine manuellen Anpassungen erfolgen. Im Verzeichnis src-man befindet sich manuell geschriebener Code. Daneben werden einmalig in dieses Verzeichnis Hooks generiert, die es ermöglichen, manuell Entwicklungszyklus 5

geschriebenen Code im Framework-Code zu verankern. Hier lassen sich unter anderem die Lifecycle-Methoden überschreiben. Daneben finden sich hier manuelle Bindings wieder. Das generierte Beispielprojekt lässt sich in diesem Stadium bereits ausführen. Dazu kann einfach auf das Projekt de.modagile.validation.dynamiclist.models.gen.android mit rechter Maustaste geklickt werden. Anschließend startet durch Run As Android Application der Android Emulator mit der generierten Applikation. Sobald die App gestartet ist, ist ein Screen mit einer Liste zu sehen. Da zum jetzigen Zeitpunkt jedoch noch keine Personen innerhalb der App angelegt sind, ist der Screen bis auf den Add new Button leer. Über Add new kann ein neuer Gruß angelegt werden. Das Speichern auf dem zweiten Screen persistiert die Daten jedoch noch nicht. Um dies zu ändern, erweitern wir nachfolgend den manuellen Sourcecode. Das Paket de.modagile.validation.dynamiclist.models.activity.listener im Verzeichnis src-man enthält die Klasse de.modagile.validation.dynamiclist.models. Die Methode onclick() kann nun angepasst werden, um die eingegebenen Daten auf Knopfdruck zu persistieren. Dazu wird folgender Code benötigt: GreetingManager gm = new GreetingManagerImpl(mActivity); gm.create(mactivity.getgreeting()); GreetingListManager gml = new GreetingListManagerImpl(mActivity); GreetingList gl = new GreetingList(); gl.setgreetings(new ArrayList<Greeting>()); gml.create(gl); Wird jetzt die Applikation erneut gestartet, werden die eingegebenen Grußtexte persistiert. Entwicklungszyklus 6

2.3 Generierung ios Für die Generierung einer App unter Mac sind zunächst dieselben Schritte notwendig wie für Android. Nach der Erstellung des Anwendungsmodells kann aus der Entwicklungsumgebung (Eclipse) heraus die Generierung gestartet werden. Es wird ein Eclipse-Projekt mit den Quelldateien in Objective-C erstellt sowie eine Projektdatei für die ios-entwicklungsumgebung Xcode. Entwicklungszyklus 7

Das Zielprojekt kann danach mit der Xcode-Entwicklungsumgebung geöffnet werden. Eclipse ist für das Editieren von ios-projekten nicht geeignet. Stattdessen sollte immer der Apple-eigene Editor verwendet werden. Die Struktur des Projekts ist ähnlich wie die unter Android. Es werden Ordner für generierten und nicht generierten Code angelegt (src-gen und src-man), sowie Ordner für die verschiedenen Belange der Anwendung (Datenmodell, Viewcontroller, Persistenz, etc.). Diese Ordner sind in Xcode als Gruppen registriert und daher auch im Baumeditor sichtbar. Die Build-Eigenschaften des Projekts sind bereits so gesetzt, dass alle generierten Dateien bei einer Ausführung des Builds kompiliert werden. Entwicklungszyklus 8

Für das Beispiel der Anwendung mit einer Liste und einem Hinzufügen-Button (vgl. oben) wird nahezu der gesamte ausführbare Anwendungscode generiert. Ohne manuelle Änderungen würde die App jedoch den Zustand der hinzugefügten Greetings nicht nach dem Beenden speichern. Ist eine persistente Verwendung der Daten gewünscht, muss daher noch eine Zeile im Code ergänzt werden, die den managed object context, also die gesamten persistenten Daten fest speichert. Dies geschieht über die Zeile [self.managedobjectcontext save:nil]; Nach dieser kleinen Änderung ist die App ausführbar und liefert die gewünschte Funktionalität. Sie enthält eine Liste sowie einen Button zum Anlegen von Greetings. Auf dem zweiten Bildschirm befindet sich ein Eingabefeld und ein Button zum Speichern, der den Benutzer wieder zurück auf das Listen-Fenster bringt. Das neu erzeugte Greeting wird dort angezeigt. Entwicklungszyklus 9

Im Simulator kann die App getestet werden. Die Abbildung zeigt einen Lauf auf einem iphone- 6.1-Simulator, in der schon einmal verschiedene Greetings eingefügt wurden. Diese werden in der Liste angezeigt. 2.4 Generierung Windows Phone Auch für die recht neue Plattform WindowsPhone wurde im Projekt Modagile Mobile ein Generator entwickelt. Dies zeigt, dass der Ansatz grundsätzlich nicht auf die gegenwärtig bekannten Plattformen beschränkt ist, sondern sich erweitern lässt, sobald neue Zielplattformen gewünscht sind und realisiert werden sollen. Entwicklungszyklus 10

Der Einstieg in die Generierung ist wie bei den anderen Plattformen über das Kontextmenü erreichbar, das auf einem Anwendungsmodell angeklickt wird. Dort kann Generate Windows Phone App gewählt werden, worauf die Generierung startet. Auch unter WindowsPhone (WP) wird ein Eclipse-Projekt erstellt. Jedoch ist Eclipse für das Editieren und Bauen einer WP-App nicht geeignet. Stattdessen sollte das Microsoft-eigene Produkt Visual Studio verwendet werden. Klickt man auf das generierte Projekt (.sln), öffnet sich das Visual Studio mit den entsprechenden Sourcen sofort. Entwicklungszyklus 11

Die Struktur ist vergleichbar mit den anderen Zielplattformen. Auch hier gibt es die Unterteilung in generierten (src-gen) und manuellen (src-man) Code, sowie eine Unterteilung nach Belang. In WindowsPhone wurde bereits ein etwas anderer Ansatz verfolgt, bei dem mehr Code in Bibliotheken verlagert wurde, die von jeder generierten App verwendet werden. Dies ermöglicht etwas schlankeren Code bei der Generierung und vermeidet Redundanzen. Die Bibliothek muss einfach mit der App eingebunden werden. Entwicklungszyklus 12

Die WP-App ist auch fast voll funktionsfähig. Allein innerhalb des Button-Click-Event-Handlers fehlt noch etwas Code, der ein neues Greeting anlegt, und in das Datenmodell der Anwendung einfügt: Greeting g = Greeting.Create(); g.message = "<new greeting>"; ViewModel.DataContext.InsertAndSubmit(g); Danach wird, vergleichbar mit ios, das angelegte Greeting in den Daten-Kontext des Screens gespeichert und die Daten sind damit persistent. Führt man die Anwendung auf dem WP-Emulator aus, wird ein Screen mit dem modellierten Button sowie einem Listen-Feld gezeigt. Klicken auf add new führt den Benutzer zum zweiten Screen, auf dem über ein Eingabefeld die Begrüßung eingegeben werden kann. Beim Speichern über back wird der Eintrag in die Liste geschrieben und gespeichert. 3 Fazit und Ausblick Wie schon am Anfang genannt, sei hier nochmals auf die Webseite des Projektes verwiesen: http://www.modagile-mobile.de Dort stehen auch alle hier genannten Werkzeuge des ModAgile Mobile Frameworks zum Download bereit: http://www.modagile-mobile.de/web/downloads/ Insgesamt ist es gelungen, eine umfassende Integration der modellgetriebenen Entwicklung zu erreichen. Für die Zielplattform Android ist es nicht mehr nötig, die Entwicklungsumgebung zu verlassen. Alle Abläufe zur Entwicklung einer mobilen App sind in einer Umgebung integriert. Für andere Zielplattformen gibt es nach der initialen Generierung einen Wechsel in die plattformspezifische Entwicklungsumgebung. Diese ist den jeweiligen App Entwicklern am Entwicklungszyklus 13

besten vertraut und daher aus unserer Sicht die logische Wahl. Die Option, auch diese Entwicklungsschritte in Eclipse zu integrieren wurde frühzeitig und bewusst verworfen. Mit der vorliegenden Version des Frameworks können bereits lauffähige Anwendungen für die Zielplattformen Android, ios und Windows Phone generiert werden. Der konkrete Einsatz in mehreren Multi-Plattform Projekten wäre ein nächster Schritt, um die nötige Produktreife zu erlangen und das Framework um noch fehlende Features zu ergänzen. Entwicklungszyklus 14