1 The CoSMoS approach in a nutshell

Although not all papers in this special issue use the Complex Systems Modelling and Simulation (CoSMoS) approach in their work, some do. To provide the necessary context and reference point for these papers we provide a brief overview of the approach, adapted from material from Stepney (2012, 2013). For a fuller description, see Stepney et al. (2015).

1.1 Overview

The CoSMoS approach enables the construction and exploration of simulations for the purpose of scientific research. It has been designed to be adaptable both to a variety of simulation problems and to changing circumstances during simulation construction and use. Application of the approach should be tailored to suit the criticality and intended impact of the research outcomes.

The construction and use of simulations is a necessarily interdisciplinary endeavour between the domain scientists, experts who study a particular domain, and the simulation engineers, software developers who design and construct simulations to facilitate the study of that domain. Together, the domain scientists and simulation engineers are involved in open-ended scientific research: the simulations are used as a tool to support theory exploration, hypothesis generation, and design of real-world experimentation.

To run computer simulations we need to engineer a simulation platform. A properly calibrated simulation platform is the scientific instrument, the basis for running multiple simulation experiments. To engineer such a platform requires us to explicitly represent some knowledge of the system being studied in a form that can be implemented on a computer. This representation, the source code, is either designed manually by the developers or automatically generated from a higher-level description.

In many existing approaches the source code is the only explicit description of the aspects of the target domain that are being simulated. Source code contains numerous implicit assumptions (including abstractions, simplifications, axioms, idealisations, approximations) concerning both the scientific aspects of the work, and the engineering design of the simulation platform. Source code also contains many implementation details, which are needed to make the simulation run on a computer, but are not part of the underlying scientific model. Hence source code is not a satisfactory basis for modelling.

To mitigate inappropriate assumptions in the design of simulation platforms, and to have greater confidence that simulation results can actually tell us something that relates to the real system being studied, we use a series of related models to drive and describe the development of the simulation platform and simulation results generated from its use. Systematic development assists interaction between domain experts and developers, and improves our confidence in, and interpretation of, the results of simulations.

1.2 Context and purpose

A simulation project takes place within an overall scientific research context, which lays out goals and scope of the simulation-based research being conducted, including the simulation purpose, resources, constraints, assumptions, and success criteria.

The purpose of a simulation exercise is the single most important concept. Without an agreed purpose, it is impossible to scope the research context, or to arrive at a consensus over fitness for purpose. The purpose of the simulation constrains the appropriate levels of abstraction for modelling, the appropriate implementation languages and platform, and the appropriate analysis and interpretation of results. A simulator that is designed for one purpose may or may not be modifiable for another purpose.

1.3 Phases

Within a given research context, we identify three main phases in a simulation project.

  • Discovery, or “deciding what scientific instrument to build”. This establishes the scientific basis of the project; identifies the domain of interest, models the domain, and sheds light on scientific questions.

  • Development, or “building the instrument”. This produces a simulation platform to perform repeated simulation, based on the output of discovery.

  • Exploration, or “using the instrument in experiments”. This uses the simulation platform resulting from development to explore the scientific questions established during discovery.

These phases are not intended to be performed purely sequentially. A project naturally begins with a discovery phase followed by development and then exploration. But many iterations of discovery, development and exploration may be required to build a robust, fit for purpose instrument. The separation into phases helps provide a focus on what particular pieces of information are needed at each phase for each model.

Indeed, some projects might not perform all phases. A prior project may have performed the necessary discovery, and only development and exploration is needed (although it will be necessary to check that the assumptions of the prior discovery phase are valid for this project). Similarly, a suitable existing simulation platform might exist, and only the exploration phase is followed in this project (again, it will be necessary to check that the assumptions underlying the existing simulation platform are valid for this project). On the other hand, it may be that only the discovery phase occurs, and discovers that a simulation is not appropriate, or not needed.

1.4 Models

Our simulation approach uses the following model concepts (Fig. 1): domain, domain model, platform model, simulation platform, and results model.

Fig. 1
figure 1

