SS ZG653 (RL1.2) : Software Architecture: BITS Pilani
SS ZG653 (RL1.2) : Software Architecture: BITS Pilani
SS ZG653 (RL1.2) : Software Architecture: BITS Pilani
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)
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
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