Modellgetriebene Softwareentwicklung und Modelltransformationen in der Praxis. Vorstellung Gruppe Softwaretechnik für Verteilte Systeme



Ähnliche Dokumente
Model Driven Development im Überblick

Model Driven Architecture Praxisbeispiel

Herausforderung: Entwicklungsmethodik und technisches Umfeld

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

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

Michael Piechotta - CASE Tools. openarchitecture Ware

Jochen Bauer

Model Driven Architecture (MDA)

Vortrag von: Ilias Agorakis & Robert Roginer

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

WIRTSCHAFTSINFORMATIK

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

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

Modellierung von Echtzeitsystemen mit dem UML CASE Tool Telelogic Tau G2 Developer

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

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

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Modellbasierte Softwareentwicklung

Model Driven Architecture

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

Model-Driven Software Engineering (HS 2011)

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

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Model Driven Architecture

Einführung in das Eclipse Modeling Framework (EMF)

Systemdenken und Gestaltungsmethodik System-Modellierung

SEA. Modellgetriebene Softwareentwicklung in der BA

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

Inhalt. Motivation Techniken des MDE. Fallbeispiele

Einführung in das Eclipse Modeling Framework (EMF)

Rhapsody in J Modellierung von Echtzeitsystemen

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

openarchitectureware Was mit dem Open Source MDSDWerkzeug möglich ist

MDA MDA mit mit Open-Source-Software Eine Eine Bestandsaufnahme

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

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

Software Engineering II

Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Model Driven Software Development

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

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

Software Engineering

DSLs mit Xtext entwerfen , A. Arnold

Henshin: Modelltransformationen in EMF. Dr. Thorsten Arendt Marburg, 29. Oktober 2015

Forschungsprojekt SS 2009

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

Model Driven Architecture

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

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

Modellgetriebene Service-Entwicklung

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

Vorlesung Programmieren

iks Gesellschaft für Informations- und Kommunikationssysteme mbh Sponsor der

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo)

Eclipse Modeling Framework

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

Model Driven SOA. < J Springer. Anwendungsorientierte Methodik und Vorgehen in der Praxis. Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann

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

Model-Driven Development in Scrum-Projekten

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

Master Projekt SoSe Computergestützte Generierung und Validierung von Softwaremodellen. Rene Meis Nazila Gol Mohammadi Prof. Dr.

MDA auf der Grundlage der OMG Konzepte

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Übersicht Eclipse Modeling Project EMP. Zoltan Horvath

Requirements Engineering I

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

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

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

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

b+m Informatik AG Langlebige und zukunftsfähige modellgetriebene Softwaresysteme? Thomas Stahl b+m Informatik AG

Neue Funktionen in Innovator 11 R5

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

Software-Architektur. Spektrum k_/takademischht VERLAG

Test-Driven Design: Ein einfaches Beispiel

Seminar: Software Engineering verteilter Systeme

Software-Engineering im Sommersemester 2014

2.1 Motivation modellgetriebener Ansätze Die Geschichte der Softwareentwicklung ein historischer

openarchitectureware

MDA-Praktikum, Einführung

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon

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

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

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

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

Modellgetriebene Softwareentwicklung

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

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

A Domain Specific Language for Project Execution Models

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

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

Thema 2 Acceleo-MTL- Sprachmittel

Generischer Modellvergleich mit EMF Compare

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modellgetriebene Softwareentwicklung

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

EMF-GMF-Tutorial: Petrinet

Analyse und Toolevaluierung


Transkript:

Modellgetriebene Softwareentwicklung und Modelltransformationen in der Praxis Prof. Dr. Jens Grabowski M.Sc. Benjamin Zeiss Inhalt Vorstellung Gruppe Softwaretechnik für Verteilte Systeme Grundlagen Modellierung und Modelltransformationen Technologien für Modellgetriebene Softwareentwicklung Modelltransformationen in der SWE Gruppe EMF/Openarchitectureware Demo Zusammenfassung 2

Die Gruppe Wissenschaftliches Personal: Prof. Dr. Jens Grabowski [Prof.Dr.Helmut Neukirchen (bis10.08)] Dipl.-Inf. Edith Werner M.Sc. Wafi Dahman M.Sc. Benjamin Zeiß M.Sc. Akthar Ali Jalbani M.Sc. Thomas Rings M.Sc. Philip Makedonski M.Sc. Steffen Herbold Studentische Hilfskräfte: Alexander Möller, Christian Otto Laufende Projekt-, Bachelor- und Masterarbeiten: laufend ca. 4-8 Studierende (zur Zeit 7 Studierende) Unterstützt von: Annette Kadziora Dipl.-Ing. (FH) Gunnar Krull Web: http://www.swe.informatik.uni-goettingen.de 3 Was machen wir? Automatische Generierung von Testfällen Sprachen für die Testbeschreibung TTCN-3 UML Testprofil (UTP) Entwicklungsmethodik Agile Software Entwicklung UML-basierte Web Service Entwicklung Qualitätssicherung (QS) Testen Testmethodik Testpatterns Testmethodik für TTCN-3 & UTP QS für Tests Grid-Testen QS für UML Metriken, Refactoring, Smells Lernverfahren in der QS Reverse-Engineering aus Traces (Tests) Bewertung von Metriken Bewertung von Prozessen 4

