3.1 KiB
3.1 KiB
Software Requirements Specification
This document outlines the functional and non-functional requirements for the project, mapped to the V-Model testing strategy.
| ID | Description | Type (Attribute) | Level | Linked Test Case |
|---|---|---|---|---|
| MOD-GO-CORE | Drone event backend must persist location events and support "Time Travel" queries (snapshot at specific timestamp). | Functional (Verification) | Component | TestIngestAndSnapshot |
| MOD-GO-VAL | The API must enforce strict input validation, rejecting malformed JSON or missing query parameters with 400 Bad Request. |
Robustness (Verification) | Unit | TestIngestBadJSON TestSnapshotMissingTime |
| MOD-GO-OPS | The service must provide health probes and support graceful shutdown to prevent data corruption during updates. | Operational | System | TestHealth TestGracefulShutdown |
| REST-API-GEO | The API must expose geospatial utilities (distance, proximity) strictly conforming to the JSON contract. | Functional (Contract) | Integration | ApiControllerTest.java |
| REST-API-VAL | REST endpoints must validate input semantic correctness (e.g., valid coordinates) and reject malformed JSON with 400. | Robustness (Verification) | Unit | ApiControllerTest.java (Error paths) |
| REST-API-DRONE | The API must expose drone query endpoints conforming to the specified JSON contract. | Functional | Integration | DroneControllerTest.java |
| REST-ALG-PATH | Pathfinding algorithm must generate valid flight paths within battery budget, ensuring return-to-base actions. | Functional (Verification) | Unit | PathFinderServiceTest.java |
| REST-DATA-INT | System must output flight paths in a simplified format for frontend compatibility. | Interoperability | Unit | PathFinderServiceTest.java |
| REST-ALG-GEO | GPS calculation module must accurately compute Euclidean distances with 1e-9 measurable precision. | Measurable Quality | Unit | GpsCalculationServiceTest.java |
| REST-EXT-INT | System must integrate with external Drone Info API, gracefully handling network failures (Reliability). | Reliability (Robustness) | Unit (Mocked) | DroneInfoServiceTest.java |
| REST-LOGIC-FIL | Business logic must filter available drones based on dynamic requirements and service availability. | Functional | Unit | DroneInfoServiceTest.java |
| REST-SYS-OPS | The service must have an observable endpoint to verify system availability (Liveness/Readiness). | Operational | System | ActuatorHealthTest.java |
| REST-SYS-E2E | Validation: The system must successfully process a complete request lifecycle from ingestion to retrieval (User Journey). | User Need (Validation) | System | ilp-cw-api/**/*.bru |
| FRONTEND-UI-UX | Validation: The Svelte UI must provide visual feedback (spinners/toasts) during asynchronous processing. | Usability (Qualitative) | System | Manual |
Notes:
- All requirements with ID
MOD-GO-*are located indrone-black-box/main_test.go. - All requirements with ID
REST-*target the core Spring Boot application.