Software engineering – is the software that sent the astronauts into space really rocket-science?

 

Software engineering paved the way for the historic launch by NASA x SpaceX. It was the Millennials’ chance to witness what their parents watched in 1969.

Over 34 million people watched the launch of astronauts Robert Behnken and Douglas Hurley into space on Saturday, 30th of May. This is the number of views on NASA’s Facebook live alone.

software engineering space

Photo credit: NASA

The purpose of this launch? A test flight to validate the crew transportation system of SpaceX. Furthermore, NASA, SpaceX, and Boeing are working on reliable and economical transport systems to low-Earth orbit.

This is the first time in history that NASA launched astronauts into space using the system of a privately owned company. 

And high-level software engineering made this possible.

But where did this all start?

The woman behind the beginning of software engineering

It all goes back to the Moon-Landing. Margaret Hamilton, a computer scientist at MIT, at that time leader of the Software Engineering Division, oversaw the team developing the software needed for Apollo 11. They have created the Apollo program guidance system. This system was responsible for guiding, navigating and controlling the spacecraft using the astronauts’ input. This computer needed to operate without any error.

Furthermore, this system needed to detect any errors and recover from them in real-time. It needed to be adaptable, hence, asynchronous. This means that jobs are prioritized in order of importance.

Her work was instrumental for the successful landing of the first people on the Moon. Also, no bugs were ever found in this in-flight software.

See below Margaret with the whole code for this history-changing mission.

software engineering Margaret Hamilton

Photo: MIT Museum

Software engineering

Hence, Margaret Hamilton was NASA’s first-ever software engineer. She was also the person who coined the term in an effort to legitimize the important work of the crew that developed the software for this mission.

“I fought to bring the software legitimacy so that it—and those building it—would be given its due respect and thus I began to use the term ‘software engineering’ to distinguish it from hardware and other kinds of engineering, yet treat each type of engineering as part of the overall systems engineering process.”- said Margaret in an interview.

Software used by SpaceX for the rockets

Much of the information about the software used in this historic launch of NASA and SpaceX is classified, hence not available for the public. However, a few years ago software engineers from SpaceX disclosed some of the operational systems and programming languages that they use.

This information might come as a surprise to most of the developers making up the IT ecosystem globally. Most of the operational systems and languages used by SpaceX software scientists are available to any software developer.

Linux, C++, LabVIEW

Linux

SpaceX uses Linux as their main operating system.

C++

The programmers use C++ as their main programming language. C++ is a very popular programming language with an already highly developed ecosystem. This way SpaceX can benefit from the greatest C++ developer talents and can use code that has already been written.

Furthermore, they use a C and C++ compiler (gcc) and debugger (gdb).

LabVIEW

According to the SpaceX engineers, the team that is responsible for Ground Software uses LabVIEW, a graphical programming tool. They develop the Graphical User Interface used in Mission and Launch control. This way engineers can monitor the vehicle’s telemetry and can command the rocket, the spacecraft, and other equipment.

In addition, the engineers use C#, MSSQL, Javascript, LESS, Python, and many more from large scale applications to small embedded computing.

SpaceX – an inspiration for AROBS

When it comes to these technologies, especially C++ and Linux, the AROBS embedded teams have great expertise. Also, functional safety standards used in aeronautics are now an important part of automotive software engineering.

Here, over 400 engineers work on embedded systems for the automotive industry.

Their know-how in C and C++ programming languages, but also in Model-based development tools like LabVIEW, Matlab TargetLink, IBM Statemate, plus their capabilities to build advanced software architectures and design in Enterprise Architect or IBM Rapsody, but not only, enables progress for top companies in this industry.

More so, they develop software for almost any platform (Linux, Windows, RTOS). 

Projects like the ones SpaceX develops are a childhood dream for many software engineers at AROBS.

But, read more about what they do when it comes to engineering services.

Special thanks to Margaret Hamilton, for her life’s work and legacy that made this discipline of software engineering possible.

Image source: Pixabay

Read our recent blog posts
Technology books
Blog

Technology books that marked me

Technology books, especially the great ones, have a huge effect on our software development careers. Even though there are so many tech books written in this domain, there are only a few that really mark us.

Read More
Follow us on social media