SlideShare a Scribd company logo
1 of 34
Impact of Design Pattern on
Software Quality
Omar Adnan Isaid
Agenda
• What is Software Quality ?
• What is Design Pattern ?
• Gang of Four (GoF).
• Design Pattern Elements (Explained by Façade
Design Pattern).
• Advantages of Design Patterns.
• Strategy Design Pattern (Explained by Duck
Game).
• Auto Dynamic Difficulty Framework.
What is Software Quality ?
• ISO 9126: Software quality characteristic is a set of
attributes of a software product by which its quality is
described and evaluated".
• German Industry Standard DIN 55350 Part 11: Quality
comprises all characteristics and significant features of
a product or an activity which relate to the satisfying
of given requirements".
• ANSI Standard (ANSI/ASQC A3/1978): Quality is the
totality of features and characteristics of a product or a
service that bears on its ability to satisfy the given
needs".
What is Design Pattern?
• Design pattern is a solution for a repeatable
problem in the problem design.
• A design pattern isn't a finished design that
can be transformed directly into code.
• A design pattern is a description or template
for how to solve a problem that can be used
in many different situations.
Gang Of Four (GoF)
• GoF are Erich Gamma, Richard Helm, Ralph
Johnson and John Vlissides
• GoF are documented 23 classic software
design patterns in their book : Design
Patterns: Elements of Reusable Object-
Oriented Software.
• The GoF book first published at October 1994
and documented design patterns already exist
but not documented before.
Design Pattern Elements
Name element
[1] Name: Short ,Comprehensive ,No more than
two words.
• The meaning of the word Façade in oxford
dictionary "The principal front of building that
faces to a street or open space".
• The term Façade strongly related to the goal
of the Façade design pattern, which is to
provide a unified interface for different
subsystems of a system.
Design Pattern Problem
[2] Problem
• The suitable situation to apply the design
pattern.
• The preconditions must be available before
the designer decides to apply certain design
pattern.
• the design pattern can clarify the structure of
the inflexible designs of certain problems.
Façade Design Pattern Problem
• Suitable situation : when a unified interface is needed
to decouple different subsystems of a complex system.
• Preconditions before apply Façade Design Pattern
1. A simple interface can be applied to access different
subsystems of a system.
2. The development of the system will provide tightly
coupled system.
3. Each subsystem can have an interface, which can be
accessed using Façade design pattern interface.
• Inflexible to apply the Façade design pattern if it will
act as a bottleneck and limit the features of the system.
Design Pattern Elements
• [3] Solution
• Refers to the description of the problem
solution and the arrangement of the
elements.
• The element for the problem’s solution is the
class.
Design Pattern Solution
Façade interface
Façade interface can access any
subsystems
Advantages Of Design Patterns
[A] The Design patterns document the efforts of
the experts , who did their best efforts to
provide flexible and reusable software.
[B] The Design Pattern concerns with a flexible
software architecture.
The points [A] & [B] implies a set of advantages
for the developers, designers and others.
Advantages Of Design Patterns
• The Design Patterns provide a set of
advantages for the developers and designers
1. Not to reinvent the wheel.
2. Trade off between different solutions for the
same problem(Get the right pattern faster).
3. Studying the design patterns improves the
experience and knowledge of novices.
Strategy Design Pattern
• Assume the scenario where a certain game
has different types of ducks.
• The ducks in the game are different in their
sound and behavior.
• Not all the ducks have the same way of flying
or have the same sound.
Duck Hunt! NES 1984
Inheritance Solution
Override subclass methods
Disadvantages of Duck Inheritance
• If the Duck superclass has a lot of subclasses
serious disadvantages can be emerged
• For example, if the Duck superclass has 50
subclasses , where each Duck has a different
voice and behavior .
• The developer must override 100 methods
making some bugs in the road.
• At least some methods for different subclasses
may be modified from time to time.
Interface Design
Problems of Interface Design
• The interface design eliminates the overhead of
override the frequently changed methods of the
superclass Duck.
• If the mallard and red head ducks have the same fly
and sound behaviors , then the code of fly and sound
methods for the MallardDuck and RedheadDuck
classes are duplicated.
• The inheritance design means to modify methods from
time to time .But, interface design causes code
duplication , which is maintenance problem!
• No code reuse
The Strategy Design Pattern Solution
Take the parts that vary and
encapsulate them so that later you
can alter or extend the parts that
vary without affecting those that
do not
Interchangeable algorithms
• The Duck behavior (sound or fly) can be
described as set of interchangeable
algorithm.
• For example the algorithms for the sound
behavior can be quack , squeak or mute
• The algorithms are interchangeable because
the Duck sound can one of them.
Strategy Design Pattern
Implementing Fly and Sound
Algorithms
Advantages of the Strategy Design
• Reusability : Objects can use fly , quack
behaviors because these behaviors are not
hided anymore in the Duck superclass
• Maintainability : Modify existing behaviors
without make any modifications on the
subclasses of the Duck superclass
Medal of Strategy Pattern
Pattern Coupling (McNatt et. al,2011)
• The system architecture can be viewed as a
set of design patterns connected together.
• The coupled design patterns is a pair of design
patterns connected together using common
classes.
Types of Coupling
1. Tight Coupling
2. Loose Coupling
Tight Coupling
• The common classes strongly connected the
design pattern couple.
• Tight coupling leads to a large block of code.
• Any modification in the design pattern couple
can have a serious cost.
Loosely Coupling
• The common classes loosely connect the
design pattern couple.
• This type results in a maintainable and
reusable design pattern couple.
Overlapping Of Abstract Factory and Visitor Patterns
Auto Dynamic Difficulty Framework
• The ADD is framework to change the game
experience to match the player experience.
• The reusing of the ADD design patterns
eliminates the waste of cost and time to
create the ADD game-by-game

