Software Design Standard
REV: 2020-09-05
Official Guidebolt Software-Design Standard
Main Programming Languages
- Python
- PHP
- C
- C++
Python, general scripting
PHP, web development
C, small/portable low-level programs, linux development, MCU firmware
C++, complex/high-performance low-level programs
External Standards
Joint Strike Fighter AV C++ Coding Standards, 2005, Lockheed Martin
NASA - JPL Institutional Coding Standard for the C Programming Language (2009)
NASA - The Power of Ten - Rules for Developing Safety Critical Code (2006)
MISRA - C Coding Guidelines for Critical Systems (2004)
Data Management
All source code must be ultimately organized in a single-umbrella-element (file or folder) per software-module. The single-umbrella must be specific to that module.
REASON: A single umbrella element is easier to share, back-up, and reference. It is clear where supporting data should be organized; at the start of the file or within the top folder (ex. README file, docs folder).
All source code must be organized with documentation to make it useful (ex. compile, install, run). This documentation should be proportional to the complexity/specialness of the use-process.
All long-term source-code and supporting-data must be version-controlled with GIT.