SlideShare a Scribd company logo
1 of 54
Ms. Memoona Sami
Memoona.sami@faculty.muet.edu.pk
SOFTWARE DESIGN AND ARCHITECTURE
LECTURE 10-15
Disclaimer: The contents of this
presentation have been taken from
multiple sources, i.e. Books,
Research articles, Thesis
publications, and websites.
The material used in this presentation i.e., pictures/graphs/text, etc. is solely
intended for educational/teaching purpose, offered free of cost to the students for
use under special circumstances of Online Education due to COVID-19 Lockdown
situation and may include copyrighted material - the use of which may not have
been specifically authorised by Copyright Owners. It’s application constitutes Fair
Use of any such copyrighted material as provided in globally accepted law of many
countries. The contents of presentations are intended only for the attendees of the
class being conducted by the presenter.
Fair Use Notice
Outlines
Tactics
Availability tactics
Modifiability tactics
Performance tactics
Security tactics
Testability tactics
Usability tactics
Tactics
Designing Software Architecture
Requirements: quality attributes or qualities
Today
How to achieve requirements : tactics
How do tactics lead to architectural styles
Qualities achieved via design decisions
What design decisions needed for achieving a specific quality?
Tactic
Design decision that influences the control of a quality attribute response
Architectural strategy
Collection of tactics
Tactics
Architectural style
A package of tactics
Tactics can refine other tactics
Redundancy is refined by data redundancy, code redundancy
Example
One availability tactic: introduce redundancy
Implication: we also need synchronization of replicas
To ensure the redundant copy can be used if the original fails
Availability Tactics
Failure
Deviation from intended functional behaviour
Observable by system users
Failure vs fault
Fault: event which may cause a failure
Availability tactics
Keep faults from becoming failures
Make possible repairments
Availability Tactics
Availability Tactics
Fault detection: Ping/Echo
Comp. 1 issues a ”ping” to comp. 2
Comp. 1 expects an ”echo” from comp. 2
Answer within predefined time period
Usable for a group of components
Mutually responsible for one task
Usable for client/server
Tests the server and the communication path
Hierarchy of fault detectors improves bandwidth usage
Availability Tactics
Fault detection: Heartbeat
Comp. 1 emits a ”heartbeat” message periodically
Comp. 2 listens for it
If heartbeat fails
Comp. 1 assumed failed
Fault correcting comp. 3 is notified
Heartbeat can also carry data
Availability Tactics
Fault detection: Exceptions
Fault classes: omission, crash, timing, response
When a fault class recognized, exception is raised
A fault consequently is recognized
Exception handler
Executes in same process that introduced the exception
Typically does a semantic transformation of fault into a processable form
Availability Tactics
Fault recovery:
Recovery preparation and Repair:active redundancy
All redundant components respond to events in parallel => all in same state
Response from only one comp used
Downtime: switching time to another up-to-date component (ms)
Used in client-server config (database syst)
Quick responses are important
Synchronization
All messages to any redundant component sent to all redundant components
Availability Tactics
Fault recovery: passive redundancy
Primary component
responds to events
informs standby components of state updates they must make
Fault occurs
System checks if backup sufficiently fresh before resuming services
Often used in control systems
Periodical switchovers increase availability
Availability Tactics
Fault recovery: spare
Standby spare computing platform configured to replace many different failed components
Must be rebooted to appropriate SW config
Have its state initialized when failure occurs
Checkpoint of system state and state changes to persistent device periodically
Downtime: minutes
Availability Tactics
Fault reintroduction: shadow operation
Previously failed component may be run in ”shadow” mode
For a while
To make sure it mimics the behaviour of the working components
Before restoring it to service
Availability Tactics
Fault reintroduction: state re-synchronization
Passive and active redundancy
Restored component upgrades its state before return to service
Update depends on
Downtime
Size of update
Number of messages required for the update
One preferable; more lead to complicated SW
Availability Tactics
Fault reintroduction: checkpoint/ rollback
Checkpoint
Record of a consistent state
Created periodically or in response to specific events
Useful when a system fails unusually, with detectably inconsistent state: system restored
using
A previous checkpoint of a consistent state
Log of transactions occurred since
Availability Tactics
Fault prevention
Removal from service
Comp removed from operation to undergo some activities to prevent anticipated failures
Exp: rebooting comp to prevent memory leaks
Automatic (design architecture) or manual (design system)
Transactions
sequential steps bundled together, s.t. the whole bundle can be undone at once
Process monitor
If process fault detected, then monitoring process deletes non-performing process and
creates new instance of it
initialized to some appropriate state as in the spare tactic
Modifiability Tactics
Goal: controlling time and cost to implement, test, modify and deploy changes
Sets of tactics
Localize modifications
Reduce nr of modules affected by a change
Prevent ripple effects
Limiting modifications to localized modules
Defer binding time
Controlling deployment time and cost
Modifiability Tactics
Modifiability Tactics
Localize modifications: maintain semantic coherence
Semantic coherence: relationships among responsibilities in a module
Goal: ensure all these responsibilities work together w/o excessive reliance on other modules
Goal achievement: design modules with responsibilities in semantic coherence
Modifiability Tactics
Localize modifications: abstract common services
Sub-tactic of semantic coherence
Provides common services through specialized modules
Reuse and modifiability
Modifications to common services done only once rather than in every module using them
Modifications to modules using common services do not impact other users
Modifiability Tactics
Localize modifications: anticipate expected changes
Considering the set of envisioned changes provides way to evaluate particular assignment of
responsibilities
Questions
For a change: does proposed decomp. limit the set of modules needing modification?
Fundamentally diff. changes: do they affect the same modules?
Goal: minimizing effects of changes
Modifiability Tactics
Localize modifications: generalize the module
Generalize a module by making it compute a broader range of functions due to its input type
Input: defining language for the module
Making constants input parameters
Implementing the module as an interpreter and making the input parameters be programs
in that interpreter’s language
The more general the module
The most likely is that requested changes can be made by adjusting input language
Modifiability Tactics
Prevent ripple effects
Localize modifications vs limit modifications to localized modules
There are modules directly affected
Whose responsibilities are adjusted to accomplish change
There are modules indirectly affected by a change
Whose responsibilities remain unchanged BUT implementation needs to be changed to
accommodate the directly affected modules
Modifiability Tactics
Ripple effects
Ripple effect from a modification
The necessity of making changes to modules not directly affected by it
This happens because said modules are SOMEHOW dependent on the modules directly
dealing with the modification
Modifiability Tactics
Dependency types
We assume
Module A changed to accomplish particular modification
Module B changed only because A changed
There are several dependency types
Syntax, semantics, sequence, identity of interface, location of A, quality of service,
existence of A, resource behaviour of A
Modifiability Tactics
Dependency types- Syntax dependency
Of data
B consumes data produced by A
Type and format of data in both A and B need to be consistent
Of service
B invokes services of A
Signature of services produced by A need to be consistent with B’s assumptions
Modifiability Tactics
Dependency types- Semantics dependency
Of data
B consumes data produced by A
Semantics of data produced by A and consumed by B need to be consistent with B’s
assumptions
Of service
B invokes services of A
Semantics of services produced by A need to be consistent with B’s assumptions
Modifiability Tactics
Dependency types- Sequence dependency
Of data
B consumes data produced by A
B must receive the data produced by A in a fixed sequence
Of control
A must have executed previously within certain time constraints
Modifiability Tactics
Dependency types- Identity of interface of A
A may have multiple interfaces
B uses one of them
For B to compile and execute correctly, the identity (name or handle) of the interface
must be consistent with B’s assumptions
Modifiability Tactics
Other dependencies
Runtime location of A
Must be consistent with B’s assumptions
Quality of service/data provided by A
Properties involving the above quality must be consistent with B’s assumptions
Existence of A
For B to execute, A must exist
Resource behaviour of A
Must be consistent with B’s assumptions
Modifiability Tactics
Tactics for ripple effect prevention
Information hiding
Maintain existing interfaces
Restrict communication paths
Use intermediary
Modifiability Tactics
Information hiding
Decomposition of responsibilities into smaller pieces and choosing which information to
make private and which public
Public information available through specified interfaces
Goal: isolate changes within one module and prevent changes from propagating to others
Oldest technique from preventing changes from propagating
Strongly related to ”anticipate expected changes” (it uses those changes as basis for
decomposition)
Modifiability Tactics
Maintain existing interfaces
B syntax-depends on A’s interface
Maintaining the interface lets B stay unchanged
Interface stability
Separating interface from implementation
How to implement the tactic
Adding interfaces
Adding adapter
Providing a stub for A
Modifiability Tactics
Restrict communication paths
Restrict number of modules with which the given module shares data
Reduce nr of modules that consume data produced by given module
Reduce nr of modules that produce data consumed by given module
Reduced ripple effect
Data production/consumption introduces dependencies
Modifiability Tactics
Use an intermediary
B dependent on A in other ways than semantically
Possible to introduce an intermediary to manage the dependency
Data (syntax)
Service (syntax)
Location of A
Existence of A
Modifiability Tactics
Defer binding time
Decision can be bound into executing system at various times
Binding at runtime
System has been prepared for that binding
All testing and distribution steps already completed
Supports end user/administrator making settings or providing input that affects behavior
Modifiability Tactics
Tactics with impact at load/runtime
Runtime registration
Plug-and-play operation, extra overhead to manage registration
Configuration files-set parameters at start-up
Polymorphism-late binding of method calls
Component replacement–load time binding
Adherence to defined protocols
Runtime binding of independent processes
Security Tactics
Goal: resisting attacks, detecting attacks, recovering from attacks
House defence analogy
Door lock
Motion sensor
Insurance
Security Tactics
Security Tactics
 Resisting attacks
