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:
- Identify the required functionality.
- Break the functionality into smaller development tasks.
- Design the required components and interfaces.
- Implement the functionality.
- Develop automated tests where appropriate.
- Integrate the feature with the existing simulation.
- Run the existing test suite to identify regressions.
- Review the implementation against the requirements.
- 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).