Software Architecture Unit1
Software Architecture Unit1
Unit-I
Architectural views and Quality Attributes
1
Session Meta Data
2
Session Objectives
– The fundamentals of software architecture
– The basics of architectural styles, views and patterns
– The various quality attributes influencing architectural styles
3
Session Outcomes
• At the end of this unit, participants will be able to
– Understand the fundamentals of software architecture
– Understand the architectural styles
– Understand the quality attributes influencing architectural styles
4
When systems are constructed from many
components, the organization of the overall system—
the software architecture—presents a new design
paradigm
Software Architecture (SA) is an emerging field
these days, though it was once perceived as
conservative and traditional discipline.
Architectural style and implementation for complex
Why this systems a growing challenge and we have lot of
course? scope for solving it.
To describe system components, the nature of
interactions among the components, and the patterns
that guide the composition of components into
systems can be defined by this field.
SA: From Land to Space, across the domain and
sectors, a crucial learning
Lecture Text-books
slides
and
Reference books
books +
world of
web
for
knowledge
Lots of gamification attempted in class slides to make it easy and
stress-free learning for you
Cloud Architect –ex: GCP
SAP architect ex: for salesforce module
Career BI architect
options with Data Engineer
l views and a concern for the human interaction with these components.
Quality That is, system architecture is concerned with a total system, including
Unit 1-
Architectura
l views and
Quality
Attributes
Client server
Unit 1-
Architectura
l views and
Quality
Attributes
Credits:
O’Reilley
Layered pattern. When the uses relation among software elements
is strictly unidirectional, a system of layers emerges. A layer is a
coherent set of related functionality.
Architectura
l views and
Quality
Attributes
Credits: medium.com
Unit 1-
Architectura
l views and
Quality
Attributes
Unit 1-
Architectura
l views and
Quality
Attributes
Unit 1-
Architectura
l views and
Quality
Attributes
Unit 1-
Architectura
l views and
Quality
Attributes
Unit 1-
Architectura
l views and
Quality
Attributes
Unit 1-
Architectura
l views and
Quality
Attributes
Unit 1-
Architectura
l views and
Quality
Attributes
Unit 1-
Architectura
l views and
Quality
Attributes
Reference Architectural design must
be good:
Unit 1- - Portability /Interoperability
Architectura - Reliability
l views and - Well defined (components and its
Quality relations)
Attributes - Version independent
- Right choice of patterns and styles
- Right choice of structures and
views
Importance of Architecture quality:
[An activity-
based
learning]
Guess
What? Use
subject
related
terminology
learnt so far
Guess
What? Use
subject
related
terminology
learnt so far
Guess
What? Use
subject
related
terminology
learnt so far
Common Architectural styles for defining the
structures or views (Mary Shaw… reference
book)
Repositories
Table driven
Other popular styles for defining the
structures or views (Mary Shaw…. reference
book)
Representation of system
Protection for data structures
l views and how the system is to be structured as a set of elements that have
runtime behavior (components) and interactions (connectors).
Quality
Attributes Allocation structures embody decisions as to how the system will
relate to non-software structures in its environment (such as CPUs,
file systems, networks, development teams, etc.)
Ex: Tsunami
Warning
System’s
Software
Architecture
Ex:
Architecting
the working
of a
blockchain
Do it Design a system or structure and its associated
Yourself software architecture for student background
verification at SSN for UG & PG admissions
Now
Module structures:
Decomposition structure. The units are modules that are related to
each other by the is-a-submodule-of relation, showing how modules
are decomposed into smaller modules recursively
Unit 1- Uses structure. In this important but overlooked structure, the units
Architectura here are also modules, perhaps classes. The units are related by the
uses relation, a specialized form of dependency
l views and
Layer structure. The modules in this structure are called layers. A
Quality layer is an abstract "virtual machine" that provides a cohesive set of
Attributes services through a managed interface
Failed
quality
Predicting System Quality Attributes:
Unit 1- Waterfall
Architectura
Iterative
l views and
Quality Agile
Attributes
Model based dev
Software Architecture for project life cycle:
Unit 1-
Architectura
l views and
Quality
Attributes
Software Architecture for project life cycle:
Unit 1-
Architectura
l views and
Quality
Attributes
Software Architecture for project life cycle:
Unit 1-
Architectura
l views and
Quality
Attributes
Software Architecture for project life cycle:
Unit 1-
Architectura
l views and
Quality
Attributes
Software Architecture for business:
How will you prove that the new system is cost effective and
beneficial?
Only FACTS!!!
Unit 1-
Architectura
l views and
Quality
Attributes
Example of a business goal: To maximise reusability and reduce
cost
Only FACTS!!!
performance,
reliability,
availability,
platform compatibility,
memory utilization,
FACTS network usage,
CHECK security,
modifiability,
usability, and
interoperability with other systems as well as
behavior
Stakeholder
s’ corner
Stakeholder
s’ corner
Influencers
for
architecture
Requiremen
ts for a
software
architecture
Functional requirements:
Requiremen
ts for a
software
architecture
Hot in news
and in the
industry
Quality
Design
Decisions
Resource management and optimization
Identifying the resources that must be managed and
Quality determining the limits for each.
Design Determining which system element(s) manage each
resource.
Decisions Determining how resources are shared and the
arbitration strategies employed when there is contention.
Determining the impact of saturation on different
resources. [constraints?]
Resource Mapping in-to modules
The mapping of modules and runtime elements to each
Quality other that is, the runtime elements that are created from
each module; the modules that contain the code for each
Design runtime element.