Software Architecture - Course Handout


BITS WILP Software Architectures Handout 2017-H1

BITS WILP Software Architectures Handout 2017-H1

BIRLA INSTITUTE OF TECHNOLOGY & SCIENCE, PILANI
WORK INTEGRATED LEARNING PROGRAMMES
Digital
Part A: Content Design

Course Title
SOFTWARE ARCHITECTURES
Course No(s)
SS ZG653
Credit Units
5
Credit Model
3 + 1 + 1
Content Authors
Prof. SANTONU SARKAR
Lead Instructor
Rizwan Parveen

Course Objectives

No
CO1
To introduce the concept of architectural design of software and its practice.
CO2
To study the various architectural styles used in software design.
CO3
To understand the evaluate designs of existing software systems from an architectural perspective.

Text Book(s)
T1
Bass, Len . Software Architecture in Practice. Pearson Education, 3rd Ed.
T2
Buschmann, F. Pattern Oriented Software Architecture. Vol 1, Wiley Student Edition, 2002.

Reference Book(s) & other resources
R1
Taylor et al, Software Architecture: Foundations, Theory, and Practice, Wiley, 2009
R2
Mary Shaw & David Garlan, Software Architecture – Perspectives on an Emerging Discipline, PHI,1996.
R3
 Gamma. Design Patterns: Elements of Reusable Object Oriented Software, Addison Wesley, 1995
R4
Pressman, Software Engineering A Practitioner's Approach 7th Edition

Content Structure
                              1.            Software Architecture - Introduction
                                                                        1.1.            Motivation
                                                                        1.2.            What is Software Architecture
                                                                        1.3.            Importance of Software Architecture
                                                                        1.4.            A Typical Software Architecture
                                                                        1.5.            Components of Software Architecture
                              2.            Structure of Software Architecture
                                                                        2.1.            Three structures
                              3.            Software Quality
                                                                        3.1.            Quality classes, quality attribute, quality attribute scenario and architectural tactics
                                                                        3.2.            Usability and its tactics
                                                                        3.3.            Availability and its tactics
                                                                        3.4.            Modifiability and its tactics
                                                                        3.5.            Performance and its tactics
                                                                        3.6.            Security and its tactics
                                                                        3.7.            Testability and its tactics
                                                                        3.8.            Interoperability and its tactics
                              4.            Documenting Software Architecture
                                                                        4.1.            Introduction to OO Design
                                                                        4.2.            Introduction to UML
                                                                        4.3.            Documenting Architecture using UML
                                                                        4.4.            Introducing Agile methodology
                                                                        4.5.            Rational Unified Process

                              5.            Patterns in Understanding and Creating Architectures
                                                                        5.1.            Patterns and Software Architecture
                                                                        5.2.            The Various Categories of Patterns
                                                                        5.3.            Mud to Structure Category of Architectural Patterns
                                                                        5.4.            Layered Architecture
                                                                        5.5.            Pipes and Filters Architecture
                                                                        5.6.            Blackboard Architecture
                                                                        5.7.            Distributed System
                                                                        5.8.            MVC Intro, detailed and MVC in Ajax Model
                                                                        5.9.            Microkernel
                                                                    5.10.            Reflection

                              6.            Design Patterns
                                                                        6.1.            Introduction
                                                                        6.2.            Creational Pattern
                                                                        6.3.            Decorator
                                                                        6.4.            Adapter
                                                                        6.5.            Proxy
                                                                        6.6.            Iterator and Observer
                                                                        6.7.            Strategy  
                                                                        6.8.            Visitor
                                                                        6.9.            Command

                              7.            Architecture for Next Generation Platform- Cloud Computing
                                                                        7.1.            Introduction and Virtualization basic
                                                                        7.2.            IAAS and Data storage
                                                                        7.3.            Quality attribute revisited
                                                                        7.4.            CAP Theorem and its implication to Architecture
                                                                        7.5.            Microservice pattern and design for failure

Learning Outcomes:
No
Learning Outcomes
LO1
To illustrate the current state of the discipline of Software Architecture and examine the ways in which architectural design can affect software design.
LO2
To study the various architectural styles used in software engineering.
LO3
To understand the evaluate designs of existing software systems from an architectural perspective.
LO4
To provide the intellectual building blocks for designing new systems in principled ways, using well-understood architectural paradigms.
LO5
To learn architectural paradigm for modern platform- specially Cloud Computing


Part B: Learning Plan

Academic Term
Second  Semester 2016-2017
Course Title
SOFTWARE ARCHITECTURES
Course No
SS ZG653
Lead Instructor
Rizwan Parveen

Session 1



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 1.1== RL 1.3
Introduction to the Course, its objective, plan and study material
A Brief History of Software Architecture, its definition and two examples
Introduction to the Styles, Views and Rational’s 4+1
T1: Chapter 1, Chapter 2
During CH
Post CH
Lecture Notes and Reference books

Session 2



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 2.1, RL 3.1,
Three structures
Quality classes, Quality attribute, quality attribute scenario and architectural tactics
T1: Chapter 4
During CH
Post CH
Lecture Notes and Reference books
#Introduction of ‘three structures’ in Ch. 1 (Topic 1.2)

Session 3



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 4.1
      RL 4.2
Usability and its tactics
Availability and its tactics
T1: Chapter 5, 6
During CH
Post CH
Lecture Notes and Reference books





Session 4



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 5.1, 5.2
Modifiability and Performance
T1: Chapter 7, 8
During CH
Post CH
Lecture Notes and Reference books

Session 5



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 6.1—RL 6.2, 6.3
Security,  Testability and Interoperability

