Saturday, May 20, 2023

Spiral Software Development Process for ABM

Readers of this blog might gather that we are constantly developing agent-based models to study and better understand a wide range of problems but unlike in say the software industry, agent-based model development is rather ad hoc in terms of a standardized software development process. To this end  Maxim Malikov, Fahad  Aloraini, Hamdi Kavak and William Kennedy from George Mason University and myself  have a paper entitled "Developing a Large-Scale Agent-Based Model Using the Spiral Software Development Process" which we will be presenting at the upcoming Annual Modeling and Simulation Conference (ANNSIM).

In the paper, we review the unique aspects of agent-based models and discuss the challenges faced in the development of our own large-scale agent-based model, which simulates the impact of a disaster on the infrastructure and the population of a city. This project combines the expertise of teams with multiple disciplines, and therefore must be able to adjust to novel input from these teams over the life of the project.  Furthermore, we describe our solution to these challenges in the form of a variation of the Spiral model of software development and the ways this approach helped us address the exploratory nature of agent-based modeling.  

If this sounds of interest, below we provide the abstract to the paper, some of the figures we use to support our discussion. At the bottom of the post we provide the full reference to the paper along with a link to a preprint of it. 

Abstract:

As the level of complexity of agent-based models grows, so does the complexity of their development. At the time of writing, the discipline of agent-based modeling does not have an established standard for the software development process to support this increasing complexity. We hope to address this need by introducing our variation of the Spiral model of software development and demonstrating an application of this process through a simple use case. We argue that the Spiral model of software development is a flexible approach that can be tailored to fit the needs of almost any project type. Further, our agent-based modeling variation of the Spiral model is an effective approach that is capable of guiding and supporting large interdisciplinary teams participating in a project, while providing sufficient flexibility to account for the uncertainty in the requirements that may arise during the development period.

Keywords: Software development, Agent-based Modeling, Spiral Development, Disaster.

 

Spiral model with adjustments made to account for the specifics of complex agent-based models. Adopted from Boehm (2000).


Prototype 1 of the city infrastructure simulation. This graphical user interface shows agent and infrastructure changes after a disaster.

Full reference:

Malikov, M., Aloraini, F., Crooks, A.T., Kavak, H. and Kennedy, W.G. (2023), Developing a Large-Scale Agent-Based Model Using the Spiral Software Development Process, The Annual Modeling and Simulation Conference (ANNSIM), Hamilton, ON. (pdf)

No comments: