TOOLS Europe 2000
Panel on Software Architecture

Position statement by
John Daniels, Syntropy Limited, UK


We need to make a distinction between software architecture and software architects.

By analogy with building architecture, a software architecture is a style, a shape.

A software architecture is independent of the details of the problem domains to which it is applied.

It is possible to look at a software system and determine the style it follows, but a description of the design of a particular system, no matter what level of abstraction is applied, is not an architecture. It is inherent in software architectures that they can be applied to many systems.

A software architecture tells you:

The best way to document an architecture is to:

There are two valid interpretations of "software architect". The first is that a software architect is someone who creates software architectures, as described above. However, by analogy with building architects we can arrive at a second and quite different interpretation. This is that a software architect is someone who:

It would help if these interpretations had different names. For the purposes of this position paper I'll call the first interpretation "architectural stylist".

In my experience too much of the money spent on "software architecture" goes to architectural stylists and not enough to software architects. The return on investment in architectural stylists is often hard to realise. In many cases it is better to let the style naturally emerge from design rather than attempt to create it in advance.