More Related Content

What's hot

Behavioral pattern By:-Priyanka Pradhan
Behavioral pattern By:-Priyanka PradhanBehavioral pattern By:-Priyanka Pradhan
Behavioral pattern By:-Priyanka PradhanPriyanka Pradhan
 
Design Patterns Presentation - Chetan Gole
Design Patterns Presentation -  Chetan GoleDesign Patterns Presentation -  Chetan Gole
Design Patterns Presentation - Chetan GoleChetan Gole
 
Software Design Patterns. Part I :: Structural Patterns
Software Design Patterns. Part I :: Structural PatternsSoftware Design Patterns. Part I :: Structural Patterns
Software Design Patterns. Part I :: Structural PatternsSergey Aganezov
 
Design Patterns
Design PatternsDesign Patterns
Design Patternssoms_1
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patternsop205
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternNishith Shukla
 
How I Learned To Apply Design Patterns
How I Learned To Apply Design PatternsHow I Learned To Apply Design Patterns
How I Learned To Apply Design PatternsAndy Maleh
 
PATTERNS02 - Creational Design Patterns
PATTERNS02 - Creational Design PatternsPATTERNS02 - Creational Design Patterns
PATTERNS02 - Creational Design PatternsMichael Heron
 
Design pattern - Software Engineering
Design pattern - Software EngineeringDesign pattern - Software Engineering
Design pattern - Software EngineeringNadimozzaman Pappo
 
GoF Design patterns I: Introduction + Structural Patterns
GoF Design patterns I:   Introduction + Structural PatternsGoF Design patterns I:   Introduction + Structural Patterns
GoF Design patterns I: Introduction + Structural PatternsSameh Deabes
 
PATTERNS03 - Behavioural Design Patterns
PATTERNS03 - Behavioural Design PatternsPATTERNS03 - Behavioural Design Patterns
PATTERNS03 - Behavioural Design PatternsMichael Heron
 
Gof design pattern
Gof design patternGof design pattern
Gof design patternnaveen kumar
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns IllustratedHerman Peeren
 
PATTERNS04 - Structural Design Patterns
PATTERNS04 - Structural Design PatternsPATTERNS04 - Structural Design Patterns
PATTERNS04 - Structural Design PatternsMichael Heron
 

What's hot (20)

