[go: up one dir, main page]

0% found this document useful (0 votes)
52 views12 pages

Software Architectures Course Overview

Uploaded by

Itisha sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views12 pages

Software Architectures Course Overview

Uploaded by

Itisha sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

BIRLA INSTITUTE OF TECHNOLOGY & SCIENCE, PILANI

WORK INTEGRATED LEARNING PROGRAMMES


M Tech (Software Systems) in Collaboration with WIPRO
I Semester 2022 – 2023

COURSE HANDOUT
(Flipped with 16 Sessions)

Part A: Content Design

Course Title Software Architectures


Course No(s) SEWP ZG651
Credit Units
Course Author

Course Objectives:

No Course Objective

CO1 Provide an industry approach towards foundation of Software Architecture for professionals
who want to understand this discipline.

CO2 Understand the various design and architectural aspects of the discipline and its building blocks
to get familiar with the current practices.

CO3 Understand both enterprise and modern application architecture that leverages Cloud and
Mobile technologies.

Text Books:

No Author(s), Title, Edition, Publishing House


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 Books:

No Author(s), Title, Edition, Publishing House


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 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 Amazon Web Services – Architecting for the Cloud: Best Practices, January 2011, Jinesh Varia
[Availability: Online Free]
[Link]
R6 Architecting Mobile Solutions for the Enterprise – Dino Esposito, 2012, Microsoft Press, ISBN:
978-0-7356-6303-2

Content Structure

Module List of Topic Title Text/Ref Book/external resource


No

M1 Introduction to Software Architecture T1 - 01, 02, 03, 24

 What is Software Architecture? Introduction to Software SA_RL 1.1


 Definitions of Software Architecture Architectures
 Architecture Structure and Patterns 1. Who are Stakeholders? SA_RL 1.2.1
 Good architecture 2. Why Architecture needs to SA_RL 1.2.2
 Importance of Software architecture be described?
 Contexts of Software architecture Software Architecture - A SA_RL 1.3
 Architecture competence formal Definition
Introduction to Styles, Views SA_RL 1.4
& Structures
Structures and their inter- SA_RL 1.5
relationships
Software Structure and Views SA_RL 1.6
Application of Architectural SA_RL 1.7
Structures
M2 Software Quality Attributes T1 - 04, 05, 06, 07, 08, 09, 10, 11, 12

 Understanding Quality Attributes 1. Quality Attributes and SA_RL 2.1


 Interoperability Quality Attribute Scenarios SA_RL 2.2
 Testability 2. Architectural Tactics
 Usability Usability and its tactics SA_RL 2.3
 Performance Importance of Availability SA_RL 2.4.1
 Scalability Availability Tactics SA_RL 2.4.2
 Modifiability Availability Design Decisions SA_RL 2.4.3
 Security and Metrics
 Availability 1. Modifiability SA_RL 2.5.1
 Integration 2. Modifiability Tactics SA_RL 2.5.2
 Other Quality Attributes Modifiability - Design SA_RL 2.5.3
 Design Trade-Offs Considerations
1. Performance SA_RL 2.6.1
2. Performance Tactics SA_RL 2.6.2
Performance - Design SA_RL 2.6.3
Considerations
Importance of Security SA_RL 2.7.1
[Link] - Tactics SA_RL 2.7.2
2. Security - Design SA_RL 2.7.3
Considerations
Testability SA_RL 2.8.1
1. Testability and its tactics SA_RL 2.8.2
2. Testability - Design SA_RL 2.8.2
Considerations
1. Interoperability SA_RL 2.9.1
2. Interoperability - Tactics SA_RL 2.9.2

M3 Architecture requirements and design T1 - 15, 16, 17

 ASR from Requirements documents Architecture and SA_RL 3.1


 Stakeholder interviews Requirements
 Identifying business goals Quality Attribute Workshop SA_RL 3.2
 Building a Utility tree and Business Goals
 Design strategy Elicitation of Business Goals SA_RL 3.3
 Steps of Attribute-Driver design & ASR Utility Tree
 Agile Architecture Architecture Design Strategy SA_RL 3.4
 Agile Methods Attribute Driven Design SA_RL 3.5
 Example Introducing Agile SA_RL 3.6
