2. subexpert.com
ACKNOWLEDFMENT
• Lectures are prepared from the following books:
• Software Design: Creating Solutions for ill Structured Problems
• Budgen, D., CRC Press
• In addition, there are other examples and code snippets from other sources which are mentioned on
respective slides
2
4. subexpert.com
Software Architecture: Module 1 4
Software Architecture
• 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.
5. subexpert.com
The Swedish Ship Vasa
• 1620 Sweden & Poland at war
• Swedish king to build a ship two-gun
• 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
6. subexpert.com
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
7. subexpert.com
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
8. subexpert.com
2025/7/18 Software Architecture: Module 1 8
Where Do Architectures Come From?
• An architecture is the result of a set of business and
technical decisions.
• In any development effort, the requirements make
explicit some—but only some—of the desired
properties of the final system.
9. subexpert.com
2025/7/18 Software Architecture: Module 1 9
Architectures Are Influenced By
System Stakeholders
• Stakeholders have different concerns that they wish the
system to guarantee or optimize.
• performance, reliability, availability, platform
compatibility, memory utilization, network
usage, security, modifiability, usability, and
interoperability with other systems as well as
behavior.
11. subexpert.com
2025/7/18 11
Architectures Are Influenced By The
Developing Organization
• Immediate business
• immediate business investment in certain assets, such as existing architectures
and the products based on them.
• Long-term business
• long-term business investment in an infrastructure to pursue strategic goals
and may view the proposed system as one means of financing and extending
that infrastructure
• Organizational structure.
• Like Hierarchical, Horizontal, Branched etc..
12. subexpert.com
2025/7/18 12
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.
13. subexpert.com
2025/7/18 Software Architecture: Module 1 13
Architectures Are Influenced By The
Technical Environment
• It include standard industry practices or software
engineering techniques prevalent in the architect's
professional community.
14. subexpert.com
Software Architecture: Module 1 14
Complications of Influences on an
Architecture
• Architects need to know and understand the nature,
source, and priority of constraints on the project as
early as possible
• They must identify and actively engage the stakeholders
to solicit their needs and expectations.
15. subexpert.com
Architecture Business Cycle (ABC)
• What is the relationship of a system's software
architecture to the environment in which the system will
be constructed and exist?
• Software architecture is a result of technical, business,
and social influences.
• Its existence in turn affects the technical, business, and
social environments that subsequently influence future
architectures.
• This cycle of influences, from the environment to the
architecture and back to the environment, the
Architecture Business Cycle (ABC).
17. subexpert.com
2025/7/18 Software Architecture: Module 1 17
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.
18. subexpert.com
2025/7/18 Software Architecture: Module 1 18
The architecture affects the structure
of the developing organization cont…
• Likewise, schedules and budgets allocate resources in
chunks corresponding to the units
• If a company becomes adept at building families of similar
systems, it will tend to invest in each team by nurturing
each area of expertise
19. subexpert.com
2025/7/18 Software Architecture: Module 1 19
The architecture can affect the goals
of the developing organization
• A successful system built from an organization can
enable it to establish a foothold in a particular market
area.
• The architecture can provide opportunities for the
efficient production and deployment of similar systems,
and the organization may adjust its goals to take
advantage of its newfound expertise to plumb the
market
• Feedback from the system developing organization
20. subexpert.com
2025/7/18 Software Architecture: Module 1 20
The architecture can affect customer
requirements for the next system
• Giving the customer the opportunity to receive a system
(based on the same architecture) in a more reliable, timely,
and economical manner than if the subsequent system
were to be built from scratch.
• The customer may be willing to relax some requirements
to gain these economies
21. subexpert.com
2025/7/18 Software Architecture: Module 1 21
The architecture can affect
architect's experience
• A system that was successfully built around a tool bus or .NET
or encapsulated finite-state machines will engender similar
systems built the same way in the future.
• On the other hand, architectures that fail are less likely to be
chosen for future projects.
22. subexpert.com
2025/7/18 Software Architecture: Module 1 22
Few systems will influence and actually
change the software engineering culture
• The first relational databases, compiler generators, and
table-driven operating systems had this effect in the 1960s
and early 1970s;
• The first spreadsheets and windowing systems, in the
1980s.
• The World Wide Web is the example for the 1990’s
• J2EE may be the example for the first decade of the
twenty-first century