ss zg653-l1 doc

Upload: sindulawrence

Post on 10-Feb-2018

223 views

Category:

Documents


0 download

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