Skip to main content

Project Methodology

Overview

The Virtual Rodent project follows an iterative and incremental development methodology. The system is developed in manageable stages, with each stage producing a functional addition to the simulation. This approach allows the team to validate individual components before integrating them into the wider system.

The methodology is suited to the project because the simulation contains several independent but interconnected components, including the simulation engine, arena, behavioural agents, stimuli, treatment conditions, recording mechanisms and user interface.

Iterative Development

Development is divided into focused development cycles. Each cycle identifies a set of features or improvements to implement, followed by implementation, testing and review.

A typical development cycle follows:

  1. Identify the required functionality.
  2. Break the functionality into smaller development tasks.
  3. Design the required components and interfaces.
  4. Implement the functionality.
  5. Develop automated tests where appropriate.
  6. Integrate the feature with the existing simulation.
  7. Run the existing test suite to identify regressions.
  8. Review the implementation against the requirements.
  9. Document the completed functionality.

This allows problems to be identified early rather than waiting until the entire system has been implemented.

Incremental Feature Development

The project is built incrementally. Core simulation functionality is implemented before more advanced functionality is added.

The development progression broadly follows:

Core Simulation

Arena and Environment

Behavioural Agents

Stimuli and Treatments

Recording and Data Export

User Interface

Testing and Refinement

Each layer builds upon functionality that has already been implemented and tested.

Modular Design

The project uses a modular architecture so that major areas of functionality can be developed independently. Plugins are used to separate responsibilities within the simulation.

For example, the simulation includes separate functionality for:

  • Arena management
  • Environmental stimuli
  • Behavioural agents
  • Data recording

This reduces coupling between components and makes individual features easier to test, modify and extend.

Testing During Development

Testing is performed throughout development rather than being postponed until the end of the project.

Automated tests are used to verify important behaviours such as:

  • Correct simulation initialisation
  • Stimulus activation at the expected simulation step
  • Recording of state changes
  • Treatment event recording
  • Deterministic behaviour when using the same random seed

Existing tests are also executed after significant changes to ensure that new functionality does not introduce regressions.

Requirements Traceability

Development tasks are linked back to the project's requirements and acceptance criteria. A feature is considered complete when its implementation satisfies the intended behaviour and the relevant tests pass.

This provides a traceable relationship between:

Requirement

Development Task

Implementation

Automated Test

Verified Feature

Team Collaboration

Team members work on separate areas of functionality where practical. Tasks are divided according to project responsibilities and recorded in the work tracker.

The team uses version control to allow individual contributions to be developed independently before being integrated into the main project.

The work tracker provides an overview of:

  • Assigned responsibilities
  • Current progress
  • Completed tasks
  • Outstanding work

Why This Methodology Was Selected

An iterative and incremental approach was selected because the project is expected to evolve as the simulation requirements become clearer. It also allows the team to demonstrate working functionality throughout development.

The approach provides several advantages:

  • Early identification of implementation problems
  • Continuous testing
  • Smaller and easier-to-review changes
  • Reduced integration risk
  • Clear progress between development stages
  • Easier allocation of work between team members
  • Ability to extend the simulation without redesigning the entire system

The methodology therefore supports both the technical requirements of the simulation and the collaborative requirements of the development team.


AI Attribution: The preceding document was generated and edited with assistance from ChatGPT Web (GPT-5.6 Luna).