Simulation Design: Trans-Paradigm Best-Practice from Software Engineering

There are growing initiatives to apply software engineering (SE) best-practice to computational science, which includes simulation. One area where the simulation literature appears to be particularly light is in the overall structural design of simulations, and what architectures and features are valuable for what reasons. (Part of the problem is that parts of this knowledge are abstracted away in simulation toolkits which are often not easily comparable, and have different conceptual aims.) To address this, I outline three key software properties which embody SE best-practices, and then define an 'idealised' software architecture for simulation—what SE would call a reference architecture—which strongly exhibits them. I show that this is universal to all simulations (largely because modelling-paradigm-specific detail is encapsulated into a 'single black box' layer of functionality) but that simulation toolkits tend to differ in how they map to them; this relates to the aims of the toolkits, which I provide a useful categorisation of. I show that, interestingly, there are several core features of this architecture that are not fully represented in any simulation toolkit that I am aware of. I present a library—JSIT—which provides some proof-of-concept implementations of them for Java-based toolkits. This library, and other ideas in the reference architecture, are put into practice on a published, multi-paradigm model of health and social care which uses the AnyLogic toolkit. I conclude with some thoughts on why this area receives so little focus, how to take it forwards, and some of the related cultural issues.

[1]  Sally C. Brailsford,et al.  Discrete-event simulation is alive and kicking! , 2014, J. Simulation.

[2]  Gregory R. Madey,et al.  Tools of the Trade: A Survey of Various Agent Based Modeling Platforms , 2009, J. Artif. Soc. Soc. Simul..

[3]  G. Nigel Gilbert,et al.  Simulation for the social scientist , 1999 .

[4]  G. Huse Individual‐based Modeling and Ecology , 2008 .

[5]  Sally C. Brailsford,et al.  A multi-paradigm, whole system view of health and social care for age-related macular degeneration , 2012, Proceedings Title: Proceedings of the 2012 Winter Simulation Conference (WSC).

[6]  Julia Eichmann,et al.  Making Software - What Really Works, and Why We Believe It , 2011, Making Software.

[7]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[8]  Michael J. North,et al.  Product and process patterns for agent-based modelling and simulation , 2014, J. Simulation.

[9]  Oguz Dikenelli,et al.  A generic testing framework for agent-based simulation models , 2011, 2011 Federated Conference on Computer Science and Information Systems (FedCSIS).

[10]  Adelinde M. Uhrmacher,et al.  Plug'n Simulate , 2007, 40th Annual Simulation Symposium (ANSS'07).

[11]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[12]  Reinhard German,et al.  Veritas - a versatile modeling environment for test-driven agile simulation , 2011, Proceedings of the 2011 Winter Simulation Conference (WSC).

[13]  A. Borshchev,et al.  From System Dynamics and Discrete Event to Practical Agent Based Modeling : Reasons , Techniques , Tools , 2004 .

[14]  Bernard P. Zeigler,et al.  Theory of Modeling and Simulation: Integrating Discrete Event and Continuous Complex Dynamic Systems , 2000 .

[15]  V. Stodden,et al.  Toward Reproducible Computational Research: An Empirical Analysis of Data and Code Policy Adoption by Journals , 2013, PloS one.

[16]  Alan F. Blackwell,et al.  Visual Programming in the Wild: A Survey of LabVIEW Programmers , 2001, J. Vis. Lang. Comput..

[17]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[18]  Steven F. Railsback,et al.  Agent-Based and Individual-Based Modeling: A Practical Introduction , 2011 .

[19]  Steven L. Lytinen,et al.  Agent-based Simulation Platforms: Review and Development Recommendations , 2006, Simul..

[20]  Jarke J. van Wijk,et al.  A survey of computational steering environments , 1999, Future Gener. Comput. Syst..

[21]  Grigori Melnik,et al.  Guest Editors' Introduction: TDD--The Art of Fearless Programming , 2007, IEEE Software.

[22]  John H. Miller,et al.  Complex adaptive systems - an introduction to computational models of social life , 2009, Princeton studies in complexity.

[23]  Judith Segal,et al.  Scientists and Software Engineers: A Tale of Two Cultures , 2008, PPIG.

[24]  John H. Miller,et al.  Complex Adaptive Systems: An Introduction to Computational Models of Social Life (Princeton Studies in Complexity) , 2007 .

[25]  Michael J. North,et al.  Complex adaptive systems modeling with Repast Simphony , 2013, Complex Adapt. Syst. Model..

[26]  Jean-Pierre Müller,et al.  Towards a Formal Semantics of Event-Based Multi-agent Simulations , 2009, MABS.

[27]  Jonathan Ozik,et al.  Test-driven agent-based simulation development , 2013, 2013 Winter Simulations Conference (WSC).

[28]  S. Goldstein,et al.  Pro: the general anesthesiologist should be trained and certified in transesophageal echocardiography. , 2010, Journal of cardiothoracic and vascular anesthesia.

[29]  Evans,et al.  Domain-driven design , 2003 .

[30]  S. Tisue NetLogo : Design and Implementation of a Multi-Agent Modeling Environment , 2004 .

[31]  Sean Luke,et al.  MASON: A Multiagent Simulation Environment , 2005, Simul..

[32]  Ian M. Mitchell,et al.  Best Practices for Scientific Computing , 2012, PLoS biology.

[33]  Glen E. P. Ropella,et al.  SOFTWARE ENGINEERING CONSIDERATIONS FOR INDIVIDUAL-BASED MODELS , 2008 .

[34]  Steve McConnell,et al.  Code complete - a practical handbook of software construction, 2nd Edition , 1993 .

[35]  Kristin Decker,et al.  Uml Distilled A Brief Guide To The Standard Object Modeling Language , 2016 .

[36]  Keiki Takadama,et al.  Progress in Model-To-Model Analysis , 2008, J. Artif. Soc. Soc. Simul..

[37]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[38]  Anton Nekrutenko,et al.  Ten Simple Rules for Reproducible Computational Research , 2013, PLoS Comput. Biol..

[39]  Adelinde M. Uhrmacher Seven pitfalls in modeling and simulation research , 2012, Proceedings Title: Proceedings of the 2012 Winter Simulation Conference (WSC).

[40]  Greg Wilson,et al.  Software Carpentry: lessons learned , 2013, F1000Research.

[41]  Adelinde M. Uhrmacher,et al.  SESSL , 2014, ACM Trans. Model. Comput. Simul..

[42]  Rj Allan,et al.  Survey of Agent Based Modelling and Simulation Tools , 2009 .

[43]  Jutta Gampe,et al.  Building Mic-Core, a Specialized M&S Software to Simulate Multi-State Demographic Micro Models, Based on JAMES II, a General M&S Framework , 2013, J. Artif. Soc. Soc. Simul..

[44]  David O'Sullivan,et al.  Model histories: Narrative explanation in generative simulation modelling , 2012 .