Published Sep 3, 2019

Episode 100: Software in Space

Explore the intricate world of space software with Hans-Joachim Popp as he delves into past mission failures, lessons learned from programming historic voyages, and the evolving practices of software development for space systems, highlighting the crucial roles of rigorous testing, international collaboration, and innovative redundancy strategies.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Testing Limits

    Testing methodologies in space software development face significant limitations. explains that while code coverage tools can identify some errors, many issues remain at the requirements or semantic level. He emphasizes the importance of comprehensive system reviews and integration tests to uncover these hidden faults 1. Static analysis tools, though useful, cannot replace the need for thorough manual reviews and testing of the entire system 2.

    You still have to review the whole system and to have a test environment where you test the whole system together.

    ---

    Ensuring high-quality software requires a combination of automated tools and detailed human oversight.

       

    Code Reviews

    Code reviews are crucial in maintaining software quality for space systems. describes a rigorous process involving both automated and manual reviews, where developers explain their code to others, fostering a culture of open communication and error identification 3. This approach, although time-consuming, significantly reduces errors and enhances software reliability.

    You have to establish a culture of being free to do errors that you don't ask why did you do that?

    ---

    Creating an environment where team members feel comfortable discussing mistakes is essential for successful software development.

       

    Redundancy

    Redundancy strategies in space software are vital for minimizing risks. highlights the use of diverse hardware and software redundancy to prevent errors from propagating 4. Employing different programming languages and involving various teams in the development process helps identify potential flaws from multiple perspectives 5.

    Different developers team in medicine, of course that is done regularly.

    ---

    This multi-faceted approach ensures that software systems are robust and capable of handling unexpected challenges.

Related Episodes