Relationship between simulation components; arrows represent flows of information. These are all framed by the research context

Each of these components has a different role to play in the building, verifying, and use of the simulation:

  • Domain: a particular view or perspective of the part of the real world that is the system of study. It describes what the simulation project is “about”.

  • Domain Model: a model encapsulating the scientific understanding of appropriate aspects of the domain. It provides the agreed scientific basis and assumptions for the development of a simulation platform; simulation implementation details are not considered in this model.

  • Platform Model: a model providing the high level specification of the simulation platform, comprising design and implementation details, incorporating relevant domain model scientific concepts, research context experimental requirements, and implementation constraints and assumptions.

  • Simulation Platform: the encoding of the platform model into a calibrated software and hardware platform with which various simulation experiments can be performed.

  • Results Model: a model that encapsulates the understanding of outputs and results from simulation experiments, in domain terms, enabling comparison with results from domain experiments.

1.5 Experiments

Distinction is made between two types of experiment in the CoSMoS approach: domain experiments performed in the real world system under study, and simulation experiments executed on the simulation platform. These experiments are analgous to in vivo / in vitro and in silico experimentation respectively.

Domain experiments reveal knowledge about the domain that forms the basis of a domain model. We can also analyse the domain experiments to construct a complementary domain experiment model that captures how the concepts, structures and behaviours in the domain model are controlled and manipulated. Additionally, the domain experiment model will detail what data is collected from the experiments and how that data is then manipulated and interpreted–using statistical methods–to produce the results.

The domain experiment model provides guidance on how the platform model can be derived from the domain model. Specifically:

  • what the explicit parameters of the system are, and how these might be controlled (e.g. fixed constants or variables)

  • suitable ranges of operation of the parameters (e.g. sensible parameter ranges or agent numbers)

  • what instrumentation is needed to collect, measure and process data from simulation experiments

The constructed simulation platform is subject to simulation experiments, the purpose of which is dependant on context and the CoSMoS phase. Initial runs are used to calibrate the simulation platform. This is needed to determine how to translate domain parameters and variables into their corresponding platform values (for example how to translate between real-world time, and simulated time), and how to take simulation experiment raw output data and analyse it to enable comparison with domain results.

Once calibrated the simulation platform can be thought of as a computational implementation of the model of the real world system under study, and subsequent runs can be used to validate the simulation. If these disagree with domain experiments, it may be because:

  • the variables and parameters are not being translated appropriately (calibration may have overfit their values)

  • there are faults in the platform model or in the simulation platform implementation (the simulation platform has not been adequately engineered)

  • there are faults in the domain model (the science is imperfectly understood) or domain experiment model (imperfect measurements or statistical errors)

Once the simulation platform has been validated, it can be used to run simulation experiments that are analogues of the real world experiments run in the domain. The results of a simulation experiment (after suitable translation into domain terms, and data analysis, via the results model) can be compared to the real world experimental results, and be used to make predictions about the results of domain experiments. Even in such a case, predictions should be checked against real world data, particularly if the simulation experiment is being run outside the calibration range of the instrument.

1.6 Arguments

To build confidence in a particular simulation-based study, the team needs to argue the appropriateness of the entire simulation project (including modelling and simulator development, input data, and analysis of results). This requires an argument, based on evidence, that the simulation platform is fit for purpose, and is being used appropriately to perform the simulation experiments. This argument can be used to drive the shape of the simulation development process: it is easier to argue a system is fit for purpose if the development has been guided with such a need in mind, and the system is more likely to be valid if it has been structured in such a way.

We use the terms “fit for purpose” (with the meaning “good enough to do the job it was designed to do” (Macmillan Dictionary)) and “appropriate” for our argument structure. These terms emphasise that they are relative, to the simulation purpose, and hence that there is a need to revisit arguments should that purpose change. We choose not to use more common terminology such as “valid” or “correct”. These terms have implications of being absolute terms: “this instrument is correct”, as opposed to “this instrument is appropriate for a given purpose”. Hence these absolute terms do not capture the need to revisit arguments if circumstances change. Additionally, they have implications of being either true or false: something is either “valid” or “invalid”, whereas we want to capture a continuum of possibilities, allowing a simulation platform to have degrees of fitness for purpose.

