sa4 unit 1.2 design part nh

Upload: shreyasirao8007

Post on 08-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    1/32

    WHAT IS SOFTWARE ARCHITECTURE?

    02/08/201002/08/2010

    SA/NH/CS'A'/2010SA/NH/CS'A'/2010 11

    Chapter 2,Chapter 2,Authors: Len Bass, Paul, RickAuthors: Len Bass, Paul, Rick

    Page Numbers: 19Page Numbers: 19--4545

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    2/32

    System description of Acoustic Simulation

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    22of 50of 50

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    3/32

    What Software Architecture Is and

    What It Isn't

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    33of 50of 50

    What is the nature of the elements?

    What is the significance of separation?

    Do they run on separate processors?

    Do they run at separate times?

    Do the elements consist of processes, programs or both?

    Are they objects, task, functions, processes, distributed programs,

    What are the responsibilities of the elements?

    What is it they do?

    What is their function in the system?

    What is the significance of the connections?

    Do the connections mean that the elements communicate with each other , control each other , send datato each other , use each other, invoke each other, share some information hiding secret with each other,

    What information flows across the mechanism? What is the significance of the layout?

    Why is CP on a separate level?

    Does it call the other three?

    Are others not allowed to call?

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    4/32

    Architecture: Definition

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    44of 50of 50

    The Software Architectureis a structure orstructures of the system, which comprise

    software elements, the externally visible

    properties of those elements, and the

    relationships between them

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    5/32

    Architecture Definition

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    55of 50of 50

    externally visible properties -

    assumptions other elements can make of an

    element, such as its provided services,

    performance characteristics, fault handling,

    shared resources usage

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    6/32

    Architecture: Definition observation

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    66of 50of 50

    Architecture defines software elements

    embody The architecture represents information about how the elements

    relate to each other

    An architecture is foremost an abstraction of a system thatsuppresses details of elements that do not affect how they use,are used by, relate to, or interact with other elements.

    Architecture is concerned with the public side of this division

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    7/32

    Architecture: Definition observation

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    77of 50of 50

    Systems can and do comprise more than one structure

    All nontrivial projects are partitioned into implementation units;

    these units are given specific responsibilities and arefrequently the basis of work assignments for programming

    teams.

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    8/32

    Architecture: Definition observation

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010 88 ofof5050

    Every computing system with software has a software architecture

    Every system can be shown to comprise elements and the relations among them.

    Unfortunately, an architecture can exist independently of its description or

    specification, which raises the importance of architecture documentation and

    architecture reconstruction

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    9/32

    Architecture: Definition observation

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    99of 50of 50

    the behavior of each element is part of the

    architecture

    behavior can be observed from the point of view of

    another element.

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    10/32

    Architecture: Definition observation

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1010of 50of 50

    the definition is indifferent as to whether the

    architecture for a system is a good one or a bad

    one

    meaning that it will allow or prevent the system

    from meeting its behavioral, performance, and life-

    cycle requirements.

    We do not accept trial and error as the best way tochoose an architecture for a system

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    11/32

    Other Points of View

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1111of 50of 50

    Architecture is high-level design

    Architecture is the overall structure of the system

    Architecture is the structure of the components of aprogram or system, their interrelationships, and theprinciples and guidelines governing their design andevolution over time

    Architecture is components and connectors

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    12/32

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1212of 50of 50

    An architectural pattern is a description of element

    and relation types together with a set of

    constraints on how they may be used

    Set of constraints on an architecture

    Example-C/S architecture.

    Architectural PatternsArchitectural Patterns

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    13/32

    Reference Models

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1313of 50of 50

    A reference model is a division of functionality

    together with data flow between the pieces.

    It is standard decomposition of a known problem into

    parts that solves problem cooperatively

    Ex: OSI reference model..

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    14/32

    Reference Architectures

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1414of 50of 50

    A reference architecture is a reference model

    mapped onto software elements (that cooperatively

    implement the functionality defined in the reference

    model) and the data flows between them

    ----

    Reference model divides the functionality.

    A reference architecture is the mapping of thatfunctionality on to a system decomposition

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    15/32

    Architecture: useful concepts

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1515of 50of 50

    ReferenceReferencearchitecturearchitecture

    SoftwareSoftwarearchitecturearchitecture

    ArchitecturalArchitecturalpatternpattern

    ReferenceReferencemodelmodel

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    16/32

    Why is Software Architecture Important?

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1616of 50of 50

    1. Communication among stakeholders

    -used as a basis for mutual understanding,

    negotiation, compromise, and communication.

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    17/32

    Why is Software Architecture Important?

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1717of 50of 50

    2. Early design decisions

    Architecture represents earliest set of decisions

    about system, they are most difficult to get correct

    and the hardest to change the earliest point at

    which design decisions can be analyzed

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    18/32

    Why is Software Architecture Important?

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1818of 50of 50

    3. Transferable abstractions of a system

    Architecture is a relatively small model for how a

    system is structured and how its elements work together

    and this is transferable across systems.

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    19/32

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    1919of 50of 50

    Each stakeholder of a software system is concerned

    with different system characteristics that are

    affected by the architecture.

    Architecture provides a common language in which

    different concerns can be expressed, negotiated,and resolved at a level that is intellectually

    manageable even for large, complex systems

    ARCHITECTUREIS THE VEHICLE FOR STAKEHOLDERARCHITECTUREIS THE VEHICLE FOR STAKEHOLDERCOMMUNICATIONCOMMUNICATION

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    20/32

    ARCHITECTURE MANIFESTS THEEARLIEST SET OF DESIGN

    DECISIONS

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2020of 50of 50

    Software architecture represents a system's earliest

    set of design decisions.

    These early decisions are the most difficult to get

    correct and the hardest to change later in the

    development process, and they have the most far-reaching effects.

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    21/32

    ARCHITECTURE MANIFESTS THE EARLIEST SET OF

    DESIGN DECISIONS contd

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2121of 50of 50

    The Architecture Defines Constraints on Implementation

    The Architecture Dictates Organizational Structure

    The Architecture Inhibits or Enables a System's Quality Attributes

    Performance, Modifiability, Security, Scalability, Reusability

    Predicting System Qualities by Studying the Architecture

    The Architecture Makes It Easier to Reason about and Manage Change

    The ArchitectureHelps in Evolutionary Prototyping

    The Architecture Enables More Accurate Cost and Schedule Estimates

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    22/32

    ARCHITECTURE AS A TRANSFERABLE, RE-USABLE MODEL

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2222of 50of 50

    The earlier in the life cycle re-use is applied, the

    greater the benefit that can be achieved

    When architectural decisions can be re-used across

    multiple systems, all of the early decision

    consequences we just described are alsotransferred.

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    23/32

    ARCHITECTURE AS A TRANSFERABLE, RE-USABLE

    MODEL contd..

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2323of 50of 50

    Software Product Lines Share a Common

    Architecture

    Systems Can Be Built Using Large, Externally

    Developed Elements

    Less Is More: It Pays to Restrict the Vocabulary of

    Design Alternatives

    An Architecture Permits Template-BasedDevelopment

    An Architecture Can Be the Basis for Training

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    24/32

    Architectural Structures and Views

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2424of 50of 50

    A structure is the set of elements structure-set ofelements.

    view It is a representation of logical set ofarchitecture elements, as written by and read bysystem stakeholder.

    It consist of representation of a set of elements andthe relations among them

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    25/32

    Architectural StructuresArchitectural Structures

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2525of 50of 50

    - module structuresbasic elements are modules, they are assigned areas of

    functional responsibility, less emphasis on runtime issues

    - component-and-connector structures

    elements are run-time components (units of computation) and connectors

    (communication vehicles)

    - allocation structuresshows the relationship between the software elements and theelements in one or more external environments in which softwareis created and executed

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    26/32

    Architectural Structures: Module

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2626of 50of 50

    modulemodule

    decompositiondecomposition usesuses classclass

    layeredlayered

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    27/32

    Architectural Structures: Component-and-Connector

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2727of 50of 50

    componentcomponent--andand--connectorconnector

    clientclient--serverserver

    processprocess

    shared datashared data

    concurrencyconcurrency

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    28/32

    Architectural Structures: Allocation

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2828of 50of 50

    allocationallocation

    Work assignmentWork assignment implementationimplementation

    deploymentdeployment

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    29/32

    Architectural Structures: Module

    Softwarestructure

    Relations Useful For Reason About

    decomposition is a submodule, sharessecrets with

    resource allocation, project structuringand planning, information hiding,

    encapsulation, configuration control

    Uses requires the correct presence of

    extension or extraction of functionality

    layered requires the correct presence of, uses theservices of, providesabstraction to

    incremental development,implementing systems on top of

    virtual machines

    class is an instance of, sharesaccess methods of

    in OO producing rapid almost-alikeimplementations from a commontemplate

    SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    2929 ofof

    505002/08/201002/08/2010

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    30/32

    Architectural Structures: Component-Connector

    Software

    structure

    Relations Useful For Reason About

    client-server communicates with,

    depends on

    distributed operation,separation of concerns,

    performance, loadbalancing

    process runs concurrently with, may runconcurrently with, excludes, precedes

    scheduling, performance

    concurrency runs on the same logical thread locations where resource

    contention exists, wherethreads may fork, join,be created or killed

    shared data produces data, consumes data performance, dataintegrity, modifiability

    SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    3030 ofof

    505002/08/201002/08/2010

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    31/32

    Architectural Structures: Allocation

    Software structure Relations Useful For Reason About

    deployment allocated to,migrated to performance, availability,security

    implementation stored in configuration control,integration, test activities

    work assignment assigned to project management,

    best use of expertise,management ofcommonality

    SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    3131 ofof

    505002/08/201002/08/2010

  • 8/7/2019 SA4 UNIT 1.2 Design Part NH

    32/32

    Architectural Structures: which one to choose

    02/08/201002/08/2010SA/NH/CS'A'/2010SA/NH/CS'A'/2010

    3232of 50of 50

    Philippe Krutchten (1995): four plus one approach

    1. Logical : Elements are key abstractions.

    This is module structure.

    2. Process : Addresses concurrency and distribution of functionalityIt is a component-and-connector structure.

    3. Development : This shows the organization of software modules, libraries,

    subsystems, and units of development.

    - It is allocation structure.

    4. Physical : This maps other elements onto processing and communication

    nodes.

    It is an allocation structure.