$30 off During Our Annual Pro Sale. View Details »

CSE460 Lecture 34

CSE460 Lecture 34

Software Analysis and Design
Model-Driven Development
(202011)

Javier Gonzalez-Sanchez
PRO

August 03, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSE 460
    Software Design
    Lecture 34: Model-Driven Development
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 2
    jgs
    Definition
    Model-driven software development (MDD)
    § Write and implement software quickly, effectively and at minimum cost.
    § The approach focuses on the construction of a software model.
    § The model (text or graphic) specifies how the software system should work
    before the code is generated.
    § The software is created automatically (translate the model to code)
    § Tested and then deployed.

    View Slide

  3. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 3
    jgs
    MDD Development Process
    http://www.theenterprisearchitect.eu/blog/2009/08/05/a-metaphor-for-model-driven-engineering/

    View Slide

  4. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 4
    jgs
    MDD Development Process

    View Slide

  5. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 5
    jgs
    MDD Development Process

    View Slide

  6. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 6
    jgs
    MDD Development Process

    View Slide

  7. jgs
    0. The Tool: Eclipse Modeling Framework

    View Slide

  8. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 9
    jgs
    Eclipse
    § Eclipse is a universal platform for integrating development tools
    § Architecture based on plug-ins
    § SWT (Standard Widget Toolkit) is a generic graphics and GUI widget set
    § JFace is set of UI frameworks for common UI tasks
    § Workbench and Workspace are core – Editors, Views, and Perspectives

    View Slide

  9. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 10
    jgs
    Eclipse Modeling Framework
    2. Model specification
    (it is stored as XMI
    but defined as text or
    diagram). A subset of
    UML class diagrams
    semantics
    1. EMF provides tools
    and runtime
    environment.
    3. Translate to Java
    Classes and Interfaces

    View Slide

  10. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 11
    jgs
    Download Eclipse Modeling Tools

    View Slide

  11. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 12
    jgs
    Eclipse Modeling Tools

    View Slide

  12. jgs
    1. Define the Model

    View Slide

  13. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 14
    jgs
    Model
    UML Class Diagram
    Description

    View Slide

  14. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 15
    jgs
    Step 1 :: Project
    § Create an empty modeling project in your workspace
    File → New → Other… and choose Empty EMF Project
    § Click Next, enter a name for the project, e.g., org.eclipse.example.mymodel, and hit
    Finish

    View Slide

  15. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 16
    jgs
    Step 2 :: Model
    § Please right click the model folder in your new modeling project then
    New → Other… → Ecore Model, then click Next and give the ecore file the name
    myModel.ecore.
    § It will open in the default Ecore editor, which allows the definition of Ecore models in
    a tree-based view

    View Slide

  16. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 17
    jgs
    Step 2 :: Model :: Package
    § Give the package of your new model a name and an URI. This will be done in the
    properties view. The URI is used to identify the model later.
    Name the package myModel,
    Set the Ns Prefix to org.eclipse.example.myModel
    and the Ns URI to https://org/eclipse/example/myModel.

    View Slide

  17. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 18
    jgs
    Step 2 :: Model :: Classes and Attributes
    § Define model elements as children of the root package by right clicking on the
    myModel package and on the EClass respectively
    Add EClass as children, New Child → EClass
    Add EAttribute as children, New Child → EAttribute

    View Slide

  18. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 19
    jgs
    Step 2 :: Model :: Relationships
    § EReference between Course and Student, New Child → EReference
    EType of the reference to “Student”
    upper bound to “-1”, the equivalent of “many”.
    set the property Containment to “true”

    View Slide

  19. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 20
    jgs
    Step 2 :: Model :: Relationships
    § EReference between Student and Computer, New Child → EReference
    EType of the reference to “Computer”
    upper bound to “1” (default)
    set the property Containment to “false”
    § Save all

    View Slide

  20. jgs
    To be continued…

    View Slide

  21. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 22
    jgs
    Reference
    § Eclipse Modeling Framework by Frank Budinsky
    § EMF project on eclipse.org

    View Slide

  22. jgs
    CSE 564 Computer Systems Fundamentals
    Javier Gonzalez-Sanchez
    [email protected]
    Fall 2020
    Disclaimer. These slides can only be used as study material for the class CSE564 at ASU. They cannot be distributed or used for another purpose.

    View Slide