Sei sulla pagina 1di 27

SS ZG653 Software Architecture

BITS Pilani
Pilani Campus

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

Software Architecture SS ZG653


Lecture 1

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

Course Details Title: Software Architectures Code: SSZG653 Faculty: PANKAJ VYAS

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

Scope of the course


To understand architectural abstractions, localizing and codifying the ways components interact, and distinguish among the various ways in which architectural principles can be applied to software system and analysis and design. To study about the role of architecture patterns in software design To study about the applicability of design patterns in software design
First Semester, 2013-2014
SS 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 which architectural design can affect software design To explain the importance of nonfunctional requirements 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-understood architectural paradigms To present concrete examples of actual system architectures that can serve as model for new designs
First Semester, 2013-2014
SS 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.

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

References
Mary Shaw & David Garlan, Software Architecture Perspectives on an Emerging Discipline, 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

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

Thru the Semester


Lectures: 16 + 2 Review Exams: 2
Midterm: 35% Final: 50%

Quizzes: 15%

First Semester, 2013-2014

SS 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

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

Lecture Wise Topics To be Covered


Lecture # 1 2 3 4 5 6 Topics to be Covered Understanding Software Architecture and its Importance Understanding the Various Quality Attributes (Only Introduction) Understanding Attributes Availability , Interoperability and Modifiability

Understanding Performance , Security and Testability Attributes Understanding the role of various architecture tactics Learning object-oriented basics and UML . Understanding classes, objects, encapsulation, polymorphism, inheritance and their representation in UML UML class diagrams, sequence collaboration cards (CRC cards) diagrams, class-responsibility-

7 8

Understanding the role of Architecture Patterns, Layered Architectural style Cont.

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

10

Cont
Lecture # Topics to be Covered

10
11 12 13 14 15 16

Architecture Pattern : Mud to structure category (1) Blackboard (2) Pipe-and-Filter architectural styles
Architecture Pattern : Distributed System category Broker Architecture style Architecture Pattern : Interactive System Category (1) Model-View-Controller (2) Presentation-Abstraction-Control Architecture Pattern : Adaptable System Category (1) Microkernel (2) Reflection Role of Design Patterns in Software Design, Components of a typical Design Pattern, Categories of Design Patterns, Understanding Iterators Design Patterns : Behavioral Category (1) Observer (2) Strategy (3) Command (4) Visitor Design Patterns : Structural Category (1) Adapter (2) Decorator (3) Composite (4) Proxy

17

Design Patterns : Creational Category (1) Factory (2) Factory Method (3) Singleton
SS ZG653 : Software Architecture Date : Thursday 25th July, 2013

First Semester, 2013-2014

11

Topic

Understanding Software Architecture

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

12

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, 2nd 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 in which something is constructed or organised
SWEBOK, 2004, Chapter 3 Software Design, Pg 3-3

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

13

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, 2nd 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 in which something is constructed or organised
SWEBOK, 2004, Chapter 3 Software Design, Pg 3-3

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

14

A typical Software Architecture

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

15

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?
SS ZG653 : Software Architecture Date : Thursday 25th July, 2013

First Semester, 2013-2014

16

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

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

17

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

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

18

Properties of Architecture
Externally visible those assumptions other elements can make of an element A few of these properties
Services provided Performance characteristics Fault handling Shared resource usage

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

19

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
First Semester, 2013-2014
SS ZG653 : Software Architecture Date : Thursday 25th July, 2013

20

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 the principles and guidelines governing their design and evolution over time Is components and connectors

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

21

Architecture of Windows NT
https://en.wikipedia.org/wiki/Architecture_of_Windows_NT

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

22

Patterns, Model and Reference Arch


An architectural pattern is a description of element and relation types together with a set of 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 functionality defined in the reference model) and the data flows between them
First Semester, 2013-2014
SS ZG653 : Software Architecture Date : Thursday 25th July, 2013

23

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
First Semester, 2013-2014
SS ZG653 : Software Architecture Date : Thursday 25th July, 2013

24

Software Arch Importance


Communication among stake holders Early design decisions Transferable abstractions of a system

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

25

Stake holder communication


Architecture provides a common language in which different concerns can be expressed, negotiated and resolved 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

First Semester, 2013-2014

SS ZG653 : Software Architecture

Date : Thursday 25th July, 2013

26

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
First Semester, 2013-2014
SS ZG653 : Software Architecture Date : Thursday 25th July, 2013

27