Sa - CS01
Sa - CS01
Software Architecture – CS -1
Topics To Be Covered
❑ Text Books
– Len Bass et al, Software Architecture in Practice, Pearson, Third
(or Second) Edition, ISBN 9789332502307
– F. Buschmann et al, Pattern Oriented Software Architecture –
Volume1, Wiley, 1996
Resulting System
Business Goal
Request
(Txn or Info)
Internet
It shows:
Business Requirement
Software Design
Specification SA
The reason is to justify why is this required from the perspective of a stake
holder who has vested interest in it.
What we understand
• The system has 5
elements
• They are
interconnected
• One is on the top
of another
10/5/2024 SS ZG653 19
What it does not address?
• Visible responsibilities
– What do they do?
– How does their function relate to the system?
– How have these elements been derived, is there any
overlap?
• Are these processes, or programs ?
– How do they interact when the software executes?
– Are they distributed?
• How are they deployed on a hardware ?
• What information does the system process?
• Significance of connections
– Signify control or data, invoke each other,
synchronization
– Mechanism of communications
• Significance of layout
– Does level shown signify anything?
– Was the type of drawing due to space constraint?
• 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
• A behavioral description
– describing how the structural elements execute
“important” and “critical” scenarios
• E.g. how does the system authenticates a mobile user?
• How does the system processes 1 TB of data in a day?
• How does it stream video uninterruptedly during peak
load?
– These scenarios are mainly to implement various
quality attributes
https://www.infoq.com/articles/why-architectural-diagrams/
Example of design of Point-of-
Sale system (partial design)
addLineItem(itemID, quantity)
2 : makeLineItem(spec, quantity)
:Register
:ProductCatalog
:ProductSpecification sli:SalesLineItem
:SalesLineItem
Structure : Views :
A set of elements itself as they A view is a representation of
exists in a software or hardware. architectural elements as written
by and read by system
Example: A Module Structure is stakeholders.
the set of the systems module and
their organization. Example: A Module view is the
representation of a structure
documented according to a
template in a chosen notation.
3.Allocation Structure
❑ What processor does each software element execute on?
❑ In what directories or files is each element stored during development, testing, and system building?
❑ What is the assignment of each software element to development teams?
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.
Resource Information
Decomposition Module “is’ a sub module of hiding, encapsulation Modifiability
allocation,
Incremental
Layers Layer Uses the service of Development, Virtual Portability
Machines
Class, Object-Oriented Design Modifiability
Class Is an instance of
Object Systems Extensibility
Modifiability
(One, many) to (one, Consistency and
Data Models Data Entity Performance
many) performance
CONFIDENTIAL - RESTRICTED CIRCULATION 39
Relationship Among the Structures
Quality
Software
Element Type Relations Useful for Attribute
Structure
Affected
Service, Enterprise
Software Bus
C&C (helps in Scheduling Analysis,
Structure Service Runs concurrently Interoperability
distributing with the Performance
with Modifiability
connected Analysis
components),
Registry
Quality
Software
Element Type Relations Useful for Attribute
Structure
Affected
Infrastructure team
End-user • concerned with topology, communication, security
• concerned with functionality • essentially allocation (deployment). Other people also
• essentially module structure call it as deployment view
Layered pattern :
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.
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.,).
7. The architecture dictates the structure of an organization, or vice versa (Work Breakdown
structure).
CONFIDENTIAL - RESTRICTED CIRCULATION 50
Why is Software Architecture so Important?
8. An architecture can provide the basis for evolutionary prototyping.
9. An architecture is the key artifact that allows the architect and project manager to reason
about cost and schedule.
10. An architecture can be created as a transferable, reusable model that forms the heart of a
product line.
13. An architecture can be the foundation for training a new team member
CONFIDENTIAL - RESTRICTED CIRCULATION 51
Many Contexts of Software Architecture
Contexts
2. Project Life
1. Technical 3. Business 4. Professional
Cycle
1. Technical : What technical role does the software architecture play in the system or
system of which it’s a part?
2. Project Life Cycle : How does a software architecture relate to the other phases of a
software development life cycle?
3. Business : How does the presence of a software architecture affect an organizations
business environment?
4. Professional : What is the role of a software architect in an organization or in a
development project?
CONFIDENTIAL - RESTRICTED CIRCULATION 52
1.Technical Context of Software Architecture
2 Availability How components take over for each other in the event of a failure
3 Usability Isolating the details of user interface & elements responsible for
user experience
Irrespective of the software development models, the software architecture will help achieving the
following objectives across the project life-cycle.
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
7. Ensuring that implementation conforms to the architecture
Architecture
Non-architectural Solutions
Maintenance : Modifiability