methodology
M4 Documenting Software Architecture T1 – 18

 Uses and Audiences 1. Introduction to OO Design SA_RL 4.1.1


 Notations 2. Object Oriented SA_RL 4.1.2
 Architecture Views, Choosing Views, Programming
Combining Views Inheritance, Interfaces & SA_RL 4.2
 Template and Notations Managing Objects
 Documentation Package and Behaviour UML and UML Diagrams SA_RL 4.3.1
 Quality Attributes Overview
 Documentation in Agile Development UML and UML Diagrams SA_RL 4.3.2
Overview
Documenting Architecture SA_RL 4.3.3
using UML
Rational Unified Process SA_RL 4.4

M5 Case Study: R2- 04, 05, 06, 07, 08, 09

Layer Guidelines – Presentation, Business, Data


Layer, Service

Architecture Implementation, Testing, T1- 19, 20, 21


Reconstruction, Conformance, Evaluation

 Architecture implementation
 Testing
 Reconstruction process
 Raw view extraction
 Database construction
 View fusion
 Finding violations Recording not available
 Factors for evaluation
 Trade off analysis
 Lightweight evaluation

M6 Architectural patterns to understand decision T1-13


making to select a particular pattern
What is a pattern? SA_RL 6.1.1
 Layered Introduction to Architectural SA_RL 6.1.2
 Broker Patterns
 MVC 1. Layered Pattern SA_RL 6.2.1
 Pipe & Filter 2. Example - OSI 7 - layer SA_RL 6.2.2
 Client server model
 Peer-to-Peer Implementing the Layered SA_RL 6.2.3
 Publish-subscribe Pattern
 Shared data Pipe and Filter Pattern SA_RL 6.3.1
 Multi-tier Implementing the Pipe and SA_RL 6.3.2
Filter Pattern
Blackboard SA_RL 6.4
Broker Pattern SA_RL 6.5.1
Broker Pattern - Structure SA_RL 6.5.2
and Implementation
Introduction to MVC SA_RL 6.6.1
MVC Implementation SA_RL 6.6.2
1. Microkernel pattern SA_RL 6.7.1
2. Implementation of SA_RL 6.7.2
Microkernel SA_RL 6.7.3
3. Example - Microkernel
Pattern
Adaptable Systems and SA_RL 6.8.1
Reflection Pattern
JAVA reflection mechanism SA_RL 6.8.2
Reflection Liabilities & Tactics SA_RL 6.8.3

M7 Architecture in the Cloud T1-26


R2-26
 Cloud Definitions R4- Page 1 – 111
 Service Models R5,
 Architecting for the Cloud R6 - 03, 07
 Benefits of Cloud based approach
 Design Issues 1. Service Oriented SA_RL
 Case Study: Developing Multitenant Architectures and cloud 7.1.1
Applications for the Cloud Computing
 Case Study: Amazon Web Services – Cloud [Link] Deluge and cloud SA_RL
Architecture: Best Practices computing 7.1.2
 Case Study – Mobile Architecture 1. System Virtualization and SA_RL
 Case Study – Patterns of Mobile Application Hypervisors 7.1.3
Development 2. Types of virtualizations and
memory management SA_RL
7.1.4
Network & Data Storage SA_RL
Basics 7.2.1
Data Storage in the Cloud SA_RL
7.2.2
1. Cloud Architecture and SA_RL
types 7.3.1
2. Amazon Web Service and SA_RL
EC2 7.3.2
1. Quality Attributes Revised - SA_RL
Failure Estimation 7.4.1
2. Case Study - Netflix
SA_RL
7.4.2
Multi-Tenant Architecture SA_RL 7.5
1. Micro Services - SA_RL
Introduction 7.6.1
[Link] Services - Design SA_RL
Principles 7.6.2
[Link]-tolerant Architectural
Patterns SA_RL
7.6.3
CAP Theorem SA_RL 7.7

M8 Architecture – Management and Governance T1-22

 Planning
Recording not available
 Organizing

 Measuring
 Governance

M9 Economic analysis of architectures T1-23

 Decision-making context Recording not available


 Basis for economic analysis
 CBAM

Learning Outcomes:

No Learning Outcomes

LO1 Acquire knowledge of software architecture discipline and interpret the various attributes that
pertains to the domain of application development.

LO2 Analyse patterns used for modern application design relate it with new technology such as Cloud
and mobile.

