Software Architecture
Software Architecture
Course Objectives:
No Course Objective
CO1 To enable software engineers to architect software systems using industry best practices
CO2 To enable project managers to understand techniques of software architecture, and help them
take appropriate decisions
CO3 To enable software professionals to take up research activities in the domain of software
architecture
Learning Outcomes:
No Learning Outcome
LO1 Ability to identify architecturally significant requirements and apply appropriate tactics to
address them
LO4 Ability to analyse architecture and determine its appropriateness given the requirement and
determine risks
LO5 Awareness of best practices in design of cloud based applications, distributed applications and
mobile applications
LO6 Awareness of new technologies and their architecture and understanding of situations when to
use these technologies
LO7 Ability evaluate the cost and benefit of different architecture options to aid in decision making
Text Books:
T1 Software Architecture in Practice, Third Edition, Len Bass, Paul Clements, Rick Kazman, Pearson
2013 ISBN:978-93-325-0230-7
T2 Essential Software Architecture, Second Edition, Ian Gorton, Springer 2011
ISBN:9783642191756
Reference Material:
R1 Software Modelling and Design, Hassan Gomaa, Cambridge University Press 2011,
ISBN:9780521764148
R2 Microsoft Application Architecture Guide, Second Edition, Microsoft 2009, ISBN:
9780735627109 [Availability: Online Free]
R3 Enterprise Architecture at Work: Modelling, Communication and Analysis, Third Edition, Marc
Lankhorst et al., Springer 2013, ISBN:9783642296505
R4 Architecting for the cloud:
Developing Multi-tenant Applications for the Cloud on Microsoft Windows Azure, Third Edition,
Microsoft 2012, ISBN:978-1-62114-023-8 [Availability: Online Free]
R5 Architecting for the Cloud
Amazon Web Services – Architecting for the Cloud: Best Practices, January 2011, Jinesh
Varia [Availability: Online Free]
https://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf
R8 ATAM case study – Rockwell Collins – CAAS – Common Avionics Architecture System
Video: https://youtu.be/da9MHLeTwvY
Product description:
https://www.rockwellcollins.com/Products_and_Services/Defense/Avionics/Integrated_Cockpit_
Solutions/Common_Avionics_Architecture_System.aspx
Rockwell Collins case study:
https://resources.sei.cmu.edu/asset_files/TechnicalNote/2003_004_001_14150.pdf
Technologies: https://docs.microsoft.com/en-us/azure/architecture/
NoSQL databases
https://www.dataversity.net/a-brief-history-of-non-relational-databases/#
https://www.couchbase.com/resources/why-nosql
https://www.thoughtworks.com/insights/blog/nosql-databases-overview
Big data analytics
Data mining & analytics: https://www.educba.com/data-mining-vs-data-analysis/
Technologies: https://www.edureka.co/blog/top-big-data-technologies/
Tools: https://www.guru99.com/big-data-analytics-tools.html
Use cases: https://www.datamation.com/big-data/big-data-use-cases.html
Case studies: https://data-flair.training/blogs/big-data-case-studies/
https://businessesgrow.com/2016/12/06/big-data-case-studies/
Hadoop
https://www.mssqltips.com/sqlserverauthor/77/dattatrey-sindol/
https://en.wikipedia.org/wiki/Apache_Hadoop
https://mapr.com/products/apache-hadoop/
https://www.sas.com/en_in/insights/big-data/hadoop.html
Real time analytics
https://www.sisense.com/glossary/real-time-analytics/
https://searchcustomerexperience.techtarget.com/definition/real-time-analytics
https://www.scnsoft.com/blog/real-time-big-data-analytics-comprehensive-guide
Spark
https://spark.apache.org/streaming/
https://databricks.com/glossary/what-is-spark-streaming
Use cases: https://www.qubole.com/blog/apache-spark-use-cases/
Machine learning
https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/machine-learning-
at-scale
Primer: https://www.sas.com/content/dam/SAS/en_us/doc/whitepaper1/machine-learning-
primer-108796.pdf
Steps: https://towardsdatascience.com/6-important-steps-to-build-a-machine-learning-
system-d75e3b83686
Blockchain
Introduction: https://www.pwc.co.uk/financial-services/fintech/assets/blockchain-an-
intro.pdf
Blockchain at Maersk: https://www.computerworld.com/article/3298522/ibm-maersk-
launch-blockchain-based-shipping-platform-with-94-early-adopters.html
Security
OpenId: https://en.wikipedia.org/wiki/OpenID
OAuth: https://tools.ietf.org/html/draft-ietf-oauth-use-cases-01#section-2.1
https://www.csoonline.com/article/3216404/what-is-oauth-how-the-open-
authorization-framework-works.html
De-militarized zone: https://searchsecurity.techtarget.com/definition/DMZ
Firewall:
https://www.cio.com.au/article/365101/top_seven_firewall_capabilities_effective_
application_control/
https://www.fortinet.com/products/next-generation-firewall.html#services
https://www.securedgenetworks.com/blog/11-Features-to-Look-for-in-Your-Next-
Generation-Firewall
LDAP: https://stackoverflow.com/questions/239385/what-is-ldap-used-for
Integration strategies:
Book ‘Enterprise Integration Patterns’ - Gregor Hohpe and Bobby Woolf
IoT
https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/iot/
Case studies.zip
http://highscalability.com/blog/2017/12/11/netflix-what-happens-when-you-press-
play.html
Architecture design
Design strategy
Steps of Attribute-Driven design
Architecting in Agile projects
M7 Architectural patterns T1
Broker
Client server R14
Peer-to-Peer
Shared data
Map-reduce
Multi-tier
M8 Integration strategies T1 RL 17.1 Introduction and
File transfer, Messaging, RPC, WebSockets, Virtualization basic
API Gateways RL 17.2 IAAS and Data storage
RL 18.1 Quality attribute revisited
Architecting for Cloud RL 18.2 Multi-Tenant Architecture,
Benefits of Cloud based approach R4 Micro Services, CAP Theorem
Developing Multi-tenant Applications for the R5
Cloud
Amazon Web Services tools
Trends in Cloud app development –
languages, DB, Micro-services, CI / CD
Technologies R10
Distributed Cache
Containers
Serverless architecture
R10
Failure management
CAP theorem
Failure management in distributed systems
M9.2 New technologies & their architecture R11 Recording not available
R12
Use cases and architecture of:
Big data
o NoSQL Databases
o Hadoop
o MapReduce
o Real-time analytics
Artificial intelligence & Machine Learning
Block Chain
IoT
Security: AuthID, OAuth
Version 1.4.1
Post-CS-1 T1 - 01,
Contact Session-6, Module M3/M4 Architectural Requirement Design/ Documentation (Aug 26)
Time Type Description References
Pre-CS-6 RL 19.1 RL 19.1 Architecture and Requirements
RL 19.2 RL 19.2 Designing the Architecture
RL 8.2 RL 8.2 Introducing Agile methodology
RL 7.1 RL 7.1 Introduction to OO Design
RL 7.2 RL 7.2 Introduction to UML
RL 8.1 RL 8.1 Documenting Architecture using UML
RL 8.3 RL 8.3 Rational Unified Process
RL 20.1 RL 20.1 Designing and Documenting the Architecture # 2
During CS-6 CS-6 Capturing Architecturally Significant Requirements
Architecture design
Documenting Software Architecture
Post-CS-6 T1 - 15, 16, 17
R7 Identifying Architecturally Significant Functional
Requirement
T1 – 18
Contact Session-7, Module M5 ATAM (Sept 2)
Time Type Description References
Pre-CS-7
Post-CS-7 T1 – 21
R2 Microsoft Application Architecture Guide, Second
Edition, Microsoft 2009, ISBN: 9780735627109 [Availability:
Online Free]
R8 ATAM case study – Rockwell Collins – CAAS –
Common Avionics Architecture System
R9 ATAM case study: Battlefield Control System:
Post-CS-9 T1
R14 Architecture patterns – Case studies
Contact Session-14, Module M9 Big data, Analytics, IoT, Machine Learning (Nov 4)
Time Type Description References
Pre-CS-14
During CS- CS-14 New technologies & their architecture; Big Data; NoSQL;
14 Security; Machine Learning.
Post-CS-16 T1
Course Contents
Contact sessions:
For each module there will be a contact session. The contact session is expected to cover:
Students may be given home work at the end of each contact session.
Assignments:
Activity:
Objective: To gain experience in architecting real life applications in domains such as Retail, Transportation,
Healthcare, Hospitality, etc. Example systems: Swiggy, Uber, an IoT system to monitor health of industrial air
conditioners.
Activity
1. Identify top 3 Architecturally Significant Requirements (ASRs) and write them in the form of a Utility
tree. Why are these architecturally significant?
2. Describe in detail, the tactics you recommend for each ASR. For example, if caching is a tactic you
recommend, please mention what you will cache, what tool you would use, how it will work, etc.
3. Draw 2 software architecture diagrams – component & connection view and deployment view – to
understand how the system works.
4. Indicate important messages between components by labelling the connections in the C&C view. Also
indicate the communication method used.
5. Draw sequence diagram for one major scenario (use case). Mention the scenario.
6. State the architecture patterns used. Explain, where in the architecture, these patterns have been used.
7. What did you learn by doing this assignment? Mention 3 key learnings. One slide per person.
Evaluation criteria:
a) Easy-to-understand diagrams
b) Clarity of description
c) Correctness of work products
Evaluation Components