04-creating an architecture

Upload: appandai-rajan

Post on 06-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 04-Creating an Architecture

    1/44

    Creating an

    Architecture

    Software Architecture Spring 2006

  • 8/2/2019 04-Creating an Architecture

    2/44

    Spring 2006 Software Architecture 2

    Software Architecture Spring 2006

    Outline Understanding Quality Attributes (Ch. 4)

    Achieving Qualities (Ch. 5)

    Designing the Architecture (Ch. 7)

  • 8/2/2019 04-Creating an Architecture

    3/44

    Spring 2006 Software Architecture 3

    Software Architecture Spring 2006

    Chapter 4.

    Understanding Quality Attributes

  • 8/2/2019 04-Creating an Architecture

    4/44

    Spring 2006 Software Architecture 4

    Software Architecture Spring 2006

    Functionality and Architecture

    Functionality:

    The ability of the system to do the work for whichit was intended

    Functionality and quality attributes areorthogonal

    If functionality is the only requirement

    A single monolithic module works!

  • 8/2/2019 04-Creating an Architecture

    5/44

    Spring 2006 Software Architecture 5

    Software Architecture Spring 2006

    Quality and Architecture Quality and phases of development

    All phases must be considered

    Architecture is often critical

    Attributes have effects on each other

    positive and negative

  • 8/2/2019 04-Creating an Architecture

    6/44

    Spring 2006 Software Architecture 6

    Software Architecture Spring 2006

    A Tour of Quality Attributes System Qualities

    Business Qualities

    Architecture Qualities

  • 8/2/2019 04-Creating an Architecture

    7/44

    Spring 2006 Software Architecture 7

    Software Architecture Spring 2006

    System Quality Attributes Traditional definitions and taxonomies

    Problems

    Not operational Difficult classification

    Diverse vocabulary

  • 8/2/2019 04-Creating an Architecture

    8/44

    Spring 2006 Software Architecture 8

    Software Architecture Spring 2006

    Definitions are not operational

    Example:

    "The system should be modifiable"

    With respect to which set of changes?

  • 8/2/2019 04-Creating an Architecture

    9/44

    Spring 2006 Software Architecture 9

    Software Architecture Spring 2006

    Difficult to classify Example:

    Is a system failure

    an aspect ofAvailability? an aspect ofSecurity?

    an aspect ofUsability?

  • 8/2/2019 04-Creating an Architecture

    10/44

    Spring 2006 Software Architecture 10

    Software Architecture Spring 2006

    Diverse Vocabulary Example:

    Performance: event

    Security:

    attack

    Availability:

    failure Usability

    user input

  • 8/2/2019 04-Creating an Architecture

    11/44

    Spring 2006 Software Architecture 11

    Software Architecture Spring 2006

    Quality Attribute Scenarios A means of characterizing quality

    attributes

  • 8/2/2019 04-Creating an Architecture

    12/44

    Spring 2006 Software Architecture 12

    Software Architecture Spring 2006

    Two Kinds of Scenarios General Scenarios

    System independent

    Concrete Scenarios Specific to the system under consideration

  • 8/2/2019 04-Creating an Architecture

    13/44

    Spring 2006 Software Architecture 13

    Software Architecture Spring 2006

    Usage of Scenarios

    Genral Scenarios

    Attribute characterizations Requirements for aparticular system

    Concrete Scenarios

  • 8/2/2019 04-Creating an Architecture

    14/44

    Spring 2006 Software Architecture 14

    Software Architecture Spring 2006

    Availability General Scenarios

  • 8/2/2019 04-Creating an Architecture

    15/44

    Spring 2006 Software Architecture 15

    Software Architecture Spring 2006

    Sample Availability Scenario

  • 8/2/2019 04-Creating an Architecture

    16/44

    Spring 2006 Software Architecture 16

    Software Architecture Spring 2006

    Specifying RequirementsFunctional Requirements

    Use Cases

    Quality Attributes Requirements

    Concrete Scenarios

  • 8/2/2019 04-Creating an Architecture

    17/44

    Spring 2006 Software Architecture 17

    Software Architecture Spring 2006

    Modifiability General Scenarios

    Cost in terms of number of elements affected, effort, money;

    extent to which this affects other functions or quality attributesResponse

    Measure

    Locates places in architecture to be modified; makes

    modification without affecting other functionality; testsmodification; deploys modification

    Response

    At runtime, compile time, build time, design timeEnvironment

    System user interface, platform, environment; system that

    interoperates with target systemArtifact

    Wishes to add/delete/modify/vary functionality, quality

    attribute, capacityStimulus

    End user, developer, system administratorSource

    Possible ValuesPortion ofScenario

  • 8/2/2019 04-Creating an Architecture

    18/44

    Spring 2006 Software Architecture 18

    Software Architecture Spring 2006

    Quality Aspects Covered Availability

    Modifiability

    Performance

    Security Testability

    Usability See "Useability Mea Culpa" Sidebar!

  • 8/2/2019 04-Creating an Architecture

    19/44

    Spring 2006 Software Architecture 19

    Software Architecture Spring 2006

    Communicating Concepts Eliminating miscommunication between

    stakeholders

  • 8/2/2019 04-Creating an Architecture

    20/44

    Spring 2006 Software Architecture 20

    Software Architecture Spring 2006

    Business Qualities

    Time to market

    Cost and benefit

    Projected lifetime of the system

    Targeted markets Rollout schedule

    Integration with legacy systems

  • 8/2/2019 04-Creating an Architecture

    21/44

    Spring 2006 Software Architecture 21

    Software Architecture Spring 2006

    Architecture Quality

    Conceptual integrity

    Correctness and completeness

    Buildability

  • 8/2/2019 04-Creating an Architecture

    22/44

    Spring 2006 Software Architecture 22

    Software Architecture Spring 2006

    Chapter 5.

    Achieving Quality

  • 8/2/2019 04-Creating an Architecture

    23/44

    Spring 2006 Software Architecture 23

    Software Architecture Spring 2006

    System Design

    A Set of Decisions

    Ensuring achievementof system functionality

    Controlling qualityattribute responses

  • 8/2/2019 04-Creating an Architecture

    24/44

    Spring 2006 Software Architecture 24

    Software Architecture Spring 2006

    Tactics

    A tactic is a design decision that

    influences the control of a qualityattribute response.

  • 8/2/2019 04-Creating an Architecture

    25/44

    Spring 2006 Software Architecture 25

    Software Architecture Spring 2006

    Example

    Introduce redundancy to increase the

    availability of the system

    Consequence: the need forsynchronization

  • 8/2/2019 04-Creating an Architecture

    26/44

    Spring 2006 Software Architecture 26

    Software Architecture Spring 2006

    Organizing Tactics

    Tactics can refine other tactics

    Hierarchical structure

    Patterns package tactics

  • 8/2/2019 04-Creating an Architecture

    27/44

    Spring 2006 Software Architecture 27

    Software Architecture Spring 2006

    Modifiability Tactics

    Three Categories:

    1. Localize modifications

    2. Prevent ripple effects

    3. Defer binding time

  • 8/2/2019 04-Creating an Architecture

    28/44

    Spring 2006 Software Architecture 28

    Software Architecture Spring 2006

    Localize Modifications

    Maintian Semantic Coherence

    Anticipate Expected Changes Generalize the Module

    Limit Possible Options

  • 8/2/2019 04-Creating an Architecture

    29/44

    Spring 2006 Software Architecture 29

    Software Architecture Spring 2006

    Ripple Effects

    Dependencies between modules

    1. Syntax (of data or service)2. Semantics (of data or service)

    3. Sequence (of data or service)

    4. Identity of an interface5. Location

    6. Quality of service/data

    7. Existence8. Resource behavior

  • 8/2/2019 04-Creating an Architecture

    30/44

    Spring 2006 Software Architecture 30

    Software Architecture Spring 2006

    Preventing Ripple Effects

    Hide information

    Maintain existing interfaces Restrict communication paths

    Use an intermediary

  • 8/2/2019 04-Creating an Architecture

    31/44

    Spring 2006 Software Architecture 31

    Software Architecture Spring 2006

    Defer Binding Time

    Rutime registration

    Configuration files Polymorphism

    Component replacement

    Adherence to defined protocols

  • 8/2/2019 04-Creating an Architecture

    32/44

    Spring 2006 Software Architecture 32

    Software Architecture Spring 2006

    Hierarchy of Modifiability Tactics

  • 8/2/2019 04-Creating an Architecture

    33/44

    Spring 2006 Software Architecture 33

    Software Architecture Spring 2006

    Availability Tactics

  • 8/2/2019 04-Creating an Architecture

    34/44

    Spring 2006 Software Architecture 34

    Software Architecture Spring 2006

    Availability Tactics

  • 8/2/2019 04-Creating an Architecture

    35/44

    Spring 2006 Software Architecture 35

    Software Architecture Spring 2006

    Performance Tactics

  • 8/2/2019 04-Creating an Architecture

    36/44

    Spring 2006 Software Architecture 36

    Software Architecture Spring 2006

    Performance Tactics

  • 8/2/2019 04-Creating an Architecture

    37/44

    Spring 2006 Software Architecture 37

    Software Architecture Spring 2006

    Security Tactics

  • 8/2/2019 04-Creating an Architecture

    38/44

    Spring 2006 Software Architecture 38

    Software Architecture Spring 2006

    Security Tactics

  • 8/2/2019 04-Creating an Architecture

    39/44

    Spring 2006 Software Architecture 39

    Software Architecture Spring 2006

    Testability Tactics

  • 8/2/2019 04-Creating an Architecture

    40/44

    Spring 2006 Software Architecture 40

    Software Architecture Spring 2006

    Testability Tactics

  • 8/2/2019 04-Creating an Architecture

    41/44

    Spring 2006 Software Architecture 41

    Software Architecture Spring 2006

    Usability Tactics

  • 8/2/2019 04-Creating an Architecture

    42/44

    Spring 2006 Software Architecture 42

    Software Architecture Spring 2006

    Usability Tactics

  • 8/2/2019 04-Creating an Architecture

    43/44

    Spring 2006 Software Architecture 43

    Software Architecture Spring 2006

    Tactics and Arch. Patterns

    Active Object Pattern

  • 8/2/2019 04-Creating an Architecture

    44/44

    Spring 2006 Software Architecture 44

    Software Architecture Spring 2006

    Tactics Used in Active Object

    Main Purpose:

    Introduce Concurrency (Performance) Other Tactics:

    Information hiding (modifiability)

    Intermediary (modifiability)

    Binding time (modifiability)

    Scheduling policy (performance)