LO3 Examine application architecture from the perspective of quality attributes to revise an existing
design or develop a new design or make review and make recommendations for a given design.

LO4 Illustrate the importance of requirements, documentation and able to write them

LO5 Measure and assess application design and contribute to design decision.

Part B: Contact Session Plan


Academic Term I Semester 2022-2023
Course Title Software Architectures
Course No SEWP ZG651
Lead Instructor

Contact Sessions:

Contac List of Topic Title Text/Ref Book/external resource


t
Session

1 Introduction to Software Architecture T1 - 01, 02, 03, 24

 What is Software Architecture? Introduction to Software SA_RL 1.1


 Definitions of Software Architecture Architectures
 Architecture Structure and Patterns 1. Who are Stakeholders? SA_RL 1.2.1
 Good architecture 2. Why Architecture needs SA_RL 1.2.2
 Importance of Software architecture to be described?
 Contexts of Software architecture Software Architecture - A SA_RL 1.3
 Architecture competence formal Definition
Introduction to Styles, Views SA_RL 1.4
& Structures
Structures and their inter- SA_RL 1.5
relationships
Software Structure and SA_RL 1.6
Views
Application of Architectural SA_RL 1.7
Structures

2,3 Software Quality Attributes T1 - 04, 05, 06, 07, 08, 09, 10, 11, 12

 Understanding Quality Attributes 1. Quality Attributes and SA_RL 2.1


 Interoperability Quality Attribute Scenarios SA_RL 2.2
 Testability 2. Architectural Tactics
 Usability Usability and its tactics SA_RL 2.3
 Performance Importance of Availability SA_RL 2.4.1
 Scalability Availability Tactics SA_RL 2.4.2
 Modifiability Availability Design Decisions SA_RL 2.4.3
 Security and Metrics
 Availability 1. Modifiability SA_RL 2.5.1
 Integration 2. Modifiability Tactics SA_RL 2.5.2
 Other Quality Attributes Modifiability - Design SA_RL 2.5.3
 Design Trade-Offs Considerations
1. Performance SA_RL 2.6.1
2. Performance Tactics SA_RL 2.6.2
Performance - Design SA_RL 2.6.3
Considerations
Importance of Security SA_RL 2.7.1
[Link] - Tactics SA_RL 2.7.2
2. Security - Design SA_RL 2.7.3
Considerations
Testability SA_RL 2.8.1
1. Testability and its tactics SA_RL 2.8.2
2. Testability - Design SA_RL 2.8.2
Considerations
1. Interoperability SA_RL 2.9.1
2. Interoperability - Tactics SA_RL 2.9.2

4,5 Architecture requirements and design T1 - 15, 16, 17

 ASR from Requirements documents Architecture and SA_RL 3.1


 Stakeholder interviews Requirements
 Identifying business goals Quality Attribute Workshop SA_RL 3.2
 Building a Utility tree and Business Goals
 Design strategy Elicitation of Business Goals SA_RL 3.3
 Steps of Attribute-Driver design & ASR Utility Tree
 Agile Architecture Architecture Design SA_RL 3.4
 Agile Methods Strategy
 Example Attribute Driven Design SA_RL 3.5
Introducing Agile SA_RL 3.6
methodology

6 Documenting Software Architecture T1 – 18

 Uses and Audiences 1. Introduction to OO Design SA_RL 4.1.1


 Notations 2. Object Oriented SA_RL 4.1.2
 Architecture Views, Choosing Views, Programming
Combining Views Inheritance, Interfaces & SA_RL 4.2
 Template and Notations Managing Objects
 Documentation Package and Behaviour UML and UML Diagrams SA_RL 4.3.1
 Quality Attributes Overview
 Documentation in Agile Development UML and UML Diagrams SA_RL 4.3.2
Overview
Documenting Architecture SA_RL 4.3.3
using UML
Rational Unified Process SA_RL 4.4

7, 8 Case Study: Layer Guidelines - Presentation, Business, R2-04, 05, 06, 07, 08, 09
Data Layer, Service

Architecture Implementation, Testing, T1- 19, 20, 21


Reconstruction, Conformance, Evaluation

 Architecture implementation
 Testing
 Reconstruction process
 Raw view extraction
 Database construction Recording Not Available
 View fusion
 Finding violations
 Factors for evaluation
 Trade off analysis
 Lightweight evaluation