An appropriateness argument is usually incomplete: its purpose is to capture the understanding about fitness for purpose of its audience, so that it can be referenced in future, challenged and revisited. A thorough and fully documented argumentation exercise is unnecessary in most situations, particularly in cases where the simulation criticality is low.

As well as documenting what you do, and arguing that it is the right thing to do, it is important to document what you don’t do, and argue why it would be wrong to do it. This saves much grief later in the project, when a previously dismissed approach is retried, and the reason for its dismissal rediscovered.

There are two approaches to arguing the fitness for purpose: retrospectively, after the simulation platform has been developed, or incrementally, as the development of the simulation platform proceeds.

1.7 Patterns

As can be seen, the CoSMoS approach has many components: context, phases, models, experiments, arguments. In order to help structure a simulation project, the approach is captured in the CoSMoS pattern language (Stepney 2012; Stepney et al. 2015). This pattern language provides the structure, detail, and rationale for developing all the necessary components, to aid the developer in producing a high quality, scientifically viable simulation instrument.

2 The CoSMoS workshop series

The EPSRC-funded CoSMoS research project itself has now ended, but we have continued to run the workshop series as a forum for research examining all aspects of the modelling and simulation of complex systems. To allow authors the space to describe their systems in depth we put no stringent page limit on the submissions. We have now run seven CoSMoS workshops, each accompanied by a refereed proceedings published by Luniver Press, as satellite events of a range of international conferences:

  1. 1.

    31st Communicating Process Architectures Conference (CPA 2008), York, UK, 2008 (Stepney et al. 2008)

  2. 2.

    8th International Conference on Artificial Immune Systems (ICARIS), York, UK, 2009 (Stepney et al. 2009)

  3. 3.

    12th International Conference on the Synthesis and Simulation of Living Systems (ALife XII), Odense, Denmark, 2010 (Stepney et al. 2010)

  4. 4.

    11th European Conference on Artificial Life (ECAL11) Paris, France, 2011 (Stepney et al. 2011)

  5. 5.

    11th International Conference on Unconventional Computation and Natural Computation (UCNC 2012) University of Orleans, France, 2012 (Stepney et al. 2012)

  6. 6.

    12th International Conference on Unconventional Computation and Natural Computation (UCNC 2013) Universita degli Studi di Milano-Bicocca, Milan, Italy, 2013 (Stepney and Andrews 2013)

  7. 7.

    14th International Conference on the Synthesis and Simulation of Living Systems (ALife XIV), New York, NY, USA, 2014 (Stepney and Andrews 2014)

3 This special issue