Behavioral pattern By:-Priyanka Pradhan
Behavioral pattern By:-Priyanka PradhanBehavioral pattern By:-Priyanka Pradhan
Behavioral pattern By:-Priyanka Pradhan
 
Design Patterns (Examples in .NET)
Design Patterns (Examples in .NET)Design Patterns (Examples in .NET)
Design Patterns (Examples in .NET)
 
Design Patterns Presentation - Chetan Gole
Design Patterns Presentation -  Chetan GoleDesign Patterns Presentation -  Chetan Gole
Design Patterns Presentation - Chetan Gole
 
Software Design Patterns. Part I :: Structural Patterns
Software Design Patterns. Part I :: Structural PatternsSoftware Design Patterns. Part I :: Structural Patterns
Software Design Patterns. Part I :: Structural Patterns
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patterns
 
Design pattern
Design patternDesign pattern
Design pattern
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design Pattern
 
Design patterns
Design patternsDesign patterns
Design patterns
 
How I Learned To Apply Design Patterns
How I Learned To Apply Design PatternsHow I Learned To Apply Design Patterns
How I Learned To Apply Design Patterns
 
PATTERNS02 - Creational Design Patterns
PATTERNS02 - Creational Design PatternsPATTERNS02 - Creational Design Patterns
PATTERNS02 - Creational Design Patterns
 
Design pattern - Software Engineering
Design pattern - Software EngineeringDesign pattern - Software Engineering
Design pattern - Software Engineering
 
GoF Design patterns I: Introduction + Structural Patterns
GoF Design patterns I:   Introduction + Structural PatternsGoF Design patterns I:   Introduction + Structural Patterns
GoF Design patterns I: Introduction + Structural Patterns
 
PATTERNS03 - Behavioural Design Patterns
PATTERNS03 - Behavioural Design PatternsPATTERNS03 - Behavioural Design Patterns
PATTERNS03 - Behavioural Design Patterns
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Gof design pattern
Gof design patternGof design pattern
Gof design pattern
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns Illustrated
 
PATTERNS04 - Structural Design Patterns
PATTERNS04 - Structural Design PatternsPATTERNS04 - Structural Design Patterns
PATTERNS04 - Structural Design Patterns
 
Sda 8
Sda   8Sda   8
Sda 8
 

Viewers also liked

Observer Software Design Pattern
Observer Software Design Pattern Observer Software Design Pattern
Observer Software Design Pattern Nirthika Rajendran
 
Application Of Software Design Pattern
Application Of Software Design PatternApplication Of Software Design Pattern
Application Of Software Design Patternguest46da5428
 
Android (software) Design Pattern
Android (software) Design PatternAndroid (software) Design Pattern
Android (software) Design PatternArif Huda
 
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNSSOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNSshubbhi
 
Design Pattern Explained CH1
Design Pattern Explained CH1Design Pattern Explained CH1
Design Pattern Explained CH1Jamie (Taka) Wang
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: AndroidJitendra Kumar
 
Design Patterns & JDK Examples
Design Patterns & JDK ExamplesDesign Patterns & JDK Examples
Design Patterns & JDK ExamplesEnder Aydin Orak
 

Viewers also liked (10)

Observer Software Design Pattern
Observer Software Design Pattern Observer Software Design Pattern
Observer Software Design Pattern
 
Application Of Software Design Pattern
Application Of Software Design PatternApplication Of Software Design Pattern
Application Of Software Design Pattern
 
Android (software) Design Pattern
Android (software) Design PatternAndroid (software) Design Pattern
Android (software) Design Pattern
 
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNSSOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
 
Creational Design Patterns
Creational Design PatternsCreational Design Patterns
Creational Design Patterns
 
Design Pattern Explained CH1
Design Pattern Explained CH1Design Pattern Explained CH1
Design Pattern Explained CH1
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: Android
 
Design Patterns & JDK Examples
Design Patterns & JDK ExamplesDesign Patterns & JDK Examples
Design Patterns & JDK Examples
 

Similar to Design pattern

