NASA mandates UML

NASA thinks (wrongly?) that UML can help them improve quality

Articles in InformationWeek and EETimes about how NASA is mandating some level of UML and Rational tools in an attempt to ensure better quality.

I have to say that I’ve never seen roundtrip code-generation work in a real-life C++ project (although I’ve seen people try hard) and I remain strongly sceptic of it. I think it probably works for real-time applications with little external dependencies and a design based on statecharts.

But hoping that using a design tool will help with quality sounds a bit naive to me.

The article also says:

”...lets code be generated from models, and public software standards and interfaces when possible…”

Again in my experience, public standards and interfaces only translate into quality benefits if you use a tried-and-tested library or component that supports that standard. As an example using HTTP helps you if you decide to integrate gecko into your client or use Apache as your server, but it’s no big help if you decide to write your own browser from scratch. The better quality comes from (re)use of high quality components, not from the fact that these components use a public standard.

Take Corba (ok, perhaps an unfair example). I’ve seen software projects struggle with it, while other projects using propietary non-standard IPC have had more success.

See Joel’s article Fire and Motion for other caveats against trying to follow standards in the context of small companies.

Thursday 08 February 2007 14:01