Software Architecture1

download Software Architecture1

of 30

Transcript of Software Architecture1

  • 8/7/2019 Software Architecture1

    1/30

    Software Architecture

  • 8/7/2019 Software Architecture1

    2/30

    Engineering

    Software Engineering

    Systematic Study of software

    Architect

    Software Architecture

  • 8/7/2019 Software Architecture1

    3/30

    INTRODUCTION

    Architecture Business Cycle (ABC)

    Software Engineer- Build system based on

    Technical Requirements.

    ARCHITECTURE CRUCIAL part ofDESIGN

  • 8/7/2019 Software Architecture1

    4/30

    Software Architecture - Structure of

    large software system

    Implementation

    Algorithms

    Data Representation

    Behavior and Interaction

    S/W Architecture Fist step towarddesigning a system that has a

    collection properties.

  • 8/7/2019 Software Architecture1

    5/30

    Software Architecture is a Structure or Structure of thesystem

  • 8/7/2019 Software Architecture1

    6/30

  • 8/7/2019 Software Architecture1

    7/30

    Why is learning knowledgeabout architecture important?

    A software architecture is the

    development product that gives thehighest return on investment withrespect to quality, schedule, and cost.

  • 8/7/2019 Software Architecture1

    8/30

    Main contents

    Introduction

    Architecture Styles and Case Studies

    Quality Architectural Patterns

    Design Patterns

    Designing and Documenting SoftwareArchitecture

  • 8/7/2019 Software Architecture1

    9/30

    The Architecture Business Cycle Where Do Architectures Come

    From?

    Software Processes and theArchitecture Business Cycle

    What Makes a "Good" Architecture?

  • 8/7/2019 Software Architecture1

    10/30

    Software Architecture:

    Definition The software architecture of a program or

    computing system is the structure orstructures of the system, which comprisesoftware elements, the externally visibleproperties of those elements, and therelationships among them.

    The architectural view of a system isabstract, distilling awaydetails ofimplementation, algorithm, and datarepresentation and concentrating on thebehavior and interaction of "black box"elements.

  • 8/7/2019 Software Architecture1

    11/30

    Where Do Architectures Come

    From?

    An architecture is the result of a set

    of business and technical decisions.

  • 8/7/2019 Software Architecture1

    12/30

    Influences on thearchitecture

    Architecture

    System

    Customersand End User

    DevelopingOrganization

    TechnicalEnvironment

    ArchitectsExperience

    Requirements

    (Qualities)

    Architects Influences

    Architect

  • 8/7/2019 Software Architecture1

    13/30

  • 8/7/2019 Software Architecture1

    14/30

    Architectures Are Influenced ByThe

    Developing Organization

    immediate business

    long-term business

    organizational structure

  • 8/7/2019 Software Architecture1

    15/30

    Influenced ByThe Background And

    Experience OfThe Architects experience

    architect's education and training,

    exposure to successful architecturalpatterns,

    exposure to systems that haveworked particularly poorly orparticularly well.

  • 8/7/2019 Software Architecture1

    16/30

    Architectures Are Influenced By

    The Technical Environment

    It includes standard industry

    practices or software engineeringtechniques prevalent in the architect'sprofessional community.

  • 8/7/2019 Software Architecture1

    17/30

    Ramifications ofInfluences on an

    Architecture architects need to know and

    understand the nature, source, and

    priority ofconstraints

    on the projectas early as possible

    they must identify and activelyengage the stakeholders to solicit

    their needs and expectations.

  • 8/7/2019 Software Architecture1

    18/30

    Architecture Business Cycle

    Architecture

    System

    Customersand End User

    DevelopingOrganization

    TechnicalEnvironment

    ArchitectsExperience

    Requirements

    (Qualities)Architect

  • 8/7/2019 Software Architecture1

    19/30

    The architecture affects the structureof the developing organization

    architecture prescribes the units of

    software that are the basis for thedevelopment project's structure.

  • 8/7/2019 Software Architecture1

    20/30

    The architecture can affect the goalsof the developing organization

    Successful system

  • 8/7/2019 Software Architecture1

    21/30

    Process( Activities, Actions)

    Recommendation

  • 8/7/2019 Software Architecture1

    22/30

    The architecture can affect customer

    requirements for the next system

    Giving the customer the opportunity

    to receive a system (based on thesame architecture) in a more reliable,timely, and economicalmanner thanif the subsequent system were to be

    built from scratch.

  • 8/7/2019 Software Architecture1

    23/30

    The process of system building willaffect the architect's experience

    Successful or failed system

  • 8/7/2019 Software Architecture1

    24/30

    A few systems will influence and actually change the softwareengineering culture

    Technical environment in whichsystem builders operate and learn.

    E.g. First relational databases, J2EE

  • 8/7/2019 Software Architecture1

    25/30

    Architecture-Based Process Steps Create the business case for the system

    Understand the requirements

    Create or select the architecture

    Represent and communicate thearchitecture

    Analyze or evaluate the architecture

    Implement the system based on the

    architecture Ensure the implementation conforms to the

    architecture

  • 8/7/2019 Software Architecture1

    26/30

    What makes a Good Architecture ?

    Same Requirements- 2 companies- DifferentArchitecture ---- Which is Good?

    Fit for Some stated Purpose

    Ex: C/S Architecture Financial mgmt. SystemNot for Avionics System

    Should not be a Throw away Prototype

    Thumb Rules:1. Process Recommendation2. Product Recommmendation

  • 8/7/2019 Software Architecture1

    27/30

    Architecture Process (Activities)

    Guidelines(Recomm..)Architecture from-

    Single architect or small group withidentified leader

    must have system technical requirementsand prioritized qualitative properties

    must be well-documented (static andDynamic views) based on notation that all

    can understand Architecture should be actively reviewed by

    all stakeholders

  • 8/7/2019 Software Architecture1

    28/30

    Architecture Process (Activities)

    Guidelines(Recomm..) should be analyzed for maximum throughput

    Should be of type incremental implementation,

    useskeletalsystem can helps togrow

    should result in specific resourcerestriction/allocation models (memory,bandwidth, time)

  • 8/7/2019 Software Architecture1

    29/30

    Architecture Product (Structural)Guidelines(Recomm..)

    Architecture should be -

    Well-defined functional modules and well-defined interfaces

    Quality attributes should be achieved usingwell-known architectural tactics specific to eachattribute

    Never depend on a particular version of acommercial product or tool; make change

    straightforward and inexpensive Module that produce data should be separate

    from modules that consumes data

  • 8/7/2019 Software Architecture1

    30/30

    Architecture Product (Structural)

    Guidelines(Recomm..)

    Parallel processing: well-defined processes andtasks that may not mirror module structure

    Process or task assignment to processors mustbe easily changed, even at run-time

    Consistently use a small number of simpleinteraction patterns