Tuesday, August 3, 2010

What is Architecture?

Architecture is being used with so many adjectives that i find it worthwhile to think about what is architecture. Business architecture, architecture of democracy etc give a feeling that architecture is about "essence". To begin with it looks like executive summary and it even stretches to look similar to a theory of science or axiom of maths. What is a mere description of something (or say specification) vs an architecture is not very clear. Also it not clear whether it is the description or it is by the use of that description that an architecture should be demarcated by.

Gregory Chaitin in his book "META MATH" differentiates between description and theorem. In simple terms theorem somehow should take less amount of information encoding for representation than the description. And as we find a more concise theorem the elaborate one is not needed.

Do we call Einstein's theory of relativity as architecture of astronomy. Perhaps not. Next is the level where we group of theories and facts together and call it architecture. Do we mean the principles when we say architecture of democracy?

Or as in a formal system, the alphabet, production rules and axioms which together describe the system constitute the architecture of that system.

Or do we talk of architecture only when we build systems? That is, if there is nothing to architect, there is no architecture. I can't think of an example where this is not true.

Architecture is a set of principles and techniques, as written in the book "Art of Systems Architecting"

Anyway when we discuss of this in Information Technology/Software Engineering field the definition is little narrower.

Here is one of the definition:
Architecture- Orderly arrangement of parts; structure:

Another one from IEEE
Architecture. The organizational structure of a system or component
– IEEE Glossary of Software Engineering Terminology, 610.12–1990

Or a more precise one from IEEE 1471:

architecture: the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.

This means we need,
A System
Environment
System having components
Components interacting with each other

And we are talking about design and evolution of this system.