SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
Achieving Qualities
Introduction
• We are interested in how the architect achieves
  particular qualities
• Our interest is in the tactics used by the
  architect to create a design using design
  patterns, architectural patterns, or architectural
  strategies
• the tactics chosen will guide the architectural
  decisions.
• The connection between quality attribute
  requirements and architectural decisions is the
  subject of this chapter.
Introducing Tactics
• A tactic is a design decision that influences the
  control of a quality attribute response
• We call a collection of tactics an architectural
  strategy
• Each tactic is a design option for the architect


                    Tactics to Control
                        Response
       Stimulus                          Response
Introducing Tactics
• Tactics can refine other tactics
  ▫ For each quality attribute that we discuss, we
    organize the tactics as a hierarchy
• Patterns package tactics
  ▫ e.g., A pattern that supports availability will likely
    use both a redundancy tactic and a
    synchronization tactic
• We are not inventing tactics here, just capturing
  what architects do in practice
Modifiability Tactics
• Tactics have their goal controlling the time and
  cost to implement, test, and deploy changes
• We organize the tactics for modifiability in sets
  according to their goals.


                       Tactics to Control
                         Modifiability
      Change Arrives                        Changes Mode, Tested
                                            and Deployed Within
                                            Time and Budget
Localize Modifications
• Its goal reducing the number of modules that
  are directly affected by a change.
• Restricting modifications to a small set of
  modules will generally reduce the cost.
• It is to assign responsibilities to modules during
  design such that anticipated changes will be
  limited in scope.
  ▫   Maintain semantic coherence
  ▫   Anticipate expected changes
  ▫   Generalize the module
  ▫   Limit possible options
Localize Modifications
Maintain semantic coherence
• Semantic coherence refers to the relationships
  among responsibilities in a module.
• The goal is to ensure that all of these
  responsibilities work together without excessive
  reliance on other modules.
• Providing abstract common services.
 ▫ Modifications to them will need to be made only
   once rather than in each module where the
   services are used
 ▫ Examples : the use of application frameworks and
   the use of other middleware software.
Localize Modifications
Anticipate expected changes
• Considering the set of envisioned changes
  provides a way to evaluate a particular
  assignment of responsibilities
• How is this different from semantic coherence?
 ▫ Assigning responsibilities based on semantic
   coherence assumes that expected changes will be
   semantically coherent
 ▫ Anticipate expected changes does not concern
   itself with the coherence of a module's
   responsibilities but rather with minimizing the
   effects of the changes
Localize Modifications
Generalize the module
• Making a module more general allows it to
  compute a broader range of functions based on
  input
Localize Modifications
Limit possible options
• Modifications may be far ranging and hence
  affect many modules.
• Restricting the possible options will reduce the
  effect of these modifications
• Example : Restricting processor changes to
  members of the same family limits the possible
  options
Prevent the ripple effect
• A ripple effect from a modification is the
  necessity of making changes to modules not
  directly affected by it
• its goal limiting modifications to the localized
  modules
• We begin our discussion by discussing the
  various types of dependencies that one module
  can have on another
Prevent the ripple effect
Various types of dependencies
•   Syntax of - data ,service
•   Semantics of – data , service
•   Sequence of - data , service
•   Identity of an interface of A
•   Location of A
•   Quality of service/data provided by A
•   Existence of A
•   Resource behavior of A
Prevent the ripple effect
Hide Information
• choosing which information/responsibilities to
  make private and which to make public
• The public responsibilities are available through
  specified interfaces
• It is strongly related to "anticipate expected
  changes" because it uses those changes as the
  basis for decomposition.
Prevent the ripple effect
Maintain existing interface
• Maintaining the interface of A and its syntax
  allows B to remain unchanged.
• This tactic will not necessarily work if B has a
  semantic dependency on A
• Interface stability can also be achieved by
  separating the interface from the
  implementation
• Patterns that implement this tactic include
  ▫ Adding interfaces
  ▫ Adding adapter
  ▫ Providing a stub
Prevent the ripple effect
Restrict communication paths
• Restrict the modules with which a given module
  shares data.
• That is, reduce the number of modules that
  consume data produced by the given module
  and the number of modules that produce data
  consumed by it
Prevent the ripple effect
Use an intermediary
• it is possible to insert an intermediary between B and A that
  manages activities associated with the dependency.
• an intermediary cannot compensate for semantic changes
• The intermediaries are
  ▫ data (syntax). Repositories act as intermediaries between the producer
    and consumer of data. Some publish/subscribe patterns can also
    convert the syntax into that assumed by B.
  ▫ service (syntax). The facade, bridge, mediator, strategy, proxy, and
    factory patterns all provide intermediaries that convert the syntax of a
    service from one form into another.
  ▫ identity of an interface of A. A broker pattern can be used to mask
    changes in the identity of an interface.
  ▫ location of A (runtime). A name server enables the location of A to be
    changed without affecting B.
  ▫ resource behavior of A or resource controlled by A. A resource manager
    is an intermediary that is responsible for resource allocation.
  ▫ existence of A. The factory pattern has the ability to create instances as
    needed, and thus the dependence of B on the existence of A is satisfied
    by actions of the factory.
Defer binding time
• Its goal controlling deployment time and cost
• We discuss Decisions that affect deployment
  time
• The deployment of a system is dictated by some
  process
• Binding at runtime means that the system has
  been prepared for that binding and all of the
  testing and distribution steps have been
  completed
• Deferring binding time also supports allowing
  the end user or system administrator to make
  settings or provide input that affects behavior.
Defer binding time
• Many tactics are intended to have impact at
  loadtime or runtime , such as the following
 ▫   Runtime registration
 ▫   Configuration files
 ▫   Polymorphism
 ▫   Component replacement
 ▫   Adherence to defined protocols
