Journal of Simulation

, Volume 10, Issue 3, pp 193–206 | Cite as

A review of open source discrete event simulation software for operations research

  • G Dagkakis
  • C Heavey
Original Article


This article reviews the state of the art in Open Source (OS) Discrete Event Simulation (DES) software used for decision support in Operations Research (OR) focusing on the modelling of manufacturing, services, supply chain management and logistics. DES is arguably one of the most popular OR techniques. Commercial-Off-The-Shelf (COTS) DES software has been around for decades and it has considerably helped in the wider adoption and use of DES, providing the user with tools for modelling, debugging and experimentation. However, such tools often have limitations regarding their aspects such as cost, flexibility and reusability and OS DES seems to be a strong alternative in order to fill those gaps. The scope of our review is to present the state of the art in OS DES and identify future areas of research. The paper concludes with the desired features that an OS DES project should have in order to become a notable competitor against COTS equivalents in the OR domain.

discrete event simulation open source operations research 


The research leading to the results presented in this paper has received funding from the European Union Seventh Framework Programme (FP7-2012-NMP-ICT-FoF) under grant agreement n° 314364.


  1. Abdelhabib B and Brahim B (2008). JAPROSIM: A java framework for process interaction discrete event simulation. Journal of Object Technology 7(1): 103–119.CrossRefGoogle Scholar
  2. Allen B et al (2012). Software as a service for data scientists. Communications of the ACM 55(2): 81–88.CrossRefGoogle Scholar
  3. De Alwis B and Sillito J (2009). Why are software projects moving from centralized to decentralized version control systems? In: Proceedings of the ICSE Workshop on Cooperative and Human Aspects on Software Engineering, Vancouver, BC, 17 May.Google Scholar
  4. Amoretti M, Picone M, Zanichelli F and Ferrari G (2013). Simulating mobile and distributed systems with DEUS and ns-3. In: Proceedings of the 2013 International Conference on High Performance Computing and Simulation (HPCS), Helsinki, Finland, pp 107–114.Google Scholar
  5. de Assis Rangel JJ, Peixoto TA, de Oliveira Matias I, Shimoda E, de Oliveira GL and das Dores Cardoso L (2013). Simulation model in a free and open-source software for carbon monoxide emissions analysis. In: Proceedings of Winter Simulation Conference, Washington, DC, 1905–1916.Google Scholar
  6. Azadeh A, Shirkouhi SN and Rezaie K (2009). A robust decision-making methodology for evaluation and selection of simulation software package. The International Journal of Advanced Manufacturing Technology 47(1–4): 381–393.Google Scholar
  7. Bahouth A, Crites S, Matloff N and Williamson T (2007). Revisiting the issue of performance enhancement of discrete event simulation software. In: Proceedings of the 40th Annual Simulation Symposium 26(28): 114–122.Google Scholar
  8. Bajracharya S, Ossher J and Lopes C (2014). Sourcerer: An infrastructure for large-scale collection and analysis of open-source code. Science of Computer Programming 79(SI): 241–259.CrossRefGoogle Scholar
  9. Barr R, Haas ZJ and van Renesse R (2005). JiST: An efficient approach to simulation using virtual machines. Software: Practice and Experience 35(6): 539–576.Google Scholar
  10. Bause F, Buchholz P, Kriege J and Vastag S (2010). A simulation environment for hierarchical process chains based on OMNeT++. Simulation 86(5–6): 291–309.CrossRefGoogle Scholar
  11. Bause F, Buchholz P, Kriege J and Vastag S (2008). Simulating process chain models with OMNeT++. In: Proceedings of the 1st International Conference on Simulation Tools and Techniques for Communications, Networks and Systems & Workshops 19:1–10.Google Scholar
  12. Belattar B and Bourouis A (2014). Yet another java based discrete-event simulation library. Journal of Software 9(1): 82–88.CrossRefGoogle Scholar
  13. Di Bella E, Sillitti A and Succi G (2013). A multivariate classification of open source developers. Information Sciences 221: 72–83.CrossRefGoogle Scholar
  14. Bergero F and Kofman E (2011). PowerDEVS: A tool for hybrid system modeling and real-time simulation. Simulation 87(1–2): 113–132.CrossRefGoogle Scholar
  15. Bischak D and Roberts S (1991). Object-oriented simulation. In: Proceedings of the 23rd Conference on Winter Simulation. IEEE Computer Society: Phoenix, AZ, pp 194–203.Google Scholar
  16. Bloomfield R, Mazhari E, Hawkins J and Son Y (2012). Interoperability of manufacturing applications using the core manufacturing simulation data (CMSD) standard information model. Computers & Industrial Engineering 62(4): 1065–1079.CrossRefGoogle Scholar
  17. Buss A (2002). Simkit: Component based simulation modeling with Simkit. In: Proceedings of the 34th Conference on Winter simulation: exploring new frontiers. Winter Simulation Conference ©2002: San Diego, CA, pp 243–249.Google Scholar
  18. Byrne J, Heavey C and Byrne PJ (2010). A review of web-based simulation and supporting tools. Simulation Modelling Practice and Theory 18(3): 253–276.CrossRefGoogle Scholar
  19. Can B, Beham A and Heavey C (2008). A comparative study of genetic algorithm components in simulation-based optimisation. In: Proceedings of the 40th Conference on Winter Simulation. Winter Simulation Conference ©2008: Miami, FL, pp 1829–1837.Google Scholar
  20. Ceylan A, Günal MM and Bruzzone AG (2012). A new approach to simulation modeling of unit-load warehouses. In: Proceedings of the 2012 Symposium on Emerging Applications of M&S in Industry and Academia Symposium. Society for Computer Simulation International: San Diego, CA, USA.Google Scholar
  21. Dawson B (2002). Game scripting in Python. In: Proceedings of the Game Developers Conference (GDC).Google Scholar
  22. Engelfriet A (2010). Choosing an open source license. Software, IEEE 27(1): 48–49.CrossRefGoogle Scholar
  23. Fangohr H (2004). A comparison of c, matlab, and python as teaching languages in engineering. In: Bubak M, Albada GD van, Sloot PMA and Dongarra JJ (eds). Computational Science – ICCS 2004. Springer Berlin Heidelberg: Kraków, Poland, pp 1210–1217.CrossRefGoogle Scholar
  24. Fitzgerald B (2004). A critical look at open source. Computer 37(7): 92–94.CrossRefGoogle Scholar
  25. Fogel K (2005). Producing Open Source Software: How to Run a Successful Free Software Project. O'Reilly Media, Inc: Sebastopol, CA, USA.Google Scholar
  26. Fujimoto R (1990). Parallel discrete event simulation. Communications of the ACM 33(10): 30–53.CrossRefGoogle Scholar
  27. Garrido JM (2009). Object oriented program correctness with OOSimL. Journal of Computing Sciences in Colleges 25(2): 85–91.Google Scholar
  28. Göbel J, Joschko P, Koors A and Page B (2013). The discrete event simulation framework DESMO-J: Review, comparison to other frameworks and latest development. In: Rekdalsbakken W, Bye RT and Zhang H (eds). ECMS. European Council Modelling & Simulation: Alesund, Norway, pp 100–109.Google Scholar
  29. Grandell L, Peltomäki M, Back RJ and Salakoski T (2006). Why complicate things?: introducing programming in high school using Python. In: Proceedings of the 8th Australasian Conference on Computing Education, Darlinghurst, Australia, Chapter 52: 71–80.Google Scholar
  30. Henderson TR, Lacage M, Riley GF, Dowell C and Kopena JB (2008). Network simulations with the ns-3 simulator. SIGCOMM Demonstration 15: 1–3.Google Scholar
  31. Hlupic V (2000). Simulation software: An operational research society survey of academic and industrial users. In: Proceedings of the 32nd Conference on Winter Simulation. Society for Computer Simulation International: San Diego, CA, USA, pp 1676–1683.Google Scholar
  32. Jadhav AS and Sonar RM (2009). Evaluating and selecting software packages: A review. Journal of Information and Software Technology 51(3): 555–563.CrossRefGoogle Scholar
  33. Kilgore RA (2001). Web 1: Open source simulation modeling language (SML). In: Proceedings of the 33rd conference on Winter simulation. IEEE Computer Society Washington, DC, USA, pp 607–613.Google Scholar
  34. King D and Harrison H (2010). Discrete-event simulation in Java: A practitioner’s experience. In: Proceedings of the 2010 Conference on Grand Challenges in Modeling & Simulation, Society for Modeling & Simulation: International Vista, CA, pp 436–441.Google Scholar
  35. King D and Harrison H (2013). JaamSim open-source simulation software. In: Proceedings of the 2013 Grand Challenges on Modeling and Simulation Conference: 1–6.Google Scholar
  36. Kriege J and Vastag S (2008). ProC/B goes OMNeT++: Efficient simulation of process chains. In: Proceedings of the 14th I/ITG Conference on Measuring, Modelling and Evaluation of Computer and Communication Systems (MMB), Dortmund, Germany, pp 1–3.Google Scholar
  37. Lakhani KR and Von Hippel E (2003). How open source software works : ‘Free’ user-to-user assistance. Research Policy 32(6): 923–943.CrossRefGoogle Scholar
  38. Langlois RN (2002). Modularity in technology and organization. Journal of Economic Behavior & Organization 49(1): 19–37.CrossRefGoogle Scholar
  39. Lavrijsen WT (2012). Optimizing python-based ROOT I/O with PyPy’s tracing just-in-time compiler. Journal of Physics: Conference Series 396(5): 052046.Google Scholar
  40. Lee YTT, Riddick FH and Johansson BJI (2011). Core manufacturing simulation data—A manufacturing simulation integration standard: overview and case studies. International Journal of Computer Integrated Manufacturing 24(8): 689–709.CrossRefGoogle Scholar
  41. Liu X, He Q, Qiu X, Chen B and Huang K (2012). Cloud-based computer simulation: Towards planting existing simulation software into the cloud. Simulation Modelling Practice and Theory 26: 135–150.CrossRefGoogle Scholar
  42. Liu Y and Yang C (2011). OMNeT++ based modeling and simulation of the IEEE 1588 PTP clock. In: 2011 International Conference on Electrical and Control Engineering (ICECE), IEEE: Yichang, China, pp 4602–4605.Google Scholar
  43. Matloff N (2008). Introduction to discrete-event simulation and the simpy language. Dept of Computer Science. University of California at Davis, Davis, CA.Google Scholar
  44. McGinnis L and Ustun V (2009). A simple example of SysML-driven simulation. In: Proceedings of the 2009 Winter Simulation Conference (WSC), Austin, TX, pp 1703–1710.Google Scholar
  45. McGowan D (2005). Legal aspects of free and open source software. In: Feller JJ, Fitzgerald B, Hissam SA, Karim R and Lakhani KR (eds). Perspectives on Free and Open Source Software. MIT Press: Cambridge, MA, chapter 24, pp 361–392.Google Scholar
  46. McLean C and Leong S (2001). The expanding role of simulation in future manufacturing. In: Proceedings of the 33rd Conference on Winter Simulation, IEEE Computer Society: Washington, DC, USA, pp 1478–1486.Google Scholar
  47. Millman KJ and Aivazis M (2011). Python for scientists and engineers. Computing in Science & Engineering 13(2): 9–12.CrossRefGoogle Scholar
  48. Munoz-Gea JP, Malgosa-Sanahuja J, Manzanares-Lopez P, Manzanares-Lopez P, Sanchez-Aarnoutse JC and Martinez-Rojo AM (2009). Simulation of a P2P Application Using OverSim. First International Conference on Advances in Future Internet, IEEE: Athens/Vouliagmeni, Greece, pp 53–60.Google Scholar
  49. Murphy G, Kersten M and Findlater L (2006). How are Java software developers using the Elipse IDE? Software, IEEE 23(4): 76–83.CrossRefGoogle Scholar
  50. Nikoukaran J, Hlupic V and Paul RJ (1999). A hierarchical framework for evaluating simulation software. Simulation Practice and Theory 7(3): 219–231.CrossRefGoogle Scholar
  51. Nikoukaran J and Paul RJ (1999). Software selection for simulation in manufacturing: A review. Simulation Practice and Theory 7(1): 1–14.CrossRefGoogle Scholar
  52. North M et al (2013). Complex adaptive systems modeling with repast simphony. Complex Adaptive Systems Modeling 1(1): 1–26.CrossRefGoogle Scholar
  53. Núñez A, Fernández J, Filgueira R, García F and Carretero J (2012). SIMCAN: A flexible, scalable and expandable simulation platform for modelling and simulating distributed architectures and applications. Simulation Modelling Practice and Theory 20(1): 12–32.CrossRefGoogle Scholar
  54. Odersky M et al (2004). An overview of the Scala programming language. Technical Report IC/2004/64. EPFL: Lausanne, Switzerland.Google Scholar
  55. Oliver M (2013). Introduction to the Scipy Stack—Scientific Computing Tools for Python.Google Scholar
  56. Papakostas N, Efthymiou K, Mourtzis D and Chryssolouris G (2009). Modelling the complexity of manufacturing systems using nonlinear dynamics approaches. CIRP Annals—Manufacturing Technology 58(1): 437–440.CrossRefGoogle Scholar
  57. Paul RJ and Taylor SJE (2002). What use is model reuse: Is there a crook at the end of the rainbow? In: Proceedings of the Winter Simulation Conference, San Diego, Chapter 1: 648–652.Google Scholar
  58. Pedregosa F et al (2011). Scikit-learn: Machine learning in python. The Journal of Machine Learning Research 12: 2825–2830.Google Scholar
  59. Pidd M and Carvalho A (2006). Simulation software: Not the same yesterday, today or forever. Journal of Simulation 1(1): 7–20.CrossRefGoogle Scholar
  60. Raymond E (1999). The cathedral and the bazaar. Knowledge, Technology & Policy 12(3): 23–49.CrossRefGoogle Scholar
  61. Rentsch T (1982). Object oriented programming. ACM SIGPLAN Not 17(9): 51–57.CrossRefGoogle Scholar
  62. Rosário D, Zhao Z, Silva C, Cerqueira E and Braun T (2013). An OMNeT++ Framework to evaluate video transmission in mobile wireless multimedia sensor networks. In: Proceedings of the 6th International ICST Conference on Simulation Tools and Techniques, Cannes, France, pp 277–284.Google Scholar
  63. Sadowski DA and Sturrock DT (2006). Tips for successful practice of simulation. In: Proceedings of 1999 Winter Simulation Conference, Phoenix, AZ, Chapter 1: 60–66.Google Scholar
  64. Sarkar NI, Member S and Halim SA (2011). A review of simulation of telecommunication networks : Simulators , classification , comparison , methodologies , and recommendations. Cyber Journals: Multidisciplinary Journals in Science and Technology-Journal of Selected Areas in Telecommunications (JSAT) 2(3): 10–17.Google Scholar
  65. Schonherr O and Rose O (2009). First steps towards a general SysML model for discrete processes in production systems. In: Proceedings of the 2009 Winter Simulation Conference (WSC), Austin, TX, pp 1711–1718.Google Scholar
  66. Schriber T, Brunner D and Smith J (2012). How discrete-event simulation software works and why it matters. In: Proceedings of the Winter Simulation Conference, Berlin, Germany, pp 1–15.Google Scholar
  67. Smith B (2015). Object-Oriented Programming. In: AdvancED ActionScript 3.0: Design Patterns, Apress: New York City, USA. pp. 1–23.Google Scholar
  68. Smith JS (2003). Survey on the use of simulation for manufacturing system design and operation. Journal of Manufacturing Systems 22(2): 157–171.CrossRefGoogle Scholar
  69. Swain J (2014). Simulation software survey. OR/MS Today 40(5).Google Scholar
  70. Tabba F (2010). Adding concurrency in python using a commercial processor’s hardware transactional memory support. ACM SIGARCH Computer Architecture News 38(5): 12.CrossRefGoogle Scholar
  71. Taylor SJE, Kiss T, Terstyanszky G, Kacsuk P and Fantini N (2014). Cloud computing for simulation in manufacturing and engineering: Introducing the CloudSME simulation platform. In: Proceedings of the 2014 Annual Simulation Symposium, Society for Computer Simulation International: San Diego, CA, USA.Google Scholar
  72. Ueda M (2005). Licenses of open source software and their economic values. In: The 2005 Symposium on Applications and the Internet Workshops, 2005. Saint Workshops, Trento, Italy, pp 381–383.Google Scholar
  73. Valentin EC and Verbraeck A (2005). Requirements for domain specific discrete event simulation environments. In: Proceedings of the 2005 Winter Simulation Conference, Orlando, FL, pp 654–663.Google Scholar
  74. Varga A (1999). Using the OMNeT++ discrete event simulation system in education. IEEE Transactions on Education 42(4): 1–11.CrossRefGoogle Scholar
  75. Varga A (2001). The OMNeT++ discrete event simulation system. In: Proceedings of the European Simulation Multiconference (ESM 2001), Prague - Czech Republic, pp 9.Google Scholar
  76. Varga A and Hornig R (2008). An overview of the OMNeT++ simulation environment. In: Proceedings of the 1st International Conference on Simulation Tools and Techniques for Communications, Networks and Systems & Workshops, ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering: Brussels, Belgium.Google Scholar
  77. Weber S (2004). The Success of Open Source. Vol. 368. Harvard University Press: Cambridge, MA.Google Scholar
  78. Weingartner E, Lehn VH and Wehrle K (2009). A performance comparison of recent network simulators. In: IEEE International Conference on Communications. ICC '09, Dresden, Germany, pp 1–5.Google Scholar
  79. Wiedemann T (2002). Next generation simulation environments founded on open source software and XML-based standard interfaces. In: Proceedings of the Winter Simulation Conference, San Diego, CA, Chapter 1: 623–628.Google Scholar
  80. Wiedemann T (2005). SIMSOLUTION: An open simulation environment founded on extreme multitasking. In: Proceedings of the 37th Conference on Winter Simulation, Winter Simulation Conference ©2005: Orlando, FL, pp 631–636.Google Scholar
  81. Ye Y and Kishida K (2003). Toward an understanding of the motivation of open source software developers. In: Proceedings of the 25th International Conference on Software Engineering, IEEE Computer Society: Washington, DC, USA, pp 419–429.Google Scholar
  82. Yücesan E, Chen CH, Snowdon JL and Charnes JM (2002). An evaluation and selection methodology for discrete-event simulation software. In: Proceedings of the 2002 Winter Simulation Conference, San Diego, CA, pp 67–75.Google Scholar

Copyright information

© The Operational Research Society 2016

Authors and Affiliations

  • G Dagkakis
    • 1
  • C Heavey
    • 1
  1. 1.University of LimerickLimerickIreland

Personalised recommendations