Tactics
Goal of Design
Derive a solution for requirements
- Functionality
- Constraints
- Qualities
Qualiy Attributes
- Availability
- Modifiability
- Security
- Utilisability
- Interoperability
- Performance
- Testability
Availability
Software there and ready to carry out its task when its needed
- Fault --> Failure
- Reliability: Mean Time between Failures
- Recovery: Mean Time to Repair
Scenario:
- Source: Heartbeat monitor
- Stimulus: Server unresponsive
- Artifact: Process, Environment: Normal Operation
- Response: Inform operator continue to operate
- Response Measure: No downtime
Tactics for Availability
- prevent/mitigate failures from faults
- fault --> tactics to control availability

Detect Faults
- Monitor- monitors components state of health
 
- Ping/echo- Asynchronous request/response message exchange
 
- Heartbeat- periodic notification
 
- Timestamp
- Condition Monitoring
- Exception Detection
- Sanity Checking
- Voting
- Self-test
Recover from Faults
- Redundancy- Active Redundancy (Hot Spare)- all components receive and process identical inputs in parallel
 
- Passive Redundancy (Warm Spare)- only active member process the input
- the active member provides spares with periodic state updates
 
- Spare (Cold Spare)- switches to spare when active member fails
- power-on-reset procedure
 
 
- Active Redundancy (Hot Spare)
- Preparation & Repair- Exception Handling
- Software Upgrade
- Ignore Faulty Behavior
- Reconfiguration
- Rollback
- Retry
- Degradation
 
- Reintroduction- Shadow
- State Resunchronization
- Escalating Restart
- Non-stop Forwarding
 
Prevent Faults
- Removal from service
- Predictive Model
- Transactions
- Exception Prevention
- Increase competence set
Interoperability
Degree to which parties can usefully exchange meaningful information
- Locate each other
- Understand each other
Scenario:
- Source of Stimulus: Our vehicle information system
- Stimulus: Current location sent
- Artifact: Traffic monitoring system, Environment: systems known prior to run-time
- Response: Traffic monitor, combines current location with other information, overlays on google maps and broadcasts
- Response Measure: Our information included correctly 99.9% of the time
Tactics for Interoperability
- Allow correct handling of Information exchange- Information Exchange Request --> Tactics to control Interoperability --> request correctly handled
 

- Adapter Pattern- provides expected interface
 
Modifiability
- cost and risk of making changes- what can change
- likelihood of the change
- when change is made
- who makes it
 
Scenario:
- Source: developer
- Stimulus: wishs to change the UI
- Artifact: Code, Environment: Design time
- Response: Change Made and Unit Tested
- Response Measure: in 3 hours
Modifiability Tactics
- control complexity (time, cost) of changes
- change arrives --> tactics to control Modifiability --> change made within Time and Budget

- Reduce Coupling- Encapsulate- Introduces interface: hides internals (e.g. Facade)
 
- Intermediary- Breaks dependency
 
- Restrict Dependencies- constraints interactions (e.g. Layering)
 
- Refactor
- Abstract Common Services
 
- Encapsulate
- Defer Binding- Later binding better modifiability- compile/build time, build script or aspects
- deployment time, configuration-time binding
- startup/initialization time, resource files
- run-time, dependency injection, dynamic lookup of services, message brokers, plug-ins.
 
 
- Later binding better modifiability
Performance
Ability to meet timing requirements
- time to respond to events
- which events occurs
- time-based response
Scenario:
- Source: Users
- Stimulus: Initiate Transactions,
- Artifact: System, Environment: Normal Operation
- Responses: transactions are processed
- Response Measure: average latency of two seconds
Performance Tactics
- Generate a response to an event arriving at the system within some time-based constraint
- Event arrives --> tactics to control performance --> response generated within time constraints

- Control Resource Demand- Manage sampling rate
- Limit Event response
- Prioritize events
- Reduce Overhead
- Bound Execution times
- increase resource efficiency
 
- Manage resources- increase resources
- maintain multiple copies of computations
- bound queue sizes
- increase concurrency
- maintain multiple copies of Data
- schedule resources
 
Security
- ability to protect data and information from attacks- unauthorized access to data/services
- denial of access
 
- characteristcs- confidentiality
- integrity
- availability
- authentication
- non-repudiation
- authorization
 
Scenario:
- source: disgruntled employee from remote location
- Stimulus: attempts to modify pay rate
- Artifact: data within the system, Environment: Normal operations
- Response: System maintains audit trail
- Response Measure: correct data is restored within a day and source of tampering and identified
Security Tactics

Testability
- Ease to have software demonstrate its faults- ability to reveal faults
- control inputs/state
- observe inputs/state
- complexity
 
Scenario:
- source: unit tester
- stimulus: code unit completed
- artifact: code unit, Environment: development
- response: results captured
- response measure: 85% path coverage in thress hours
Testability Tactics

Usability
Degree to which users easily, effectively, efficiently, and satisfactorily perform their tasks
- learning system features
- using a system efficiently
- minimizing the impact of erros
- adapting the system to user needs
- increasing confidence and satisfaction
Scenario:
- source: user
- stimulus: donwloads a new application
- artifact: system, environment: runtime
- response: user uses application productivity
- response measure: within two minutes of experimentation
Usability Tactics

Architectural Tactics
- Fundamental design technique- controls a specific quality attribute
- stimulus --> tactis to control response --> response
 
Design Decision Categories
- Allocation of responsibilities
- Data model
- Mapping among architectural elements
- Coordination model
- Management of resources
- Binding time decisions
- Choice of technology