Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015

Größe: px
Ab Seite anzeigen:

Download "Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015"

Transkript

1 Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook 14. Januar 2015

2 Überblick Modell- und Codegenerierung (M2C, C2M) Modellinterpretation vs. Modellübersetzung PIMAR Code-Generierung am Beispiel des Projekts PhoneBook Erzeugte Projekte für eine Anwendung Struktur des Android-Projekts Abbildung ausgewählter Modellierungselemente auf Programmcode Kontrollfluss der mobilen Anwendung Parameterübergabe zwischen Prozessen und Tasks Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 2

3 Codegenerierung (M2C) Codegenerierung ist eine spezielle Form der Modelltransformation [MG06], die auch als vertikale exogene Modelltransformation bezeichnet wird. Es wird ein Modell in Code übersetzt (synthetisiert): public class AutoImpl extends MinimalEObjectImpl.Container implements Auto { } MG06: Mens, Tom and Pieter Van Gorp. "A taxonomy of model transformation." Electronic Notes in Theoretical Computer Science 152 (2006): Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 3

4 Codegenerierung (C2M) Die Rückübersetzung eines Modells aus Code (C2M) ist möglich, wenn: der Code generiert ist (z.b. Fujaba) oder das Modell auf einzelne Aspekte beschränkt ist. Bei der Übersetzung werden i.d.r. viele (technische) Informationen hinzugefügt. public class AutoImpl extends MinimalEObjectImpl.Container implements Auto { } Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 4

5 Generierung von Varianten Ein übersetztes Modell, d.h. eine generierte Anwendung, repräsentiert genau ein Modell. Zwei (fast) identische Modelle bilden immer zwei (fast) identische Anwendungen. Metamodell (M1) Instanzen Modell (M0) Modell (M0) generiert Anwendung Anwendung Was wäre, wenn man den abweichenden Modellanteil erst zur Laufzeit auswerten könnte? Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 5

6 Modellinterpretation (Laufzeitmodelle) Ein idealtypischer Modellinterpreter implementiert ein Metamodell und kann beliebige Instanzen des Metamodells zur Laufzeit interpretieren. Instanzen Metamodell (M1) Modell (M0) Modell (M0) implementiert Interpreter Modell (M0) interpretiert Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 6

7 Codegenerierung und Interpretation in PIMAR (1) Modellierung und Generierung der App (2) Installation der modellierten App (3) Modellierung rollenbasierter App-Varianten Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 7

8 Modellübersetzung (Vorteile) Schutz des Know-Hows Die Anwendung realisiert nur ein Modell. Der Anwender kann die Anwendung nur bestimmungsgemäß nutzen. Plattformspezifisch und Architekturgerecht Die Anwendung kann für eine bestimmte Architektur generiert werden. Die native Umsetzung garantiert eine hohe Performanz. Verständlichkeit Der generierte Programmcode ist i.d.r. gut verständlich und von guter Qualität. Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 8

9 Modellübersetzung (Vorteile) Prototypbasiertes Vorgehen Die Templates zur Übersetzung des Modells können aus Prototypen gewonnen werden. Iteratives Vorgehen Die erstmalig generierte Anwendung kann manuell erweitert werden. Die Erweiterungen lassen sich testen und anschließen in das Template überführen. Sicherheit, Robustheit und Debugging Der generierte Quellcode durchläuft als Zwischensprache einen Compiler. Dieser kann ggf. Fehler erkennen. Das Debuggen ist möglich! Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 9

10 Modellinterpretation (Vorteile) Schnelle Änderungen Modelländerungen setzten keinen Übersetzung des Modells und keine Übersetzung des generierten Programmcodes voraus. Änderungen zur Laufzeit Anwendungen lassen sich zur Laufzeit konfigurieren. Portabilität Plattformunabhängige Modelle (PIM) lassen sich auf allen Plattformen ausführen, für dies es einen Interpreter gibt (Vgl. Java) Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 10

11 Modellinterpretation (Vorteile) Sicherheit Die Installation einer potentiell unsicheren mobilen Anwendung kann durch die Ausführung eines geprüften Modellinterpreters vermieden werden. Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 11

