You are on page 1of 2

(1) Our principal definition of Software Architecture is...

a set of principal
design decisions made before and while making a software.
(2) Other definitions of Software Architecture include...
(3) A good analogy is to the Architecture of buildings.
The benefits of the analogy are...

The limitations of the analogy are...


(4) Software architecture is related to Functional Requirements and Non-Functional
properties in the following ways...

(5) It is also related to other lifecycle activities, such as Testing,


Implementation, etc. as follows...

(6) The Turbine process model puts it all together in the following ways...

______________________
The analogy:
buildings
-requirements are collected
-a design is built to meet those requirements
-construction is done based on the blueprints
-the building is occupied and used
software
-requirements are specified
-a high level design is created
-detailed algorithms are developed based on the design
-code is used to implement the algorithms
-the system is deployed and used

The architecture has 5 insights:


1. A building has architecture. Architecture is a concept separate from but linked
to the physical structure itself.
2.A structure acquires properties from the design of its architecture.
3.An architect having engineering training is not enough. He should have braod
training and a deep understanding of the things related to the structure.
4.The process is not as important as the architecture. Architects must follow
standard processes for building purposes. But the architecture should remain the
focus.
5.Architecture evolves as a discipline. It is not simply a set of standard
principles and rules.

While building a suburban home, we reuse the knowledge of building other homes.
Some basics are established and points of variation are known
Software is evolving as a discipline, leveraging the knowledge gained through
system development experiences, where we are learning to reuse solutions. Like
design patterns.

Limitations of the analogy:


-We have seen buildings being build from childhood and have developed an intuition
about them. We haven't seen software being build as much so we have to be more
analytical and methodical in our approach.
-Material of a building is visible. Material of software can not be easily seen.
Software is more difficult to measure and analyze whether it is close to what is
being designed.
-Software is more malleable than physical materials. Buildings can not accomodate
change so easily but software can.
-There is no software construction industry like buildings. Buildings have a
diverse subindustry with various skill sets. Software industry is not like that.
-Software has to be deployed at multiple locations. Buildings dont
-Software is a machine, buildings are not.

Advantages of paying attention to architecture


-Intellectual control
-Conceptual integrity
-Adequate basis for reuse
-Effective project communication
-Management of various systems.

Chapter 2:

Three understandings of software architecture


1.Every application has architecture
2.Every application has at least one architect
3.Architecture is not a phase

Architecture is a set of principal design decisions made about a system and is a


characterization of the essence and essentials of a software system.
Architecture is the product of a particular phase in the process that comes before
design phase but after requirement gathering

You might also like