LauncherOne rocket with C++ engine
Abstract: The most important aspects of rocket safety software development, from an idea, design, implementation to testing. Safe design patterns and critical error handling in fault tolerant systems. - Open source libraries can take you to space: How to choose open source libraries to be used for Federal Aviation Administration (FAA) certification, and correct use of them depending on the required safety level. Also will discuss how to handle FAA hard requirements throughout software development cycle. - Safe design patterns: Will discuss multiple design patterns to be used in safety critical systems, a compile time observer pattern using template metaprogramming will be discussed. Also guidelines to use a pattern depending on safety level, timing requirements, memory layout and testing. - Error handling: Rocket errors are gold, precious and don’t want to lose them: When having an error is more important to get as much telemetry as possible before losing the rocket. Since testing a real rocket means a real mission, telemetry can make a difference for future flights and error handling is critical to achieve this. Will present error handling techniques in startup and run time including throwing policies, interfaces pre/post conditions and class interface design techniques to implement the error handling along with testing, also guidelines to use them depending on safety level and application, and deciding what is a fatal error.