12 PIMAR Code-Generierung Der PIMAR-Generator besteht aus zwei Teilgeneratoren, welche unterschiedliche Modellteile bearbeiten Prozess- und GUI-Modell PIMAR-Generator basierend auf Xtend (2.5.1) Datenmodell: EMF-Generator (2.10) (siehe Vorlesung ) basierend auf JET (Java Emitter Templates) Der PIMAR-Generator übersetzt Modellteile (M1) und generiert Laufzeitcode für entsprechende Laufzeitinstanzen (M0). Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 12

13 PIMAR Code-Generierung (Projekte) Der PIMAR-Generator übersetzt das App model (Data model, Process model und GUI model) in die Projekte: <Modelname>.Android <Modelname>.Lib <Modelname>.metaioSDK.Lib <Modelname>.google-play-services.Lib Der Generator erzeugt für alle Projekte passende Eclipse-Natures (inkl. Android-Konfiguration) und konfiguriert die Abhängigkeiten der Projekte. Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 13

14 PIMAR Code-Generierung (.Android) Das Projekt <Modelname>.Android enthält den Programmcode der mobilen Anwendung. Es besteht aus folgenden Packages <Modelname>.android.adapter (Listenadapter) <Modelname>.android.crud (CRUD-Klassen) <Modelname>.android.gui (Services- und Activities) <Modelname>.android.gui.* (Fragments) <Modelname>.android.model (DataAccessLayer) <Modelname>.android.util (Utility-Klassen) Neben diesen Packages werden alle Ressourcen (res/) und die AndroidManifest.xml generiert. Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 14

15 PIMAR Code-Generierung (Mapping) Prozesse werden zu Services (android.app.service) InvokeGUITasks werden zu Activities (android.app.activity) oder FramgmentActivities (android.support.v4.app.fragmentactivity) Create-, Delete-, Read-Tasks werden zu einfachen Klassen im Package <Modelname>.android.crud. Variablen werden zu einfachen Attributen ihrer referenzierenden Tasks. InvokeOperationTasks werden zu einem entsprechenden Methodenaufruf im umgebenden Prozess. InvokeProcessTask werden zu einem Intent (android.content.intent). Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 15

16 Beispiel: PIMAR Codegenerierung public class CreatePersonService extends Service public class CreatePerson private Person newperson; // Create-Task CreatePerson createperson = new CreatePerson(this.getApplicationContext()); newperson = createperson.getnewperson(); i = new Intent(CreatePersonService.this, EnterNewPersonActivity.class); startactivity(i); i = new Intent(CreatePersonService.this, ViewNewPersonActivity.class); startactivity(i); public class EnterNewPersonActivity extends FragmentActivity public class ViewNewPersonActivity extends FragmentActivity Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 16

17 Beispiel: PIMAR Codegenerierung public class MainProcessesActivity extends Activity main_list.setadapter(new ProcessAdapter(((ProcessSelector)process.getStartTask()). getprocesses(), this, "ProcessesOverview")); public class ProcessAdapter extends BaseAdapter Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 17