After the 6th workshop, we were invited by the Editor in Chief of Natural Computing to prepare a special issue of the journal based on the CoSMoS workshop series. We contacted all authors of the first six workshops, and invited them to submit a paper, either extended from their original submission, or based on their subsequent work. 13 papers were submitted, and, after a full peer review process by external reviewers, 10 were accepted for publication.

  1. 1.

    Li Tao, Jiming Liu. Understanding Self-Organized Regularities in Healthcare Services Based on Autonomy Oriented Modeling.

    This is an extension of the authors’ paper in the 6th CoSMoS workshop (Tao and Liu 2013) (which won the FoCAS best paper award), examining self-organisation in complex healthcare systems, using an Autonomy-Oriented Computing approach.

  2. 2.

    Philip Garnett. A Tipping Point in 300 Years of Banking? A Conceptual Simulation of the British Banking System.

    Garnett has made several contributions to the CoSMoS workshop series (Droop et al. 2011; Garnett 2012, 2013; Garnett et al. 2008, 2010; Polack et al. 2011). This is an extension of the author’s paper in the 6th CoSMoS workshop (Garnett 2013), examining “tipping points”, the rapid flipping of a complex system from one quasi-stable state to another, in the context of the banking sector acquisitions and mergers.

  3. 3.

    Andrew Hone, Kim Towler. Non-standard discretization of biological models.

    This is an extension of Hone’s paper in the 2nd CoSMoS workshop (Hone 2008), examining the issue of using numerical integration methods to analyse mathematical models formulated in terms of differential equations, focussing on a number of non-standard discretisation methods that have the potential to be extremely useful in modelling biological systems.

  4. 4.

    Fiona Polack. Filling gaps in Simulation of Complex systems: the Background and Motivation for CoSMoS

    One of the members of the CoSMoS research team, Polack has made several contributions to the workshop series about the CoSMoS simulation approach (Andrews et al. 2008, 2011; Droop et al. 2011; Ghetiu et al. 2009; Greaves et al. 2012; Polack 2010; Polack et al. 2011). Here she provides a software engineering motivation for CoSMoS and considers aspects of validation for simulators involved in ongoing research.

  5. 5.

    Fiona Polack, Alastair Droop. Principled Simulation of Cell Proliferation Dynamics using the CoSMoS Approach

    This is an extension of the authors’ paper in the 4th CoSMoS workshop (Droop et al. 2011), describing a hybrid multiscale modelling approach based on Petri net and object-oriented models, which is applied to a case-study on prostate cell division and differentiation.

  6. 6.

    Tim Hoverd, Susan Stepney. Environment Orientation: a structured simulation approach for agent-based complex systems

    Stepney is one of the CoSMoS research team members, and a regular contributor to the workshop series (Garnett et al. 2008, 2010; Hoverd and Stepney 2009; Polack et al. 2011; Droop et al. 2011; Andrews et al. 2011, 2012; Stepney 2012, 2013; Andrews and Stepney 2014; Afshar Dodson et al. 2014). She and Hoverd developed Environment Orientation as a part of the CoSMoS project, and first reported it at the 2nd CoSMoS workshop (Hoverd and Stepney 2009). Here that paper is extended with further examples and rationale.

  7. 7.

    Kieran Alden, Paul S. Andrews, Henrique Veiga-Fernandes, Jon Timmis, Mark C. Coles. Utilising a Simulation Platform to Understand the Effect of Domain Model Assumptions

    Andrews is one of the members of the CoSMoS research team, co-authoring papers in several workshops both during and after the project (Andrews et al. 2008, 2010, 2011, 2012; Andrews and Stepney 2014; Ghetiu et al. 2009; Read et al. 2009). Here he and coauthors extend some of their simulation work to explore how the CoSMoS approach can help clarify and understand the consequences of modelling assumptions.

  8. 8.

    Ye Li, Adam T. Sampson, James Bown, Hilal S. Khalil, Yusuf Deeni. Understanding tissue morphology: model repurposing using the CoSMoS process

    Sampson is another CoSMoS research team member, and frequent workshop co-author (Andrews et al. 2008, 2010, 2011; Goltsov et al. 2012; Li et al. 2013). Here he and coauthors expand on their 6th workshop paper (Li et al. 2013), describing work subsequent to the CoSMoS project, where they use ideas from the CoSMoS approach to repurpose a simulation to apply to a different domain.

  9. 9.

    Jose Evora, Jose Juan Hernandez, Mario Hernandez. Advantages of Model Driven Engineering for studying complex systems.

    Evora and his coauthors have been regular contributors to recent CoSMoS workshops (Evora et al. 2011, 2012, 2013), examining simulations of smart power grid as complex systems within the context of model-driven engineering. Here they continue to use that case study to develop an analytical framework for studying emergent properties of complex systems.

  10. 10.

    Katie Barr, Toby Fleming, Viv Kendon. Simulation methods for quantum walks on graphs applied to formal language recognition.

    This is an extension of the authors’ paper in the 6th CoSMoS workshop (Barr et al. 2013), describing an algorithm for efficient simulation of a kind of unconventional computation: quantum random walks on graphs, and applying it to a specific computational problem: formal language recognition.

We hope that readers will enjoy this set of papers, and come away with insight on the state of the art, and some understanding of current progress in Complex Systems Modelling and Simulation.