EC-2 Mid Semester Exam Syllabus Contact Sessions 1-8


9, Architectural patterns to understand decision T1-13
10,11 making to select a particular pattern
What is a pattern? SA_RL 6.1.1
 Layered Introduction to Architectural SA_RL 6.1.2
 Broker Patterns
 MVC 1. Layered Pattern SA_RL 6.2.1
 Pipe & Filter 2. Example - OSI 7 - layer SA_RL 6.2.2
 Client server model
 Peer-to-Peer Implementing the Layered SA_RL 6.2.3
 Publish-subscribe Pattern
 Shared data Pipe and Filter Pattern SA_RL 6.3.1
 Multi-tier Implementing the Pipe and SA_RL 6.3.2
Filter Pattern
Blackboard SA_RL 6.4
Broker Pattern SA_RL 6.5.1
Broker Pattern - Structure SA_RL 6.5.2
and Implementation
Introduction to MVC SA_RL 6.6.1
MVC Implementation SA_RL 6.6.2
1. Microkernel pattern SA_RL 6.7.1
2. Implementation of SA_RL 6.7.2
Microkernel SA_RL 6.7.3
3. Example - Microkernel
Pattern
Adaptable Systems and SA_RL 6.8.1
Reflection Pattern
JAVA reflection mechanism SA_RL 6.8.2
Reflection Liabilities & Tactics SA_RL 6.8.3

12, 13, Architecture in the Cloud T1-26, R2-26, R4- Page 1 - 111, R6-03, 07
14
 Cloud Definitions 1. Service Oriented SA_RL 7.1.1
 Service Models Architectures and cloud
 Architecting for the Cloud Computing SA_RL 7.1.2
 Benefits of Cloud based approach [Link] Deluge and cloud
 Design Issues computing
 Case Study: Developing Multitenant 1. System Virtualization and SA_RL 7.1.3
Applications for the Cloud Hypervisors
 Case Study: Amazon Web Services - Cloud 2. Types of virtualizations SA_RL 7.1.4
Architecture: Best Practices and memory management
 Case Study - Mobile Architecture Network & Data Storage SA_RL 7.2.1
 Case Study - Patterns of Mobile Application Basics
Development Data Storage in the Cloud SA_RL 7.2.2
1. Cloud Architecture and SA_RL 7.3.1
types SA_RL 7.3.2
2. Amazon Web Service and
EC2
1. Quality Attributes Revised SA_RL 7.4.1
- Failure Estimation
2. Case Study - Netflix SA_RL 7.4.2
Multi-Tenant Architecture SA_RL 7.5
1. Micro Services - SA_RL 7.6.1
Introduction SA_RL 7.6.2
[Link] Services - Design
Principles SA_RL 7.6.3
[Link]-tolerant Architectural
Patterns
CAP Theorem SA_RL 7.7

15 Architecture – Management and Governance T1-22

 Planning
 Organizing Recording Not Available
 Measuring
 Governance

16 Economic analysis of architectures T1-23

 Decision-making context Recording Not Available


 Basis for economic analysis
 CBAM

EC-3 Comprehensive Examination Syllabus Contact Sessions 1-16

Learning Exercises and Case Studies:

Faculty needs to provide learning exercise, reading notes and case studies and include them in EC-1 evaluation which
are primarily drawn from the tables below.

Detailed Plan for Learning Exercises:

The learning exercises is designed keeping in mind a simple approach to motivate the students to actively
participate in completion of the assignment and fulfil learnings that is desired by the instructor.

Lab Lab Objective Content Reference


No

LE1 a. Consider you are a hardware architect and in charge of designing a Part (a) After session 1
new portable device (phone/tablet or a new innovation). Come up
with the details of the hardware including the software it will run Part (b) After session 2
and capture the reason for your decisions of design and the
rationale for the same. Hardware criteria could be amount of RAM,
size of the device, battery life etc. Carry out the task individually
and understand from each other their specific criteria for their
corresponding design and discuss how an architecture serve as a
basis for analysis and decision-making process?

b. Now that you have designed a new hardware in part (a), think of a
creative software application that you plan to develop and to be
made on run on the device that is designed. Bring in an analogy
with software architecture from the above example? List the
objective of the application and identify the features of the
application and how is it supposed to work and if it requires any
specific hardware capability like camera, gyroscope etc. and verify
it with the hardware design above.
[The created document should be preserved for subsequent
exercises]

