sa unit 1 chapter 2 software architecture

Upload: anser-pasha

Post on 03-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    1/37

    What is Software Architecture?

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    2/37

    System description of Acoustic Simulation

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    3/37

    What Software Architecture Is and

    What It Isn't 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 data to each other , use each other, invoke each other, share some information hidingsecret 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/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    4/37

    Architecture: Definition

    The Software Architecture is a structure

    or structures of the system, which

    comprise software elements, the

    externally visible properties of those

    elements, and the relationships betweenthem

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    5/37

    Architecture Definition

    externally visible properties -

    assumptions other elements can make of

    an element, such as its provided services,

    performance characteristics, fault

    handling, shared resources usage

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    6/37

    Architecture: Definitionobservation

    Architecture defines software elements

    The architecture represents information about how theelements 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.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    7/37

    Architecture: Definitionobservation

    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/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    8/37

    Architecture: Definitionobservation

    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/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    9/37

    Architecture: Definitionobservation

    the behavior of each element is part of the

    architecture

    behavior can be observed from the point of

    view of another element.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    10/37

    Architecture: Definitionobservation

    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 to choose an architecture for a system

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    11/37

    Other Points of View

    Architecture is high-level design

    Architecture is the overall structure of the system

    Architecture is the structure of the componentsof a program or system, their interrelationships,

    and the principles and guidelines governing theirdesign and evolution over time

    Architecture is components and connectors

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    12/37

    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 Patterns

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    13/37

    Reference Models

    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/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    14/37

    Reference Architectures

    A reference architecture is a reference model

    mapped onto software elements (that

    cooperatively implement the functionalitydefined in the reference model) and the data

    flows between them

    Reference model divides the functionality.

    A reference architecture is the mapping of that

    functionality on to a system decomposition.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    15/37

    Architecture: useful concepts

    Referencearchitecture

    Softwarearchitecture

    Architecturalpattern

    Referencemodel

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    16/37

    Why is Software Architecture Important?

    1. Communication among stakeholders

    -SA represents a common abstraction of a system.

    -used as a basis for mutual understanding,negotiation, compromise, and communication

    by the stakeholders.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    17/37

    Why is Software Architecture Important?

    2. Early design decisions

    Architecture represents earliest set of

    decisions about system, they are most difficult

    to get correct and the hardest to change.

    It is the earliest point at which design

    decisions can be analyzed.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    18/37

    Why is Software Architecture Important?

    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.

    It can be applied to other systems exhibiting

    similar functional requirements.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    19/37

    Each stakeholder of a software system (customer,user, project, manager, coder, tester) isconcerned with different system characteristicsthat are affected by the architecture.

    User is concerned that system is reliable &available.

    Customer is concerned about schedule & budget.Manager: teams should work independently.

    Architect: worried about strategies to achievegoals.

    ARCHITECTURE IS THE VEHICLE FOR STAKEHOLDERCOMMUNICATION

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    20/37

    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

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    21/37

    Architecture manifests the earliest set of design

    decisions

    Constraints on implementation

    Dictates organizational structure

    Inhibits or enable quality attributes

    Predicting system qualities

    Easier to reason about and manage change

    Evolutionary prototyping

    Accurate cost and schedule estimates

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    22/37

    Architecture as transferable re-usable model

    Software Product lines share a common

    architecture

    Systems can be built using large, externally

    developed elements

    Less is more

    Template based development

    Basis for training

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    23/37

    Architectural Structures and Views

    A structure is the set of elements.

    view It is a representation of set ofarchitecture elements, as written by and readby system stakeholder.

    It consist of representation of a set ofelements and the relations among them

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    24/37

    Architectural Structures

    - module structuresbasic elements are modules.

    they are assigned areas of functional responsibility.

    Module allow us answer

    What is the primary responsibility of module?What other software does it use?

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    25/37

    - component-and-connector structures

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

    connectors (communication vehicles).

    What are the major components & how do they interact?How does data progress through the system?

    - allocation structures

    shows the relationship between the software elements and theelements in external environment in which software is

    created and executed

    What is the assignment of S/W elements to development team

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    26/37

    Architectural Structures: Module

    module

    decomposition uses class

    layered

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    27/37

    Architectural Structures: Component-and-

    Connector

    component-and-connector

    client-server

    process

    shared data

    concurrency

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    28/37

    Architectural Structures: Allocation

    allocation

    Work assignment implementation

    deployment

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    29/37

    Architectural Structures: Module

    Decomposition:

    Units are modules related to each other by is a sub module of relation.

    Shows how larger modules are decomposed into smaller modules

    recursively till the smaller modules are easily understood.

    Modules have associated products (code, test plans). Provides modifiability, by ensuring that changes to small modules.

    Used for project structuring also for integration & test plans.

    Uses :

    Structure are modules or procedures.

    Relation is uses.

    One unit uses another if the correctness of the first requires the presence

    of a correct version of second.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    30/37

    Layered:

    If the Uses relation is carefully controlled the a system of layer comes in

    picture.

    If there are n layers. Then the nth layer will use only service from layer n-1.

    Layers are often designed as abstractions & hide implementation specificsbelow from the layers above.

    Class:

    module units are called classes

    Relation is inherts- from

    Collection of similar behavior.

    This allows us to reason about reuse and additional functionality.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    31/37

    Architectural Structures: Component-and-Connector

    Process or communicating processes:

    Deals with dynamic aspects of a running system.

    Units here are processes or threads which communicate, synchronize with

    each other.

    The relation is attachment how components and connecters are linkedtogether.

    Concurrency:

    Allows the architects to determine the opportunities for parallelism.

    Units are components and connecters are logical threads

    Logical thread is a sequence of computation, that can be allocated to a

    separate physical thread in design process.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    32/37

    Shared data or repository:

    The structure comprises components and connecters that create, storeand access data

    It shows how data is produced and consumed by run time softwareelement.

    It is used for good performance and data integrity.

    Client and server:

    Built as a group of cooperating clients and servers.

    Components are clients and servers & Connecters are protocols and

    messages

    Used for load balancing( supporting run time performance) and physicaldistribution.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    33/37

    Architectural Structures: Allocation

    Deployment: Shows how software is assigned to hardware processing and

    communication elements.

    The elements are software, hardware, and communication pathways.

    Relations are allocated to (shows which physical units are assigns to

    software elements), and migrates to (if allocation is dynamic)

    Helps to understand the performance ,availability, security.

    Implementation:

    shows how software elements are mapped to file structures in thesystems development, integration.

    This is critical for management of development activities.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    34/37

    Work assignment:

    This structure assigns responsibility for implementing and integrating the

    modules to appropriate development teams.

    This structure which is the part of the architecture makes it clear about

    the decisions who does the work.

    The architect will know the expertise required on each team.

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    35/37

    Architectural Structures: Module

    Softwarestructure Relations Useful For Reason About

    Decomposition is a sub module, sharessecrets with

    resource allocation, project structuringand planning, information hiding,

    encapsulation, configuration control

    Uses requires the correctpresence of extension or extraction of functionality

    layered requires the correctpresence of, uses thervices of, providesabstraction to

    incremental development,implementing systems on top ofvirtual machines

    Class is an instance of, sharesaccess methods of

    in OOproducing rapid almost-alikeimplementations from a commontemplate

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    36/37

    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

  • 8/12/2019 Sa Unit 1 Chapter 2 Software Architecture

    37/37

    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