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