CS 411:
Software
Architecture
Design
Instructor:
Dr. Bedir Tekinerdoğan
bedir@cs.bilkent.edu.tr
Course Assistants
Bugra M. Yıldız
Elif Demirli
| |
Software Architectures from an Escher Perspective
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 illustrations, Cordon Art, Baarn, The Netherlands
|
M.C. Escher - Ascending and Descending
The 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 Boundaries
Software 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: Inmanageable Architecture
Software projects may attempt to build very large
architectures to comprise a very broad set of altermative 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 Composition
Software 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.
Software Architecture Design Analogy: Different Paradoxical
Architecture Perspectives
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. |
|