1 minute read

Post on LinkedIn

I know that Grady Booch has said this before, for example during his ICSE 2015 keynote in Florence, but looking at typical undergraduate software engineering curricula, it seems not be be common wisdom: UML is a great tool for reasoning and documentation - but code generation beyond class/method stubs, combining different models into a coherent application and in particular round-trip engineering never really worked and might have contributed to its decline in the software industry (the attempt to “turn UML into a programming language”, as Grady calls it).

In a recent interview, Grady also makes a great point: Back in the early 2000s, it was still much more common to build software systems more or less from scratch. Nowadays many architectural decisions are made for you either by frameworks or existing code bases, so the kind of modeling developers/architects do significantly changed since then. To be fair, Grady also mentions that there are still projects (e.g., in high-risk regulated domains) where UML can play a role.

IMHO we need to teach students the full breadth of modern (!) software engineering. And with a more holistic view, UML should not take up more than two lectures in an introductory software engineering course, because there are other crucial topics to discuss.

Updated: