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 PAGE
The FALCON project FALCON: Flexible Automated Logistics CONcepts ‘Warehouse of the future’ PAGE
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
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
Object Meta- metamodel Metamodel Model conforms to modeled by conforms to M3M3 M2M2 M0M0 M1M1 Controller Brewer SelectBlend SelectQuantity MakeCoffee(Recipe, int) Lifeline Name Lifeline Name Actor Object Message Name Arguments Message Name Arguments source target *1 *1 Class Name Class Name Association Name Multiplicity Association Name Multiplicity isparentof Attribute Name Type Attribute Name Type 1* 1 * 1 * Model Driven Engineering PAGE
Material Flow Diagram PAGE
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
General Approach Domain analysis Construction of a metamodel Construction of a graphical editor Construction of transformations/code generators PAGE
Domain Analysis Entities Processing Units Transport Units Operators Floors Blocks PAGE
Material Flow Diagram PAGE
Domain Analysis Entities Processing Units Transport Units Operators Floors Blocks PAGE
First metamodel attempt PAGE
Domain Analysis Level of abstraction Hierarchy Connections and connectors Create model element per connection Can be used for e.g. computing metrics PAGE
Metamodel fragments Hierarchy Connectors Connections PAGE
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
Create Metamodel PAGE
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
Implement Metamodel (cnt’d) PAGE
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
Graphical Editor (cnt’d) Created a (basic) graphical editor for the metamodel we saw a few slides back PAGE
Transformations and generators Used to actually do something with the created models PAGE Meta- metamodel Metamodel Model Object conforms to modeled by conforms to M3M3 M2M2 M0M0 M1M1
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
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
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
Practical Application (1) Transformation + Generator Formalization PAGE
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
Practical Application (2) PAGE
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
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
Final Presentation Tuesday, April 13 th, 10.00h HG 6.29 PAGE