Software Architecture: Instructor: Dr. Iftikhar Ahmed Khan Lectures 1-2-3,4
Software Architecture: Instructor: Dr. Iftikhar Ahmed Khan Lectures 1-2-3,4
21/4/29 3
Career Path
• Set your sights on becoming an expert in
software engineering
– gather broad experience
– develop technical, leadership,
communication and people skills
Senior
Individual Software Team
Software Architect
Contributor Engineer Leader
Engineer
21/4/29 4
Why is learning knowledge about
architecture important?
• Software architecture is not emphasized in
software engineering course;
• The development of a large software system
is far beyond design and programming;
• A software architecture is the development
product that gives the highest return on
investment with respect to quality,
schedule, and cost.
21/4/29 5
• Credits (3)
• Pre-requisites
– Experience of programming in a high-
level programming language, e.g. C, C#
or Java
Main contents of this course
• Envisioning Architecture
• Creating an Architecture
• Analyzing Architectures
• Moving From One System to Many
21/4/29 7
Part One. Envisioning Architecture
21/4/29 8
Part Two. Creating an Architecture
21/4/29 9
Part Three. Analyzing Architectures
• The ATAM: A Comprehensive Method for
Architecture Evaluation
• The CBAM: A Quantitative Approach to
Architecture Design Decision Making
• The World Wide Web
A Case Study in Interoperability
21/4/29 13
Software Architecture: Definition
• The software architecture of a program or
computing system is the structure or structures
of the system, which comprise software
elements, the externally visible properties of
those elements, and the relationships among
them.
• The architectural view of a system is abstract,
distilling away details of implementation,
algorithm, and data representation and
concentrating on the behavior and interaction of
"black box" elements.
21/4/29 Software Architecture: Module 1 14
The Swedish Ship Vasa
• 1620 Sweden & Poland at war
• Swedish king to build a ship never before
– World's most formidable instrument of war: 70 meters
long, able to carry 300 soldiers, and with an astonishing
64 heavy guns mounted on two gun decks.
• Hybertsson a famous ship architect failed
• Inquiries followed, which concluded that the ship
was well built but "badly proportioned." In other
words, its architecture was flawed.
• 375 years old story, well illustrates the
Architecture Business Cycle
The Swedish Ship Vasa cont…
• organization goals requirements
architecture system.
• The architecture flows from the architect's
experience and the technical environment
of the day.
• Hybertsson suffered from the fact that
neither of those were up to the task before
him
The Swedish Ship Vasa cont…
Three things that Hybertsson could have used and we
will study in this course:
• Case studies of successful architectures crafted to
satisfy demanding requirements, so as to help set
the technical playing field of the day.
• Methods to assess an architecture before any
system is built from it, so as to mitigate the risks
associated with launching unprecedented designs.
• Techniques for incremental architecture-based
development, so as to uncover design flaws before
it is too late to correct them
Where Do Architectures Come From?
21/4/29 21
Influenced By The Background And
Experience Of The Architects
• Experience
• architect's education and training, exposure
to successful architectural patterns,
• exposure to systems that have worked
particularly poorly or particularly well.
21/4/29 22
Architectures Are Influenced By The
Technical Environment
• It include standard industry practices or
software engineering techniques prevalent in
the architect's professional community.
Customers
and End User
Requirements
(Qualities) Architect
Developing Architecture
Organization
Technical System
Environment
Architect’s
Experience
Architect’s Influences
Customers
and End User
Requirements
(Qualities) Architect
Developing Architecture
Organization
Technical System
Environment
Architect’s
Experience
21/4/29
The architecture affects the structure
of the developing organization
• Architecture prescribes the units of software
that must be implemented (or otherwise
obtained) and integrated to form the system.
• These units are the basis for the development
project's structure.
• Teams are formed for individual software
units; and the development, test, and
integration activities all revolve around the
units.
21/4/29
Creating the Business Case for the System
• It is an important step in creating and constraining
any future requirements.
– How much should the product cost?
– What is its targeted market?
– What is its targeted time to market?
– Will it need to interface with other systems?
– Are there system limitations that it must work within?
• These are all questions that must involve the
system's architects. They cannot be decided solely
by an architect, but if an architect is not consulted in
the creation of the business case, it may be
impossible to achieve the business goals
Understanding the Requirements
• Understanding Requirements by the help of
one or combination of these techniques
– object-oriented analysis uses scenarios
– finite-state-machine models for safety
critical systems
– creation of prototypes
Creating or Selecting the Architecture
“Conceptual integrity is the key to sound
system design and that conceptual integrity
can only be had by a small number of minds
coming together to design the system's
architecture.” (Fred Brooks, Mythical Man-
Month)
• Appropriate decision to create or to use an
existing architecture depends on what you
have with you (Team, Resources,
Requirements)
Communicating the Architecture
• For effectiveness of the project's design, it
must be communicated clearly and
unambiguously to all of the stakeholders.
– Developers must understand the work
assignments
– Testers must understand the task structure it
imposes on them
– Management must understand the scheduling
implications it suggests and so forth
• Architecture's documentation should be
informative, unambiguous, and readable by
many people with varied backgrounds
Analyzing or Evaluating the Architecture
• In any design process there will be multiple
candidate designs considered. Some will be rejected
immediately. Others will contend for primacy.
• Choosing among these competing designs in a
rational way is one of the architect's greatest
challenges
• For judging and architecture for qualities that could
support the system Scenario-based techniques,
Architecture Tradeoff Analysis Method (ATAM) or
Cost Benefit Analysis Method (CBAM) could be
used
Implementing Based on the Architecture
• Keep developers faithful to the structures
and interaction protocols constrained by the
architecture.
• Having an explicit and well-communicated
architecture is the first step toward ensuring
architectural conformance.
• Having an environment or infrastructure
that actively assists developers in creating
and maintaining the architecture (as
opposed to just the code) is better.
Ensuring Conformance to an Architecture
• Constant vigilance is required in the
maintenance phase to ensure that the actual
architecture and its representation remain
faithful to each other during this phase.
• Although work in this area is comparatively
immature, there has been intense activity in
recent years.
• Reconstructing architectures from existing
system is an example
the Architecture Business Cycle
• Where Do Architectures Come From?
• Software Processes and the Architecture
Business Cycle
• What Makes a "Good" Architecture?