There is an intrinsic relation
between art and architecture. In this web-page we compare software architecture
to the famous works of Maurits Cornelis Escher (1898-1972), a Dutch graphic
artist, who is most recognized for spatial illusions, impossible buildings and
repeating geometric patterns. Escher succeeded to put a symbolic bridge between
the realms of art and science.

The comparisons have been taken
from: Bedir Tekinerdogan, Synthesis-Based Software Architecture Design, PhD
thesis, Dept. of Computer Science, University of Twente, The Netherlands, March,
2000.

M.C.
Escher - Ascending and DescendingThe illustration on the left shows an
impossible building with a never-ending staircase. The inhabitants of
these living-quarters would appear to be monks, adherents of some unknown
sect. Perhaps it is their ritual duty to climb those stairs for a few
hours each day. It would seem that when they get tired they are allowed to
turn about and go downstairs instead of up. Yet both directions, though
not without meaning, are totally useless. Although the staircase is
conceptually impossible, it does not interfere with your perception of it.
In fact, the paradox may not be even apparent to many people.

Software Architecture Design Analogy: Wrong Architecture BoundariesSoftware architectures
may be derived from different sources. Very often the architectural
abstractions are derived from the client's requirement specifications. The
derived abstractions may not interfere with the perception of the clients,
though, they may be less useful for defining the stable abstractions and
the architecture boundaries.

M.C. Escher
- Tower of Babel

The illustration on the previous
page represents the Tower of Babel. According to the Quran (28:38) and the
Bible (Genesis 11:1-9),
a tower was erected in Babylonia with the intention to reach to heaven and
God. Their presumption, however, angered God who interrupted the
construction by causing among them a previously unknown confusion of
languages and scattered them over the face of the earth.

Software Architecture Design Analogy: Unmanageable ArchitectureSoftware projects may attempt to build very
large architectures to comprise a very broad set of alternative systems.
This goal may be unrealizable and the software architecture may not be
comprehensible for the many people that are stakeholders of the software
architecture. The different stakeholders may speak different languages and
be scattered leading to an unfinished software architecture.

M.C. Escher - Waterfall

This illustration shows one of Escher's famous impossible buildings. The
basis of the illusion is the inclusion of the impossible triangle or
tri-bar, developed by Roger Penrose and his father. The triangle is placed
into the picture three times. As you look at each part of the construction
in the print you cannot find any mistakes, but when the print is viewed as
a whole you see the problem of water traveling up a flat plane, yet the
water is falling and spinning a miller's wheel.

Software Architecture Design
Analogy:
Wrong CompositionSoftware architectures are usually
developed from various individual architectural components, or
sub-systems. Each individual architectural component may be perfectly
designed and as such have a correct structure. However, the synthesis of
the overall architecture may include serious flaws that may make the
software architecture impossible to realize.

M.C.
Escher - Concave and Convex

What we see and
what we understand depends on our perspective. In "Concave and Convex,"
Escher has created a paradoxical world where concave and convex are
constantly shifting, throwing the mind into complete ambiguity and
confusion. Three little houses stand near one another, each under a
crossvaulted roof. We have an exterior view of the left-hand house, an
interior view of the right-hand one and an either exterior or interior
view of the one in the middle, according to choice. The cluster of cubes
on the flag announces the basic visual motif of the composition. Escher
plays with the ambiguity of volumes on the flat picture plane; they switch
from solid to hollow, from inward to outward, from roof to ceiling, like
the cubes in the flag.

What we see and what we understand from a
given software architecture depends on our perspective. If the software
architecture is not well-defined it may be ambiguous and even
self-contradictory. This will confuse the stakeholders of software
architecture and its realization will be a complicated task.

M.C. Escher -
Relativity

In the illustration three forces of gravity are working perpendicularly to
one another. Three earth-planes cut across each other at right angles, and
human beings are living on each of them. It is impossible for the
inhabitants of different worlds to walk or sit or stand on the same floor,
because they have different perceptions of what is horizontal and what is
vertical. Yet they may well share the use of the same staircase. On the
top staircase illustrated here, two people are moving side by side and in
the same direction, and yet one of them is going downstairs and the other
upstairs. Contact between them is out of the question because they live in
different worlds and therefore can have no knowledge of each other's
existence.

Software Architecture
Design Analogy: Different forces of different stakeholders

In building software architectures different 'forces' may work
perpendicularly to one another in defining the form of the architecture.
Different stakeholders may be interested in the same architecture, though,
for a different reason. They may have different perceptions of the
software architecture aspects and likewise may impose different forces on
the architecture. Although, they may need to use the same architecture
contact between them is generally out of question because they live in
different 'worlds' and usually have no knowledge of each other's existence.

M.C. Escher -
Belvedere

In a three- dimensional world simultaneous front and back is an
impossibility and so cannot be illustrated. Yet it is quite possible to
draw an object which displays a differing reality when looked at from
above and from below. The illustration on the previous page shows the
illustration of a building that is physically difficult to realize. The
lad sitting on the bench has got such a cube-like absurdity in his hands.
He gazes thoughtfully at this incomprehensible object and seems unaware to
the fact that the Belvedere behind him has been built in the same
impossible style. On the floor of the lower platform, that is to say
indoors, stands a ladder which two people are busy climbing. But as soon
as they arrive at a floor higher, they are back in the open air and have
to re-enter the building.

Software Architecture Design
Analogy: Different views reflecting a different system

It is useful to provide different
perspectives of the same software architecture. Thereby, it is important
that still the same 'reality' is represented. Unfortunately, due to
inappropriate approaches and practices, the various perspectives of the
same architecture may render different realities of the same architecture
and lead to an impossible view of the overall software architecture. In
addition, software engineers who criticize absurdities of architectures of
other projects may not be aware of the impossible realities of their own
developed software architecture.