SS ZG653 (RL1.2) : Software Architecture: BITS Pilani

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 12

SS ZG653 (RL1.

2): Software Architecture


A Brief History of Software Architecture
BITS Pilani
Pilani|Dubai|Goa|Hyderabad Instructor: Prof. SantonuSarkar
Informally what is meant by (Software)
Architecture
• Essentially a blueprint of a software system
that helps stakeholders to understand how the
system would be once it is implemented
• What’s should be there in this blueprint?
– A description at a higher level of abstraction than
objects and lines of codes
So that
– Stakeholders understand and reason about without
getting lost into a sea of details

4/12/2019 SS ZG653 2
Who are Stakeholders?
A complex software has multiple stakeholders who
expect certain features of the software
Stakeholder Area of Concern
Chief Technologist  Does it adhere to organization standards ?
Database Designer  What information to be stored, where, how, access mechanism???
 Information security issues?
Application Development team  How do I implement a complex scenario?
 How should I organize my code?
 How do I plan for division of work?
Users/Customers  Does it perform as per my requirement?
 What about the cost/budget?
 Scalability, performance and reliability of the system?
 How easy it is to use?
 Is it always available?
Infrastructure Manager  Performance and scalability
 Idea of system & network usage
 Indication of hardware and software cost, scalability, deployment location
 Safety and security consideration
 Is it fault tolerant-crash recovery & backup
Release & Configuration Manager  Build strategy
 Code management, version control, code organization
System Maintainer  How do I replace of a subsystem with minimal impact ?
 How fast can I diagnosis of faults and failures and how quickly I can recover?

4/12/2019 SS ZG653 3
Why Architecture needs to be
described?
• Each stakeholder has his own
Any Large Software interpretation of the systems
Corporation – Sometimes no understanding at all
– Architect is the middleman who co-
 Hundreds of concurrent ordinates with these stakeholders
projects being executed • How will everyone be convinced that his
 10-100 team size expectations from the system will be
satisfied?
 Projects capture
requirements, there are • Even when the architect has created the
architects, and large solution blueprint, how does she
Development teams handover the solution to the developers?
 Architect start with
• How do the developers build and ensure
requirements team & critical aspects of the system?
handover to Development • Misunderstanding leads to incorrect
teams implementation
– Leads to 10 times more effort to fix at a
later stage

4/12/2019 SS ZG653 4
Software Architecture Definition
• No unique definition though similar…
– (look at http://www.sei.cmu.edu/architecture/start/glossary/classicdefs.cfm )
• .. “structure or structures of the system, which comprise software
elements, the externally visible properties of those elements, and the
relationships among them” (Bass, Clements and Kazman, Software Architecture
in Practice, 2nd edition)

• “description of elements from which systems are built, interactions among


those elements, patterns that guide their composition, and constraints on
these patterns. In general, a particular system is defined in terms of a
collection of components and interactions among these components”
Shaw and Garlan “Software Architecture: Perspectives on an Emerging Disciplines”

• “description of the subsystems and components of a software system and


the relationship between them. Subsystems and components are typically
specified in different views to show the relevant functional and
nonfunctional properties of a software system”
F. Buschmann et al, Pattern Oriented Software Architecture

4/12/2019 SS ZG653 5
Is this Architecture

What we understand
• The system has 5
elements
• They are
interconnected
• One is on the top
of another

Typically we describe architecture as a collection of


diagrams like this

4/12/2019 SS ZG653 6
What’s Ambiguous?
• 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?

4/12/2019 SS ZG653 7
What’s Ambiguous?
• 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

4/12/2019 SS ZG653 8
What should Architecture
description have?
• A structure describing
– Modules
• Services offered by each module
• and their interactions- to achieve the functionality
– Information/data modeling
– Achieving quality attributes
– Processes and tasks that execute the software
– Deployment onto hardware
– Development plan

4/12/2019 SS ZG653 9
What should Architecture
description have?......
• 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

4/12/2019 SS ZG653 10
Architecture of Windows
https://http://blogs.msdn.com/b/hanybarakat/archive/2007/02/25/deeper-into-windows-architecture.aspx

4/12/2019 SS ZG653 11
Architecture of Android
http://www.techotopia.com/index.php/An_Overview_of_the_Android_Architecture

4/12/2019 SS ZG653 12

You might also like