Authenticate users
Passwords, one-time passwords, digital certificates, biometric id
Authorize users
Access control patterns
Maintain data confidentiality
Encryption to data and communication links
Maintain integrity
Checksums, hash results help
Limit exposure: limited services on each host
Limit access: firewalls, DMZ
Security Tactics
Detecting attacks
Intrusion detection system
Compares network traffic patterns to database
Misuse=> pattern compared to historical patterns of known attacks
Anomaly=> pattern compared to historical baseline of itself
Filtering
Protocol, TCP flags, payload size, addresses, port numbers
Must have
Sensor to detect attacks
Manager for sensor fusion
Databases for storing events for analysis
Tools for offline reporting and analysis
Control console to modify intrusion detection actions
Security Tactics
Intrusion detectors
Sensor to detect attacks
Managers for sensor fusion
Databases for storing events for later analysis
Tools for offline reporting and analysis
Control console
Analyst can modify intrusion detection actions
Security Tactics
Recovering from attacks
Tactics for restoring state
Recovering a consistent state from an inconsistent one: availability tactics
Redundant copies of system adm data
Passwords, access control lists, domain name services, user profile data: special attention
Tactics for attacker identification
For preventive or punitive purposes
Maintain audit trail
Security Tactics
Audit trail
Copy of each transaction applied to data in the system + identifying information
Can be used to
Trace the actions of an attacker
Support non-repudiation
Provides evidence that a particular request was made
Support system recovery
Often attack targets
Should be maintained in trusted fashion
Testability Tactics
Goal: allow for easier testing when some increment of software development is completed
Enhancing testability not so mature but very valuable
40% of system development
Testing a running system (not designs)
Test harness
SW that provides input to the SW being tested and captures the output
Goal: find faults
Testability Tactics
Testability Tactics
I/O Tactics: record/playback
Refers to
Capturing info crossing an interface
Using it as input to the test harness
Info crossing an interface at normal operation
Output from one component, input to another
Saved in repository
Allows test input for one component
Gives test output for later comparisons
Testability Tactics
I/O Tactics: interface vs implementation
Separating interface from implementation
Allows substitution of implementations for various testing purposes
Stubbing implementations let system be tested without the component being stubbed
Substituting a specialized component lets the component being replaced to act as test
harness for the remainder of the system
Tactic also achieves modifiability
Testability Tactics
I/O Tactics: specialize access routes/interfaces
Having specialized testing interfaces
Captures/specifies variable values for components
Via test harness
Independently from normal execution
Specialized access routes/interfaces
Should be kept separate from required functionality
Hierarchy of test interfaces
Test cases can be applied at any architectural level
Testing functionality in place to observe responses
Testability Tactics
Internal monitoring tactic
Built-in monitors
Component can maintain state, performance load, capacity, security, etc accessible through
interfaces
Permanent interface or temporarily introduced for testing
Record events when monitoring states activated
Additional testing cost/effort
Increased visibility
Usability Tactics
Usability concerns
How easy can a user accomplish desired task
What is the system support for the user
Tactics
Runtime: support user during system execution
Design time: support interface developer
Iterative nature of interface design
Related to modifiability tactics
Refinement of semantic coherence tactic to localize expected changes
Usability Tactics
Runtime tactics
User feedback as to what is the system doing
Providing user with ability to issue usability commands
Cancel
Undo
Aggregate
Show multiple views
Usability Tactics

