0.6 Lines Of Code Per Hour June 30, 2008Posted by gordonwatts in computers, GLAST.
After the GLAST launch the other week I’ve looking at things space and astro when I surf the web (honestly – I don’t do it much! Especially at work! Especially while waiting for an ATLAS build!). I stumbled on this pod-cast on writing software for spacecraft.
It was a fascinating listen. Hans-Joachim Popp is the head of computing (CIO) at Deutsches Zentrum für Luft- und Raumfahrt, a company that makes software for German spacecraft. Some of the things that he said were jaw dropping in the context of the ATLAS software (and DZERO software). For example, averaged over the whole project about 0.6 lines of code are written per hour. They have code reviews, where the developer stands in a room and has to defend every single line of code. Their test code is a x12 longer than the actual code they write. They scan all of their code with a static analysis tool to look for “dumb” bugs.
Apparently the programming environment is similar for devices that run in intensive care units in hospitals. Comforting, I suppose. Modern critical airplane software has dueling versions of the code written (much like the space shuttle). In the case of the A380, apparently, one is written in C and the other in Ada* (other than this podcast this slide show was the only reference I could find).
Of course, the standard modern day project is only 20,000 lines of code. Voyager, which has been up there for 30 years now, has only 4 KB of memory for programming – so only 4000 assembly language instructions. He also mentioned that the ability to update the code in Voyager has been crucial to keeping the missing going this long.
I wonder how much of this formal methodology was followed for the GLAST LAT software? The trigger, for example? I remember Toby talking about how it was impossible to change because of all the paperwork and reviews involved in changing a single line of code.
One thing I’ll miss about returning to Seattle is I’ll loose this commute. Yeah, backwards. I’d rather be without the commute. But one advantage is I get to listen to all these podcasts (normally I listen to news and politics from the USA).
* I was in love with the idea of Ada when it first came out. I never wrote any code in it, but I thought that was the coolest programming language when it came out. Heck – it has multi-threading built in. Was over designed to catch errors early. Now, I’d hate it as being too restrictive.
** Imagine if all of this code was written at 0.6 lines per hour!?