Upload
gyles-newman
View
214
Download
0
Tags:
Embed Size (px)
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