18 Beispiel: PIMAR Codegenerierung <uses-permission android:name="android.permission.call_phone"/> public class CallPersonService extends Service { // public int onstartcommand(intent intent, int flags, int startid) { //... object = bundle.get("objecturi0"); if (object instanceof String) { selectedperson = (Person)dataAccessLayer.root.eResource().getEObject(object.toString()); } else { selectedperson = (Person)((Sharable)object).obj(); } selectedperson.callmobilenumber(getapplicationcontext()); // } } Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 18

19 Beispiel: PIMAR Codegenerierung public class NearToMeService extends Service { // public int onstartcommand(intent intent, int flags, int startid) { //... i = new Intent(NearToMeService.this, SelectAndShowPersonAddressOnMapService.class); } } if (isanchor) { ArrayList<String> lst0 = new ArrayList<String>(); for (Person so : nearestpersons) { lst0.add( EcoreUtil.getURI(so).fragment()); } i.putstringarraylistextra("objecturi0", lst0); } else { i.putextra("objecturi0",new Sharable(nearestPersons)); } startservice(i); // Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 19

20 Beispiel: PIMAR Codegenerierung public class MainPersonFragment extends Fragment { private TextView tv_surname_data; private TextView tv_surname; private TextView tv_forename_data; private TextView tv_forename; private TextView tv_mobilenumber_data; private TextView tv_mobilenumber; private TextView tv_officenumber_data; private TextView tv_officenumber; private LinearLayout ll_main; private ScrollView sv_main; public class AddressFragment extends Fragment { private TextView tv_city_data; private TextView tv_city; private TextView tv_zip_data; private TextView tv_zip; private TextView tv_street_data; private TextView tv_street; private TextView tv_number_data; private TextView tv_number; private LinearLayout ll_main; private ScrollView sv_main; Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 20

21 Beispiel: PIMAR Codegenerierung (Kontrollfluss) CallPersonService CrudPersonService SearchPersonService CreatePersonService EditPersonService NearToMeService MainProcessesActivity DeletePersonService ShowPersonAddressOnMapService PersonsWithAddressService SelectAndShowPersonAddressOnMapService AllPersonsService Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 21

22 PIMAR Codegenerierung (Kontrollfluss) Die Architektur der generierten Anwendung realisiert folgenden Kontrollfluss: Prozesse (Services) geben die Kontrolle an ihre Pages oder weitere (Sub-)Prozesse ab. Eine Page (Activity) gibt die Kontrolle nur an ihren Prozess (Service) ab, falls sie nicht die letzte Task im Prozess ist. Dann wird die Kontrolle an den vorherigen Prozess abgegeben. Technisch wird für jede Pagen-Aufruf eine eigene Android- Activity generiert. Prozesse können wiederverwendet werden (siehe z.b. PersonsWithAddressService) Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 22

23 Beispiel: PIMAR Codegenerierung (Kontrollfluss) Der Kontrollflussrumpf von SearchPersonService: public class SearchPersonService extends Service public int onstartcommand(intent intent, int flags, int startid) { // Begin with clustered Tasks if (bundle.getstring("src") == null) { / startactivity(searchcriteriapersonactivity); } else if (bundle.getstring("src")!= null && bundle.getstring("src").equals("searchcriteriapersonactivity")) { / startactivity(choosepersonactivity) }else if (bundle.getstring("src")!= null && bundle.getstring("src").equals("choosepersonactivity")) { / i.putextra("islast", true); startactivity(viewsearchedperson); MainProcessesActivity } } Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 23

24 Beispiel: PIMAR Codegenerierung (Parameter) Die Parameterübergabe an die Page ShowAddressOnMap: SelectAndShowPersonAddressOnMapService.java: // i = new Intent(SelectAndShowPersonAddressOnMapService.this, ShowAddressOnMapActivity.class); i.putextra("objecturi0",new Sharable(latitude)); i.putextra("objecturi1",new Sharable(longitude)); i.putextra("service", "SelectAndShowPersonAddressOnMapService"); i.putextra("islast", true); startactivity(i); Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 24

25 PIMAR Code-Generierung (Parameter) Die Parameterübernahme von Page ShowAddress: public class ShowAddressOnMapActivity extends FragmentActivity { private double latitude; private double public void oncreate(bundle savedinstancestate) { // Bundle extras = getintent().getextras(); latitude = Double.valueOf(((Sharable)extras.get("ObjectUri0")).obj().toString()); longitude = Double.valueOf(((Sharable)extras.get("ObjectUri1")).obj().toString()); } // Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 25

26 Modellinterpretation vs. Modellübersetzung (Code) Umsetzung verschiedener Formatierungsinformationen bei der Übersetzung: getlistview().setbackgroundcolor(android.graphics.color.rgb(255, 255, 255)); Drawable divider = new ColorDrawable(android.graphics.Color.rgb(0, 0, 0)); getlistview().setdivider(divider); getlistview().setdividerheight(1); StateListDrawable st = new StateListDrawable(); st.addstate(new int[]{android.r.attr.state_pressed}, new ColorDrawable( Color.rgb(255, 255, 255))); getlistview().setselector(st); Lassen sich diese Formatierungsinformationen zur Laufzeit noch ändern? Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 26

27 Modellinterpretation vs. Modellübersetzung (Code) Umsetzung verschiedener Formatierungsinformationen (BackgroundColor, Separator, SelectionColor) auf der Seite SelectPerson zur Laufzeit: SelectLocatablePersonsActivity.java if (dataaccesslayer.getstylesettingfrompage("selectperson")!= null) { getlistview().setbackgroundcolor( Util.getRgbColor(dataAccessLayer.getStyleSettingFromPage("SelectPerson").getBackColor())); if dataaccesslayer.getstylesettingfrompage("selectperson").getliststyle().isseparatorshow()) { Drawable divider = // dataaccesslayer.getstylesettingfrompage("processoverview").getfontcolor())); getlistview().setdivider(divider); getlistview().setdividerheight(1); } StateListDrawable st = new StateListDrawable(); st.addstate(// dataaccesslayer.getstylesettingfrompage("selectperson").getselectionstyle().getselectioncolor()))); // } Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 27

28 Zusammenfassung Codegenerierung stellt eine Modelltransformation dar (M2C). Die Umkehrung (C2M) ist auch möglich. Modelle können sowohl übersetzt als auch interpretiert werden. Beide Ansätze haben Vor- und Nachteile. Der PIMAR-Generator folgt einer Modellübersetzung. Varianten werden durch Modellinterpretationen realisiert. Taentzer Modellgetriebene Entwicklung von mobilen Anwendungen 28

Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org

Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org Fachhochschule Münster Labor für Software Engineering luzar@fh-muenster.de www.naviki.org 1 Naviki die Idee www.naviki.org 2 Wie funktioniert

Mehr

Android GUI Entwicklung

Android GUI Entwicklung Android GUI Entwicklung Aktuelle Technologien verteilter Java Anwendungen Referent: Stefan Haupt Hello World! Agenda Einführung & Motivation Android Applikationen UI-Komponenten Events Ressourcen Kommunikation

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Accounts und Kontakte in Android

Accounts und Kontakte in Android Accounts und Kontakte in Android Die letzten Wochen habe ich daran gearbeitet, die Kontakte der AddressTable von Leonardo und mir ins Android Adressbuch zu bringen. Dazu habe ich die AddressManagement-Applikation

Mehr

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012 Einführung in modellgetriebene Softwareentwicklung 24. Oktober 2012 Überblick Was sind die Grundprinzipien der modellgetriebenen Softwareentwicklung? Entwicklung einer MDD-Infrastruktur Modellgetriebene

Mehr

Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter

Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter Einführung in die Android App-Entwicklung Patrick Treyer und Jannis Pinter Agenda Was ist Android? Android Versionen Layout, Strings und das Android Manifest Activities, Intents und Services Entwicklungsumgebung

Mehr

Informatik Sommercamp 2012

Informatik Sommercamp 2012 Informatik Sommercamp 2012 App Entwicklung mit dem Android SDK Dominik W., Stefan S., Jan L. Fakultät für Informatik und Mathematik Universität Passau 23.07.2012 Gliederung 1 2 3 4 Warum? an Schule und

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Model Driven Development im Überblick

Model Driven Development im Überblick Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05 Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy,

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Metamodellbasierte Codegenerierung in Java

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Metamodellbasierte Codegenerierung in Java Metamodellbasierte Codegenerierung in Java Codegenerierung Markus Völter, voelter@acm.org, www.voelter.de Codegenerierung bezeichnet die automatische Erstellung von Quelltext aus üblicherweise abstraktereren,

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München, 26.01.2011

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München, 26.01.2011 Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen OOP München, 26.01.2011 I N H A L T 1. SOA das erste Projekt 2. Prozesse Ergebnisse aus dem Fachbereich 3. Der Business Analyst und BPMN

Mehr

Der EMF-generierte Code. 7. November 2012

Der EMF-generierte Code. 7. November 2012 Der EMF-generierte Code 7. November 2012 Überblick Wie sieht der aus einem EMF-Modell generierte Code aus? Wie ist die Beziehung zwischen Modell und Code? Wie kann generierter Code durch handgeschriebenen

Mehr

Naked-FHIR. Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. Textmasterformate durch Klicken bearbeiten

Naked-FHIR. Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. Textmasterformate durch Klicken bearbeiten Naked-FHIR Code-Generierung auf Basis von HL7 FHIR Andreas Schuler, MSc. HL7 Jahrestagung 2015 18. März 2015 Einführung HL7 FHIR stellt eine Reihe an Basis-Ressourcen zur Verfügung Über Zweite Conformance

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016 Android Apps Mentoring SS 16 Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016 Wichtige Dateien MainActivity.java activity_main.xml AndroidManifest.xml Die Dateien MainActivity.java,

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

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

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1 Faktor-IPS Modellgetriebene Softwareentwicklung mit Faktor-IPS Seite 1 Faktor-IPS Faktor-IPS ist ein Werkzeug zur modellgetriebenen Entwicklung versicherungsfachlicher Systeme Bestandssysteme Außendienstsysteme

Mehr

Design Patterns 2. Model-View-Controller in der Praxis

Design Patterns 2. Model-View-Controller in der Praxis Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Tom Krauß Agenda Begriffsdefinition Verfahren Praktische Beispiele Vergleich und Bewertung Begriffsklärung

Mehr

Seminar Multimediale Werkzeuge Sommersemester 2011

Seminar Multimediale Werkzeuge Sommersemester 2011 Seminar Multimediale Werkzeuge Sommersemester 2011 Dipl.-Ing. Marco Niehaus marco.niehaus@tu-ilmenau.de 09.06.2011 Page 1 Android Development - Installation Java SDK wird benötigt (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg

Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg Modellgetriebene Softwareentwicklung von mobilen Anwendungen WS 2014/15 Philipps-Universität Marburg Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter:, Daniel Strüber, Steffen Vaupel Kontakt:

Mehr

Mobile Systeme Android 07.04.2011

Mobile Systeme Android 07.04.2011 Mobile Systeme Android 07.04.2011 Android Plattform/Betriebssystem für mobile Endgeräte wie z.b. Smartphones Basiert auf dem Linux Kernel Bis auf grundlegende Prozesse werden alle Anwenden mithilfe einer

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Entwicklung einer echtzeitfähigen CLI-Laufzeitumgebung für den Einsatz in der Automatisierungstechnik

Entwicklung einer echtzeitfähigen CLI-Laufzeitumgebung für den Einsatz in der Automatisierungstechnik Entwicklung einer echtzeitfähigen CLI-Laufzeitumgebung für den Einsatz in der Automatisierungstechnik Echtzeit 2010 Alexej Schepeljanski Martin Däumler Matthias Werner Echtzeit 2010 / 18. November 2010

Mehr

Quellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke

Quellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke Quellcode-Repräsentation in Eclipse Seminarvortrag PG Reclipse Jan Rieke Gliederung Motivation Architektur von Eclipse Quelltext-Repräsentation in Eclipse Java-Modell Java DOM/AST Zusätzliche Konzepte

Mehr

Code-Erzeugung aus UML-Klassendiagrammen

Code-Erzeugung aus UML-Klassendiagrammen Dominik 09.03.2009 Universität Ulm Gessenharter Inst. f. Programmiermethodik und Compilerbau Code-Erzeugung aus UML-Klassendiagrammen Theorie und Praxis Seite 2 REConf 2009 München Dominik Gessenharter

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt 14.4.2016 Technische Hochschule Georg Agricola WORKSHOP TEIL 3 IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt Inhaltsverzeichnis 1. Kurzfassung zur Projekterstellung... 2 2. Morse-Tabelle...

Mehr

Entwickeln für Android OS

Entwickeln für Android OS Entwickeln für Android OS Am Beispiel der WAPLA Wissenschaftliche Arbeitstechniken und Präsentation Lern Applikation Christian Kain Kevin Kain Wolfgang Kremser Gregor Bankhamer Warum Android? Verbreitung

Mehr

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold Codegeneratoren mit Xtend2 11.04.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was ist Xtend2? 2. Xtend2 Konzepte 3. Hands On! 3 4 8 20 2 Was ist Xtend2? Funktionale, objektorientierte Sprache

Mehr

WIRTSCHAFTSINFORMATIK

WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster A platform for professional model-driven software development. Präsentation im Rahmen des Seminars Software Engineering WS 08/09 Jan Schürmeier Jan.Schuermeier@gmx.de

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

2. GUI-Programmierung für mobile Geräte

2. GUI-Programmierung für mobile Geräte 2. GUI-Programmierung für mobile Geräte Lernziele 2. GUI-Programmierung für mobile Geräte Themen/Lernziele: Einführung Lebenszyklus einer Android-Anwendung Beispiele GUI-Elemente Einbindung externer Ressourcen

Mehr

2. GUI-Programmierung für mobile Geräte

2. GUI-Programmierung für mobile Geräte 2. GUI-Programmierung für mobile Geräte Lernziele 2. GUI-Programmierung für mobile Geräte Themen/Lernziele: Einführung Lebenszyklus einer Android-Anwendung Beispiele GUI-Elemente Einbindung externer Ressourcen

Mehr

Mobile App Development - Multitasking -

Mobile App Development - Multitasking - Mobile App Development - Multitasking - Inhalt Threading Services Service Lifecycle Gestartete Services Gebundene Services Threading Threading Standard Java Threads Thread Runnable volatile & synchronized

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

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

ESE Conference 2011, Zürich. Generative Konzepte für den Plattform-Zoo - am Beispiel Mobile-Apps. Rüdiger Schilling Delta Software Technology GmbH 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

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

JAVA als erste Programmiersprache Semesterkurs

JAVA als erste Programmiersprache Semesterkurs JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik

Mehr

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Individuelle Erweiterung des generierten Codes. 16. Januar 2013 Individuelle Erweiterung des generierten Codes 16. Januar 2013 Überblick Welche Möglichkeiten zur individuellen Erweiterung von generiertem Code gibt es? Innerhalb eines Moduls (Klasse) Auf Modulebene

Mehr

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Copyright 2014 Delta Software Technology GmbH. All Rights reserved. Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Inhalt Toast-Meldungen Permissions Sensoren GPS (Global Positioning System) Kamera Anzeigen von Koordinaten auf einer

Mehr

Seminar Scala SS2010, Einführung. R. Schiedermeier Fakultät 07 für Informatik und Mathematik

Seminar Scala SS2010, Einführung. R. Schiedermeier Fakultät 07 für Informatik und Mathematik Seminar Scala SS2010, Einführung R. Schiedermeier Fakultät 07 für Informatik und Mathematik Themen Ausführen von Scala-Code Werte und Variablen Methoden Typen 22.04.10 Seminar Scala, Einführung 2 Übersetzen

Mehr

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modellgetriebene Softwareentwicklung bei der IBYKUS AG Modellgetriebene Softwareentwicklung bei der IBYKUS AG Theorie Teil 4: Domänenspezifische Sprachen Dr. Steffen Skatulla IBYKUS AG 1 Inhalt Teil 4: Domänenspezifische Sprachen Nutzung vorhandener Sprachen

Mehr

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

Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile

Mehr

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN Mathias Slawik, WI (M), 3. FS Aktuelle Themen der Wirtschaftsinformatik, HTW Berlin, WS 10/11 Gliederung 2 Methode

Mehr

Software Entwicklung 1. Das Android Framework zur Entwicklung von Apps. Bibliotheken Frameworks. Framework. Annette Bieniusa / Peter Zeller

Software Entwicklung 1. Das Android Framework zur Entwicklung von Apps. Bibliotheken Frameworks. Framework. Annette Bieniusa / Peter Zeller Software Entwicklung 1 Annette Bieniusa / Peter Zeller Das Android Framework zur Entwicklung von Apps AG Softech FB Informatik TU Kaiserslautern Bieniusa/Zeller Software Entwicklung 1 2/ 46 Frameworks

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Christian Meder inovex. Sauberes Grün QS für Android

Christian Meder inovex. Sauberes Grün QS für Android Konferenz Christian Meder inovex Sauberes Grün QS für Android Sauberes Grün: QS für Android W-JAX, 2011 Christian Meder inovex GmbH Chief Technology Officer 09.11.2011 1 Speaker Christian Meder Schwerpunkte

Mehr

2.2 Prozesse in Java

2.2 Prozesse in Java 2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.

Mehr

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT?

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT? Java -The Standard Widget Toolkit- Inhaltsverzeichnis 1. Was ist? - Vorteile von - Nachteile von 2. Vorbereitungen für 3. Das erste Programm in 4. Widgets und Styleparameter 5. - Layouts Was ist ein Widget?

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009

Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009 Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009 1 Agenda (1) Fornax-Plattform, Cartridges (2) Referenzimplementierung, Referenzmodell

Mehr

Android-Geräte Programmieren 4. Hinweise zur Android-Programmierung. Stefan Rothe

Android-Geräte Programmieren 4. Hinweise zur Android-Programmierung. Stefan Rothe Android-Geräte Programmieren 4. Hinweise zur Android-Programmierung Stefan Rothe 2014 01 29 Rechtliche Hinweise Dieses Werk von Thomas Jampen und Stefan Rothe steht unter einer Creative Commons Attribution-Non-

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

Mehr

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Testen von graphischen Benutzeroberflächen. 26. Juni 2013 Testen von graphischen Benutzeroberflächen 26. Juni 2013 Überblick Testarten Methoden-, Klassen-, Komponenten-, Systemtests Motivation für automatisches Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen 5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:

Mehr

Type Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe

Type Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe Type Erasure in Java 5 Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe Warum Generics? Containerklassen in Java 1.4 sind generisch nutzbar aber typunsicher. Public class LinkedList

Mehr

Tutorial. Programmierung einer Android-Applikation. Teil 1

Tutorial. Programmierung einer Android-Applikation. Teil 1 Tutorial Programmierung einer Android-Applikation Teil 1 Autor: Oliver Matle Datum: März 2014, Version 1.0 Autor: Oliver Matle, www.matletarium.de Seite 1 von 28 Inhaltsverzeichnis Kapitel 1 Einleitung...3

Mehr

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Intents (Wiederholung I) Ein Intent erklärt die Absicht eine bestimmte Activity auszuführen Explizit durch Angabe einer

Mehr

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Testen von graphischen Benutzeroberflächen. 24. Juni 2015 Testen von graphischen Benutzeroberflächen 24. Juni 2015 Überblick Motivation für das automatische Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien für GUIs Capture / Replay Testmethode

Mehr

Klassifikation von Modelltransformationen

Klassifikation von Modelltransformationen Klassifikation von Modelltransformationen feat. feature diagrams Andreas Blunk blunk@informatik.hu-berlin.de 1 Agenda 1. Einführung in Modelltransformationen 2. Vorstellung von Merkmalsdiagrammen 3. Beschreibung

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Android Entwicklung. MobileDevCamp Munich 31.10.2009 Markus Junginger. greenrobot_de

Android Entwicklung. MobileDevCamp Munich 31.10.2009 Markus Junginger. greenrobot_de Android Entwicklung MobileDevCamp Munich 31.10.2009 Markus Junginger greenrobot_de Preis Scanner Apps Über mich Erste Android App: 2007 Erstes Mobile Projekt: 2001 10 Jahre Java & Internet Erfahrung 20

Mehr

Generische Datenstrukturen

Generische Datenstrukturen Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Softwaretechnologie, Prof. Uwe Aßmann 1 2 Trends in der Softwareentwicklung

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Besprechung der Aufgaben 1) Legen Sie das Android-Projekt HelloWorldApp an so wie es in den vorherigen Folien beschrieben

Mehr

Überleben im Funkloch

Überleben im Funkloch Überleben im Funkloch Offlinefähige Apps für Android entwickeln Christian Janz (@c_janz ) christian.janz@bridging-it.de Christian Janz Consultant im Bereich Softwareentwicklung Java/JEE bei Bridging IT

Mehr

12) Generische Datenstrukturen

12) Generische Datenstrukturen mpfohlene Literatur 12) Generische Datenstrukturen http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf rof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014

Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014 Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014 Wahlpflichtfach (2 SWS) für Bachelor Andreas Schmidt Einführung/Organisation 1/19 Ziele der Vorlesung Vorstellung

Mehr

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage C# CLR CIL MCS ECMA-335 Linux.Ne t Was ist.net? Microsoft Homepage:.NET is the Microsoft Web services strategy to connect information, people, systems and devices through software. Mono Handbuch:.Net besteht

Mehr

Mobile Development in.net mit Xamarin

Mobile Development in.net mit Xamarin 1 Mobile Development in.net mit Xamarin Mobile Web (Hybrid) Apps Vorteil: Weniger Aufwand Multi-Plattform Web-Technologien Nachteil: UX Performance UI Design Gerätefunktionen 2 Plattform abstrahieren 3

Mehr

Cross-Platform Mobile mit.net

Cross-Platform Mobile mit.net Cross-Platform Mobile mit.net Mobile Entwicklungslandschaft Nativ Crosscompiled Hybrid Web Beste Usability? Überschaubare Kosten? Was ist Xamarin? Was ist Xamarin? 2011 Gegründet aus dem Ximian, Novell

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung. Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

Mehr

Software-Architektur Design Patterns

Software-Architektur Design Patterns Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr