NASA mandates UML

Posted February 08, 2007 in misc

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.