Michael Piechotta - CASE Tools. openarchitecture Ware



Ähnliche Dokumente
Model Driven Architecture (MDA)

Model Driven Development im Überblick

Model Driven Architecture Praxisbeispiel

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

Vortrag von: Ilias Agorakis & Robert Roginer

Themen. Software Design and Quality Group Institute for Program Structures and Data Organization

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Inhalt. Motivation Techniken des MDE. Fallbeispiele

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine

Jochen Bauer

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

Model Driven Software Development

Andreas Lux Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse

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

Einführung in Generatives Programmieren. Bastian Molkenthin

WIRTSCHAFTSINFORMATIK

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

SEA. Modellgetriebene Softwareentwicklung in der BA

Design mit CASE-Tools

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

DSLs mit Xtext entwerfen , A. Arnold

Usecase Meta Model Comparison and Model Migration. Dawid Kostrzycki Entwicklung verteilter eingebetteter Systeme

Systemdenken und Gestaltungsmethodik System-Modellierung

Generative Prozessmodelle Patrick Otto MDD Konferenz

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

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Herausforderung: Entwicklungsmethodik und technisches Umfeld

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

Graphischer Editor für die technologieunabhängige User Interface Modellierung

A Domain Specific Language for Project Execution Models

Über den Unterschied zwischen Business Analysis und Requirements Engineering & Management

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code.

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

DSL Entwicklung und Modellierung

Model Driven Architecture

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes

Model Driven Architecture

Datenhaltung für Android. Model First

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

Innovator Anbindung an openarchitectureware. Connect. Klaus Weber.

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

Model Driven Development einige wichtige Grundprinzipien

Rapide An Event-Based Architecture Definition Language

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

Datenhaltung für Android Model First Christian Ingenhaag, Frederik Götz, Carl Steeg

Lean Modeling - Datenmodelle und Geschäftsregeln einfach und präzise mit natürlicher Sprache spezifizieren

Software Engineering II

MDA-Praktikum, Einführung

Modellbasierte Softwareentwicklung

Installation der SAS Foundation Software auf Windows

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Kurzfassung der Studienarbeit

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Model Driven Architecture

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

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

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA)

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Sybase Central Dokumentation Aktivierung der Monitoringfunktion

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

TOGAF The Open Group Architecture Framework

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

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

UML-DSLs effizient eingesetzt. Insight 07, Klaus Weber

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi

Entwicklungswerkzeuge

Model-Driven Software Engineering (HS 2011)

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

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

INNOVATOR im Entwicklungsprozess

Software Systems Engineering

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle

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

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Referenzielle Integrität SQL

Die Invaliden-Versicherung ändert sich

Generischer Modellvergleich mit EMF Compare

Qt-Projekte mit Visual Studio 2005

Software-Architektur. Spektrum k_/takademischht VERLAG

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Transkript:

Model Driven Development Michael Piechotta - CASE Tools openarchitecture Ware

Gliederung 1.Einleitung - Was ist MDD? - Wozu MDD? 2.Model Driven Development - OMG Konzepte: Modelle,Transformationen Meta-Modellierung MDD Entwicklungsumgebung 3.oAW openarchitecture Ware - Features - Komponenten - Zusammenfassung 4.Referenzen 5.Übung 2

Was ist MDD? MDD ist ein Vorgehensmodell (Prozeß) für Softwareentwicklung MDD ist durch die OMG definiert Zentrale Elemente sind Modelle: PIM (Platform Independet Model) PSM (Platform Specific Model) Code Transformationen zwischen Modellen 3

Wozu MDD? heutige Systeme sind komplex Bewältigung der Komplexität mittels: - Abstraktion - Modellierung - Automatisierung Modell getriebene Entwicklung: allg. Lösung des Problems Platform unabhängig mittels Transformationen Umwandlung in Platform abhängigere Modelle 4

Wozo MDD? Gute Software wird wiederverwendet Schlechte stribt aus Anforderungen ändern sich 5

Wozu MDD? Komplexität Modellierung Bsp.: UML (MDD) höhere Progr.sprachen Abstraktion Assembler bin. Code Zeit Aus Erfahrung weiß man, Erhöhen des Abstraktionslevels hilft Komplexität zu bewältigen 6

Model Driven Development 7

Definition MDD nach OMG MOF meta object facility UML unified modeling language OCL object constraint language XMI XML meta interchange MDD -> Model Driven Architecture (Entsteht aus dem8prozeß)

Model Driven Development Es werden Modelle von Systemen erstellt Modelle werden durch Transformationen in andere Modelle übertragen Platformen und Systeme werden durch Modelle abstrahiert/gekappselt und mittels Transformationen ineinader 9 überführt

Model Driven Development Bsp.: Modell M: Modell J: platformunabhängig in UML Java Modell Transformation T (M->J) Bei Änderung der Zielplatform, muss Modell M nicht verändert werden Transformation T 10 wird geändert

Model Driven Development MDD verbessert im Software-Prozess: Produktivität Portabilität PIM sind platformunabhängig PIM Interoperabilität Hauptziel PIM T bridges (Transitivität) PSM (SQL) T bridges Pflege und Dokumentation 11 Kaskade zwischen Modellen und Code PSM (JAVA)

Konzepte System Views Modell Platform Transformationen 12

Konzepte System: Das zu modellierende System (Das zu erstellende Software-System) 13

