Abstract
The Discrete Event System Specification (DEVS) is a modeling formalism that supports a general methodology for describing discrete event systems with the capability to represent both continuous and discrete systems due to its system theoretic basis. This chapter addresses the use of metamodeling and the role of related technologies in the Modeling and Simulation (M&S) field, mainly devoted to implementing DEVS models. The main aim is to answer the following questions: What is the significance of model-based engineering in the M&S field? Can a computational representation of DEVS defined following the principles of metamodeling improve the modeling task? How can DEVS models obtained through metamodeling integrate with simulators? This chapter discusses using metamodels as the foundation to define formal DEVS models from a computational point of view. A metamodel-based computational representation of DEVS formalism is described. From such a computational representation, how current technologies can be used to support DEVS metamodel in existing M&S software tools is discussed. The chapter shows how concrete DEVS models are used in existing M&S software tools to get executable simulation models through metamodel instantiation. Illustrative examples show how the DEVS metamodel improves the simulation model specification. The chapter concludes with a discussion of the current state of the metamodeling approach used in the M&S field and the remaining problems that need to be addressed in the future.
Similar content being viewed by others
References
D. Gianni, A. D’Ambrogio, and A. Tolk, Eds., Modeling and Simulation-Based Systems Engineering Handbook. Boca Raton, FL, USA: CRC Press, 2015.
J. Holt, and S. Perry, SysML for systems engineering. London, United Kingdom: IET, 2008.
S. Wolny, A. Mazak, C. Carpella, V. Geist, and M. Wimmer, “Thirteen years of SysML: a systematic mapping study,” Softw. and Syst. Model., vol. 19, pp. 111–169, 2020, https://doi.org/10.1007/s10270-019-00735-y.
G. Kapos, V. Dalakas, A. Tsadimas, M. Nikolaidou and, D. Anagnostopoulos, “Model-based system engineering using SysML: Deriving executable simulation models with QVT,” in Proc. 2014 IEEE Int. Syst. Conf., 2014, pp. 531–538, https://doi.org/10.1109/SysCon.2014.6819307.
A. Gargantini, E. Riccobene, and P. Scandurra, “A metamodel-based language and a simulation engine for abstract state machines,” J. Univers. Comput. Sci., vol. 14., no. 12, pp. 1949–1983, 2008, https://doi.org/10.3217/jucs-014-12-1949.
M. Li, F. Yang., R. Uzsoy, and J. Xu, “A metamodel-based Monte Carlo simulation approach for responsive production planning of manufacturing systems,” J. of Manuf. Syst., vol. 38, pp. 114–133, 2016, https://doi.org/10.1016/j.jmsy.2015.11.004.
B. P. Zeigler, A. Muzy, and E. Kofman, Theory of modeling and simulation: discrete event & iterative system computational foundations, 3rd ed. London: Academic Press, 2018.
A. Muzy, B. P. Zeigler, and F. Grammont, “Iterative specification as a modeling and simulation formalism for I/O general systems,” IEEE Syst. J., vol. 12, no. 3, pp. 2982–2993, Sept. 2018, https://doi.org/10.1109/JSYST.2017.2728861.
Y. J. Kim, J. Y. Yang, Y. M. Kim, J. Lee, and C. Choi, “Modeling Behavior of Mobile Application Using Discrete Event System Formalism,” in Proc. 2016 Asian Simul. Conf., 2016, pp. 40–48, https://doi.org/10.1007/978-981-10-2158-9_4.
G. Wainer, M. Etemad, and B. Kazi, “Modeling Coordinated Multipoint with a dynamic Coordination Station in LTE-A mobile networks,” in Proc. 2017 IEEE Int. Conf. on Netw., Sens. and Control, 2017, pp. 807–812, https://doi.org/10.1109/ICNSC.2017.8000194.
A. Uhrmacher, D. Degenring, B. Zeigler, “MultiLevel discrete event modeling in systems biology,” Trans. Comput. Syst. Biol. I, pp. 66–89, 2004, https://doi.org/10.1007/978-3-540-32126-2_6.
A. Uhrmacher, R. Ewald, M. John, C. Maus, M. Jeschke, and S. Biermann, “Combining micro and macro-modeling in DEVS for computational biology,” in Proc. 2007 Winter Simul. Conf., 2007, pp. 871–880, https://doi.org/10.1109/WSC.2007.4419683.
S. Gholami, H. Sarjoughian, G. Godding, D. Peters, and V. Chang, “Developing Composed Simulation and Optimization Models using Actual Supply-Demand Network Datasets,” in Proc. 2014 Winter Simul. Conf., 2014, pp. 2510–2521, https://doi.org/10.1109/WSC.2014.7020095.
M. Moallemi, G. Wainer, A. Awad, and D.A. Tall, “Application of RTDEVS in Military,” in Proc. 2010 Spring Simul. Multiconf., 2010, pp. 29–36, https://doi.org/10.1145/1878537.1878568.
P. Carreira, V. Amaral, and H. Vangheluwe, Eds., Foundations of multi-paradigm modelling for cyber-physical systems. Cham, Switzerland: Springer Nature, 2020.
H. S. Sarjoughian, A. Alshareef, and Y. Lei. “Behavioral DEVS metamodeling,” in Proc. 2015 Winter Simul. Conf., 2015, pp. 2788–2799, https://doi.org/10.1109/WSC.2015.7408384.
T. Ören, S. Mittal, U. Durak. “A Shift from Model-Based to Simulation-Based Paradigm: Timeliness and Usefulness for Many Disciplines,” Int. J. Comput. Softw. Eng., vol. 3, 2018, Art no. 126, https://doi.org/10.15344/2456-4451/2018/126.
M. J. Blas, S. Gonnet, and B. P. Zeigler, “Towards a Universal Representation of DEVS: A Metamodel-Based Definition of DEVS Formal Specification,” in 2021 Annu. Model. and Simul. Conf., 2021, https://doi.org/10.23919/ANNSIM52504.2021.9552162.
D. A. Hollmann, M. Cristia, and C. Frydman, “CML-DEVS: A specification language for DEVS conceptual models,” Simul. Model. Pract. Theory, vol. 57, pp. 100–117, Sept. 2015, https://doi.org/10.1016/j.simpat.2015.06.007.
B. P. Zeigler, Theory of modeling and simulation, New York, NY, USA: John Wiley & Sons Inc., 1976.
Y. Van Tendeloo and H. Vangheluwe, “Classic DEVS modelling and simulation,” in Proc. 2017 Winter Simul. Conf., 2017, pp. 644–658, https://doi.org/10.1109/WSC.2017.8247822.
G. Wainer and N. Giambiasi, “N-dimensional Cell-DEVS models,” Discret. Event Dyn. Syst., vol. 12, pp. 135–157, 2002, https://doi.org/10.1023/A:1014536803451.
F. J. Barros, “Modeling formalisms for dynamic structure systems,” ACM Trans. Model. Comput. Simul., vol. 7, no. 4, pp. 501–515, 1997, https://doi.org/10.1145/268403.268423.
A. C. Chow and B. Zeigler, “Parallel DEVS: a Parallel, Hierarchical, Modular Modeling Formalism,” in Proc. 1994 Winter Simul. Conf., 1994, pp. 716–722, https://doi.org/10.1109/WSC.1994.717419.
J. S. Hong, H. S. Song, T. G. Kim, and K. H. Park, “A real-time discrete event system specification formalism for seamless real-time software development,” Discret. Event Dyn. Syst., vol. 7, pp. 355–375, 1997, https://doi.org/10.1023/A:1008262409521.
M. J. Blas, S. Gonnet, and H. Leone, “Routing Structure Over Discrete Event System Specification: A DEVS Adaptation To Develop Smart Routing In Simulation Models,” in Proc. 2017 Winter Simul. Conf., 2017, pp. 774–785, https://doi.org/10.1109/WSC.2017.8247831.
B. P. Zeigler and J. J. Nutaro, “Towards a framework for more robust validation and verification of simulation models for systems of systems,” The J. of Defense Model. and Simul., vol. 13, no. 1, pp. 3–16, 2016, https://doi.org/10.1177/1548512914568657.
X. Hu, B. P. Zeigler, and S. Mittal, “Variable structure in DEVS component-based modeling and simulation,” Simulation, vol. 81, pp. 91–102, 2005, https://doi.org/10.1177/0037549705052227.
Y. Van Tendeloo and H. Vangheluwe, “An evaluation of DEVS simulation tools,” Simulation, vol. 93, pp. 103–121, 2017, https://doi.org/10.1177/0037549716678330.
Y. Van Tendeloo and H. Vangheluwe, “The modular architecture of the Python(P)DEVS simulation kernel,” ,” in Proc. 2014 Spring Simul. Multiconf., 2014, pp. 387–392.
H. S. Sarjoughian and B. Zeigler, “Devsjava: Basis for a devs-based collaborative m&s environment,” Simul. Series, vol. 30, pp. 29–36, 1998.
MS4 Systems. MS4 me simulator. (3.0). Accessed: June 27, 2022. [Online]. Available: http://ms4systems.com/pages/ms4me.php
G. Wainer, “CD++: a toolkit to develop DEVS models,”, Softw.: Pract. and Experience, vol. 32, no. 13, pp. 1261–1306, Nov 2002, https://doi.org/10.1002/spe.482.
C. Ruiz Martin, G. Wainer. Cadmiun. Accessed: June 27, 2022. [Online]. Available: https://github.com/SimulationEverywhere/cadmium
M. Cristia, D. A. Hollmann, and C. Frydman, “A multi-target compiler for CML-DEVS,” Simulation, vol 95, pp. 11–29, 2019, https://doi.org/10.1177/0037549718765080.
M. Nikolaidou, V. Dalakas, L. Mitsi, G. Kapos, and D. Anagnostopoulos, “A SysML Profile for Classical DEVS Simulators,” in 3rd Int. Conf. on Softw. Eng. Adv., 2008, pp. 445–450, https://doi.org/10.1109/ICSEA.2008.24.
E. Seidewitz, “What models mean,” IEEE Softw., vol. 20, no. 5, pp. 26–32, Sept.–Oct. 2003, https://doi.org/10.1109/MS.2003.1231147.
S. Robinson, “Conceptual Modelling for Simulation: Progress and Grand Challenges,” J. of Simul., vol. 14, no. 1, pp. 1–20, 2020, https://doi.org/10.1080/17477778.2019.1604466.
J. L. Risco Martin, S. Mittal, M. A. López-Peña, and J. M. de la Cruz, “A W3C XML schema for DEVS scenarios,” in Proc. 2007 Spring Simul. Multiconf., San Diego, CA, USA, pp. 279–286, 2007.
M. Mernik, J. Heering, and A. M. Sloane, “When and how to develop domain-specific languages,” ACM Comput. Surv., vol. 37, no. 4, pp. 316–344, Dec. 2005, https://doi.org/10.1145/1118890.1118892.
L. Touraille, “Application of Model-driven Engineering and Metaprogramming to DEVS Modeling & Simulation”. Ph.D. dissertation, Université d’Auvergne, France, 2013.
Y. Hu, J. Xiao, H. Zhao, and G. Rong, “DEVSMO: An Ontology of DEVS Model Representation for Model Reuse,” in Proc. 2013 Winter Simul. Conf., 2013, pp. 4002–4003.
M. J. Blas, and S. Gonnet, “Metamodel-based formalization of DEVS atomic models,” Simulation, 2021, https://doi.org/10.1177/00375497211045628.
The Eclipse Foundation. Eclipse modeling project. Eclipse modeling framework. Accessed: June 26, 2022. [Online]. Available: https://www.eclipse.org/modeling/emf/
The Eclipse Foundation. Eclipse. Accessed: June 26, 2022. [Online]. Available: https://www.eclipse.org/
G. Wainer, K. Al-Zoubi, and D. R. C. Hill, “An introduction to DEVS standardization,” in Discrete-event modeling and simulation: theory and applications, Boca Raton, FL: CRC Press, 2010, pp. 393–425.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Section Editor information
Appendix
Appendix
<?xml version="1.0" encoding="UTF-8"?> <model:AtomicModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:model="http://www.devs.formalization.atomic.org/model" name="SWITCH"> <structure> <InPorts name="in" x="//@structure/@input/@definition.0"/> <InPorts name="in1" x="//@structure/@input/@definition.1"/> <OutPorts name="out" y="//@structure/@output/@definition.0"/> <OutPorts name="out1" y="//@structure/@output/@definition.1"/> <input> <definition p="//@structure/@InPorts.0"> <v name="x_in" definition="NS01" /> </definition> <definition p="//@structure/@InPorts.1"> <v name="x_in1" definition="NS01" /> </definition> </input> <output> <definition p="//@structure/@OutPorts.0"> <v name="y_out" definition="NS01" /> </definition> <definition p="//@structure/@OutPorts.1"> <v name="y_out1" definition="NS01" /> </definition> </output> <state> <variable name="phase" definition="NSPA" /> <variable name="sigma" definition="//@setsAndStructures.8" /> <variable name="inport" definition="NSIP" /> <variable name="store" definition="NS01" /> <variable name="Sw" definition="//@setsAndStructures.10" /> </state> <parameters name="processing_time"> <definition xsi:type="model:RealNumber" value="15.85"/> </parameters> </structure> <setsAndStructures xsi:type="model:IntegerNumbersSet" /> <setsAndStructures xsi:type="model:IntegerNumbersSet" union="//@emptyset"/> <setsAndStructures xsi:type="model:NaturalNumbersSet" /> <setsAndStructures xsi:type="model:NaturalNumbersSet" union="//@emptyset"/> <setsAndStructures xsi:type="model:NaturalNumbersSet" includingZero="true"/> <setsAndStructures xsi:type="model:NaturalNumbersSet" union="//@emptyset" includingZero="true"/> <setsAndStructures xsi:type="model:RealNumbersSet" /> <setsAndStructures xsi:type="model:RealNumbersSet" union="//@emptyset"/> <setsAndStructures xsi:type="model:RealNumbersSet" includingZero="true"/> <setsAndStructures xsi:type="model:RealNumbersSet" union="//@emptyset" includingZero="true"/> <setsAndStructures xsi:type="model:BooleanAlgebraSet" /> <setsAndStructures xsi:type="model:BooleanAlgebraSet" union="//@emptyset"/> <setsAndStructures xsi:type="model:NewSet" name="NS01" type="MATH_INTEGER"> <elements xsi:type="model:IntegerNumber" value="0"/> <elements xsi:type="model:IntegerNumber" value="1"/> </setsAndStructures> <setsAndStructures xsi:type="model:NewSet" name="NSPA" type="STRING"> <elements xsi:type="model:StringElement" value="passive"/> <elements xsi:type="model:StringElement" value="active"/> </setsAndStructures> <setsAndStructures xsi:type="model:NewSet" name="NSIP" type="STRING"> <elements xsi:type="model:StringElement" value="in"/> <elements xsi:type="model:StringElement" value="in1"/> </setsAndStructures> <emptyset /> <behavior> <delExt otherwiseConditionAlreadySet="true"> <specifications> <condition xsi:type="model:If" conditionAsText="if (phase == “passive” and (p==in or p==in1))"/> <stateVariable xsi:type="model:ValueFromSet" variable="//@structure/@state/@variable.0" value="active"/> <stateVariable xsi:type="model:ParameterName" variable="//@structure/@state/@variable.1" name="processing_time"/> <stateVariable xsi:type="model:InputPortName" variable="//@structure/@state/@variable.2"/> <stateVariable xsi:type="model:InputPortValue" variable="//@structure/@state/@variable.3"/> <stateVariable xsi:type="model:NotLogicalOperation" variable="//@structure/@state/@variable.4"> <operand xsi:type="model:PreviousStateVariable" name="Sw"/> </stateVariable> </specifications> <specifications> <condition xsi:type="model:Otherwise" conditionAsText="otherwise"/> <stateVariable xsi:type="model:PreviousStateVariable" variable="//@structure/@state/@variable.0" name="phase"/> <stateVariable xsi:type="model:ArithmeticOperation" variable="//@structure/@state/@variable.1" arithmeticOperation="-"> <firstOperand xsi:type="model:PreviousStateVariable" name="sigma"/> <secondOperand xsi:type="model:ElapsedTimeVariable"/> </stateVariable> <stateVariable xsi:type="model:PreviousStateVariable" variable="//@structure/@state/@variable.2" name="inport"/> <stateVariable xsi:type="model:PreviousStateVariable" variable="//@structure/@state/@variable.3" name="store"/> <stateVariable xsi:type="model:PreviousStateVariable" variable="//@structure/@state/@variable.4" name="Sw"/> </specifications> </delExt> <delInt> <specifications> <stateVariable xsi:type="model:ValueFromSet" variable="//@structure/@state/@variable.0" value="passive"/> <stateVariable xsi:type="model:InfinityParameter" variable="//@structure/@state/@variable.1" symbol="∞"/> <stateVariable xsi:type="model:PreviousStateVariable" variable="//@structure/@state/@variable.2" name="inport"/> <stateVariable xsi:type="model:PreviousStateVariable" variable="//@structure/@state/@variable.3" name="store"/> <stateVariable xsi:type="model:PreviousStateVariable" variable="//@structure/@state/@variable.4" name="Sw"/> </specifications> </delInt> <lambda> <specifications> <condition xsi:type="model:If" conditionAsText="if (phase == “active” and Sw==true and inport==in))"/> <value xsi:type="model:PreviousStateVariable" name="store"/> <port name="out"/> </specifications> <specifications> <condition xsi:type="model:If" conditionAsText="if (phase == “active” and Sw==true and inport==in1))"/> <value xsi:type="model:PreviousStateVariable" name="store"/> <port name="out1"/> </specifications> <specifications"> <condition xsi:type="model:If" conditionAsText="if (phase == “active” and Sw==false and inport==in))"/> <value xsi:type="model:PreviousStateVariable" name="store"/> <port name="out1"/> </specifications> <specifications> <condition xsi:type="model:If" conditionAsText="if (phase == “active” and Sw==false and inport==in1))"/> <value xsi:type="model:PreviousStateVariable" name="store"/> <port name="out"/> </specifications> </lambda> <ta> <specifications> <value xsi:type="model:PreviousStateVariable" name="sigma"/> </specifications> </ta> </behavior> </model:AtomicModel>
Rights and permissions
Copyright information
© 2023 Springer Nature Switzerland AG
About this entry
Cite this entry
Blas, M.J., Gonnet, S. (2023). Modeling and Simulation Through the Metamodeling Perspective: The Case of the Discrete Event System Specification. In: Madni, A.M., Augustine, N., Sievers, M. (eds) Handbook of Model-Based Systems Engineering. Springer, Cham. https://doi.org/10.1007/978-3-030-27486-3_86-1
Download citation
DOI: https://doi.org/10.1007/978-3-030-27486-3_86-1
Received:
Accepted:
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-27486-3
Online ISBN: 978-3-030-27486-3
eBook Packages: Springer Reference Intelligent Technologies and RoboticsReference Module Computer Science and Engineering