SA - CS01
SA - CS01
Architecture
Software Architecture – CS -1
Topics To Be Covered
❑Software architecture – definition,
❑Need for architecture,
❑Architecture role,
❑Structures and Views
❑Patterns of various architectures
❑Contexts of Architecture
Architecture
Business Goal
Resulting
System
It’s
a
connecting bridge between Business Goal and the
Resulting System
CONFIDENTIAL - RESTRICTED CIRCULATION 5
Architecture of a Car
CONFIDENTIAL - RESTRICTED CIRCULATION 6
Example of a building
architecture
Example of a building
architecture
Based on these pictures, how can we define building architecture?
Front end of
application Internet
(GUI)
Request
(Txn or Info)
Back end
User 3
Front end of
application
Web (GUI)
User 2
Front end of
application
(GUI)
Inq / update
server / of
App serverDB
application
(JDBC)
DB server
It shows:
Business
Requirement
Software Design
Specification SA
Who are
all the stake holders?
Sl. # Stake Holder Expectation
What business purpose does it solve? How unique is it from
Managing the competition?
1 Director
Does it adhere to organization standard? Ex: A cloud based
mail service provider would focus only on messaging
2 Chief Technology Officer technology
Users/ Scalability,
5 Customers Performance and Reliability: Ease of use
Hardware system required : CPU, RAM and Buffer Memory
specifications : Security requirements : Network standards :
6 Infrastructure Manager Business continuity plans an backup mechanisms.
Release and Build strategy (Daily, weekly , fortnightly) Code Management
configuration Manager at the highest level
7.
Software Architecture -
Definition
The software architecture of a
system is the set of structures needed to reason about
the system which comprise software elements,
relationship among them and properties of both.
The reason is to justify why is this required from the perspective of a stake
holder who has vested interest in it.
10/5/2024 SS ZG653 19
What it does
not address? .. Continued
• Significance of
connections
Then,
what an architecture should address?
• A structure describing
– Modules
• Services offered by each
module
• Their interactions- to achieve
the functionality
– Information/data modeling
– Achieving
quality
attributes
– Processes and tasks
that execute the
software – Deployment
onto hardware
– Development plan
CONFIDENTIAL - RESTRICTED CIRCULATION 22
Then, what
an architecture should address? .., contd
•A
behavioral description
– describing how
the
Example of architecture
https://www.infoq.com/articles/why-architectural-diagrams/
:ProductCatalog
https://http://blogs.msdn.com/b/hanybarakat/archive/2007/02/25/deeper-into-windows-architecture.aspx
This is only a part of architecture showing various modules and components
CONFIDENTIAL - RESTRICTED CIRCULATION 26
Architecture of Android
http://www.techotopia.com/index.php/An_Overview_of_the_Android_Architecture
Publish-Subscribe is a
modus operandi for
exchange of
information: A Function call – Module “A” calling some components of
“Module B” through a call manager
❑
non-functional requirements
• 1 ,2 and 3 as a stand alone doen not
form software architecture
• •
10/5/2024 SS ZG653 29
Structure Vs.
Views
Views :
Structure
:
architectural elements as written
by and read by system
A view is a representation of
the systems
module and
stakeholders.
Example: A Module
Structure is the set of
their organization.
documented according to a
Example: A Module view is the template in a chosen notation.
representation of a structure
Component - Connector
View
Example (Client-Server)
CONFIDENTIAL - RESTRICTED CIRCULATION 31
3 Types of Structures
2. Component and
1. Module Structure
❑ ❑ Modules are the basis
Static in Nature of work assignments
for programming
Teams Connector (C-C) Structure
❑ Dynamic in nature ❑
Focus on the way
❑ Modules (A set of code ❑
units) are assigned Ex., Team “A” work on
specific computational D/B, Team “B” on
responsibilities Business Rues &
Team “C” on User
Interface
elements interact with
each other at run-time
to carryout the system
functions elements
❑ and one
or more
Connectors (vehicle external
for communication)
Elements are run-time
components
environments
❑
(responsible for
3.Allocation Structure
Ex: What processor
computation) & does each software
❑ Dynamic in nature ❑ element execute on?
Show relationship
between software
❑ What other
software does
it actually use
and depend on?
2. Component and
Connector (C-C) Structure will bring answers to :
3.Allocation Structure
❑
What
Class Structure: The class structure allows one to reason about reuse and the
incremental addition of functionality. If any documentation exists for a
project that has followed an object-oriented analysis and
design process, it is typically this structure.
5. Data
Model :
The
data
model describes the static
information structure in terms of data entities and their relationships. For
example, in a banking system, entities will typically include
Account, Customer, and Loan. Account has several attributes, such as account number, type
(savings or checking), status, and current balance.
CONFIDENTIAL - RESTRICTED CIRCULATION 36
Component
and Connector Structures
1. Service Structures: The units here are services that
interoperate with each other
by service coordination mechanisms such as SOAP(Simple Object
Access Protocol).This will help engineer a system composed of components
developed anonymously and independently of each other.
2. Concurrency structure : This component-and-connector
structure allows the
architect to determine opportunities for parallelism and the locations where
resource contention may occur. The concurrency structure is used early in the
design process to identify the requirements to manage the issues associated with
concurrent execution.
CONFIDENTIAL - RESTRICTED CIRCULATION 37
Allocation Structures
1. Deployment Structures: The deployment structure shows
how software is
assigned to hardware processing and communication elements. This structure can
be used to reason about performance, data integrity, security, and availability.
2.
Implementation structure : This structure shows how software elements (usually
Performance, Performance,
Component Allocated to
s, Availability, Security,
Migrated to Availability
Hardware Security Analysis
elements
Software
Structure
Deployment
Allocation
Structure
Implementation
Work
Assignment
opinions exist
• We will consider 4+1 view. This has been
institutionalized as Rational Unified Process
of Architecture description
Infrastructure team
End-user
• concerned with Use-case- Binds all the four views together and
functionality • essentially describes the behavior of the system in a
module structure semi-structured text
Development
Architect/Integrator
Physical View
concerned with software management • essentially
Use case/ Scenarios allocation (implementation and work assignment)
Process View
10/5/2024 SS ZG653 42
Two views of a
Client-Server System
Module Decomposition View of
Client-Server Architecture
11
Components
and 10
Connections
CC Model
View of
Architectural
Patterns –
Module Type
Layered pattern :
Layered
Architecture - Example
CONFIDENTIAL -
RESTRICTED CIRCULATION 45
Architectural
Patterns : C-C Type
Client – Server
Architecture
Core Banking System is a classical Example CONFIDENTIAL -
RESTRICTED CIRCULATION 47
Architectural Patterns : Allocation Type
distribute and
allocate the components of a
system in distinct
subsets of hardware and
software, connected
by some
communication medium.
Competence Center & Platform
What
Makes a
Good Architecture?
Structural Rules of Thumb
Process 1. The architecture should feature well-defined modules
Perceptiveness whose functional responsibilities are assigned on
the principles of information hiding and
1. The architecture should be the product of a single
separation of concerns
architect or a small group of architects with
an identified technical leader 2. Your quality attributes should be achieved using
well-known architectural patterns and tactics 3. The
2. The architect (or architecture team) should, on an architecture should never depend on a particular
on-going basis, base the architecture on a
version of a commercial product or tool.
prioritized list of well-specified quality
4. Modules that produce data should be separate from
attribute requirements
modules that consume data
3. The architecture should be documented using
5. Don't expect a one-to-one correspondence between
views. The views should address the
modules and components (Place for parallelism)
concerns of the most important stakeholders
6. Every process should be written so that its
in support of the project timeline
assignment to a specific processor can be easily
4. The architecture should be evaluated for its ability changed, perhaps even at runtime
to deliver the system's important quality
7. The architecture should feature a small number of
attributes.
ways for components to interact
5. The architecture should lend itself to incremental 8. The architecture should contain a specific (and small)
implementation, to avoid having to integrate set of resource contention areas, the resolution
everything at once as well as to discover of which is clearly specified and maintained.
problems early
Why is Software
Architecture so Important?
1.
An Architecture will inhibit or enable a
system's driving quality attributes (performance, modifiability, security, scalability,
interoperability etc).
2.
The decisions made in architecture allow you
to reason about and manage change as the system evolves (local, non-local and
architectural).
3.
The analysis of architecture enables early prediction of a
system's qualities without waiting for the complete system developed.
4.
A documented architecture enhances communication among
stakeholders (customer, user, Project Manager, coder, tester).
5.
The architecture is a carrier of the earliest and hence most
fundamental, hardest-to-change design decisions (Singe processor or distributed systems
, layered or not, encryption required or not, OS dependency, etc.,).
6.
An architecture defines a set of constraints on subsequent implementation
(Trade off on quality attributes).
7.
The architecture dictates the structure of an organization, or vice versa (Work
Breakdown structure). CONFIDENTIAL - RESTRICTED CIRCULATION
50
Important?
8. An architecture can provide the basis for evolutionary prototyping.
to reason
schedule.
the heart of a
product line.
developers ,
complexity.
13. An architecture can be the foundation for training a new team member
CONFIDENTIAL - RESTRICTED CIRCULATION 51
2. Project Life
1. Technical
(performance,
modifiability, security,
scalability, interoperability etc.,)
2 Availability How components take over for each other in the event of a failure
Isolating the details of user interface & elements responsible
Usability for user experience
3
Testability of individual
4 Testability elements
2. Software
Waterfall
Iterative
Agile
Model-Driven
1.
Making
Business Case for the system (Cost, Time and Approval)
2. Understanding
the architecture
significant
requirements (finite-state machine model for safety
critical systems: use case and scenario for object
oriented analysis: prototyping) 3. Creating or selecting the architecture
4.
Documenting & Communicating the architecture
5. Analyzing or evaluating the architecture (ATAM :
Architecture and Trade-off Analysis Method) 6.
Implementing and testing the system
3.
Software Architecture in a Business context
Architecture
Non-architectural Solutions
The
Business Goals of a Development
organization for acquiring a software system is different from a customer
organization.
CONFIDENTIAL - RESTRICTED CIRCULATION 55
4.
Software Architecture in a Professional Context
Must be able to meet requirements of
different stakeholders:
Duties
Marketing : Unique
features, Low cost, parity with competition,
short time to market
Architect
Maintenance :
End User: UI, performance,
reliability , security Modifiability
In
summary
✓ SA
Reference Architecture
✓ STRUCTURES & VIEWS are the
basic Software Architectural
Engineering
Web Links
What is Software Architecture? (youtube.com)
(youtube.com)
CONFIDENTIAL - RESTRICTED CIRCULATION 60