Summary of Modifiability Tactics
Testability Tactics
• The goal of tactics for testability is to allow for easier
  testing when an increment of software development is
  completed
• Executing the test procedures requires some software to
  provide input to the software being tested and to
  capture the output. This is called a test harness
• We discuss two categories of tactics for testing:
  ▫ providing input and capturing output
  ▫ and internal monitoring.


                       Tactics to Control
                          Testability
     Completion of                          Faults Detected
     an increment
Testability Tactics
input/output
• There are three tactics for managing input and
  output for testing
• Record/playback
  ▫ refers to both capturing information crossing an
    interface and using it as input into the test harness
• Separate interface from implementation
  ▫ allows substitution of implementations for various
    testing purposes
  ▫ allows the remainder of the system to be tested in the
    absence of the component being stubbed
• Specialize access routes/interfaces
  ▫ allows the capturing of variable values for a
    component through a test harness as well as
    independently from its normal execution
Testability Tactics
Internal Monitoring
• A component can implement tactics based on
  internal state to support the testing process
• Built-in monitors
  ▫ The component can maintain information and
    accessible through an interface
     state,
     performance load,
     capacity,
     security,
     other information
  ▫ This interface can be
     a permanent interface of the component
     introduced temporarily via an instrumentation technique
     such as aspect-oriented programming or preprocessor
     macros
Summary of Testability Tactics
Usability Tactics
• Two types of tactics support usability,
  ▫ Runtime, those that support the user during
    system execution.
  ▫ Design time , those that supports the interface
    developer at design time.
     It is strongly related to the modifiability tactics
     already presented

                     Tactics to Control
                         Response
      User Request                        User Given
                                          Appropriate
                                          Feedback and
                                          Assistance
Usability Tactics
Runtime tactics / user initiative
• The architect must enumerate the responsibilities of
  the system to respond to the user command.
  ▫ cancel, undo, aggregate, and show multiple views
• To use the cancel example: When the user issues a
  cancel command
  ▫ the system must be listening for it (thus, there is the
    responsibility to have a constant listener that is not
    blocked by the actions of whatever is being canceled);
  ▫ the command to cancel must be killed;
  ▫ any resources being used by the canceled command
    must be freed;
  ▫ and components that are collaborating with the
    canceled command must be informed so that they can
    also take appropriate action
Usability Tactics
Runtime tactics / system initiative
• When the system takes the initiative, it must
  rely on some information
• The system initiative tactics are those that
  identify the models the system uses to predict
  either its own behavior or the user's intention
• Maintain a model of the task.
  ▫ The task model is used to determine context so
    the system can have some idea of what the user
    is attempting to do and provide various kinds of
    assistance
Usability Tactics
Runtime tactics / system initiative
• Maintain a model of the user
  ▫ It determines the user's knowledge of the system
  ▫ The user's behavior in terms of expected response
    time
• Maintain a model of the system
  ▫ It determines the expected system behavior so
    that appropriate feedback can be given to the
    user
  ▫ The system model predicts items such as the time
    needed to complete current activity
Usability Tactics
Design time tactics
• User interfaces are typically revised frequently
  during the testing process.
• Separate the user interface from the rest of the
  application.
 ▫ maintaining the user interface code separately will
   localize changes to it.
 ▫ The software architecture patterns developed to
   implement this tactic are:
     Model-View-Controller
     Presentation-Abstraction-Control
     Seeheim
     Arch/Slinky
Summary of Usability Tactics
Availability Tactics
• Recovery or repair is an important aspect of
  availability.
• The tactics we discuss in this section will keep
  faults from becoming failures or at least bound
  the effects of the fault and make repair possible
• We first consider fault detection. We then
  consider fault recovery and finally, briefly, fault
  prevention
                    Tactics to Control
                        Response
       Fault                             Fault Masked or
                                         Repair Made
Fault Detection
• Three widely used tactics for recognizing faults
  are
 ▫ Ping/echo
 ▫ Heartbeat
 ▫ Exceptions
Fault Detection
Ping/Echo
• One component issues a ping and expects to
  receive back an echo, within a predefined time.
• It can also used be used by clients to ensure
  that a server object and the communication path
  to the server are operating within the expected
  performance bounds
Fault Detection
Heartbeat (dead man timer)
• One component emits a heartbeat message
  periodically and another component listens for
  it.
• If the heartbeat fails, the originating component
  is assumed to have failed and a fault correction
  component is notified.
• The heartbeat can also carry data
Fault Detection
Exceptions
• Exception, which is raised when one of the fault
  classes is recognized.
• The exception handler typically executes in the
  same process that introduced the exception
Fault Recovery
• Fault recovery consists of preparing for recovery
  and making the system repair
 ▫   Voting
 ▫   Active Redundancy
 ▫   Passive Redundancy
 ▫   Spare
Fault Recovery
Voting
• Processes running on redundant processors each
  take equivalent input and compute a simple output
  value that is sent to a voter
• This method is often used in control systems
• Diversity has no downtime when a failure occurs
  since the voter continues to operate
• Synchronization among the redundant components
  is automatic since they are all assumed to be
  computing on the same set of inputs in parallel
• If the consequence of a failure is extreme, such as
  potential loss of life, the redundant components can
  be diverse.
Fault Recovery
Active redundancy
• All redundant components respond to events in parallel.
• Consequently, they are all in the same state.
• The response from only one component is used (usually
  the first to respond), and the rest are discarded.
• When a fault occurs, the downtime of systems is usually
  milliseconds
• Active redundancy is often used in a client/server
  configuration
• The redundancy may be in the communication paths
• Synchronization is performed by ensuring that all
  messages to any redundant component are sent to all
  redundant components , use receive checksum , and
  resend until treshold.