LE2 From the document created as part of LE1, subject it all the quality After session 2
attributes and identify the considerations over each other and record
your observations regarding the decisions made e.g. performance
criteria for the application. There could be decisions taken from
perspective of failure of components – both hardware and software,
performance, interoperability, security, cost etc. and assign priority of
each attribute for the product that is being designed and give reasons
for the priority. Again compare your priority with another individual
and understand the thought process for the decisions taken and share
your feedback and gain an understanding how the design decisions
bring changes to the application design features e.g. some attributes
may be ignored due to the cost and some attributes must be
considered otherwise the application may not work as expected.

LE3 With both the documents from LE1 and LE2 in place, create the After session 3, 4, 5
architectural design for the system. Identify the notations for
architecture design to be used like Use cases, Sequence Diagrams,
Domain Model, Domain Class Diagrams etc. and determine how to go
about producing a design document for the same. Also, have
considerations on how much documentations should be produced.
[Don’t confuse the task with producing a User Guide for the
hardware].

LE4 Design a unique client-server-based application for the hardware that After session 9, 10
is designed in LE1 and make use of the design documentation
produced in LE3. Keep in mind the hardware and software constraints
as per your design with the help of document from LE2. Produce a
detailed design with the help of document produced in LE3 involving
the Application Layers – Layer Guidelines – Presentation, Business,
Data Layer, and Service Layer.

LE5 Introspect all the layers mentioned in LE4 and identify the components After session 9, 10
that could be redesigned as Service to fit into the model of Service
Oriented architecture. Adapt the application to REST based
architecture once all the components have been identified and update
the design to reflect the same.

LE6 Select a particular Cloud service provider and identify the service After session 11, 12, 13, 14
(preferably PaaS) and deployment model (preferably public) and
make the required design changes to the application to map it to
cloud based architecture and call out the changes having compared
with LE4 and LE5.

Case Studies: Detailed Plan:

Case study Case Study Objective


No
1 Understand Application Layers – Layer Guidelines – Presentation, Business, Data Layer, Service

2 Understand how to develop Multitenant Applications for the Cloud

3 Understand Best Practices of Amazon Web Services Cloud Architecture

4 Case Study: Mobile Architecture, Patterns of Mobile Application Development

Evaluation Scheme:

Legend: EC = Evaluation Component; AN = After Noon Session; FN = Fore Noon Session

No Name Type Duration Weight Day, Date, Session, Time


Quiz-1 * 5%
EC-1 Quiz-2 * 5%
Assignment * 10%
EC-2 Mid-Semester Test Closed Book 2 hours 30%

EC-3 Comprehensive Exam Open Book 3 hours 50%

Important Information:

Syllabus for Mid-Semester Test (Closed Book): Topics in Session Nos. 1 TO 8


Syllabus for Comprehensive Exam (Open Book): All topics (Session Nos. 1 to 16)

Evaluation Guidelines:

1. EC-1 consists of either two Assignments or three Quizzes. Announcements regarding the same will be made
in a timely manner.
2. For Closed Book tests: No books or reference material of any kind will be permitted. Laptops/Mobiles of any
kind are not allowed. Exchange of any material is not allowed.
3. For Open Book exams: Use of prescribed and reference text books, in original (not photocopies) is permitted.
Class notes/slides as reference material in filed or bound form is permitted. However, loose sheets of paper
will not be allowed. Use of calculators is permitted in all exams. Laptops/Mobiles of any kind are not
allowed. Exchange of any material is not allowed.
4. If a student is unable to appear for the Regular Test/Exam due to genuine exigencies, the student should
follow the procedure to apply for the Make-Up Test/Exam. The genuineness of the reason for absence in the
Regular Exam shall be assessed prior to giving permission to appear for the Make-up Exam. Make-Up
Test/Exam will be conducted only at selected exam centres on the dates to be announced later.

It shall be the responsibility of the individual student to be regular in maintaining the self-study schedule as given in
the course handout, attend the lectures, and take all the prescribed evaluation components such as
Assignment/Quiz, Mid-Semester Test and Comprehensive Exam according to the evaluation scheme provided in the
handout.

____________________________________________________________________________

You might also like