Solid Principles Of Design (Design Series 01)
Solid Principles Of Design (Design Series 01)Solid Principles Of Design (Design Series 01)
Solid Principles Of Design (Design Series 01)Heartin Jacob
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptRushikeshChikane1
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptRushikeshChikane2
 
Refactoring to Design Patterns
Refactoring to Design PatternsRefactoring to Design Patterns
Refactoring to Design PatternsEric De Carufel
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2Ankit Dubey
 
Online TechTalk  "Patterns in Embedded SW Design"
Online TechTalk  "Patterns in Embedded SW Design"Online TechTalk  "Patterns in Embedded SW Design"
Online TechTalk  "Patterns in Embedded SW Design"GlobalLogic Ukraine
 
DESIGN PATTERN.pptx
DESIGN PATTERN.pptxDESIGN PATTERN.pptx
DESIGN PATTERN.pptxLECO9
 
DESIGN PATTERN.pptx
DESIGN PATTERN.pptxDESIGN PATTERN.pptx
DESIGN PATTERN.pptxSKUP1
 
The art of architecture
The art of architectureThe art of architecture
The art of architectureADDQ
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture Ahmed Marzouk
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patternssukumarraju6
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Sudarshan Dhondaley
 

Similar to Design pattern (20)

Solid Principles Of Design (Design Series 01)
Solid Principles Of Design (Design Series 01)Solid Principles Of Design (Design Series 01)
Solid Principles Of Design (Design Series 01)
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
 
CBD.pptx
CBD.pptxCBD.pptx
CBD.pptx
 
Decorator Pattern
Decorator PatternDecorator Pattern
Decorator Pattern
 
Refactoring to Design Patterns
Refactoring to Design PatternsRefactoring to Design Patterns
Refactoring to Design Patterns
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2
 
Design p atterns
Design p atternsDesign p atterns
Design p atterns
 
Online TechTalk  "Patterns in Embedded SW Design"
Online TechTalk  "Patterns in Embedded SW Design"Online TechTalk  "Patterns in Embedded SW Design"
Online TechTalk  "Patterns in Embedded SW Design"
 
Design Patterns.ppt
Design Patterns.pptDesign Patterns.ppt
Design Patterns.ppt
 
Software Design
Software DesignSoftware Design
Software Design
 
DESIGN PATTERN.pptx
DESIGN PATTERN.pptxDESIGN PATTERN.pptx
DESIGN PATTERN.pptx
 
DESIGN PATTERN.pptx
DESIGN PATTERN.pptxDESIGN PATTERN.pptx
DESIGN PATTERN.pptx
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
The art of architecture
The art of architectureThe art of architecture
The art of architecture
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patterns
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
 

