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



Ähnliche Dokumente
Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Modellgetriebene Softwareentwicklung. Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Comparing Software Factories and Software Product Lines

Model Driven Development im Überblick

Software-Praktikum. Gabriele Taentzer Philipps-Universität Marburg Sommersemester 2015

Software-Praktikum. Gabriele Taentzer Philipps-Universität Marburg Sommersemester 2013

Generative Prozessmodelle Patrick Otto MDD Konferenz

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

Ein hierarchischer, modellgetriebener Ansatz zur Codegenerierung. R. Gitzel, M. Schwind

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Einführung in Generatives Programmieren. Bastian Molkenthin

Software Factories SS Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung

INNOVATOR im Entwicklungsprozess

Neue Funktionen in Innovator 11 R5

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

Ein mobiler Electronic Program Guide

Vortrag von: Ilias Agorakis & Robert Roginer

Model-Driven Development in Scrum-Projekten

Anforderungen an die HIS

Erfolgreiche Realisierung von grossen Softwareprojekten

Übung: Verwendung von Java-Threads

Präsentation Von Laura Baake und Janina Schwemer

Forschungsprojekt SS 2009

Entwicklung einer domänenspezifischen Modellierungssprache. 12. November 2014

Software Projekt 2 / Gruppe Knauth Lernziele:

Microsoft SharePoint 2013 Designer

Grundlagen Software Engineering

SEA. Modellgetriebene Softwareentwicklung in der BA

Einführung in die Informatik Tools

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015

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

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Seamless Model-based Engineering of a Reactive System


Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine

Model Driven Architecture Praxisbeispiel

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Content-Verwertungsmodelle und ihre Umsetzung in mobilen Systemen

FEHLER! TEXTMARKE NICHT DEFINIERT.

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Die MID ModellierungsMethodik M³ ein Baukasten für Produktlinien. Andreas Ditze, MDD & PL 2009, Leipzig,

Visuelle DSLs Trends in der Softwaretechnik: Domänenspezifische Sprachen (Seminar WS 2010/11) Thorsten Arendt

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Erfolg ist programmierbar.

LP (nach ECTS): 9. Sekr.: FR Modulbeschreibung

Bachelor-/Masterarbeit: ALM-Umgebung für native medical Apps unter Android und ios

Zeichnungskoordination in der Cloud

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Installation & Konfiguration AddOn CopyObjects

Informationswirtschaft II Rational Unified Process (RUP)

IT mit klarer Linie. C R M - M i g r a t i o n. informatik ag. ilum:e informatik ag. Customer Relationship Management Migration

Informationswirtschaft II

Einbindung von Web Services in mobilen Applikationen

Sof o t f waretechn h o n l o og o i g en n f ü f r ü v e v rteilte S yst s eme Übung

Einführung in die Modellierung

WebCT Desinger Konferenz. Integration von Vorlesungsaufzeichnungen in WebCT. Markus Lermen, M.A. und Melanie Njo, M.A. 29.

Mobile Application Development. Andreas Kumlehn, Daniel Brinkers, Georg Dotzler, Thorsten Blaß

MehrWerte. Das Wipak Web Center DE 2014/03

SOCIAL MEDIA & PHOTOGRAPHY BOOTCAMP. Social Media & Fotografie. Workshop für Unternehmer & Mitarbeiter

Software Evolution. Prof. Dr. Gabriele Taentzer Dr. Thorsten Arendt Wintersemester 2015/2016

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

Modellgetriebene Softwareentwicklung in der Bundesagentur für Arbeit

Eclipse Neue Trends in der Eclipse-Technologie (Seminar WS 2013/14)

Modellbasierte Softwareentwicklung mit EMF

Computerspiele/ Special Effects/ GPU- Programmierung

Analyse und Toolevaluierung

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Model Driven Architecture

Model Driven Architecture (MDA)

Pflichtmodul Projektstudium im WiSe 09/10

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

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

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Praktikum/Thesis im Bereich Softwareentwicklung - Embedded Softwareentwicklung

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Bildquelle:

Der Kopf ist rund, damit das Denken die Richtung