T1: Chapter 9, 10, 11
During CH
Post CH
Lecture Notes and Reference books

Session 6



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 6.1—RL 6.2, 6.3
Any Remaining part of
‘Security,  Testability and Interoperability’
T1: Chapter 9, 10, 11
During CH
Post CH
Lecture Notes and Reference books

Session 7



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 7.1
Introduction to OO Design
T1
During CH
Post CH
Lecture Notes and Reference books

Session 8



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 7.2, RL 8.1
Introduction to UML
Documenting Architecture using UML
T1
During CH
Post CH
Lecture Notes and Reference books
#Chapter 18. Documenting Software Architectures (T1)

Session 9



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 8.2—RL 8.3
Introducing Agile methodology
Rational Unified Process
T1, R4 (Ch. 2.5, 3.5.5, 3.5.8, 5.5.1
Analysis class to design class 6.5.1), T2
During CH
Post CH
Lecture Notes and Reference books

Session 10



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 9.1—RL 9.3
Pattern definition and classification
9.2 Pattern category and Intro to Layering
9.3 Layering pattern
T2: Chapter 1, Chapter 2
During CH
Post CH
Lecture Notes and Reference books
#Chapter 13, Architectural Patterns (T1)


Session 11



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 10.1
Pipe and Filter
T2: Chapter 2
During CH
Post CH
Lecture Notes and Reference books
#First two subtopics of Ch. 2



MID SEMESTER EXAM – till Session 11


Session 12



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 10.2—RL 11.1
Distributed System
 (Blackboard and Broker Pattern)
T2: Chapter 2
During CH
Post CH
Lecture Notes and Reference books

Session 13



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 12.1—RL 12.3
MVC Introduction
MVC Detailed
MVC in Ajax Model
T2: Chapter 2
During CH
Post CH
Lecture Notes and Reference books


Session 14



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 13.1—RL 13.3
Microkernel Introduction
Microkernel Detailed
Reflection
T2: Chapter 2
During CH
Post CH
Lecture Notes and Reference books

Session 15



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 14.1—RL 14.2
Introduction
Creational Pattern
T2, R3
During CH
Post CH
Lecture Notes and Reference books

Session 16



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 15.1—RL 15.3
Decorator
Adapter
Proxy
T2, R3
During CH
Post CH
Lecture Notes and Reference books

Session 17



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 16.1—RL 16.2
Iterator and Observer
Strategy  
T2, R3
During CH
Post CH
Lecture Notes and Reference books

Session 18



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 16.3—RL 16.4
Visitor
Command
T2, R3
During CH
Post CH
Lecture Notes and Reference books

Session 19



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 17.1—RL 17.2
Introduction and Virtualization basic
IAAS and Data storage
T1: Chapter 26
During CH
Post CH
Lecture Notes and Reference books

Session 20



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 18.1—RL 18.2
Quality attribute revisited
CAP Theorem and its implication
T1
During CH
Post CH
Lecture Notes and Reference books

Session 21



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 18.3
Microservice pattern and design for failure
T1
During CH
Post CH
Lecture Notes and Reference books

Session 22



Type
Type
Sequence
Study/HW Resource Reference
Pre CH
RL 18.3
Continuing with Session 21: Microservice pattern and design for failure
Revision Session
T1
During CH
Post CH
Lecture Notes and Reference books



Evaluation Scheme:  
Legend: EC = Evaluation Component; AN = After Noon Session; FN = Fore Noon Session
No
Name
Type
Duration
Weight
Day, Date, Session, Time
EC-1
Quiz-I
Online
-
5%
February 1 to 10, 2017
Quiz-II
Online
-
5%
March 1 to 10, 2017
Quiz-III
Online
-
5%*
March 20 to 30, 2017
EC-2
Mid-Semester Test
Closed Book
2 hours
35%*
25/02/2017 (FN) 10 AM – 12 Noon
EC-3
Comprehensive Exam
Open Book
3 hours
50%*
08/04/2017 (FN) 9 AM – 12 Noon
*If there is any marks remains (i.e. Question paper set for 35 Marks for EC-2), then consider the remaining 5 marks will be adjusted in your final grades.

Syllabus for Mid-Semester Test (Closed Book): Topics in Session Nos. 1 To 11
Syllabus for Comprehensive Exam (Open Book): All topics (Session Nos. 1 to 22)

Important links and information:
Elearn portal: https://elearn.bits-pilani.ac.in
Students are expected to visit the Elearn portal on a regular basis and stay up to date with the latest announcements and deadlines.
Contact sessions: Students should attend the online lectures as per the schedule provided on the Elearn portal.
Evaluation Guidelines:
1.      EC-1 consists of three Quizzes. Students will attempt them through the course pages on the Elearn portal. Announcements will be made on the portal, in a timely manner.
2.      For Closed Book tests: No books or reference material of any kind will be permitted.
3.      For Open Book exams: Use of books and any printed / written reference material (filed or bound) 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 which will be made available on the Elearn portal. The Make-Up Test/Exam will be conducted only at selected exam centers on the dates to be announced later.
5.      Please keep in your mind that only genuine Recheck request will be entertain. When a student applies for the recheck, entire answer sheet will be re-evaluated again; this procedure may increase or decrease (as well) the marks. Non-genuine request may lead to minus marking sometimes. Be careful.
6.      For any query (apart from Course content or syllabus/lecture topics) should be strictly addressed to evm@wilp.bits-pilani.ac.in


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 online 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. No Extra time/day will be given to the student after deadline gets over for the Quizzes and other exam components.


No comments:

Post a Comment