Skip to main content

Modeling and Simulation Through the Metamodeling Perspective: The Case of the Discrete Event System Specification

  • Living reference work entry
  • First Online:
Handbook of Model-Based Systems Engineering

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Similar content being viewed by others

References

  1. D. Gianni, A. D’Ambrogio, and A. Tolk, Eds., Modeling and Simulation-Based Systems Engineering Handbook. Boca Raton, FL, USA: CRC Press, 2015.

    Google Scholar 

  2. J. Holt, and S. Perry, SysML for systems engineering. London, United Kingdom: IET, 2008.

    Book  Google Scholar 

  3. 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.

    Article  Google Scholar 

  4. 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.

  5. 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.

  6. 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.

  7. 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.

    MATH  Google Scholar 

  8. 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.

    Article  Google Scholar 

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. P. Carreira, V. Amaral, and H. Vangheluwe, Eds., Foundations of multi-paradigm modelling for cyber-physical systems. Cham, Switzerland: Springer Nature, 2020.

    Google Scholar 

  16. 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.

  17. 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.

  18. 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.

  19. 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.

    Article  Google Scholar 

  20. B. P. Zeigler, Theory of modeling and simulation, New York, NY, USA: John Wiley & Sons Inc., 1976.

    MATH  Google Scholar 

  21. 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.

  22. 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.

    Article  MATH  Google Scholar 

  23. 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.

    Article  MATH  Google Scholar 

  24. 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.

  25. 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.

  26. 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.

  27. 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.

    Article  Google Scholar 

  28. 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.

    Article  Google Scholar 

  29. 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.

    Article  Google Scholar 

  30. 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.

    Google Scholar 

  31. H. S. Sarjoughian and B. Zeigler, “Devsjava: Basis for a devs-based collaborative m&s environment,” Simul. Series, vol. 30, pp. 29–36, 1998.

    Google Scholar 

  32. MS4 Systems. MS4 me simulator. (3.0). Accessed: June 27, 2022. [Online]. Available: http://ms4systems.com/pages/ms4me.php

  33. 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.

    Article  MATH  Google Scholar 

  34. C. Ruiz Martin, G. Wainer. Cadmiun. Accessed: June 27, 2022. [Online]. Available: https://github.com/SimulationEverywhere/cadmium

  35. 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.

    Article  Google Scholar 

  36. 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.

  37. 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.

  38. 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.

    Article  Google Scholar 

  39. 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.

    Google Scholar 

  40. 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.

  41. L. Touraille, “Application of Model-driven Engineering and Metaprogramming to DEVS Modeling & Simulation”. Ph.D. dissertation, Université d’Auvergne, France, 2013.

    Google Scholar 

  42. 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.

    Google Scholar 

  43. M. J. Blas, and S. Gonnet, “Metamodel-based formalization of DEVS atomic models,” Simulation, 2021, https://doi.org/10.1177/00375497211045628.

    Book  Google Scholar 

  44. The Eclipse Foundation. Eclipse modeling project. Eclipse modeling framework. Accessed: June 26, 2022. [Online]. Available: https://www.eclipse.org/modeling/emf/

  45. The Eclipse Foundation. Eclipse. Accessed: June 26, 2022. [Online]. Available: https://www.eclipse.org/

  46. 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.

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to María J. Blas .

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

Reprints and permissions

Copyright information

© 2023 Springer Nature Switzerland AG

About this entry

Check for updates. Verify currency and authenticity via CrossMark

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

Publish with us

Policies and ethics