Konzepte Views: computation independent viewpoint domain model od. Vokabular Business-Modell platform independent viewpoint beschr. System, ohne Details der Platform zu zeigen platform specific viewpoint beachtet Platformeigenschaften 14

Views verschiedene Ansichten auf ein System 15

Konzepte Platform: A platform is a set of subsystem and technologies that provide a coherent set of functionality through interfaces and specified usage patterns, which any application supported by that platform can use without concern for the details of how the functionality provided by the platform is implemented. 16

Konzepte Modell: A Model of a system is a description or specification of that system and its environment for some certain purpose. A model is often presented as a combination of drawings and text. The Text may be in a modelling language or in a structural language. 17

Konzepte Bsp.: PIM Bsp.: PSM Tabelle MS SQL MY SQL Oracle http://www.enic.fr/people/van wormhoudt/siteemfocl/tutorie l/images/libuml.gif 18 Datei

Konzepte Ein Modell ist in wolldefinierten Sprache geschrieben. wolldefiniert bedeutet, dass der Computer die Sprache verarbeiten kann für automatische Transformationen 19

Transformation transformation definition beschreibt wie ein Modell verändert werden soll transformation definitions werden zwischen Sprachen definiert 20

Transformationen Eigenschaften, die Transformationen erfüllen müssen: Traceability Incremental Consistency Änderungen sollten dokumentiert werden manuelle Änderungen am Code sollten durch Transformationen nicht überschrieben werden (Bidirectionality) 21

Meta-Modellierung Wie definiert man wolldefinierte Sprachen, die Modelle beschreiben? BNF Metamodeling Ein Metamodel definiert ein Modell Modell ist eine Instanz eines Meta-Modells Bsp.: UML ist eine Instanz von MOF 22

Metamodellierung Jedes Modell hat ein Metamodell, dass eindeutig ist: Nur Elemente, die im Metamodell erklärt werden, dürfen im Modell benutzt werden Validierung eines Modells gegen ein 23 Metamodell möglich

Meta-Modellierung nach OMG M3 Meta Metamodell describes M2 instance of Metamodell describes instance of Modell M1 describes M0 instance of Instanzen 24

Meta-Modellierung nach OMG MOF Meta Metamodell describes UML instance of Metamodell describes UML Modell instance of Modell describes Code instance of Instanzen 25

Beispiel 26

Beispiel

Transformationen Hat man Transformationen für das Metamodell, dann kann auf jede Instanz des Metamodells die Transformation angewendet werden. OMG spricht hierbei von TrasformationRepositories

Transformationen Woher und wie bekommt die Transformationen? Schwer... Es gibt Leute, die das Problem lösen und welche, die sich um die Transformationen kümmern

MDD Framework

MDD Entwicklungsumgebung

MDD Tools Andromeda openarchitecture Ware

Model Driven Development openarchitecture Ware

Features Modulares MDA/MDD Generator Framework in JAVA für Eclipse bel. Importe, Metamodelle und Ausgaben durch Converter Ecore Metamodel, EMF (Eclipse Modeling Framework)

Komponenten von oaw Metamodel/Model Editor Workflow Engine Expression Framework: Xpand Language Extend Language Check Validation Language (Xtext) Recipe Framework DSL mittels GMF

(Metamodel Editor

Modell Editor

Workflow Engine a declarative configurative generator engine XML basiert definiert workflow components, die sequentiell in einer einzigen JVM ausgeführt werden

Beispiel (Workflow Engine)

Expression Framework besteht aus den Sprachen Check, Xtend und Xpand Sprachen für Transformationen und Überprüfungen

Check Check ist eine domänenspezifische Sprache, die auf die Prüfung von Modellen spezialisiert ist Syntax: Jedes Element vom Typ TypeName wird auf guard-predicate überprüft

Xpand Wird in den Templates für die Code-Ausgabe benutzt Bsp.:

Beispiel Xpand

Beispiel (Code Generierung)

Extend Sprache, mit der Erweiterungen eingefügt werden können, die von den anderen Sprachen benutzt werden können. Sprache für die Transformationen

Recipe Framework definiert Regeln für Artefakte, die außerhalb des Generators definiert worden sind (Ableiten von Basisklassen) Eclipse validiert den Code gegen diese Regeln Konsistenz zwischen Modell und Code

Recipe Framework

DSL mittels GMF erstellt den Editor mit den Modellierungselementen eindeutige Sprache, es wird mit den Problemenelementen argumentiert Ecore ist das Meta-Metamodel (EMF) oaw hat Converter, die bel. Modell (z.b.: UML) in Ecore umwandeln

oaw Features File decorations Editoren (Check, Xpand und Extend) syntax coloring code completition Problem markers DSL mittels GMF (graphical modeling framework)

openarchitecture Ware Zusammenfassung oaw

Bewertung Vorteile: kostenlos (Open Source) in Eclipse integriert (bekannt) erweiterbar/anpassbar Nachteile: dynamische Aspekte fehlen bugs Dokumenation Übersicht (Fortschritt)

Referenzen MDA Guide Version 1.01 http://www.omg.org/cgi-bin/doc?omg/03-06-01 MDA Explained Anneke Kleppe, Jos Warmer, Wim Bast Model Driven Architecture Applying MDA to Enterprise Computing David S. Frankel OpenArchitectureWare 4.1 Expression Framework Reference EMF Recipe Framework Reference Check Validation Language Workflow Engine Reference Xpand Language Reference http://www.eclipse.org/gmt/oaw/doc/

Übung Siehe Übungsblatt!