MDA_0507Notes

download MDA_0507Notes

of 26

Transcript of MDA_0507Notes

  • 8/4/2019 MDA_0507Notes

    1/26

    Agent-Oriented Software Engineering Model Transformations

    1

    Example 3: Metamodel for Jack agents

    Example #3: Metamodel for BDI agents.

  • 8/4/2019 MDA_0507Notes

    2/26

    Agent-Oriented Software Engineering Model Transformations

    2

    Partial view of JACK metamodel

    In the design of a multiagent systems (MAS) we can distinguish models thatdescribe the entities at the MAS level and models that describe the internal

    structure and/or the behaviour of individual agents. At the MAS we find conceptslike teams, agents, roles, events, and plans. At the level of individual agents we

    find the same concepts again (note that teams can be viewed as individualagents and vice versa), where events and plans are described in much moredetail, and additional concepts like capabilities and belief data. The figuredisplays the metamodel for BDI agents in JDE when the system is used in themore general team mode. Teams are formed by groups of agents but may alsoconsist of only a single agent. The metamodel explains how the basic conceptsrelate to each other.

  • 8/4/2019 MDA_0507Notes

    3/26

    Agent-Oriented Software Engineering Model Transformations

    3

    Foundations of model mappings andtransformations

    Foundations of model mappings and transformations.

  • 8/4/2019 MDA_0507Notes

    4/26

    Agent-Oriented Software Engineering Model Transformations

    4

    Model mapping & transformation

    Definition: A model transformation is a mapping of a setof models onto another set of models or ontothemselves, where a mapping defines correspondencesbetween elements in the source and target metamodels.

    Correspondence of elements can be

    1-to-1, n-to-1, 1-to-n or n-to-n

    Mapping is performed at design time

    Mapping is defined with models one meta-level higherthan the input and output of the transformation

    Mapping describes the rules used for the transformation

    Transformation is used at run-time

    Mapping is performed by defining relations between two models. The

    relations can be 1-to-1, n-to-1, 1-to-n or n-to-n. Mapping is performed in

    design time.

  • 8/4/2019 MDA_0507Notes

    5/26

    Agent-Oriented Software Engineering Model Transformations

    5

    Mapping function

    Mb: Model of b

    f : Mapping function

    Ma: Model of a

    MMb: Metamodel of b

    MMa: Metamodel of a

    Mb f (MMa, MMb, Ma)

  • 8/4/2019 MDA_0507Notes

    6/26

    Agent-Oriented Software Engineering Model Transformations

    6

    Mapping and transformation

    SourceMetamodel

    InputModel

    OutputModel

    TargetMetamodel

    Mapping

    Transformation

    based on

    This figure illustrates the mapping as we have already explained.

  • 8/4/2019 MDA_0507Notes

    7/26

    Agent-Oriented Software Engineering Model Transformations

    7

    Mappings on different abstraction levels

    PSM1metamodel

    PSM2metamodel

    PIM2metamodel

    PIM1metamodel

    HorizontalMapping

    Horizontal

    Mapping

    Vertical Mapping Vertical Mapping

    HighAbstraction

    LowAbstraction

    We can map between models that are on the same abstraction level

    illustrated with horizontal mapping, or we can map between abstraction

    levels illustrated with vertical mapping in the figure.

  • 8/4/2019 MDA_0507Notes

    8/26

    Agent-Oriented Software Engineering Model Transformations

    8

    Model transformation technologies andexamples

    Model transformation technologies and examples.

  • 8/4/2019 MDA_0507Notes

    9/26

    Agent-Oriented Software Engineering Model Transformations

    9

    Model transformation with ATL

    Ecore

    Sourcemetamodel

    ATL Targetmetamodel

    Target

    ModelSourcemodel

    conforms to conforms toconforms to

    conforms to

    conforms to

    conforms to

    is transformed into

    Sourcemodel2targetmodel.atl

    Transformation using Atlas Transformation Language

  • 8/4/2019 MDA_0507Notes

    10/26

    Agent-Oriented Software Engineering Model Transformations

    10

    Example 1: UML to Relational DatabaseManagement Systems (RDBMS)

    Example #3: Metamodel for BDI agents.

  • 8/4/2019 MDA_0507Notes

    11/26

    Agent-Oriented Software Engineering Model Transformations

    11

    UML Metamodel

    PIM

    PIM

    Symbols

    Metamodel

    Concept

    Relationship

    Correspondence

    UML to RDBMS

    RDBMS Metamodel

    We will now look into the agent metamodel.

  • 8/4/2019 MDA_0507Notes

    12/26

    Agent-Oriented Software Engineering Model Transformations

    12

    Parts of UML metamodel

    Let us go through an example where we want to transform a UML model

    to a Relational database management system

    . The figure shows parts of the UML metamodel that you should alreadybe familiar with.

  • 8/4/2019 MDA_0507Notes

    13/26

    Agent-Oriented Software Engineering Model Transformations

    13

    Simple RDBMS metamodel

    This figure shows a simple metamodel for RDBMS. It defines the most

    important constructs for relational databases such as table, column, key

    and foreign key.

  • 8/4/2019 MDA_0507Notes

    14/26

    Agent-Oriented Software Engineering Model Transformations

    14

    UML to RDBMS

    Ecore

    UMLmetamodel

    ATL

    UML to RDBMS

    RDBMSmetamodel

    RDBMS

    ModelUML

    model

    conforms to conforms toconforms to

    conforms to

    conforms to

    conforms to

    is transformed into

    Transformation using Atlas Transformation Language

  • 8/4/2019 MDA_0507Notes

    15/26

    Agent-Oriented Software Engineering Model Transformations

    15

    ClassModel2DBModel

    ClassModel DBModel

    - name : String - name : String

    - elements: Classifier - tables : Table

    - types : Type

  • 8/4/2019 MDA_0507Notes

    16/26

    Agent-Oriented Software Engineering Model Transformations

    16

    Class2Table

    Class Table

    - name : String - name : String

    - attributes: Attribute - columns : Column

    - key : Column

  • 8/4/2019 MDA_0507Notes

    17/26

    Agent-Oriented Software Engineering Model Transformations

    17

    DataType2Type

    DataType Type

    - name : String - name : String

  • 8/4/2019 MDA_0507Notes

    18/26

    Agent-Oriented Software Engineering Model Transformations

    18

    Attribute2Column

    Attribute Column

    - name : String - name : String

    - owner : Class

    - type : DataType

    - keyOf : Table

    - type : Type- multivalued = Boolean

  • 8/4/2019 MDA_0507Notes

    19/26

    Agent-Oriented Software Engineering Model Transformations

    19

    Input Model

  • 8/4/2019 MDA_0507Notes

    20/26

    Agent-Oriented Software Engineering Model Transformations

    20

    Example 2: PIM4SOA to JackMM

  • 8/4/2019 MDA_0507Notes

    21/26

    Agent-Oriented Software Engineering Model Transformations

    21

    PIM4SOA Metamodel

    PIM

    PSM

    Symbols

    Metamodel

    Concept

    Relationship

    Correspondence

    PIM4SOA to JACK

    Jack Metamodel

    We will now look into the agent metamodel.

  • 8/4/2019 MDA_0507Notes

    22/26

    Agent-Oriented Software Engineering Model Transformations

    22

    Bottom Line

  • 8/4/2019 MDA_0507Notes

    23/26

    Agent-Oriented Software Engineering Model Transformations

    23

    MDD: beyond the buzzword

    Modern model engineering techniques are ready for prime time in

    software engineering They are based on:

    four level architecture (CIM, PIM, PSM, Code)

    meta-metamodel (e.g. MOF, Ecore),

    with transfer and exchange mechanisms

    with transformation mechanisms

    growing collection of specialized metamodels

    Object metamodels (Java, etc.)

    Legacy metamodels (Relational, CWM)

    Enterprise metamodels: Business, Healthcare,Transportation

    Product and process metamodels

    Automatic and semi-automatic generations, from high abstraction to

    specific platforms

  • 8/4/2019 MDA_0507Notes

    24/26

    Agent-Oriented Software Engineering Model Transformations

    24

    Issue: Keeping Perspective

    Modeling does not guarantee good applications

    To model something, you must understand it

    A bad model can still produce a bad application

    MDA is not suited for every type of application

    MDA does not compensate for lack of

    good people

    a good process

  • 8/4/2019 MDA_0507Notes

    25/26

    Agent-Oriented Software Engineering Model Transformations

    25

    Issue: Changing Developers Paradigm

    Developers traditionally view development in code-centricterms Code production = progress

    Code-centric design

    Model-Centric Development Models are focal point of solutions

    Code is a byproduct of development

    Solve design problems at highest possible level

    Model-Centric Design

    Design centers on model Model is source code

    Changes are made at highest possible level

    Validate the code transformations

  • 8/4/2019 MDA_0507Notes

    26/26

    Agent-Oriented Software Engineering Model Transformations

    Conclusion

    MDA is probably not the silver bullet for softwareengineering,

    But:

    There is no reasonable alternative to MDD

    Way to deal with new emerging technologies like Webservices in a smooth way

    Decoupling the business part and the technical part ofinformation systems is a long term trend