Fault Recovery
Passive redundancy
• One component (the primary) responds to
  events and informs the other components (the
  standbys) of state updates they must make
• When a fault occurs, the system must first
  ensure that the backup state is sufficiently fresh
  before resuming services
• This approach is also used in control systems
• Synchronization is the responsibility of the
  primary component, which may use atomic
  broadcasts to the secondaries to guarantee
  synchronization.
Fault Recovery
Spare
• A standby spare computing platform is
  configured to replace many different failed
  components
• It must be rebooted to the appropriate software
  configuration and have its state initialized when
  a failure occurs
• This is often used as the standby client
  workstation.
• The downtime for this tactic is usually minutes
Fault Recovery
Reintroduction
• There are tactics for repair that rely on component
  reintroduction.
• When a redundant component fails, it may be
  reintroduced after it has been corrected.
  ▫ Shadow operation
     A previously failed component may be run in "shadow
     mode" for a short time to make sure that it mimics the
     behavior of the working components before restoring it
     to service
  ▫ State resynchronization
     The passive and active redundancy tactics require the
     component being restored to have its state upgraded
     before its return to service.
  ▫ Checkpoint/rollback
     A checkpoint is a recording of a consistent state created
     either periodically or in response to specific events
Fault Prevention
• The following are some fault prevention tactics
• Removal from service
  ▫ This tactic removes a component of the system from
    operation to undergo some activities to prevent
    anticipated failures
• Transactions
  ▫ Transactions are used to prevent any data from being
    affected if one step in a process fails and also to
    prevent collisions among several simultaneous threads
    accessing the same data.
• Process monitor
  ▫ a monitoring process can delete the nonperforming
    process and create a new instance of it
Summary of Availability Tactics
Performance Tactics
• Performance tactics control the time within
  which a response is generated.
• Latency is the time between the arrival of an
  event and the generation of a response to it.
• This leads to the two basic contributors to the
  response time: resource consumption and
  blocked time.

                       Tactics to Control
       Events Arrive     Performance        Response
                                            Generated
                                            Within Time
                                            Constraints
Performance
Resource consumption
• Resources include CPU, data stores, network
  communication bandwidth, and memory
• When event arrives , it goes through a
  processing sequence
• Each of these consumption contributes to the
  overall latency of the processing of that event.
Performance
Blocked time
• A computation can be blocked from using a resource
  because of
 ▫ Contention for resources
     this depends on how the contention is arbitrated and
     how individual requests are treated by the arbitration
     mechanism.
 ▫ Availability of resources
     Unavailability may be caused by the resource being
     offline or by failure of the component or for some other
     reason
 ▫ Dependency of other computation
     A computation must synchronize with the results of
     another computation
     A computation is waiting for the results of a computation
     that it initiated
Performance Tactics
Resource Demand
• Two characteristics of demand are
 ▫ the time between events in a resource stream
 ▫ how much of a resource is consumed by each
   request
• To reduce the resources required for processing
 ▫ Increase computational efficiency
     Improving the algorithms
     Processor , disk
 ▫ Reduce computational overhead
     The use of intermediaries increases the resources
     consumed in processing an event stream, and so
     removing them improves latency.
     This is a classic modifiability/performance tradeoff.
Performance Tactics
Resource Demand
• To reduce the number of events processed
  ▫ Manage event rate
     reduce the sampling frequency at which environmental
     variables are monitored
  ▫ Control frequency of sampling
     queued requests can be sampled at a lower frequency
• Controlling the use of resources
  ▫ Bound execution times.
     limiting the number of iterations is a method for
     bounding execution times
  ▫ Bound queue sizes
     controls the maximum number of queued arrivals and
     consequently the resources used to process the arrivals
Performance Tactics
Resource Management
• The management of demanded resources
  affects response times
• Introduce concurrency
 ▫ If requests can be processed in parallel, the
   blocked time can be reduced
 ▫ Appropriately allocating the threads to resources
   (load balancing) is important
• Maintain multiple copies of either data or
  computations
 ▫ Clients in a client-server pattern are replicas of the
   computation
 ▫ Caching is a tactic in which data is replicated
Performance Tactics
Resource Management
• Increase available resources
 ▫   Faster processors
 ▫   Additional processors
 ▫   Additional memory
 ▫   Faster networks
 ▫   Cost is usually a consideration in the choice of
     resources
Performance Tactics
Resource Arbitration
• Whenever there is contention for a resource, the
  resource must be scheduled.
• A scheduling policy conceptually has two parts:
  a priority assignment and dispatching
• All scheduling policies assign priorities
• Some common scheduling policies are
• First-in/First-out
 ▫ treat all requests for resources as equals
• Fixed-Priority scheduling
 ▫ assigns each requests a particular priority and
   assigns the resources in that priority order
Performance Tactics
Resource Arbitration
• Dynamic priority scheduling
 ▫ Round robin
 ▫ Earliest deadline first
• Static scheduling
Summary of Performance Tactics
Security Tactics
• Tactics for achieving security can be divided into
  ▫ those concerned with resisting attacks
  ▫ those concerned with detecting attacks
  ▫ those concerned with recovering from attacks.
• All three categories are important


                   Tactics to Control
                        Security
      Attack                            System Detects, Resists,
                                        or Recovers from Attacks
Security Tactics
Resisting Attacks
• Authenticate users.
  ▫ Passwords, one-time passwords, digital certificates,
    and biometric identifications provide authentication.
• Authorize users
  ▫ Ensuring that user has the rights to access and
    modify either data or services
  ▫ Access control can be by user groups, user roles, lists
    of individuals
• Maintain data confidentiality
  ▫ Applying some form of encryption to data and to
    communication links
  ▫ The link can be implemented by Virtual private
    network (VPN) , Secure Sockets layer (SSL)
  ▫ Encryption can be symmetric or asymmetric