More Related Content

What's hot

Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3koolkampus
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design IntroductionUsman Khan
 
Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleDhivyaa C.R
 
Unit iv -Documenting and Implementation of Software Architecture
Unit iv -Documenting and Implementation of Software ArchitectureUnit iv -Documenting and Implementation of Software Architecture
Unit iv -Documenting and Implementation of Software ArchitectureDhivyaa C.R
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
Shared information systems
Shared information systemsShared information systems
Shared information systemsHimanshu
 
Model-Based Systems Requirements
Model-Based Systems RequirementsModel-Based Systems Requirements
Model-Based Systems RequirementsJean-Michel Bruel
 
Selenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing ToolSelenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing Toolijtsrd
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7mohammad hossein Jalili
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5koolkampus
 
Formal approaches to software architecture design thesis presentation
Formal approaches to software architecture design   thesis presentationFormal approaches to software architecture design   thesis presentation
Formal approaches to software architecture design thesis presentationNacha Chondamrongkul
 

What's hot (20)

Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
 
Chap4 RE validation
Chap4 RE validationChap4 RE validation
Chap4 RE validation
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design Introduction
 
Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycle
 
Unit iv -Documenting and Implementation of Software Architecture
Unit iv -Documenting and Implementation of Software ArchitectureUnit iv -Documenting and Implementation of Software Architecture
Unit iv -Documenting and Implementation of Software Architecture
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
Shared information systems
Shared information systemsShared information systems
Shared information systems
 
