Software Development Process
UAV Navigation counts on procedures to develop DO-178C oriented and high-quality software. UAV Navigation coding standard is based on MISRA and BARR Group, etc.
The company uses writing methodologies and traceability systems that allow absolute control over the software created and delivered to the clients. Clear versioning rules have been defined and automatic tools that allow differentiating software beta from official releases as well as having biunivocal traceability between the binary compiled and its repository.
In order to do so, the company uses a Git-based development environment to register and manage requirements, formal code revisions, issue trackings, and automatic Unit Testing to validate the robustness and reliability of the software.
Software Validation Process
UAV Navigation develops software in accordance with a strict validation process to ensure the final product delivered to the customer is as reliable as possible. The company's mission-critical software products fall into the following categories:
- User Interface (UI) software e.g. Visionair.
- Embedded autopilot software (RTOS, device drivers, and low-level software).
- Flight Control software.
1. Specification: The final software product (or modification to an existing product) is clearly specified. Requirements are analyzed and agreed upon between client and UAV Navigation work teams in order to ensure the final product reaches its expectations.
2. Development*: UAV Navigation ensures to provide the specific forms that the development engineers will need during its work. Only when this specific and strict training time has been completed before the engineer starts developing products. This way, we ensure the high quality of our products. Software is developed by the appropriate department as below:
- UI software: Software Department.
- Embedded software: Software Department (in consultation with Hardware Department).
- Flight Control software: Flight Control Department.
Software is developed in accordance with a proprietary coding standard based on industry standards, such as MISRA, JPL (NASA), Embedded C Coding Standard (Barr Group), and Google C++ Style. Part of this development process includes peer-checking.
3.Testing & Simulation*: All software undergoes an intensive period of testing in the office, including at least 12 hours of simulated flight missions. All flight modes are tested as well as interaction with payloads and emergency handling (comms failure, etc). If necessary, the development team will return to Step 2 to modify features.
4. Acceptance Test Procedure (ATP): Phase 1 - Bench Testing*: Once Step 3 is completed and there is no need to iterate through Step 2 again, a formal ATP is carried out on the test bench, mainly based on the use of HIL tools. Every component and control solution (FW, RW, Target, AHRS, etc..) has its own written ATP documents for regression testing and new feature quality control, which are under constant improvement as part of the quality process.
5. ATP: Phase 2 - Flight Testing: Once the software has successfully passed the company's formal ATP on the simulation bench, the software can proceed to actual flights on the company's appropriate test platform(s), fully testing all flight modes and features. The platforms used currently include:
- Electric, 2.5kg MTOW.
- Single piston engined, 9kg MTOW.
- Rotary wing:
- Single piston engined, 8kg MTOW.
6. Software Release: The software developed is uploaded to the UAV Navigation Download Center, a restricted area where the official versions of UAV Navigation software are made available to all clients. Additionally, at UAV Navigation, we provide the client with a Confidential space dedicated to each particular client. No other clients have access to this area. It is used to supply specific software and documentation.
7. Confirmatory Testing on Customer Platform: The final step is for the software to be validated on the actual customer’s platform. UAV Navigation is available to participate in this vital stage by deploying an engineering team on-site and an engineer to the test location if necessary. UAV Navigation agrees with the customer a FAT (Flight Acceptance Test) document describing all the flight tests required to accept the completion of the work.
*NOTE: when possible, the engineers responsible for these 3 steps will come from 3 different departments.
At UAV Navigation, we understand the importance of robust and reliable software in order to help our customers to expand their businesses. For this reason, using a flight control system with reliable and robust software development procedures capable of facing certification processes is the key.