Entwicklung domänenspezifischer Software

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Praktikant / Abschlussarbeit im Bereich Softwareentwicklung / Mechatronik (m/w)

Referenzarchitekturen und MDA 1

TomTom WEBFLEET Logbook. Partner Produkt Kit

Ein mobiler Electronic Program Guide für Android

Entwicklung einer formalen Sprache zur Modelltransformation auf Basis von UML & XMI

macht mobil einfach Mobile Wartungsprozesse, Checklisten und Inspektionen Mobile integrierte Checklisten in SAP PM/CS

Studienrichtung Eingebettete Systeme

DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Erfolg ist programmierbar.

Agenda. Lösungsentwicklungsprozess Rahmenbedingungen für arvato SPL Entwicklungsarchitektur

07. November, Zürich-Oerlikon

skobbler Services Wir kennen und können Apps.

Projektseminar Modellbasierte Softwareentwicklung SoSe2014

Prof. Dr. Gabriele Taentzer, Dr. Thorsten Arendt

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Transkript:

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: taentzer@informatik.uni-marburg.de, Raum D5434, Tel: 21532 {strueber,vaupel}@informatik.uni-marburg.de, Raum: D5432, Tel: 21511 Termine: VL: Mi 10 12 h, Raum: SR 04C37 VL: Mi 12 14 h, Raum: SR 04C37 UE: Mi 14 16h Raum: SR 04C37 2

Organisation der LV ab 5. Semester Voraussetzung: Grundvorlesungen in Praktischer Informatik Einführung in die Softwaretechnik Scheinkriterien: Übungsaufgaben Abschlussklausur / mündliche Prüfung Homepage der LV: www.uni-marburg.de/fb12/swt/lehre/mdd4ma1415 Kopien der Folien, Literaturhinweise, Übungen, Software 3

Lehrveranstaltungsstil Konzeptvermittlung in der Vorlesung Folienkopien sind auf der Homepage verfügbar, kleinere Abweichungen (insb. Korrekturen) sind möglich Beispiele häufig an der Tafel Zwischenfragen und Kommentare während der Vorlesung sind grundsätzlich erwünscht. Literatur häufig in Englisch Praktische Übungen, häufig am Rechner 4

Lernziele Verständnis des Paradigmas der modellgetriebenen Softwareentwicklung Modellgetriebenen Softwareentwicklung von konkreten mobilen Anwendungen Kenntnisse der Anwendungsentwicklung basierend auf Android Vertiefte Kenntnis eines Eclipse-basierten Ansatzes zur modellgetriebenen Entwicklung, konzeptionell und in praktischer Anwendung Verständnis für die Möglichkeiten und Grenzen der modellgetriebenen Softwareentwicklung Grundverständnis für die in der LV vorgestellten Werkzeuge, durch Übungen vertieft 5

Modellgetriebene SW-Entwicklung: Softwareentwicklung auf drei Ebenen mobile 6

Inhalt Einführung: Modellgetriebene Softwareentwicklung Grundideen, Motivation Anwendungsdomäne: mobile Anwendungen Entwicklung von Android-Anwendungen Einführung in Entwicklungsprinzipien Modellgetriebene Entwicklung Domänenspezifische Modellierung Sprachdefinition und Editoren Optimierung von Modellen Versionierung von Modellen Analyse von generiertem Code Zusammenfassung und Ausblick 7

Einführung in die modellgetriebene Softwareentwicklung von mobilen Anwendungen 15. Oktober 2014

Mobile Anwendungen 9

10

Entwicklung von mobilen Anwendungen Die Anwendung soll auf jeder relevanten Plattform verfügbar sein. Mehrfachentwicklung und anpassung an alle relevanten Plattformen. Die Plattformen entwickeln sich schnell. neue Technologien Die existierenden Anwendungen sollen neue Features möglichst bald nutzen. 11

Modellgetriebene Entwicklung von mobilen Anwendungen Modell? Generator 12

Iterative Softwareentwicklung Vorbereitung Nachbereitung Analyse (Anforderungsspezifikation) Evaluierung (Tests) Design (Lösungsmodell) Implementierung (Lösung) Codegenerierung 13

