ss zg653-l1 doc
TRANSCRIPT
-
7/22/2019 SS ZG653-L1 doc
1/27
First Semester, 2013-2014 1SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
BITSPilani
Pilani Campus
SS ZG653
Software Architecture
-
7/22/2019 SS ZG653-L1 doc
2/27
First Semester, 2013-2014 2SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Software Architecture
SS ZG653Lecture 1
-
7/22/2019 SS ZG653-L1 doc
3/27
First Semester, 2013-2014 3SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Course Details
Title: Software Architectures
Code: SSZG653
Faculty: PANKAJ VYAS
-
7/22/2019 SS ZG653-L1 doc
4/27
First Semester, 2013-2014 4SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Scope of the course
To understand architectural abstractions,
localizing and codifying the ways componentsinteract, and distinguish among the various
ways in which architectural principles can be
applied to software system and analysis anddesign.
To study about the role of architecture patterns
in software design To study about the applicability of design
patterns in software design
-
7/22/2019 SS ZG653-L1 doc
5/27
First Semester, 2013-2014 5SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Course Objectives
To illustrate the current state of the discipline of
Software Architecture and examine the ways in whicharchitectural design can affect software design
To explain the importance of nonfunctionalrequirements in terms of quality attributes of a system
To study the various architectural styles used in
software engineering To understand the evaluate designs of existing software
systems from an architectural perspective
To provide the intellectual building blocks for designing
new systems in principled ways, using well-understoodarchitectural paradigms
To present concrete examples of actual systemarchitectures that can serve as model for new designs
-
7/22/2019 SS ZG653-L1 doc
6/27
First Semester, 2013-2014 6SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Text Books
Len Bass, Software Architecture in Practice,
Pearson, Third Edition, ISBN 9789332502307
Buschmann, F. et al, Pattern Oriented
Software Architecture Volume1, Wiley, 1996.
-
7/22/2019 SS ZG653-L1 doc
7/27First Semester, 2013-2014 7SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
References
Mary Shaw & David Garlan, Software
Architecture Perspectives on an EmergingDiscipline, PHI, 1996.
Stephen T. Albin, The Art of Software
Architecture, Wiley Dreamtech, 2003.
Gamma, E. et. Al. Design Patterns: Elements of
Reusable Object Oriented Software, Addison
Wesley, 1995
-
7/22/2019 SS ZG653-L1 doc
8/27First Semester, 2013-2014 8SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Thru the Semester
Lectures: 16 + 2 Review
Exams: 2 Midterm: 35%
Final: 50%
Quizzes: 15%
-
7/22/2019 SS ZG653-L1 doc
9/27First Semester, 2013-2014 9SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Exams
Midterm Exam
Closed Book and notes
Final Exam
Open Book and notes
The exam solutions/answers are expected to
be of Masters Level with crisp, to-the-point,
concise, proper, neat and readable
presentation
-
7/22/2019 SS ZG653-L1 doc
10/27First Semester, 2013-2014 10SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Lecture Wise Topics To be Covered
Lecture # Topics to be Covered
1 Understanding Software Architecture and its Importance2 Understanding the Various Quality Attributes (Only Introduction)
3 Understanding Availability , Interoperability and Modifiability
Attributes
4 Understanding Performance , Security and Testability Attributes
5 Understanding the role of various architecture tactics
6 Learning object-oriented basics and UML . Understanding classes,
objects, encapsulation, polymorphism, inheritance and their
representation in UML
7 UML class diagrams, sequence diagrams, class-responsibility-
collaboration cards (CRC cards)
8 Understanding the role of Architecture Patterns, Layered Architectural
style
Cont.
-
7/22/2019 SS ZG653-L1 doc
11/27
First Semester, 2013-2014 11SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
ContLecture # Topics to be Covered
10 Architecture Pattern : Mud to structure category
(1) Blackboard (2) Pipe-and-Filter architectural styles
11 Architecture Pattern : Distributed System category
Broker Architecture style
12 Architecture Pattern : Interactive System Category
(1) Model-View-Controller (2) Presentation-Abstraction-Control
13 Architecture Pattern : Adaptable System Category
(1) Microkernel (2) Reflection
14 Role of Design Patterns in Software Design, Components of a typical
Design Pattern, Categories of Design Patterns, Understanding Iterators
15 Design Patterns : Behavioral Category
(1) Observer (2) Strategy (3) Command (4) Visitor
16 Design Patterns : Structural Category
(1) Adapter (2) Decorator (3) Composite (4) Proxy
17 Design Patterns : Creational Category
(1) Factory (2) Factory Method (3) Singleton
-
7/22/2019 SS ZG653-L1 doc
12/27
First Semester, 2013-2014 12SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Topic
Understanding Software
Architecture
-
7/22/2019 SS ZG653-L1 doc
13/27
First Semester, 2013-2014 13SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Software Architecture Definition
The software architecture of a program or computing
system is the structure or structures of the system,which comprise software elements, the externally
visible properties of those elements, and the
relationships among them(Ref: Bass, Clements and Kazman, Software Architecture in Practice, 2 nd edition)
Software Architecture is a description of the
subsystems and components of a software system
and the relationships between them. Architecture
thus attempts to define the structure the way inwhich something is constructed or organised
SWEBOK, 2004, Chapter 3 Software Design, Pg 3-3
-
7/22/2019 SS ZG653-L1 doc
14/27
First Semester, 2013-2014 14SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Software Architecture Definition
The software architecture of a program or computing
system is the structure or structures of the system,which comprise software elements, the externally
visible properties of those elements, and the
relationships among them(Ref: Bass, Clements and Kazman, Software Architecture in Practice, 2 nd edition)
Software Architecture is a description of the
subsystems and components of a software system
and the relationshipsbetween them. Architecture
thus attempts to define the structurethe way inwhich something is constructed or organised
SWEBOK, 2004, Chapter 3 Software Design, Pg 3-3
-
7/22/2019 SS ZG653-L1 doc
15/27
First Semester, 2013-2014 15SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
A typical Software Architecture
-
7/22/2019 SS ZG653-L1 doc
16/27
First Semester, 2013-2014 16SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Whats clear?
System has 5 elements
Position of elements shows some properties.
Whats visible? Whats not visible? Layered?
Elements have a relationship
Is this complete architecture?
Is everything clear?
Is there anything missing?
Whats missing?
-
7/22/2019 SS ZG653-L1 doc
17/27
First Semester, 2013-2014 17SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Unclear from diagram
Nature of elements
Significance of separation
Contain process or programs or both
Runtime separation or division of labour
Clarity of the blocks; objects, tasks, functions,processes, distributed programs or something else
Responsibilities of each element
Their function; what do they do? How does their function relate to the system
-
7/22/2019 SS ZG653-L1 doc
18/27
First Semester, 2013-2014 18SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Unclear from Diagram
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
-
7/22/2019 SS ZG653-L1 doc
19/27
-
7/22/2019 SS ZG653-L1 doc
20/27
First Semester, 2013-2014 20SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Architecture Definition Implications
Architecture defines Software elements
Systems can and do comprise of more than
one structure
Every computing system with software has a
software architecture
The behaviour of each element is a part of the
architecture
The architecture of a system is a good one or a
bad one
-
7/22/2019 SS ZG653-L1 doc
21/27
First Semester, 2013-2014 21SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Some more views
Architecture
Is a high level design
Is the overall structure of the system
Is the structure of the components of a program
or system, their interrelationships, and theprinciples and guidelines governing their design
and evolution over time
Is components and connectors
-
7/22/2019 SS ZG653-L1 doc
22/27
-
7/22/2019 SS ZG653-L1 doc
23/27
First Semester, 2013-2014 23SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Patterns, Model and Reference Arch
An architectural pattern is a description of
element and relation types together with a setof constraints on how they may be used
A reference model is a division of functionality
together with data flow between the pieces A reference architecture of a reference model
mapped onto software elements (that
cooperatively implement the functionalitydefined in the reference model) and the data
flows between them
-
7/22/2019 SS ZG653-L1 doc
24/27
First Semester, 2013-2014 24SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Patterns, Model and Reference Arch
Reference models, architecture patterns and
reference architectures are not architectures;
they are useful concepts that capture
elements of an architecture
-
7/22/2019 SS ZG653-L1 doc
25/27
First Semester, 2013-2014 25SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Software Arch Importance
Communication among stake holders
Early design decisions
Transferable abstractions of a system
-
7/22/2019 SS ZG653-L1 doc
26/27
First Semester, 2013-2014 26SS ZG653 : Software Architecture Date : Thursday 25th July, 2013
Stake holder communication
Architecture provides a common language in which
different concerns can be expressed, negotiated andresolved
Customer, User, Project Manager, Development
Engineer, Test Engineer
On schedule and on budget: Customer
On schedule, on budget, work split among teams: Manager
Reliable, available, easy to use: User
Helps make early decisions Architectural analysis depends on communication
-
7/22/2019 SS ZG653-L1 doc
27/27
First Semester 2013 2014 27SS ZG653 S ft A hit t D t Th d 25th J l 2013
Manifests earliest set of design decisions
The architecture
Defines constraints on implementation
Dictates organization structure
Inhibits or Enables a systems quality attributes
Enables predicting system qualities
Makes it easier to reason about and Manage
Change
Helps in evolutionary prototyping Enables more accurate cost and schedule
estimates