© Roel Wieringa (http://www.cs.utwente.nl/~roelw)
†The GRAAL project (http://is.cs.utwente.nl/GRAAL)†
University of Twente, the Netherlands
13 November 2004
The concept of architecture has been obfuscated by architects and philosophers who refuse to define it, and call it the expression of an idea (Sullivan 1924) , similar to poetry (Tzonis et al. 1989), that tries to express the quality without a name (Alexander 1979). This sounds as impressive as it is meaningless. Architecture, like other forms of design, indeed involves creativity. And achitects, like other creative people, express solutions to problems. But so do scientists and engineers, and although in a metaphysical mood we can muse on the relationship between poetry and science, no one attempts to clarify what scientists do by explaining that they do the same thing as poets.
Software engineers have been enamored by Vitruvius and cite the ancient properties of utilitas, firmitas and venusta, vaguely rendered as utility, reliability and usability, as desirable properties of any architecture. Translating ancient terms to modern terminology is a slippery business. The Dutch archeologist Menno Kosian analyzes Vitruvius's statement that ``architecture depends on† Order, Arrangement, Eurythmy, Symmetry, Propriety, and Economy'' and reveals that in Vitruvius' time (the 1st century BC) these terms meant something quite different from the way we interpret them now. For example, where ``Order'' now means something like ``structure'', in the 1st century BC it meant that the different parts of a building must be designed according to specific integer proportions in relation to the smallest element of the building. For example, the height of a column in a building must be nine †and a half times its thickness, that the distance between columns must be two and a quarters it sthickness, etc.The Dorian order used different proportions from the Ionian order, etc. It is fascinating to analyse ancient texts, relate them to their context and follow the evolution of the meaning of words through history, but this will not tell us what we today do or should understand by the word ``architecture''.
Let us keep it simple and start from the dictionary. According to Webster's, one of the meanings of the word ``architecture'' is that it is a ``unifying or coherent form or structure''. In this general sense, one can speak about the architecture of a town, of a house, of a novel and of a symphony, and also of the architecture of a software system. Let us focus on the concept of unifying structure. One element relevant for software engineers and building architects alike is that the elements of a software system, or of a building, work together in such a way that desirable overall properties emerge. The system as a whole provides certain services at a certain quality. This is a concept well-known in systems engineering, called synergy (Blanchard and Fabrycky 1990). The architecture of a building is the way the components of the building are put together so that the desired overall properties emerge: Shelter, room, appearance, cost,† safety, etc. The architecture of a software system is the way the components of the software are put together so that the desired overall properties emerge: Services, behavior, interfaces, reliability, usability, etc. So architecture is structure plus synergy. To describe an architecture of a system, you describe its components, the way they are put together, and the way this yields the desired emergent properties of the system.
We can generalize this view of architecture from houses and software systems to all systems, including organizations,† human-machine systems and† socio-technical systems in general. The architecture of a system consisting of people, machines and software is the structure of this system plus the way the structure causes the system to have emergent properties. These emergent properties are not properties of any component, but emerge at the system-level because they are the result of the way the components interact. Architecture is the reason why a whole is more than the sum of its parts.
We find objects in nature with a wonderful architecture that creates emergent properties. but for designed objects, we require more than that they have emergent properties: We requred that these emergent properties be useful. A house has many emergent properties, some of which are useful and some are not. Having a pleasent appearance, providing shelter against rain and sun, providing a room to eat and sleep, are all useful properties. Slowly sinking into the soft ground, water seeping into the cellar, having a kitchen slightly too small, and lacking enough cupboard space are annoying features that are nevertheless emergent properties too, properties of the house as a whole that are due to its architecture. We require of a designed architecture that the balance of useful and useless emergent properties is positive, i.e. that the emergent properties are overall valuable for someone.
How many architectures does a system have? Bass et al. (1998) stress that a system does not have one architecture but many. I view this as a play on words. We talk about the architecture of a house, and then fully accept that this architecture cannot be shown in one document. It must be rendered in many different ways, which each show a relevant aspect of the architecture to different audiences. The† appearance of the house as it is finished is represented by an artist's impression and has potential house owners as audience. The physical structure of the house is represented by blueprints and is intended for the builder and its subcontractors. The structure of the electricity network is shown in a separate drawing and has the electricity installer as audience. The water supply and disposal system is shown in yet a different view for a different audience, and the central heating system has a different view for a different audience again. A major issue in house design and house building is the coordination of the different views, which can easily become inconsistent. The same is true of software systems: The system architecture can be represented with many views for many audiences, and these views have to be coordinated to keep them consistent. We can show the call graph, module structure, coordination structure, data flow structure, control flow structure, etc. (Bass et al. 1998). These are all different views of one system with one architecture.
Alexander. The Timeless Way of Building.
∑ L. Bass, P. Clements, R. Kazman. Software Architecture in Practice, Addison-Wesley 1998.
∑ B. S. Blanchard, W. J. Fabrycky. Systems Engineering and Analysis. Prentice-Hall 1990.
∑ M.C. Kosian. ``Ontwerpsystemen en Vitruvius' Terminology''. http://www.xs4all.nl/~mkosian/ontwerp.html, accessed 19 October 2004.
Sullivan. The Autobiography of an Idea.
∑ A. Tzonis, L.† Lefaivre, D. Bilodeau. Klassieke architectuur; de poŽtica van de orde (in Dutch). SUN 1989.