Formalizing Material Flow Diagrams

Download Report

Transcript Formalizing Material Flow Diagrams

Formalizing Material Flow Diagrams How 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

29-4-2020 PAGE 2

The FALCON project

FALCON: Flexible Automated Logistics CONcepts

‘Warehouse of the future’

29-4-2020 PAGE 3

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?

29-4-2020 PAGE 4

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

29-4-2020 PAGE 5

Model Driven Engineering

conforms to isparentof Controller * Lifeline 1 Name 1 Name Meta Brewer M 3 metamodel 1 * source M 2 1 * Message Association Name Name * Arguments Metamodel Actor Name Type * Attribute conforms to MakeCoffee(Recipe, int) M 1 Object Model modeled by M 0 Object 29-4-2020 PAGE 6

Material Flow Diagram

29-4-2020 PAGE 7

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

29-4-2020 PAGE 8

General Approach

Domain analysis

Construction of a metamodel

Construction of a graphical editor

Construction of transformations/code generators

29-4-2020 PAGE 9

Domain Analysis

• • • • • •

Entities Processing Units Transport Units Operators Floors Blocks

29-4-2020 PAGE 10

Material Flow Diagram

29-4-2020 PAGE 11

Domain Analysis

• • • • • •

Entities Processing Units Transport Units Operators Floors Blocks

29-4-2020 PAGE 12

First metamodel attempt

29-4-2020 PAGE 13

Domain Analysis

• • •

Level of abstraction Hierarchy

• •

Connections and connectors Create model element per connection Can be used for e.g. computing metrics

29-4-2020 PAGE 14

Metamodel fragments

• • •

Hierarchy Connectors Connections

29-4-2020 PAGE 15

Libraries

• • •

Addressing an even more specific domain One library per sub-domain Keeps libraries small and clear

• • • •

New concepts Abstract Metamodel Libraries Concrete Metamodel

29-4-2020 PAGE 16

Create Metamodel

29-4-2020 PAGE 17

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)

29-4-2020 PAGE 18

Implement Metamodel (cnt’d)

29-4-2020 PAGE 19

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

29-4-2020 PAGE 20

Graphical Editor (cnt’d)

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

29-4-2020 PAGE 21

Transformations and generators

Used to actually do something with the created models

conforms to M 3 Meta metamodel conforms to M 2 Metamodel M 1 conforms to Model M 0 modeled by Object 29-4-2020 PAGE 22

Transformations

• •

Transforming a model conforming to metamodel A to a model conforming the metamodel B Atlas Transformation Language, ATL rule

createRoot

{ from

a

: to

MFDMeta!MFD

p

:

PlannerMeta!Planner

(

PId

<-

'P'

+

PName

<-

a.Mid, 'Planner'

+

a.MName

) }

29-4-2020 PAGE 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»

29-4-2020 PAGE 24

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

29-4-2020 PAGE 25

Practical Application (1)

Formalization Transformation + Generator 29-4-2020 PAGE 26

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

29-4-2020 PAGE 27

Practical Application (2)

29-4-2020 PAGE 28

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

29-4-2020 PAGE 29

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

29-4-2020 PAGE 30

Final Presentation

• •

Tuesday, April 13 th , 10.00h

HG 6.29

29-4-2020 PAGE 31