Security Tactics
Resisting Attacks
• Maintain integrity
  ▫ Data should be delivered as intended
  ▫ It can have redundant information encoded in it,
    such as checksums or hash results
• Limit exposure
  ▫ The architect can design the allocation of services
    to hosts so that limited services are available on
    each host.
• Limit access
  ▫ Firewalls restrict access based on message source
    or destination port
Security Tactics
Detecting Attacks
• The detection of an attack is usually through an
  intrusion detection system
• Such systems work by comparing network traffic
  patterns to a database
• Intrusion detectors must have
 ▫   some sort of sensor to detect attacks
 ▫   managers to do sensor fusion
 ▫   databases for storing events for later analysis
 ▫   tools for offline reporting and analysis
 ▫   a control console so that the analyst can modify
     intrusion detection actions
Security Tactics
Recovering Attacks
• Can be divided into
 ▫ those concerned with restoring state
 ▫ those concerned with attacker identification
• Restoring state
• These tactics overlap with those used for
  availability ,One difference is that special
  attention is paid to maintaining redundant
  copies of system administrative data such as
 ▫   passwords
 ▫   access control lists
 ▫   domain name services
 ▫   user profile data.
Security Tactics
Recovering Attacks
• Identifying an attacker
• The tactic is to maintain an audit trail
• An audit trail is a copy of each transaction
  applied to the data in the system together with
  identifying information
• Audit information can be used to trace the
  actions of an attacker, support nonrepudiation ,
  support system recovery
• Audit trails are often attack targets themselves
Summary of Security Tactics
Architectural Patterns and Styles
• Any pattern implements serveral tactics
• It consists of a few key features and rules for combining them
  so that architectural integrity is preserved.
• An architectural pattern is determined by:
  ▫ A set of element types
       e.g., a data repository or a component that computes a
       mathematical function.
  ▫ A topological layout of the elements indicating their
    interrelationships.
  ▫ A set of semantic constraints
       e.g., filters in a pipe-and-filter style are pure data transducers—
       they incrementally transform their input stream into an output
       stream, but do not control either upstream or downstream
       elements.
  ▫ A set of interaction mechanisms
       e.g., subroutine call, event-subscriber, blackboard
       that determine how the elements coordinate through the allowed
       topology.
Architectural Patterns and Styles




A small catalog of architectural patterns, organized by is-a relations
Summary
• Our interest here was in the tactics used by the
  architect to create a design using architectural
  patterns and strategies.
• We provided a list of well-known tactics for
  achieving the six quality attributes
• For each we discussed the tactics that are available
  and widely practiced.
• As we discussed, in relating tactics to patterns the
  architect's task has only just begun when the tactics
  are chosen.
• Any design uses multiple tactics, and understanding
  what attributes are achieved by them, what their
  side effects are, and the risks of not choosing other
  tactics is essential to architecture design.

Contenu connexe

Tendances

Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality AttributesHayim Makabee
 
Software architecture model
Software architecture modelSoftware architecture model
Software architecture modelEmmanuel Fuchs
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsAmr E. Mohamed
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)sanoop s
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSachithra Gayan
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Process model in SE
Process model in SEProcess model in SE
Process model in SEsuranisaunak
 
Component-based Software Engineering
Component-based Software EngineeringComponent-based Software Engineering
Component-based Software EngineeringSalman Khan
 
Importance of software architecture 1
Importance of software architecture 1Importance of software architecture 1
Importance of software architecture 1Dr Reeja S R
 
Rational unified process (rup)
Rational unified process (rup)Rational unified process (rup)
Rational unified process (rup)kdore
 

Tendances (20)

Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Formal Methods
Formal MethodsFormal Methods
Formal Methods
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
 
Software architecture model
Software architecture modelSoftware architecture model
Software architecture model
 
Documenting Software Architectures
Documenting Software ArchitecturesDocumenting Software Architectures
Documenting Software Architectures
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design Patterns
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Process model in SE
Process model in SEProcess model in SE
Process model in SE
 
UNIT 1.pptx
UNIT 1.pptxUNIT 1.pptx
UNIT 1.pptx
 
CBAM
 CBAM CBAM
CBAM
 
Hierarchical models of software quality
Hierarchical models of software qualityHierarchical models of software quality
Hierarchical models of software quality
 
Component-based Software Engineering
Component-based Software EngineeringComponent-based Software Engineering
Component-based Software Engineering
 
Artifacts
ArtifactsArtifacts
Artifacts
 
Software documentation
Software documentationSoftware documentation
Software documentation
 
Importance of software architecture 1
Importance of software architecture 1Importance of software architecture 1
Importance of software architecture 1
 
Rational unified process (rup)
Rational unified process (rup)Rational unified process (rup)
Rational unified process (rup)
 
Prototyping model
Prototyping modelPrototyping model
Prototyping model
 

En vedette

Software archiecture lecture08
Software archiecture   lecture08Software archiecture   lecture08
Software archiecture lecture08Luktalja
 
03 using psp0
03 using psp003 using psp0
03 using psp0Luktalja
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09Luktalja
 
Software archiecture lecture03
Software archiecture   lecture03Software archiecture   lecture03
Software archiecture lecture03Luktalja
 
Software archiecture lecture04
Software archiecture   lecture04Software archiecture   lecture04
Software archiecture lecture04Luktalja
 
Software archiecture lecture10
Software archiecture   lecture10Software archiecture   lecture10
Software archiecture lecture10Luktalja
 
Software archiecture lecture02
Software archiecture   lecture02Software archiecture   lecture02
Software archiecture lecture02Luktalja
 
Software archiecture lecture05
Software archiecture   lecture05Software archiecture   lecture05
Software archiecture lecture05Luktalja
 
