The software behind the space shuttle
Most of us put up with software that works most of the time. Stuff happens (on every platform) from time to time, and we reboot, relaunch, or just get over it. But with space flight, you don't just get over it, and relaunching isn't an option. So the software on the shuttle has to be absolutely perfect.Yeah, I'm one of those nerdy kids that went to Space Camp. But anyone with an interest in technology will appreciate the skill and hard work put into the engineering and design of the shuttle's systems. That includes on-board machines and the support on the ground. Much of the redundancy is in hardware. Typical configurations are three or four identical sets of machines performing the exact same tasks at the same time. There's also a fourth or fifth backup machine in case any one of those initial machines breaks down. The NASA Office of Logic Design has some great bedside reading on many of these systems, available in tidy PDF's.
Keep reading for more info, plus some nifty NASA sims to play with online...
For those burning the midnight oil at Microsoft putting the finishing touches on Vista, consider the following: your code sucks. So does the code in OS X, and Linux. At least, it's pretty bad when you compare it to NASA's. According to a 1997 article in Fast Company, in three versions of shuttle software, each with 420,000 lines of code, there were only 3 errors. That's one for each version. Yep, one error in nearly half a million lines of code. The article says commercial code would have around 5,000 errors.
At one point this was enough to earn Carnegie Mellon's Software Engineering Institute's Capability Maturity Model Level 5 rating. What does that mean? Basically your software is as good as humanly possible. Less than a dozen companies have earned this honor, and part of the benchmark was created by the standards set by NASA's team. Although I should point out, when I say NASA I'm referring to a group of coders actually working at Lockheed Martin (and that team was moved around a couple of times, once to IBM).
The most telling aspect of this (and the best part of the article) are the four guiding principles the team uses to make this "perfect" software. No doubt these principles have inspired the work of all good application authors everywhere. Read the full Fast Company article for those, but also check out this telling article (PDF) with Ted Keller, formerly the senior technical manager of the shuttle's on-board software. It all boils down to the process of coding, and managing our little monkey brains to make the most perfect code possible.
So congratulations to a successful mission for shuttle Discovery. STS-114 will unfortunately be the last of the current shuttle form factor as NASA has decided to ground the fleet and redesign the whole thing from scratch. No word on a new version of the software though...
Now to try your hand at docking the shuttle check out the Shuttle/ISS Simulator. Or you can try launching, landing, or docking (as ground control or the shuttle) over at the JFK Space Center's simulation page. Lastly, some gorgeous pics of STS-101, where the ISS began its journey upwards...












Comments
8
Subscribe to commentsStephenAug 9th 2005 12:27PM
Great links. However, I think you're incorrect in stating that STS-114 is the last shuttle flight. NASA plans to continue flights once they fix the latest tank problems. The shuttle will be phased out before 2010, but there will be more flights before then.
Matt MAug 9th 2005 1:38PM
yeah, NASA hasn't retired the shuttle yet, that won't be happening until 2010. They are going over test data from the last flight to see what they need to fix on the External Tank. Though, they are also funding Lockheed Martin and Boeing/Northrup Grumman to make proposals for the shuttle replacement.
Even with the Crew Exploration Vehicle, it won't be made from scratch. They are planning to use current hardware (external tanks/SRBs) and mount the passenger carrier on top of these, and use an apollo style rentry (capsule).
For a self-proclaimed 'nerdy kid that went to Space Camp' you don't seem to be keeping up with current space events much.
Interesting reads above though.
Victor Agreda, Jr.Aug 9th 2005 5:04PM
Keep in mind NASA will do what it needs to do to ensure safety of crews... So it's anybody's guess when or if the next shuttle will launch. The 2010 timetable is clear, but I hope we see a new vehicle before then.
From CNN: "Griffin has ordered that no shuttle mission will fly until engineers determine how to fix the problem."
You're right, wrong term. They aren't scratching the whole thing...
Pierre- Andre L.Aug 10th 2005 6:04AM
@ Matt M.... in 2010, the Shuttle as such won't be retired but 3 of the 4 existing vehicles have reached their end of shelflive.
They will be decommissionned but what will replace them could be just other updated shuttles of today's model
Brian ParryAug 10th 2005 12:14PM
Sadly Fast Company, and anyone who believes them, are greatly mistaken if they think there are only 3 bugs in the Shuttle software. In fact, there are an indeterminate amount of unknown bugs. This is true of all software. This is because that only by finding a bug do you know the bug exists. In the end it is impossible to prove you have found and fixed all bugs - or any number there of.
ArvinAug 10th 2005 12:42PM
To the Author of the article: Not all systems on board use the software you're describing. Only critical systems such as APUs, Orbit Trajectory and such. If you look closely at this picture you can easily tell they also use Windows Software on their shuttle flight. http://spaceflight.nasa.gov/gallery/images/shuttle/sts-114/hires/s114e7539.jpg
I would consider revising your article if I were you. You need to state somewhere in your Windows/OS Bashing article, that the Shuttle Flight DOES use Windows for non-critical computing.
Victor Agreda, Jr.Aug 10th 2005 1:13PM
Arvin, that is an awesome pic. It reminds me of how utterly amazing space flight is. Look at that guy, he's having so much fun. Who else has such a thrilling job? Few scientists have had such thrills, no doubt.
As for Windows bashing, well it's no secret I use a mac personally, but I would expect NASA does a pretty good job of choosing the right tool for the job. Which is as it should be. I do enjoy working on my VAIO, and I wish I could afford a better PC laptop... Though remember: in space no one can give you spyware. (Couldn't resist that one)
But every OS *does* suck, in some way. I have a personal Apple gripe blog that would frighten small children. But don't take my word for it, see here:
http://www.deadtroll.com/index2.html?/video/ossuckscable.html~content
Catchy little ditty (you'll need QuickTime).
CoronatoSep 21st 2005 6:06PM
Interesting article, always good to hear that NASA is trying to be as close to perfection as humanly possible!
I wonder what its replacement is going to be like?