Unit 1
Unit 1Unit 1
Unit 1
 
Model-Based Systems Requirements
Model-Based Systems RequirementsModel-Based Systems Requirements
Model-Based Systems Requirements
 
Selenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing ToolSelenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing Tool
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7
 
software architecture
software architecturesoftware architecture
software architecture
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
 
Formal approaches to software architecture design thesis presentation
Formal approaches to software architecture design   thesis presentationFormal approaches to software architecture design   thesis presentation
Formal approaches to software architecture design thesis presentation
 

Similar to Sda 4

Software maintenance
Software maintenanceSoftware maintenance
Software maintenanceAnsh Kapoor
 
13 configuration management
13  configuration management13  configuration management
13 configuration managementrandhirlpu
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.pptNidhi99849
 
SYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLESYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLEayushisingh190
 
Ch 5- Achieving Qualities
Ch 5- Achieving QualitiesCh 5- Achieving Qualities
Ch 5- Achieving QualitiesAsmat Zahra
 
Kelis king - software development life cycle (sdlc)
Kelis king  - software development life cycle (sdlc)Kelis king  - software development life cycle (sdlc)
Kelis king - software development life cycle (sdlc)KelisKing
 
Kelis king - software development life cycle (sdlc)
Kelis king -  software development life cycle (sdlc)Kelis king -  software development life cycle (sdlc)
Kelis king - software development life cycle (sdlc)KelisKing
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration ManagementRajesh Kumar
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering Huda Alameen
 
15 object orienteddesign
15 object orienteddesign15 object orienteddesign
15 object orienteddesignrandhirlpu
 

Similar to Sda 4 (20)

Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Review se
Review seReview se
Review se
 
13 configuration management
13  configuration management13  configuration management
13 configuration management
 
Ch21
Ch21Ch21
Ch21
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.ppt
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.ppt
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.ppt
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.ppt
 
SYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLESYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLE
 
Ch 5- Achieving Qualities
Ch 5- Achieving QualitiesCh 5- Achieving Qualities
Ch 5- Achieving Qualities
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
 
Doors Change
Doors ChangeDoors Change
Doors Change
 
Kelis king - software development life cycle (sdlc)
Kelis king  - software development life cycle (sdlc)Kelis king  - software development life cycle (sdlc)
Kelis king - software development life cycle (sdlc)
 
Kelis king - software development life cycle (sdlc)
Kelis king -  software development life cycle (sdlc)Kelis king -  software development life cycle (sdlc)
Kelis king - software development life cycle (sdlc)
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration Management
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
15 object orienteddesign
15 object orienteddesign15 object orienteddesign
15 object orienteddesign
 
