Formalizing Material Flow Diagrams How can an MDE approach be used to improve the design process of...

Preview:

Citation preview

Formalizing Material Flow DiagramsHow can an MDE approach be used to improve the design process of material handling systems?

Robert-Jan Bijl

Contents

• The FALCON Project• Problem Statement• Model Driven Engineering• Incorporating MFDs in MDE• Stepwise metamodel design• Tools and Transformations for Formal MFDs• Conclusion

PAGE 219-04-23

The FALCON project

• FALCON: Flexible Automated Logistics CONcepts

• ‘Warehouse of the future’

PAGE 319-04-23

Problem Statement

• How can an MDE approach be used to formalize Material Flow Diagrams, such that their role in the design process of material handling systems can be expanded?

PAGE 419-04-23

Model Driven Engineering

• Software Engineering discipline in which models play a central role throughout the entire development process.

• Domain Specific Languages• Used to describe the structure of the models

• Transformation Engines• Used for synthesizing the models

PAGE 519-04-23

Object

Meta-metamodel

Metamodel

Model

conforms to

conforms to

modeled by

conforms to

M3

M2

M0

M1

ControllerController BrewerBrewer

SelectBlend

SelectQuantity

MakeCoffee(Recipe, int)

Lifeline

Name

Lifeline

Name

ActorActor ObjectObject

Message

NameArguments

Message

NameArguments

source

target

*1

*1

Class

Name

Class

Name

Association

NameMultiplicity

Association

NameMultiplicity

isparentof

Attribute

NameType

Attribute

NameType

1 *

1

*

1

*

Model Driven Engineering

PAGE 619-04-23

Material Flow Diagram

PAGE 719-04-23

Problem Statement / Project Goals

• How can an MDE approach be used to formalize Material Flow Diagrams, such that their role in the design process of material handling systems can be expanded?

• Get insight in the involved processes• design of metamodels

• evolution of metamodels (when already in use)

• creation/availability of tooling

PAGE 819-04-23

General Approach

• Domain analysis

• Construction of a metamodel

• Construction of a graphical editor

• Construction of transformations/code generators

PAGE 919-04-23

Domain Analysis

• Entities• Processing Units

• Transport Units

• Operators

• Floors

• Blocks

PAGE 1019-04-23

Material Flow Diagram

PAGE 1119-04-23

Domain Analysis

• Entities• Processing Units

• Transport Units

• Operators

• Floors

• Blocks

PAGE 1219-04-23

First metamodel attempt

PAGE 1319-04-23

Domain Analysis

• Level of abstraction• Hierarchy• Connections and connectors

• Create model element per connection

• Can be used for e.g. computing metrics

PAGE 1419-04-23

Metamodel fragments

• Hierarchy• Connectors• Connections

PAGE 1519-04-23

Libraries

• Addressing an even more specific domain• One library per sub-domain

• Keeps libraries small and clear

• New concepts• Abstract Metamodel

• Libraries

• Concrete Metamodel

PAGE 1619-04-23

Create Metamodel

PAGE 1719-04-23

Implement Metamodel

• We use the Eclipse Modeling Framework• Eclipse based framework for Model Driven Engineering

• Consists of several plug-ins, to• create (meta)models

• perform Model-to-Model transformations (ATL)

• do code generation (Xpand)

• create graphical editor (GMF)

PAGE 1819-04-23

Implement Metamodel (cnt’d)

PAGE 1919-04-23

Create Graphical Editor

• Compared a few available tools

• Based on five metrics

• Results:

• Decided to go with GMF, best compatibility with what we already have

PAGE 2019-04-23

Graphical Editor (cnt’d)

• Created a (basic) graphical editor for the metamodel we saw a few slides back

PAGE 2119-04-23

Transformations and generators

• Used to actually do something with the created models

PAGE 2219-04-23

Meta-metamodel

Metamodel

Model

Object

conforms to

conforms to

modeled by

conforms to

M3

M2

M0

M1

Transformations

• Transforming a model conforming to metamodel A to a model conforming the metamodel B

• Atlas Transformation Language, ATL

rule createRoot{

from

a : MFDMeta!MFD

to

p : PlannerMeta!Planner(

PId <- 'P' + a.Mid,

PName <- 'Planner' + a.MName

)

}

PAGE 2319-04-23

Code Generation

• From a formal model we can generate all sorts of artifacts, e.g. source code

• Using ‘Xpand’, a statically-typed template language, part of the Eclipse M2T-project«DEFINE main FOR Planner»

«LET removeSpace(PName) AS name»

«FILE name + “.dot”»

digraph «name» {

«EXPAND createNode FOR firstNode()»

«EXPAND createNodeLinks FOR firstNode()»

}

«ENDFILE»

«ENDLET»

«ENDDEFINE»

PAGE 2419-04-23

Practical Application (1)

• Generation of a framework for High-Level Controller software• Using the hierarchy structure of the MFD

• Unfortunately, no implementation available• Have to settle for description of the structure

• Overview images

• Framework for source code

PAGE 2519-04-23

Practical Application (1)

Transformation +Generator

Formalization

PAGE 2619-04-23

Practical Application (2)

• Warehouse Simulator• Created by Jacques Verriet of ESI

• Simulates throughput, latency

• Generate input, based on an MFD-model• Not a 100% mapping

• Nice example of what might be possible

• Combination of Java and Xpand• Read editor files to create an layout model

• Traverse model to generate simulator input

PAGE 2719-04-23

Practical Application (2)

PAGE 2819-04-23

Conclusions

• Managed to formalize MFDs though an MDE approach

• Introduced a Library structure to distinguish between subdomains

• Have working tools to create and edit MFDs• Connected to running projects within VI

PAGE 2919-04-23

Future Work

• Automatic generation of the graphical editor• Automatic generation of a test suite• Combining the topology provided by an MFD with

(known) behavior of the individual parts, to create one big behavioral model for a transport system

PAGE 3019-04-23

Final Presentation

• Tuesday, April 13th, 10.00h• HG 6.29

PAGE 3119-04-23