Recently uploaded

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Design pattern

  • 1. Impact of Design Pattern on Software Quality Omar Adnan Isaid
  • 2. Agenda • What is Software Quality ? • What is Design Pattern ? • Gang of Four (GoF). • Design Pattern Elements (Explained by Façade Design Pattern). • Advantages of Design Patterns. • Strategy Design Pattern (Explained by Duck Game). • Auto Dynamic Difficulty Framework.
  • 3. What is Software Quality ? • ISO 9126: Software quality characteristic is a set of attributes of a software product by which its quality is described and evaluated". • German Industry Standard DIN 55350 Part 11: Quality comprises all characteristics and significant features of a product or an activity which relate to the satisfying of given requirements". • ANSI Standard (ANSI/ASQC A3/1978): Quality is the totality of features and characteristics of a product or a service that bears on its ability to satisfy the given needs".
  • 4. What is Design Pattern? • Design pattern is a solution for a repeatable problem in the problem design. • A design pattern isn't a finished design that can be transformed directly into code. • A design pattern is a description or template for how to solve a problem that can be used in many different situations.
  • 5. Gang Of Four (GoF) • GoF are Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides • GoF are documented 23 classic software design patterns in their book : Design Patterns: Elements of Reusable Object- Oriented Software. • The GoF book first published at October 1994 and documented design patterns already exist but not documented before.
  • 7. Name element [1] Name: Short ,Comprehensive ,No more than two words. • The meaning of the word Façade in oxford dictionary "The principal front of building that faces to a street or open space". • The term Façade strongly related to the goal of the Façade design pattern, which is to provide a unified interface for different subsystems of a system.
  • 8. Design Pattern Problem [2] Problem • The suitable situation to apply the design pattern. • The preconditions must be available before the designer decides to apply certain design pattern. • the design pattern can clarify the structure of the inflexible designs of certain problems.
  • 9. Façade Design Pattern Problem • Suitable situation : when a unified interface is needed to decouple different subsystems of a complex system. • Preconditions before apply Façade Design Pattern 1. A simple interface can be applied to access different subsystems of a system. 2. The development of the system will provide tightly coupled system. 3. Each subsystem can have an interface, which can be accessed using Façade design pattern interface. • Inflexible to apply the Façade design pattern if it will act as a bottleneck and limit the features of the system.
  • 10. Design Pattern Elements • [3] Solution • Refers to the description of the problem solution and the arrangement of the elements. • The element for the problem’s solution is the class.
  • 13. Façade interface can access any subsystems
  • 14. Advantages Of Design Patterns [A] The Design patterns document the efforts of the experts , who did their best efforts to provide flexible and reusable software. [B] The Design Pattern concerns with a flexible software architecture. The points [A] & [B] implies a set of advantages for the developers, designers and others.
  • 15. Advantages Of Design Patterns • The Design Patterns provide a set of advantages for the developers and designers 1. Not to reinvent the wheel. 2. Trade off between different solutions for the same problem(Get the right pattern faster). 3. Studying the design patterns improves the experience and knowledge of novices.
  • 16. Strategy Design Pattern • Assume the scenario where a certain game has different types of ducks. • The ducks in the game are different in their sound and behavior. • Not all the ducks have the same way of flying or have the same sound.
  • 20. Disadvantages of Duck Inheritance • If the Duck superclass has a lot of subclasses serious disadvantages can be emerged • For example, if the Duck superclass has 50 subclasses , where each Duck has a different voice and behavior . • The developer must override 100 methods making some bugs in the road. • At least some methods for different subclasses may be modified from time to time.
  • 22. Problems of Interface Design • The interface design eliminates the overhead of override the frequently changed methods of the superclass Duck. • If the mallard and red head ducks have the same fly and sound behaviors , then the code of fly and sound methods for the MallardDuck and RedheadDuck classes are duplicated. • The inheritance design means to modify methods from time to time .But, interface design causes code duplication , which is maintenance problem! • No code reuse
  • 23. The Strategy Design Pattern Solution Take the parts that vary and encapsulate them so that later you can alter or extend the parts that vary without affecting those that do not
  • 24. Interchangeable algorithms • The Duck behavior (sound or fly) can be described as set of interchangeable algorithm. • For example the algorithms for the sound behavior can be quack , squeak or mute • The algorithms are interchangeable because the Duck sound can one of them.
  • 26. Implementing Fly and Sound Algorithms
  • 27. Advantages of the Strategy Design • Reusability : Objects can use fly , quack behaviors because these behaviors are not hided anymore in the Duck superclass • Maintainability : Modify existing behaviors without make any modifications on the subclasses of the Duck superclass
  • 28. Medal of Strategy Pattern
  • 29. Pattern Coupling (McNatt et. al,2011) • The system architecture can be viewed as a set of design patterns connected together. • The coupled design patterns is a pair of design patterns connected together using common classes.
  • 30. Types of Coupling 1. Tight Coupling 2. Loose Coupling
  • 31. Tight Coupling • The common classes strongly connected the design pattern couple. • Tight coupling leads to a large block of code. • Any modification in the design pattern couple can have a serious cost.
  • 32. Loosely Coupling • The common classes loosely connect the design pattern couple. • This type results in a maintainable and reusable design pattern couple.
  • 33. Overlapping Of Abstract Factory and Visitor Patterns
  • 34. Auto Dynamic Difficulty Framework • The ADD is framework to change the game experience to match the player experience. • The reusing of the ADD design patterns eliminates the waste of cost and time to create the ADD game-by-game