17
Modellgetriebene Softwareentwicklung und Modelltransformationen in der Praxis Prof. Dr. Jens Grabowski M.Sc. Benjamin Zeiss sit2009 2 sit2009 2 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 Inhalt

Modellgetriebene Softwareentwicklung - uni-goettingen.de · 2018. 3. 26. · Modellgetriebene Softwareentwicklung und Modelltransformationen in der Praxis Prof. Dr. Jens Grabowski

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • Modellgetriebene Softwareentwicklung

    und Modelltransformationen in der

    Praxis

    Prof. Dr. Jens Grabowski

    M.Sc. Benjamin Zeiss

    sit20092 sit20092

    � 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

    Inhalt

  • sit20093 sit20093

    � Wissenschaftliches Personal:Prof. Dr. Jens Grabowski [Prof.Dr.Helmut Neukirchen (bis10.08)]Dipl.-Inf. Edith Werner M.Sc. Wafi DahmanM.Sc. Benjamin Zeiß M.Sc. Akthar Ali JalbaniM.Sc. Thomas Rings M.Sc. Philip MakedonskiM.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

    Die Gruppe

    sit20094 sit20094

    Testmethodik• Testpatterns• Testmethodik fürTTCN-3 & UTP

    • QS für Tests• Grid-Testen

    Entwicklungsmethodik• Agile Software Entwicklung• UML-basierte Web Service Entwicklung

    AutomatischeGenerierungvon Testfällen

    Was machen wir?

    Qualitätssicherung (QS)

    TestenQS für UML• Metriken, Refactoring, Smells

    Sprachen für dieTestbeschreibung• TTCN-3• UML Testprofil (UTP)

    Lernverfahrenin der QS• Reverse-Engineering ausTraces (Tests)

    • Bewertung von Metriken• Bewertung von Prozessen

  • sit20095 sit20095

    Grundlagen Modellierung und

    Modelltransformationen

    sit20096 sit20096

    Was ist ein Modell?

    [http

    ://w

    ww

    .due

    ssel

    dorf

    -blo

    g.de

    /200

    6/11

    /16/

    hier

    -tra

    elle

    rt-h

    eidi

    -klu

    m-ih

    r-er

    stes

    -lied

    -won

    derla

    nd/]

    [http

    ://w

    ww

    .ern

    est-

    stol

    z.de

    /mod

    el.h

    tm]

  • sit20097 sit20097

    Abstraktion 1(1)

    Abstraktion 1

    Abstraktion 2

    Abstraktion 3

    [http

    ://w

    ww

    .due

    ssel

    dorf

    -blo

    g.de

    /200

    6/11

    /16/

    hier

    -tra

    elle

    rt-h

    eidi

    -klu

    m-ih

    r-er

    stes

    -lied

    -won

    derla

    nd/]

    „Frau“

    „fraulicheAttribute“

    „clevererMensch“

    sit20098 sit20098

    Abstraktion 2(2)

    [http://www.ibm.com/developerworks/rational/library/3100.html]

  • sit20099 sit20099

    Modellierungssprachen

    Nassi-Shneiderman-Diagramme

    Petri Netze

    Specification and DescriptionLanguage (SDL)

    ID Part StandardPart Search

    UsePartRequirement

    ProvideRequired

    Part

    [part found]

    [part notfound]

    Design Part

    DesignEngineer

    StandardsEngineer

    [part provided]

    [else]

    selectAmount

    enterAmount

    ok

    abort

    otherAmount

    amount

    abort

    ReadAmountSM

    aborted

    Customer

    Supervisor

    Salesperson

    Establish Credit

    Telephone Catalog

    Shipping Clerk

    Check Status

    Place Order

    Fill Orders

    sd N

    s[u]:B s[k]:B

    m3()

    m3()

    Product

    Customer

    Organization

    Service

    OrderHeader

    LineItem

    Account

    *

    order

    item

    1

    ShoppingCart

    1

    1

    productItem

    product

    serviceItem

    service1

    1

    client

    client

    customerOrder

    organizationOrder

    cart

    cartOrder

    accountOrder

    account

    11..*

    1..*1

    1

    0..1

    0..*

    1

    {xor}

    {xor}

    Unified Modeling Language (UML)

    sit200910 sit200910

    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 insbesonderezur Softwareentwicklung mitden von OMG entwickeltenTechnologien

    [http://www.omg.org/mda/]

  • sit200911 sit200911

    Model Driven Architecture (MDA) 2(3)

    PlatformIndependantModel (PIM)

    Transformations

    PlatformSpecific

    Model (PSM)

    Transformations

    SystemCode

    Transformations

    ComputationalIndependantModel (CIM)

    Refinement

    Refinement

    Refinement

    Platform Model

    sit200912 sit200912

    UML

    Model Driven Architecture (MDA) 3(3)

    ComputationalIndependantModel (CIM)

    PlatformIndependantModel (PIM)

    PlatformSpecific

    Model (PSM)

    SystemCode

    Transformations

    Transformations

    Transformations

    Refinement

    Refinement

    Refinement

    Platform Model

    Domänenmodell

    Analysemodell,(Grob-)Entwurf

    Entwurfsmodell &Konfiguration &Verteilung

    Use Case-, Aktivitäts- undKlassen-Diagramme

    Interaction-, Klassen- undState-Machine-Diagramme

    Interaction-, State-Chart-,Klassen-, Package-,Komponenten- und Deployment-Diagramme

  • sit200913 sit200913

    Technologien für Modellgetriebene Softwareentwicklung

    sit200914 sit200914

    � Modellierungssprachen

    � UML

    � Ecore

    � Transformationssprachen

    � M2M: QVT, ATL, Xtend

    � M2T: XPand, Acceleo

    � T2M: Xtext

    � Plattformen für Modellgetriebene Softwareentwicklung

    � AndroMDA

    � Openarchitectureware

    � Kein Anspruch auf Vollständigkeit!

    Modellgetriebene Softwareentwicklung:

    Technologien

  • sit200915 sit200915

    � 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

    Unified Modeling Language

    (UML)

    sit200916 sit200916

    Unified Modeling Language

    Architektur

    M3MOF (Meta-metamodell)

    M2UML Metamodell

    M1Benutzermodell

    M0Instanzen des Benutzermodells (Objekte)

  • sit200917 sit200917

    � 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

    Ecore

    als Metamodellierungssprache

    sit200918 sit200918

    � Modell-zu-Modell Transformationen (M2M)� QVT

    � ATL

    � Xtend

    � …

    � Modell-zu-Text Transformationen (M2T)� Xpand

    � Acceleo

    � JET

    � Text-zu-Modell Transformationen (T2M)� Xtext

    � TextUML

    Transformationssprachen

  • sit200919 sit200919

    � 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)

    M2M: QVT

    sit200920 sit200920

    � 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

    M2M: Xtend

  • sit200921 sit200921

    � Templatesprache für Codegenerierung

    � Sprachunabhängig, Generierung für beliebige Ziele

    M2T: XPand

    «IMPORT meta::model»«EXTENSION my::ExtensionFile»

    «DEFINE javaClass FOR Entity»«FILE fileName()»

    package «javaPackage()»;

    public class «name» { // implementation

    } «ENDFILE»

    «ENDDEFINE»

    sit200922 sit200922

    � 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

    M2T: Acceleo (früher: MTL)

  • sit200923 sit200923

    � 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

    T2M: Xtext

    sit200924 sit200924

    � Vorgestellt:

    � AndroMDA

    � Eclipse Modeling Project

    � Openarchitectureware

    � Andere:

    � Telelogic Rhapsody (Kommerziell)

    � Topcased (Open Source)

    � Borland Together Architect (Kommerziell)

    � …

    Plattformen für Modellgetriebene

    Entwicklung

  • sit200925 sit200925

    � 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.

    AndroMDA

    sit200926 sit200926

    � 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!

    Eclipse Modeling Project

  • sit200927 sit200927

    � Open-Source Plattform für modellgetriebene Softwareentwicklung

    � Eigene Transformationssprachen

    � Grosse Community

    � In Eclipse 3.5 Teil der Galileo Distribution

    Openarchitectureware

    sit200928 sit200928

    Modelltransformationen in der SWE Gruppe

  • sit200929 sit200929

    Modelltransformationen

    in der SWE Gruppe

    ComputationalIndependantModel (CIM)

    PlatformIndependantModel (PIM)

    PlatformSpecific

    Model (PSM)

    SystemCode

    Transformations

    Transformations

    Transformations

    Refinement

    Refinement

    Refinement

    Platform Model

    „UML-basierte Entwicklungvon Web-Services“

    (Wafi Dahman)

    Refactoring vonUML-Modellen, „QualityEngineering for UML“

    (Akhtar Ali Jalbani,Lukas Schubert)

    „Transformation vonUML nach TTCN-3“(Dennis Neumann)

    sit200930 sit200930

    � 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, MarceloPaternostro, Ed Merks: EMF EclipseModeling Framework 2nd Edition. Addison-Wesley.

    � Richard C. Gronback: Eclipse ModelingProject: A Domain-Specific Language(DSL) Toolkit. Addison-Wesley.

    � (Fast) alle in der Studenten-Bibliothek!

    Literatur

  • sit200931 sit200931

    � Einfaches Beispiel

    � Definition eines Metamodelles für ein Transitionssystem mit Markierungen (LTS) in UML

    � Transformation des UML Metamodelles in ein EcoreMetamodell 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

    Demo

    sit200932 sit200932

    � Modellierung Grundlagen

    � Abstraktion

    � Modellierungssprachen

    � MDA

    � Technologien

    � M2M,M2T,T2M

    � UML, EMF, Openarchitectureware, etc.

    � Beispiele

    Zusammenfassung

  • sit200933 sit200933

    � www.swe.informatik.uni-goettingen.de

    Fragen?