Modelle im SW-Entwicklungsprozess essentieller Teil des Entwicklungsprozesses zur Kommunikation mit den Kunden und anderen Entwicklern Zur Präzisierung von Anforderungen Zum Design des zu entwickelnden Systems verschiedenste Modellierungssprachen Anforderungen Modell abstrahiert konkretisiert zu realisierendes System 14

Prinzip der modellgetriebenen Softwareentwicklung domänenspezifisch Generator Modell Programm anwendungsspezifisch 15

MDD vergleichbar zu einer Autobestellung? Radio Dach Getriebe Sitze Motor 16

oder eher wie die Erstellung eines Fotokalenders? Drucken Fotografieren Binden fertige Kalender 17

Model Driven Architecture (MDA) Von der Object Management Group (OMG) entwickelt (2000) Spezifikation von MDA: http://www.omg.org/mda Motto: Model once, run anywhere. Modellierungssprache: UML Verschiedene Zielplattformen: Web Services.NET/C# J2EE/Java CORBA/C++ aus "OMG Model Driven Architecture" 18

Welche Art von mobilen Anwendungen betrachten wir? Geschäftsanwendungen mit rollenbasierten Varianten

Mobile Anwendungen: Domänenanalysis Welche Art von mobilen Anwendungen? Geschäftsanwendungen, z.b. Touristenführer, Überwachung von Maschinen Einbindung von Google Play Services und anderen Apps mehrere Arten von Benutzern (z.b. Datenverwalter und Endnutzer): Eine App pro Benutzerrolle. meist off-line benutzbar Projekt PIMAR: Platform independent mobile augmented reality 20

Modellierungsansatz (1) Modellierung und Generierung der App (2) Installation der modellierten App (3) Modellierung rollenbasierter App-Varianten 21

Wie entwickeln wir eine Infrastruktur für modellgetriebene Softwareentwicklung?

Überblick Welche Voraussetzungen müssen für die modellgetriebene Entwicklung von Anwendungssoftware erfüllt sein? Wann lohnt sich die Entwicklung einer Infrastruktur für modellgetriebenes Entwickeln in einer Domäne? Meinungen über modellgetriebene SW-Entwicklung 23

Iterative Softwareentwicklung Vorbereitung Nachbereitung Analyse (Anforderungsmodell) Test (Evaluierung) Design (Lösungsmodell) visuell MDD Implementierung (Lösung) textuell 24

Beispiel für eine MDD-Infrastruktur: PIMAR für mobile Anwendungen Domäne: geschäftliche mobile Anwendungen Modellierungssprache: domänenspezifisch Modelle enthalten Domänenwissen über Datenstrukturen, Verhalten, Oberfläche Codegenerator enthält Wissen über die Benutzung unterliegender Plattformen (z.b. OO- Konzepte, Android, ios, etc) Architektur von mobilen Anwendungen Frameworks und Bibliotheken: Android-Plattform: Java, Services (Google Play), etc. ios-plattform: C#, XCode, etc. 25

Wann lohnt es sich MDD- Infrastrukturen zu entwickeln? Viele ähnliche Anwendungen in derselben Domäne Anwendungen enthalten einen großen Teil von schematisch wiederkehrendem Code. Es ist zu erwarten, dass die Anwendung auf eine höhere Abstraktionsebene gehoben werden kann. Domänenspezifische Modellierungssprache ist vorhanden oder lässt sich aus vorhandenen Anwendungen ableiten. Es sollen mehrere Plattformen bedient werden. Technologieänderungen sind wahrscheinlich. Optional: Anwendungsentwickler verfügen über begrenztes Technologiewissen. 26

Entwicklerrollen in modellgetriebener Softwareentwicklung Anwendungsentwickler benutzt die MDD Infrastruktur entwickelt eine konkrete Anwendung in modellgetriebener Weise hat überwiegend Domänenwissen Infrastrukturentwickler benutzt Metawerkzeuge, um eine MDD-Infrastruktur zu entwickeln Modellierungssprache und Editoren Codegeneratoren hat hauptsächlich Technologiewissen Metawerkzeugentwickler entwickelt Spezifikationswerkzeuge für Modellierungssprachen Entwickelt z.b. Editorgeneratoren und Transformationssprachen hat Wissen über Sprach- und Werkzeugdesign 27