Architecture Tradeoff Analysis Method
Architecture Tradeoff Analysis MethodArchitecture Tradeoff Analysis Method
Architecture Tradeoff Analysis MethodCS, NcState
 
Software archiecture lecture01
Software archiecture   lecture01Software archiecture   lecture01
Software archiecture lecture01Luktalja
 
Software archiecture lecture07
Software archiecture   lecture07Software archiecture   lecture07
Software archiecture lecture07Luktalja
 

En vedette (13)

software architecture
software architecturesoftware architecture
software architecture
 
Software archiecture lecture08
Software archiecture   lecture08Software archiecture   lecture08
Software archiecture lecture08
 
03 using psp0
03 using psp003 using psp0
03 using psp0
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09
 
Software archiecture lecture03
Software archiecture   lecture03Software archiecture   lecture03
Software archiecture lecture03
 
Software archiecture lecture04
Software archiecture   lecture04Software archiecture   lecture04
Software archiecture lecture04
 
Software archiecture lecture10
Software archiecture   lecture10Software archiecture   lecture10
Software archiecture lecture10
 
Software archiecture lecture02
Software archiecture   lecture02Software archiecture   lecture02
Software archiecture lecture02
 
Software archiecture lecture05
Software archiecture   lecture05Software archiecture   lecture05
Software archiecture lecture05
 
Architecture Tradeoff Analysis Method
Architecture Tradeoff Analysis MethodArchitecture Tradeoff Analysis Method
Architecture Tradeoff Analysis Method
 
Software archiecture lecture01
Software archiecture   lecture01Software archiecture   lecture01
Software archiecture lecture01
 
Software archiecture lecture07
Software archiecture   lecture07Software archiecture   lecture07
Software archiecture lecture07
 
ATAM
ATAMATAM
ATAM
 

Similaire à Software archiecture lecture06

Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementationyogi syafrialdi
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycleMusTufa Nullwala
 
Ncerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmNcerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmssmarar
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architectureGang Tao
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdfkumari36
 
Software Productivity Measurement
Software Productivity MeasurementSoftware Productivity Measurement
Software Productivity MeasurementAjeng Savitri
 
SDLC Method Training Course
SDLC Method Training CourseSDLC Method Training Course
SDLC Method Training CourseMihika-QA
 
SDLC Methodologies
SDLC MethodologiesSDLC Methodologies
SDLC MethodologiesMihika-QA
 
J2EE Patterns
J2EE PatternsJ2EE Patterns
J2EE PatternsEmprovise
 
Software test management
Software test managementSoftware test management
Software test managementVishad Garg
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdfkrishnaraj714229
 
Best Practices for Implementing Automated Functional Testing
Best Practices for Implementing Automated Functional TestingBest Practices for Implementing Automated Functional Testing
Best Practices for Implementing Automated Functional TestingJason Roy
 
Principles: Usability, Architecture, Design
Principles:  Usability, Architecture, DesignPrinciples:  Usability, Architecture, Design
Principles: Usability, Architecture, DesignJohn Liebenau
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
Creating Functional Testing Strategy.pptx
Creating Functional Testing Strategy.pptxCreating Functional Testing Strategy.pptx
Creating Functional Testing Strategy.pptxMohit Rajvanshi
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 

Similaire à Software archiecture lecture06 (20)

Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
 
module 1.pptx
module 1.pptxmodule 1.pptx
module 1.pptx
 
Testing throughout the software life cycle
Testing throughout the software life cycleTesting throughout the software life cycle
Testing throughout the software life cycle
 
Ncerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssmNcerc rlmca202 adm m4 ssm
Ncerc rlmca202 adm m4 ssm
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdf
 
Software Productivity Measurement
Software Productivity MeasurementSoftware Productivity Measurement
Software Productivity Measurement
 
SDLC Method Training Course
SDLC Method Training CourseSDLC Method Training Course
SDLC Method Training Course
 
SDLC Methodologies
SDLC MethodologiesSDLC Methodologies
SDLC Methodologies
 
J2EE Patterns
J2EE PatternsJ2EE Patterns
J2EE Patterns
 
Software test management
Software test managementSoftware test management
Software test management
 
Lecture 2.pptx
Lecture 2.pptxLecture 2.pptx
Lecture 2.pptx
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf
 
Best Practices for Implementing Automated Functional Testing
Best Practices for Implementing Automated Functional TestingBest Practices for Implementing Automated Functional Testing
Best Practices for Implementing Automated Functional Testing
 
Principles: Usability, Architecture, Design
Principles:  Usability, Architecture, DesignPrinciples:  Usability, Architecture, Design
Principles: Usability, Architecture, Design
 
Unit5.pptx
Unit5.pptxUnit5.pptx
Unit5.pptx
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Chapter Three.pptx
Chapter Three.pptxChapter Three.pptx
Chapter Three.pptx
 
Creating Functional Testing Strategy.pptx
Creating Functional Testing Strategy.pptxCreating Functional Testing Strategy.pptx
Creating Functional Testing Strategy.pptx
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 

Dernier

Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 

Dernier (20)

Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 