Managing Application Software Maintenance
Managing Application Software MaintenanceManaging Application Software Maintenance
Managing Application Software Maintenance
 

Recently uploaded

Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 

Recently uploaded (20)

Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 

Sda 4

  • 1. Ms. Memoona Sami Memoona.sami@faculty.muet.edu.pk SOFTWARE DESIGN AND ARCHITECTURE LECTURE 10-15 Disclaimer: The contents of this presentation have been taken from multiple sources, i.e. Books, Research articles, Thesis publications, and websites.
  • 2. The material used in this presentation i.e., pictures/graphs/text, etc. is solely intended for educational/teaching purpose, offered free of cost to the students for use under special circumstances of Online Education due to COVID-19 Lockdown situation and may include copyrighted material - the use of which may not have been specifically authorised by Copyright Owners. It’s application constitutes Fair Use of any such copyrighted material as provided in globally accepted law of many countries. The contents of presentations are intended only for the attendees of the class being conducted by the presenter. Fair Use Notice
  • 3. Outlines Tactics Availability tactics Modifiability tactics Performance tactics Security tactics Testability tactics Usability tactics
  • 4. Tactics Designing Software Architecture Requirements: quality attributes or qualities Today How to achieve requirements : tactics How do tactics lead to architectural styles Qualities achieved via design decisions What design decisions needed for achieving a specific quality? Tactic Design decision that influences the control of a quality attribute response Architectural strategy Collection of tactics
  • 5. Tactics Architectural style A package of tactics Tactics can refine other tactics Redundancy is refined by data redundancy, code redundancy Example One availability tactic: introduce redundancy Implication: we also need synchronization of replicas To ensure the redundant copy can be used if the original fails
  • 6. Availability Tactics Failure Deviation from intended functional behaviour Observable by system users Failure vs fault Fault: event which may cause a failure Availability tactics Keep faults from becoming failures Make possible repairments
  • 8. Availability Tactics Fault detection: Ping/Echo Comp. 1 issues a ”ping” to comp. 2 Comp. 1 expects an ”echo” from comp. 2 Answer within predefined time period Usable for a group of components Mutually responsible for one task Usable for client/server Tests the server and the communication path Hierarchy of fault detectors improves bandwidth usage
  • 9. Availability Tactics Fault detection: Heartbeat Comp. 1 emits a ”heartbeat” message periodically Comp. 2 listens for it If heartbeat fails Comp. 1 assumed failed Fault correcting comp. 3 is notified Heartbeat can also carry data
  • 10. Availability Tactics Fault detection: Exceptions Fault classes: omission, crash, timing, response When a fault class recognized, exception is raised A fault consequently is recognized Exception handler Executes in same process that introduced the exception Typically does a semantic transformation of fault into a processable form
  • 11. Availability Tactics Fault recovery: Recovery preparation and Repair:active redundancy All redundant components respond to events in parallel => all in same state Response from only one comp used Downtime: switching time to another up-to-date component (ms) Used in client-server config (database syst) Quick responses are important Synchronization All messages to any redundant component sent to all redundant components
  • 12. Availability Tactics Fault recovery: passive redundancy Primary component responds to events informs standby components of state updates they must make Fault occurs System checks if backup sufficiently fresh before resuming services Often used in control systems Periodical switchovers increase availability
  • 13. Availability Tactics Fault recovery: spare Standby spare computing platform configured to replace many different failed components Must be rebooted to appropriate SW config Have its state initialized when failure occurs Checkpoint of system state and state changes to persistent device periodically Downtime: minutes
  • 14. Availability Tactics Fault reintroduction: shadow operation Previously failed component may be run in ”shadow” mode For a while To make sure it mimics the behaviour of the working components Before restoring it to service
  • 15. Availability Tactics Fault reintroduction: state re-synchronization Passive and active redundancy Restored component upgrades its state before return to service Update depends on Downtime Size of update Number of messages required for the update One preferable; more lead to complicated SW
  • 16. Availability Tactics Fault reintroduction: checkpoint/ rollback Checkpoint Record of a consistent state Created periodically or in response to specific events Useful when a system fails unusually, with detectably inconsistent state: system restored using A previous checkpoint of a consistent state Log of transactions occurred since
  • 17. Availability Tactics Fault prevention Removal from service Comp removed from operation to undergo some activities to prevent anticipated failures Exp: rebooting comp to prevent memory leaks Automatic (design architecture) or manual (design system) Transactions sequential steps bundled together, s.t. the whole bundle can be undone at once Process monitor If process fault detected, then monitoring process deletes non-performing process and creates new instance of it initialized to some appropriate state as in the spare tactic
  • 18. Modifiability Tactics Goal: controlling time and cost to implement, test, modify and deploy changes Sets of tactics Localize modifications Reduce nr of modules affected by a change Prevent ripple effects Limiting modifications to localized modules Defer binding time Controlling deployment time and cost
  • 20. Modifiability Tactics Localize modifications: maintain semantic coherence Semantic coherence: relationships among responsibilities in a module Goal: ensure all these responsibilities work together w/o excessive reliance on other modules Goal achievement: design modules with responsibilities in semantic coherence
  • 21. Modifiability Tactics Localize modifications: abstract common services Sub-tactic of semantic coherence Provides common services through specialized modules Reuse and modifiability Modifications to common services done only once rather than in every module using them Modifications to modules using common services do not impact other users
  • 22. Modifiability Tactics Localize modifications: anticipate expected changes Considering the set of envisioned changes provides way to evaluate particular assignment of responsibilities Questions For a change: does proposed decomp. limit the set of modules needing modification? Fundamentally diff. changes: do they affect the same modules? Goal: minimizing effects of changes
  • 23. Modifiability Tactics Localize modifications: generalize the module Generalize a module by making it compute a broader range of functions due to its input type Input: defining language for the module Making constants input parameters Implementing the module as an interpreter and making the input parameters be programs in that interpreter’s language The more general the module The most likely is that requested changes can be made by adjusting input language
  • 24. Modifiability Tactics Prevent ripple effects Localize modifications vs limit modifications to localized modules There are modules directly affected Whose responsibilities are adjusted to accomplish change There are modules indirectly affected by a change Whose responsibilities remain unchanged BUT implementation needs to be changed to accommodate the directly affected modules
  • 25. Modifiability Tactics Ripple effects Ripple effect from a modification The necessity of making changes to modules not directly affected by it This happens because said modules are SOMEHOW dependent on the modules directly dealing with the modification
  • 26. Modifiability Tactics Dependency types We assume Module A changed to accomplish particular modification Module B changed only because A changed There are several dependency types Syntax, semantics, sequence, identity of interface, location of A, quality of service, existence of A, resource behaviour of A
  • 27. Modifiability Tactics Dependency types- Syntax dependency Of data B consumes data produced by A Type and format of data in both A and B need to be consistent Of service B invokes services of A Signature of services produced by A need to be consistent with B’s assumptions
  • 28. Modifiability Tactics Dependency types- Semantics dependency Of data B consumes data produced by A Semantics of data produced by A and consumed by B need to be consistent with B’s assumptions Of service B invokes services of A Semantics of services produced by A need to be consistent with B’s assumptions
  • 29. Modifiability Tactics Dependency types- Sequence dependency Of data B consumes data produced by A B must receive the data produced by A in a fixed sequence Of control A must have executed previously within certain time constraints
  • 30. Modifiability Tactics Dependency types- Identity of interface of A A may have multiple interfaces B uses one of them For B to compile and execute correctly, the identity (name or handle) of the interface must be consistent with B’s assumptions
  • 31. Modifiability Tactics Other dependencies Runtime location of A Must be consistent with B’s assumptions Quality of service/data provided by A Properties involving the above quality must be consistent with B’s assumptions Existence of A For B to execute, A must exist Resource behaviour of A Must be consistent with B’s assumptions
  • 32. Modifiability Tactics Tactics for ripple effect prevention Information hiding Maintain existing interfaces Restrict communication paths Use intermediary
  • 33. Modifiability Tactics Information hiding Decomposition of responsibilities into smaller pieces and choosing which information to make private and which public Public information available through specified interfaces Goal: isolate changes within one module and prevent changes from propagating to others Oldest technique from preventing changes from propagating Strongly related to ”anticipate expected changes” (it uses those changes as basis for decomposition)
  • 34. Modifiability Tactics Maintain existing interfaces B syntax-depends on A’s interface Maintaining the interface lets B stay unchanged Interface stability Separating interface from implementation How to implement the tactic Adding interfaces Adding adapter Providing a stub for A
  • 35. Modifiability Tactics Restrict communication paths Restrict number of modules with which the given module shares data Reduce nr of modules that consume data produced by given module Reduce nr of modules that produce data consumed by given module Reduced ripple effect Data production/consumption introduces dependencies
  • 36. Modifiability Tactics Use an intermediary B dependent on A in other ways than semantically Possible to introduce an intermediary to manage the dependency Data (syntax) Service (syntax) Location of A Existence of A
  • 37. Modifiability Tactics Defer binding time Decision can be bound into executing system at various times Binding at runtime System has been prepared for that binding All testing and distribution steps already completed Supports end user/administrator making settings or providing input that affects behavior
  • 38. Modifiability Tactics Tactics with impact at load/runtime Runtime registration Plug-and-play operation, extra overhead to manage registration Configuration files-set parameters at start-up Polymorphism-late binding of method calls Component replacement–load time binding Adherence to defined protocols Runtime binding of independent processes
  • 39. Security Tactics Goal: resisting attacks, detecting attacks, recovering from attacks House defence analogy Door lock Motion sensor Insurance
  • 41. Security Tactics  Resisting attacks Authenticate users Passwords, one-time passwords, digital certificates, biometric id Authorize users Access control patterns Maintain data confidentiality Encryption to data and communication links Maintain integrity Checksums, hash results help Limit exposure: limited services on each host Limit access: firewalls, DMZ
  • 42. Security Tactics Detecting attacks Intrusion detection system Compares network traffic patterns to database Misuse=> pattern compared to historical patterns of known attacks Anomaly=> pattern compared to historical baseline of itself Filtering Protocol, TCP flags, payload size, addresses, port numbers Must have Sensor to detect attacks Manager for sensor fusion Databases for storing events for analysis Tools for offline reporting and analysis Control console to modify intrusion detection actions
  • 43. Security Tactics Intrusion detectors Sensor to detect attacks Managers for sensor fusion Databases for storing events for later analysis Tools for offline reporting and analysis Control console Analyst can modify intrusion detection actions
  • 44. Security Tactics Recovering from attacks Tactics for restoring state Recovering a consistent state from an inconsistent one: availability tactics Redundant copies of system adm data Passwords, access control lists, domain name services, user profile data: special attention Tactics for attacker identification For preventive or punitive purposes Maintain audit trail
  • 45. Security Tactics Audit trail Copy of each transaction applied to data in the system + identifying information Can be used to Trace the actions of an attacker Support non-repudiation Provides evidence that a particular request was made Support system recovery Often attack targets Should be maintained in trusted fashion
  • 46. Testability Tactics Goal: allow for easier testing when some increment of software development is completed Enhancing testability not so mature but very valuable 40% of system development Testing a running system (not designs) Test harness SW that provides input to the SW being tested and captures the output Goal: find faults
  • 48. Testability Tactics I/O Tactics: record/playback Refers to Capturing info crossing an interface Using it as input to the test harness Info crossing an interface at normal operation Output from one component, input to another Saved in repository Allows test input for one component Gives test output for later comparisons
  • 49. Testability Tactics I/O Tactics: interface vs implementation Separating interface from implementation Allows substitution of implementations for various testing purposes Stubbing implementations let system be tested without the component being stubbed Substituting a specialized component lets the component being replaced to act as test harness for the remainder of the system Tactic also achieves modifiability
  • 50. Testability Tactics I/O Tactics: specialize access routes/interfaces Having specialized testing interfaces Captures/specifies variable values for components Via test harness Independently from normal execution Specialized access routes/interfaces Should be kept separate from required functionality Hierarchy of test interfaces Test cases can be applied at any architectural level Testing functionality in place to observe responses
  • 51. Testability Tactics Internal monitoring tactic Built-in monitors Component can maintain state, performance load, capacity, security, etc accessible through interfaces Permanent interface or temporarily introduced for testing Record events when monitoring states activated Additional testing cost/effort Increased visibility
  • 52. Usability Tactics Usability concerns How easy can a user accomplish desired task What is the system support for the user Tactics Runtime: support user during system execution Design time: support interface developer Iterative nature of interface design Related to modifiability tactics Refinement of semantic coherence tactic to localize expected changes
  • 53. Usability Tactics Runtime tactics User feedback as to what is the system doing Providing user with ability to issue usability commands Cancel Undo Aggregate Show multiple views