Verschränkung der Iterationen MDD-Infrastruktur Referenzanwendung(en) (Prototyp) generierte Anwendung Anwendung Referenzanwendungen initiieren die Entwicklung der domänenspezifischen Sprache. Entwickelte MDD-Infrastruktur generiert die Anwendung (weitgehend). Modellgetriebene Softwareentwicklung von mobilen Anwendungen 28

Entwicklung einer MDD-Infrastruktur Voraussetzung: Meta-Infrastruktur Definitionsmöglichkeit für die Modellierungssprache: Metamodellierung Definitionsmöglichkeit für die Generatoren: Template- Sprachen Frameworks für (verschiedene) Plattformen Definition der Modellierungssprache: Domänenanalyse: Welche Informationen sollen im Modell gehalten werden? Definition der Generatoren: Domänenanalyse: Welche Semantiken? Weitere MDD-Infrastrukturkomponenten 29

Entwicklung einer MDD-Infrastruktur anhand einer Referenzapplikation Zweigleisige Softwareentwicklung: eine konkrete Applikation MDD-Infrastruktur für die Entwicklung von Softwarefamilien MDD-Infrastruktur: Modellierungssprache (Metamodell, konkrete Syntax) Generator Zielplattformen Henne-oder-Ei -Problem Infrastruktur und Applikation werden verschränkt entwickelt 30

Analyse von Applikationscode Code einer Referenzanwendung analysieren individueller Code schematisch wiederkehrender Code separieren generischer Code Anwendungsmodell individueller Code schematisch wiederkehrender Code Plattform gen. Code 31

MDD-Infrastruktur- Entwicklungsprozess Iterative Softwareentwicklung verschränkte Entwicklung einzelner Applikationen und der MDD- Infrastruktur Entwicklung von ein oder mehreren konkreten Applikationen ohne MDD Bestimmung allgemeiner und spezifischer Anforderungen Entwicklung der MDD-Infrastruktur Entwicklung derselben Applikationen mit der MDD-Infrastruktur Analyse des Applikationscodes generischer Code (für alle Applikationen gleich) schematisch wiederkehrender Code ( bis auf wenige Information gleiche Codeteile) individueller Code (anwendungsspezifischer Teil) MDD generiert schematische Codeteile aus dem Applikationsmodell 32

Welche MDD-Infrastruktur wird extrahiert? Für eine generative Softwareentwicklung wird von einer oder mehreren Applikationen extrahiert: Metamodell für domänenspezifische Modellierungssprache Modelltransformationen: Transformationen zu Zwischenmodellen Generatoren: Model-zu-Code-Transformer Templates definieren Codefragmente aus der Applikation Benutzung von Plattformen 33

Modellgetriebene Softwareentwicklung Applikation MDD-Infrastruktur Domänenspezif. Design-Modell modelliert mit Editor Domänenspezifische Modellierungssprache transformiert in generischer und schematisch wiederkehrender Code individueller Code erzeugt Generator basiert auf basiert auf Modell-zu-Code Tr. (Generator Templates) basiert auf Infrastrukturkomponenten (Plattform) 34

Zusammenfassung Modellgetriebene Entwicklung: Softwareentwicklung auf einer höheren Abstraktionsebene Inhalt der LV: Entwicklung von mobilen Anwendungen Entwicklung einer Infrastruktur für modellgetriebene Entwicklung von mobilen Anwendungen Die Verwendung einer Infrastruktur zur modellgetriebenen Entwicklung ist mehr als die Einstellung einiger Parameter. Sie ist ein kreativer Akt. 35

Zusammenfassung Modellgetriebene Entwicklung bedeutet zweierlei: Entwicklung einer MDD-Infrastruktur Entwicklung einer Anwendung mit der MDD-Infrastruktur Entwicklung einer MDD-Infrastruktur: Entwicklung von Referenzapplikationen Analyse des Applikationscodes: Separierung in generischen, schematisch wiederkehrenden und individuellen Code Definition einer Modellierungssprache Definition von Generatoren 36

Ausblick: Softwareentwicklung auf drei Ebenen mobile 37