Category Archives: Architecture

Exciting times ahead

I’ve been musing about the future, so forgive me for a bit of crystal ball gazing.

For years we’ve been building complex software systems, confidence that the underlying hardware was getting quicker and quicker courtesy of Moore’s law. This still boggles me; I stopped being a professional electron herder many years ago and at the time we were talking about the feature size on silicon dice getting down to the heady depths of 1 micron. There’s now people talking blithely about features in the region of a tenth of this size and this week there’s an announcement from HP that they’ve finally ┬ámanaged to fabricate the famed memristors, or at least one type of them, on silicon offering the hope of even higher densities. (Although, to be fair, memristors are not transistors which is what Gordon Moore was actually talking about.)
Continue reading Exciting times ahead

Just what is software architecture?

So often we hear people saying they’re “architecting” some piece of software, or that they’re a high-powered architect of some form? I was musing what that should mean. At least one colleague insists that it’s just a pompous word for design, optimised for use in proposal boilerplate when you’re trying to aggrandise your role in life.

I’m not so sure, but there clearly is something called software design, and it’s really closely related to software architecture if that’s a separate issue.

After some thought, I’ve decided (I’ll probably change my mind soon) that software design is about designing those parts of a system that address the system’s functional requirements. Architecture, on the other hand, is about designing a system so that it meets that system’s non-functional requirements.

So, for example, if I’m designing something so that orders are properly sent to the billing engine, or so that the aircraft’s elevators move to the correct angle then I reckon that’s design. If I’m adding a write-back cache to an enterprise system so that it works effectively with 2000 simultaneous users when it used to support 5, then I reckon that’s architecture.

Or am I just still being pompous?