Software archiecture lecture06

  • 2. Introduction • We are interested in how the architect achieves particular qualities • Our interest is in the tactics used by the architect to create a design using design patterns, architectural patterns, or architectural strategies • the tactics chosen will guide the architectural decisions. • The connection between quality attribute requirements and architectural decisions is the subject of this chapter.
  • 3. Introducing Tactics • A tactic is a design decision that influences the control of a quality attribute response • We call a collection of tactics an architectural strategy • Each tactic is a design option for the architect Tactics to Control Response Stimulus Response
  • 4. Introducing Tactics • Tactics can refine other tactics ▫ For each quality attribute that we discuss, we organize the tactics as a hierarchy • Patterns package tactics ▫ e.g., A pattern that supports availability will likely use both a redundancy tactic and a synchronization tactic • We are not inventing tactics here, just capturing what architects do in practice
  • 5. Modifiability Tactics • Tactics have their goal controlling the time and cost to implement, test, and deploy changes • We organize the tactics for modifiability in sets according to their goals. Tactics to Control Modifiability Change Arrives Changes Mode, Tested and Deployed Within Time and Budget
  • 6. Localize Modifications • Its goal reducing the number of modules that are directly affected by a change. • Restricting modifications to a small set of modules will generally reduce the cost. • It is to assign responsibilities to modules during design such that anticipated changes will be limited in scope. ▫ Maintain semantic coherence ▫ Anticipate expected changes ▫ Generalize the module ▫ Limit possible options
  • 7. Localize Modifications Maintain semantic coherence • Semantic coherence refers to the relationships among responsibilities in a module. • The goal is to ensure that all of these responsibilities work together without excessive reliance on other modules. • Providing abstract common services. ▫ Modifications to them will need to be made only once rather than in each module where the services are used ▫ Examples : the use of application frameworks and the use of other middleware software.
  • 8. Localize Modifications Anticipate expected changes • Considering the set of envisioned changes provides a way to evaluate a particular assignment of responsibilities • How is this different from semantic coherence? ▫ Assigning responsibilities based on semantic coherence assumes that expected changes will be semantically coherent ▫ Anticipate expected changes does not concern itself with the coherence of a module's responsibilities but rather with minimizing the effects of the changes
  • 9. Localize Modifications Generalize the module • Making a module more general allows it to compute a broader range of functions based on input
  • 10. Localize Modifications Limit possible options • Modifications may be far ranging and hence affect many modules. • Restricting the possible options will reduce the effect of these modifications • Example : Restricting processor changes to members of the same family limits the possible options
  • 11. Prevent the ripple effect • A ripple effect from a modification is the necessity of making changes to modules not directly affected by it • its goal limiting modifications to the localized modules • We begin our discussion by discussing the various types of dependencies that one module can have on another
  • 12. Prevent the ripple effect Various types of dependencies • Syntax of - data ,service • Semantics of – data , service • Sequence of - data , service • Identity of an interface of A • Location of A • Quality of service/data provided by A • Existence of A • Resource behavior of A
  • 13. Prevent the ripple effect Hide Information • choosing which information/responsibilities to make private and which to make public • The public responsibilities are available through specified interfaces • It is strongly related to "anticipate expected changes" because it uses those changes as the basis for decomposition.
  • 14. Prevent the ripple effect Maintain existing interface • Maintaining the interface of A and its syntax allows B to remain unchanged. • This tactic will not necessarily work if B has a semantic dependency on A • Interface stability can also be achieved by separating the interface from the implementation • Patterns that implement this tactic include ▫ Adding interfaces ▫ Adding adapter ▫ Providing a stub
  • 15. Prevent the ripple effect Restrict communication paths • Restrict the modules with which a given module shares data. • That is, reduce the number of modules that consume data produced by the given module and the number of modules that produce data consumed by it
  • 16. Prevent the ripple effect Use an intermediary • it is possible to insert an intermediary between B and A that manages activities associated with the dependency. • an intermediary cannot compensate for semantic changes • The intermediaries are ▫ data (syntax). Repositories act as intermediaries between the producer and consumer of data. Some publish/subscribe patterns can also convert the syntax into that assumed by B. ▫ service (syntax). The facade, bridge, mediator, strategy, proxy, and factory patterns all provide intermediaries that convert the syntax of a service from one form into another. ▫ identity of an interface of A. A broker pattern can be used to mask changes in the identity of an interface. ▫ location of A (runtime). A name server enables the location of A to be changed without affecting B. ▫ resource behavior of A or resource controlled by A. A resource manager is an intermediary that is responsible for resource allocation. ▫ existence of A. The factory pattern has the ability to create instances as needed, and thus the dependence of B on the existence of A is satisfied by actions of the factory.
  • 17. Defer binding time • Its goal controlling deployment time and cost • We discuss Decisions that affect deployment time • The deployment of a system is dictated by some process • Binding at runtime means that the system has been prepared for that binding and all of the testing and distribution steps have been completed • Deferring binding time also supports allowing the end user or system administrator to make settings or provide input that affects behavior.
  • 18. Defer binding time • Many tactics are intended to have impact at loadtime or runtime , such as the following ▫ Runtime registration ▫ Configuration files ▫ Polymorphism ▫ Component replacement ▫ Adherence to defined protocols
  • 20. Testability Tactics • The goal of tactics for testability is to allow for easier testing when an increment of software development is completed • Executing the test procedures requires some software to provide input to the software being tested and to capture the output. This is called a test harness • We discuss two categories of tactics for testing: ▫ providing input and capturing output ▫ and internal monitoring. Tactics to Control Testability Completion of Faults Detected an increment
  • 21. Testability Tactics input/output • There are three tactics for managing input and output for testing • Record/playback ▫ refers to both capturing information crossing an interface and using it as input into the test harness • Separate interface from implementation ▫ allows substitution of implementations for various testing purposes ▫ allows the remainder of the system to be tested in the absence of the component being stubbed • Specialize access routes/interfaces ▫ allows the capturing of variable values for a component through a test harness as well as independently from its normal execution
  • 22. Testability Tactics Internal Monitoring • A component can implement tactics based on internal state to support the testing process • Built-in monitors ▫ The component can maintain information and accessible through an interface state, performance load, capacity, security, other information ▫ This interface can be a permanent interface of the component introduced temporarily via an instrumentation technique such as aspect-oriented programming or preprocessor macros
  • 24. Usability Tactics • Two types of tactics support usability, ▫ Runtime, those that support the user during system execution. ▫ Design time , those that supports the interface developer at design time. It is strongly related to the modifiability tactics already presented Tactics to Control Response User Request User Given Appropriate Feedback and Assistance
  • 25. Usability Tactics Runtime tactics / user initiative • The architect must enumerate the responsibilities of the system to respond to the user command. ▫ cancel, undo, aggregate, and show multiple views • To use the cancel example: When the user issues a cancel command ▫ the system must be listening for it (thus, there is the responsibility to have a constant listener that is not blocked by the actions of whatever is being canceled); ▫ the command to cancel must be killed; ▫ any resources being used by the canceled command must be freed; ▫ and components that are collaborating with the canceled command must be informed so that they can also take appropriate action
  • 26. Usability Tactics Runtime tactics / system initiative • When the system takes the initiative, it must rely on some information • The system initiative tactics are those that identify the models the system uses to predict either its own behavior or the user's intention • Maintain a model of the task. ▫ The task model is used to determine context so the system can have some idea of what the user is attempting to do and provide various kinds of assistance
  • 27. Usability Tactics Runtime tactics / system initiative • Maintain a model of the user ▫ It determines the user's knowledge of the system ▫ The user's behavior in terms of expected response time • Maintain a model of the system ▫ It determines the expected system behavior so that appropriate feedback can be given to the user ▫ The system model predicts items such as the time needed to complete current activity
  • 28. Usability Tactics Design time tactics • User interfaces are typically revised frequently during the testing process. • Separate the user interface from the rest of the application. ▫ maintaining the user interface code separately will localize changes to it. ▫ The software architecture patterns developed to implement this tactic are: Model-View-Controller Presentation-Abstraction-Control Seeheim Arch/Slinky
  • 30. Availability Tactics • Recovery or repair is an important aspect of availability. • The tactics we discuss in this section will keep faults from becoming failures or at least bound the effects of the fault and make repair possible • We first consider fault detection. We then consider fault recovery and finally, briefly, fault prevention Tactics to Control Response Fault Fault Masked or Repair Made
  • 31. Fault Detection • Three widely used tactics for recognizing faults are ▫ Ping/echo ▫ Heartbeat ▫ Exceptions
  • 32. Fault Detection Ping/Echo • One component issues a ping and expects to receive back an echo, within a predefined time. • It can also used be used by clients to ensure that a server object and the communication path to the server are operating within the expected performance bounds
  • 33. Fault Detection Heartbeat (dead man timer) • One component emits a heartbeat message periodically and another component listens for it. • If the heartbeat fails, the originating component is assumed to have failed and a fault correction component is notified. • The heartbeat can also carry data
  • 34. Fault Detection Exceptions • Exception, which is raised when one of the fault classes is recognized. • The exception handler typically executes in the same process that introduced the exception
  • 35. Fault Recovery • Fault recovery consists of preparing for recovery and making the system repair ▫ Voting ▫ Active Redundancy ▫ Passive Redundancy ▫ Spare
  • 36. Fault Recovery Voting • Processes running on redundant processors each take equivalent input and compute a simple output value that is sent to a voter • This method is often used in control systems • Diversity has no downtime when a failure occurs since the voter continues to operate • Synchronization among the redundant components is automatic since they are all assumed to be computing on the same set of inputs in parallel • If the consequence of a failure is extreme, such as potential loss of life, the redundant components can be diverse.
  • 37. Fault Recovery Active redundancy • All redundant components respond to events in parallel. • Consequently, they are all in the same state. • The response from only one component is used (usually the first to respond), and the rest are discarded. • When a fault occurs, the downtime of systems is usually milliseconds • Active redundancy is often used in a client/server configuration • The redundancy may be in the communication paths • Synchronization is performed by ensuring that all messages to any redundant component are sent to all redundant components , use receive checksum , and resend until treshold.
  • 38. Fault Recovery Passive redundancy • One component (the primary) responds to events and informs the other components (the standbys) of state updates they must make • When a fault occurs, the system must first ensure that the backup state is sufficiently fresh before resuming services • This approach is also used in control systems • Synchronization is the responsibility of the primary component, which may use atomic broadcasts to the secondaries to guarantee synchronization.
  • 39. Fault Recovery Spare • A standby spare computing platform is configured to replace many different failed components • It must be rebooted to the appropriate software configuration and have its state initialized when a failure occurs • This is often used as the standby client workstation. • The downtime for this tactic is usually minutes
  • 40. Fault Recovery Reintroduction • There are tactics for repair that rely on component reintroduction. • When a redundant component fails, it may be reintroduced after it has been corrected. ▫ Shadow operation A previously failed component may be run in "shadow mode" for a short time to make sure that it mimics the behavior of the working components before restoring it to service ▫ State resynchronization The passive and active redundancy tactics require the component being restored to have its state upgraded before its return to service. ▫ Checkpoint/rollback A checkpoint is a recording of a consistent state created either periodically or in response to specific events
  • 41. Fault Prevention • The following are some fault prevention tactics • Removal from service ▫ This tactic removes a component of the system from operation to undergo some activities to prevent anticipated failures • Transactions ▫ Transactions are used to prevent any data from being affected if one step in a process fails and also to prevent collisions among several simultaneous threads accessing the same data. • Process monitor ▫ a monitoring process can delete the nonperforming process and create a new instance of it
  • 43. Performance Tactics • Performance tactics control the time within which a response is generated. • Latency is the time between the arrival of an event and the generation of a response to it. • This leads to the two basic contributors to the response time: resource consumption and blocked time. Tactics to Control Events Arrive Performance Response Generated Within Time Constraints
  • 44. Performance Resource consumption • Resources include CPU, data stores, network communication bandwidth, and memory • When event arrives , it goes through a processing sequence • Each of these consumption contributes to the overall latency of the processing of that event.
  • 45. Performance Blocked time • A computation can be blocked from using a resource because of ▫ Contention for resources this depends on how the contention is arbitrated and how individual requests are treated by the arbitration mechanism. ▫ Availability of resources Unavailability may be caused by the resource being offline or by failure of the component or for some other reason ▫ Dependency of other computation A computation must synchronize with the results of another computation A computation is waiting for the results of a computation that it initiated
  • 46. Performance Tactics Resource Demand • Two characteristics of demand are ▫ the time between events in a resource stream ▫ how much of a resource is consumed by each request • To reduce the resources required for processing ▫ Increase computational efficiency Improving the algorithms Processor , disk ▫ Reduce computational overhead The use of intermediaries increases the resources consumed in processing an event stream, and so removing them improves latency. This is a classic modifiability/performance tradeoff.
  • 47. Performance Tactics Resource Demand • To reduce the number of events processed ▫ Manage event rate reduce the sampling frequency at which environmental variables are monitored ▫ Control frequency of sampling queued requests can be sampled at a lower frequency • Controlling the use of resources ▫ Bound execution times. limiting the number of iterations is a method for bounding execution times ▫ Bound queue sizes controls the maximum number of queued arrivals and consequently the resources used to process the arrivals
  • 48. Performance Tactics Resource Management • The management of demanded resources affects response times • Introduce concurrency ▫ If requests can be processed in parallel, the blocked time can be reduced ▫ Appropriately allocating the threads to resources (load balancing) is important • Maintain multiple copies of either data or computations ▫ Clients in a client-server pattern are replicas of the computation ▫ Caching is a tactic in which data is replicated
  • 49. Performance Tactics Resource Management • Increase available resources ▫ Faster processors ▫ Additional processors ▫ Additional memory ▫ Faster networks ▫ Cost is usually a consideration in the choice of resources
  • 50. Performance Tactics Resource Arbitration • Whenever there is contention for a resource, the resource must be scheduled. • A scheduling policy conceptually has two parts: a priority assignment and dispatching • All scheduling policies assign priorities • Some common scheduling policies are • First-in/First-out ▫ treat all requests for resources as equals • Fixed-Priority scheduling ▫ assigns each requests a particular priority and assigns the resources in that priority order
  • 51. Performance Tactics Resource Arbitration • Dynamic priority scheduling ▫ Round robin ▫ Earliest deadline first • Static scheduling
  • 53. Security Tactics • Tactics for achieving security can be divided into ▫ those concerned with resisting attacks ▫ those concerned with detecting attacks ▫ those concerned with recovering from attacks. • All three categories are important Tactics to Control Security Attack System Detects, Resists, or Recovers from Attacks
  • 54. Security Tactics Resisting Attacks • Authenticate users. ▫ Passwords, one-time passwords, digital certificates, and biometric identifications provide authentication. • Authorize users ▫ Ensuring that user has the rights to access and modify either data or services ▫ Access control can be by user groups, user roles, lists of individuals • Maintain data confidentiality ▫ Applying some form of encryption to data and to communication links ▫ The link can be implemented by Virtual private network (VPN) , Secure Sockets layer (SSL) ▫ Encryption can be symmetric or asymmetric
  • 55. Security Tactics Resisting Attacks • Maintain integrity ▫ Data should be delivered as intended ▫ It can have redundant information encoded in it, such as checksums or hash results • Limit exposure ▫ The architect can design the allocation of services to hosts so that limited services are available on each host. • Limit access ▫ Firewalls restrict access based on message source or destination port
  • 56. Security Tactics Detecting Attacks • The detection of an attack is usually through an intrusion detection system • Such systems work by comparing network traffic patterns to a database • Intrusion detectors must have ▫ some sort of sensor to detect attacks ▫ managers to do sensor fusion ▫ databases for storing events for later analysis ▫ tools for offline reporting and analysis ▫ a control console so that the analyst can modify intrusion detection actions
  • 57. Security Tactics Recovering Attacks • Can be divided into ▫ those concerned with restoring state ▫ those concerned with attacker identification • Restoring state • These tactics overlap with those used for availability ,One difference is that special attention is paid to maintaining redundant copies of system administrative data such as ▫ passwords ▫ access control lists ▫ domain name services ▫ user profile data.
  • 58. Security Tactics Recovering Attacks • Identifying an attacker • The tactic is to maintain an audit trail • An audit trail is a copy of each transaction applied to the data in the system together with identifying information • Audit information can be used to trace the actions of an attacker, support nonrepudiation , support system recovery • Audit trails are often attack targets themselves
  • 60. Architectural Patterns and Styles • Any pattern implements serveral tactics • It consists of a few key features and rules for combining them so that architectural integrity is preserved. • An architectural pattern is determined by: ▫ A set of element types e.g., a data repository or a component that computes a mathematical function. ▫ A topological layout of the elements indicating their interrelationships. ▫ A set of semantic constraints e.g., filters in a pipe-and-filter style are pure data transducers— they incrementally transform their input stream into an output stream, but do not control either upstream or downstream elements. ▫ A set of interaction mechanisms e.g., subroutine call, event-subscriber, blackboard that determine how the elements coordinate through the allowed topology.
  • 61. Architectural Patterns and Styles A small catalog of architectural patterns, organized by is-a relations
  • 62. Summary • Our interest here was in the tactics used by the architect to create a design using architectural patterns and strategies. • We provided a list of well-known tactics for achieving the six quality attributes • For each we discussed the tactics that are available and widely practiced. • As we discussed, in relating tactics to patterns the architect's task has only just begun when the tactics are chosen. • Any design uses multiple tactics, and understanding what attributes are achieved by them, what their side effects are, and the risks of not choosing other tactics is essential to architecture design.