Grundlagen Modellierung und Modelltransformationen 5 Was ist ein Modell? [http://www.duesseldorf-blog.de/2006/11/16/hier-traellert-heidi-klum-ihr-erstes-lied-wonderland/] [http://www.ernest-stolz.de/model.htm] 6

Abstraktion 1(1) [http://www.duesseldorf-blog.de/2006/11/16/hier-traellert-heidi-klum-ihr-erstes-lied-wonderland/] Abstraktion 1 Abstraktion 2 Abstraktion 3 Frau cleverer Mensch frauliche Attribute 7 Abstraktion 2(2) [http://www.ibm.com/developerworks/rational/library/3100.html] 8

Modellierungssprachen sd N Telephone Catalog Check Status s[u]:b s[k]:b Salesperson m3() Place Order cart ShoppingCart Nassi-Shneiderman-Diagramme 1 m3() cartorder Customer client Customer customerorder 1 1..* Fill Orders Shipping Clerk 0..1 0..* OrderHeader {xor} Establish Credit Supervisor 1 order accountorder 1 1..* organizationorder 1 Account account ite m * client Organization LineItem ReadAmountSM Design Part Design Engineer Standards Engineer ID Part Requirement serviceitem service 1 Service [part Standard found] Use Part Search Part [part not found] [part provided] Provide Required Part [else] 1 1 {xor} productitem product 1 Product selectamount otheramount Specification and Description amount Language (SDL) enteramount ok abort abort aborted Unified Modeling Language (UML) Petri Netze 9 Model-Driven-Architecture (MDA) 1(3) Modellgetriebener Softwareentwicklungsansatz mit klarer Trennung von Funktionalität und Technik Entwickelt von der Object Management Group (OMG) als Strategie insbesondere zur Softwareentwicklung mit den von OMG entwickelten Technologien [http://www.omg.org/mda/] 10

Model Driven Architecture (MDA) 2(3) Computational Independant Model (CIM) Platform Independant Model (PIM) Platform Model Platform Specific Model (PSM) System Code 11 Model Driven Architecture (MDA) 3(3) UML Computational Independant Model (CIM) Use Domänenmodell Case-, Aktivitäts- und Klassen-Diagramme Platform Independant Model (PIM) Interaction-, Analysemodell, Klassen- und State-Machine-Diagramme (Grob-)Entwurf Platform Model Platform Specific Model (PSM) Entwurfsmodell & Konfiguration & Verteilung Interaction-, State-Chart-, Klassen-, Package-, Komponenten- und Deployment- Diagramme System Code 12

Technologien für Modellgetriebene Softwareentwicklung 13 Modellgetriebene Softwareentwicklung: Technologien Modellierungssprachen UML Ecore sprachen M2M: QVT, ATL, Xtend M2T: XPand, Acceleo T2M: Xtext Plattformen für Modellgetriebene Softwareentwicklung AndroMDA Openarchitectureware Kein Anspruch auf Vollständigkeit! 14

Unified Modeling Language (UML) Modellierungssprache für Software und Systeme Entwickelt von der Object Management Group (OMG) ISO/IEC 19501 Standard 13 Diagramme für graphische Notation, darunter Klassendiagramm, Sequenzdiagramm, Zustandsmaschine, etc. Wichtige Standards: Meta Object Facility (MOF) 2.0 Core Specification UML 2.0 Infrastructure Specification UML 2.0 Superstructure Specification UML 2.0 Object Constraint Language UML 2.0 Diagram Data Interchange 15 Unified Modeling Language Architektur M3 MOF (Meta-metamodell) M2 UML Metamodell M1 Benutzermodell M0 Instanzen des Benutzermodells (Objekte) 16

Ecore als Metamodellierungssprache Teil des Eclipse Modeling Frameworks (EMF) Ecore ist Metamodellierungssprache Ecore ist wie MOF ein Meta-metamodell Kompatibel mit Essential MOF (EMOF) des OMG Standards Reduziert in Umfang/Komplexität gegenüber MOF Kein weiteres Metamodell wie UML Spielt v.a. in Eclipse-Welt eine Rolle 17 sprachen Modell-zu-Modell Transformationen (M2M) QVT ATL Xtend Modell-zu-Text Transformationen (M2T) Xpand Acceleo JET Text-zu-Modell Transformationen (T2M) Xtext TextUML 18

M2M: QVT QVT = Query / View / Transformation Standard für Modelltransformationen von der OMG Quell und Zielmodelle der Transformation sind MOF-konforme Metamodelle QVT Syntax selbst ist auch in MOF 2.0 beschrieben 3 Sprachen: QVT/Relations (deklarativ, textuelle und graphische Syntax) QVT/Core (deklarativ) QVT/Operational (imperativ, erweitert QVT/Relations und QVT/Core) QVT/BlackBox für Transformationen in fremden Sprachen (XQuery, XSLT) 19 M2M: Xtend Teil von oaw / Eclipse Modeling Project Benutzt (zusammen mit anderen oaw Sprachen) gemeinsame Sprachgrundlage, die Expression Language (ähnlich Prädikatenlogik) Erweiterung um zusätzliche Logik bestehender Metamodelltypen Extensions: nicht-invasive Erweiterung von Metamodellen Xtend Erweiterungen können in Sprachen der oaw Familie aufgerufen werden: Check, XPand Create Extension: Transformation von Modellen 20

M2T: XPand Templatesprache für Codegenerierung Sprachunabhängig, Generierung für beliebige Ziele «IMPORT meta::model» «EXTENSION my::extensionfile» «DEFINE javaclass FOR Entity» «FILE filename()» package «javapackage()»; public class «name» { // implementation } «ENDFILE» «ENDDEFINE» 21 M2T: Acceleo (früher: MTL) Implementierung des OMG MOF Models to Text Transformation Language Standards Benutzt OCL für Navigation und Query Relativ neu, wird wohl in Eclipse 3.5 einsatzfähig sein 22

T2M: Xtext Framework für die Erstellung textueller domänen-spezifischer Sprachen Beschreibung einer DSL in EBNF Grammatik Generierung von: Parser AST-Meta Model mittels Ecore Eclipse Text Editor mit Syntaxprüfung, Outline, Auto- Vervollständigung usw. Artefakte in Xtext = Modelle 23 Plattformen für Modellgetriebene Entwicklung Vorgestellt: AndroMDA Eclipse Modeling Project Openarchitectureware Andere: Telelogic Rhapsody (Kommerziell) Topcased (Open Source) Borland Together Architect (Kommerziell) 24

AndroMDA Open-Source MDSD/MDA Generatorframework Transformation von UML Modellen in Code Unterstützung von allen wichtigen UML Tools Z.B. Magicdraw, Poseidon, Enterprise Architect Modellvalidierung über OCL Modell-zu-Modell Transformationen in Java, bald ATL Modell-zu-Text über Template-Systeme wie Velocity oder Freemarker Viele fertige Cartridges Java, Spring, EJB,.NET, Hibernate, Struts, usw. 25 Eclipse Modeling Project Eclipse Modeling Framework (EMF) EMF Core, Model Query, Validation, etc. Generative Modeling Technologies (GMT) Epsilon, MOFScript, etc. Graphical Modeling Framework (GMF) Model-to-Model Transformation (M2M) ATL, Procedural QVT, Declarative QVT, XTend Model to Text (M2T) JET, Acceleo. Xpand Model Development Tools OCL, Papyrus, UML2, UML Tools, etc. Viele andere Modellierungsprojekte! 26

Openarchitectureware Open-Source Plattform für modellgetriebene Softwareentwicklung Eigene sprachen Grosse Community In Eclipse 3.5 Teil der Galileo Distribution 27 Modelltransformationen in der SWE Gruppe 28

Modelltransformationen in der SWE Gruppe Computational Independant Model (CIM) Platform Independant Model (PIM) Transformation von UML nach TTCN-3 (Dennis Neumann) Platform Model Platform Specific Model (PSM) System Code UML-basierte Entwicklung von Web-Services (Wafi Dahman) Refactoring von UML-Modellen, Quality Engineering for UML (Akhtar Ali Jalbani, Lukas Schubert) 29 Literatur Thomas Stahl, Markus Völter, Sven Efftige, Arno Haase: Modellgetriebene Softwareentwicklung. dpunkt verlag. Volker Gruhn, Daniel Pieper, Carsten Röttgers: MDA. Springer. David Steinberg, Frank Budinsky, Marcelo Paternostro, Ed Merks: EMF Eclipse Modeling Framework 2nd Edition. Addison-Wesley. Richard C. Gronback: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. Addison-Wesley. (Fast) alle in der Studenten-Bibliothek! 30

Demo Einfaches Beispiel Definition eines Metamodelles für ein Transitionssystem mit Markierungen (LTS) in UML Transformation des UML Metamodelles in ein Ecore Metamodell mittels eines fertigen Xtend Cartridges Erzeugung einer Modellinstanz mit EMF Modell-zu-Text nach Graphviz DOT (mit XPand) Testfallgenerierung für TTCN-3 aus Modellen Definition in strikterem UML Testing Profile (UTP) Transformation UML-SWETest-TTCN-3 31 Zusammenfassung Modellierung Grundlagen Abstraktion Modellierungssprachen MDA Technologien M2M,M2T,T2M UML, EMF, Openarchitectureware, etc. Beispiele 32

Fragen? www.swe.informatik.uni-goettingen.de 33