Simulation

Ray Madachy

Ray Madachy

University of Southern California

Search for more papers by this author
First published: 15 January 2002

Abstract

Simulation is the numerical evaluation of a mathematical model describing a system of interest. To support software engineering, simulation emulates aspects of software systems in order to assess them. The system under analysis may be a software application, the application environment, or the process used to develop and maintain the applications. Simulation models real-world elements to assess how a system performs in a cost-effective manner without needing the actual system. Simulations come in various forms (like paper analyses), and this article focuses on computer-based simulations where a time-based execution of a system model is generally performed.

Many systems are not available in the real environment or are too complex for analytical solutions; hence simulation is used to exercise models with given inputs to see how the system performs. For example, a satellite system with many software and hardware components will undergo simulation testing before the hardware is launched in space. Simulation can be used to benchmark performance, explain system behavior, improve existing systems, or design new systems too complex to be analyzed by spreadsheets, flowcharts or other methods.

Use of simulation is increasing in many disparate fields due to constantly improving computer capabilities. Simulations are computationally intensive, so they are much more cost-effective than in the past. The simulation process involves designing a system model and carrying out experiments with it. The purpose of these “what if” experiments is to determine how the real or proposed system performs and to predict the effect of changes to the system as time progresses.

Simulation has a wide variety of uses in software engineering to support software development and management. It can be applied in product feasibility analysis, systems acquisition, requirements and design, testing, process definition and improvement, training, and others areas.

The full text of this article hosted at iucr.org is unavailable due to technical difficulties.