CS 411:
Software
Architecture
Design

Bilkent University

Description
Study Material
Schedule
Grading
Projects
Related Links
Miscellaneous
Exam Guidelines

Bilsen Logo

Instructor:
Dr. Bedir Tekinerdoğan
bedir@cs.bilkent.edu.tr

Course Assistants
Bugra M. Y
ıldız
Elif Demirli

Mimar Sinan M.C.Escher Christopher Alexander

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.