SlideShare uma empresa Scribd logo
1 de 26
DESIGN PATTERNS STORY
1
~ Arunkumar A
6-Mar-2015
FATHER OF PATTERNS
2
CHRISTOPHER ALEXANDER
The Timeless Way of Building, NewYork:
Oxford University Press, 1979.
3
Courtesy:Wikipedia
…is the father of the Pattern
Language movement in
Computer Science
DESIGN – GOOD OR BAD?
If a person were going to design an entryway for a
house,

How would he/she know that the design was good?

Can we know good design?

Is there an objective basis for such a judgment?

A basis for describing our common consensus?
4
DESIGN – GOOD … [CONTD.,]
What is present in a good quality design that is not
present in a poor quality design?
What is present in a poor quality design that is not
present in a good quality design?
5
PATTERNS?
6
WHAT IS A PATTERN?
Christopher’s definition,
A pattern is "a solution to a problem in a context":
Each pattern describes a problem which occurs over and over
again in our environment and then describes the core of the
solution to that problem, in such a way that you can use this solution
a million times over, without ever doing it the same way twice
7
DESCRIPTION OF A PATTERN

The name of the pattern

The purpose of the pattern, the problem it solves

How we could accomplish this

The constraints and forces we have to consider in order to
accomplish it
8
PATTERN EXAMPLE
9
COURTYARD
Courtyard (plural
courtyards)
an area, open to the
sky, partially or wholly
surrounded by walls or
buildings
10
Courtesy:Wikipedia
EXCERPTS FROM THE TIMELESS WAY OF
BUILDING
11
“In the same way, a courtyard, which is properly formed, helps people come to life in it “
A pattern always has a name and has a purpose. Here, the pattern's name is Courtyard,
and its purpose is to help energize people, to help them feel alive.
“Consider the forces at work in a courtyard. Most fundamental of all, people seek some
kind of private outdoor space, where they can sit under the sky, see the stars, enjoy the
sun, perhaps plant flowers. This is obvious. “
It is important to state explicitly the problem being solved, which is the reason for having
the pattern in the first place. This is what Alexander does here for Courtyard.
“But there are more subtle forces too. For instance, when a courtyard is too tightly
enclosed, has no view out, people feel uncomfortable, and tend to stay away ...they need
to see out into some larger and more distant space.”
He points out a difficulty with the simplified solution and then gives us a way to solve the
problem that he has just pointed out. Familiarity sometimes keeps us from seeing the
obvious. The value of a pattern is that those with less experience can take advantage of
what others have learned before them: both what must be included to have a good design,
and what must be avoided to keep from a poor design.
SOFTWARE DESIGN
PATTERNS
12
SOFTWARE DESIGN PATTERNS
Early 1990s,

Were there problems in software that occur over and over
again that could be solved in somewhat the same manner?

Was it possible to design software in terms of patterns,
creating specific solutions based on these patterns only after
the patterns had been identified?
13
GANG OF FOUR (GOF)
Gamma, E., Helm, R., Johnson,
R.,Vlissides, J.,
Design Patterns: Elements of
Reusable Object-Oriented
Software, Boston:Addison-
Wesley, 1995.
14
PATTERN
A Pattern has
• Name
• Intent
• Problem
• Solution
• Participants & Collaborators
• Consequences
• Implementation
• Generic diagram
15
23 GOF DESIGN PATTERNS16
Courtesy:flickr.com
WHY STUDY THEM?
17
WHY STUDY DESIGN PATTERNS?
18
Reuse solutions

get a head start on problems and avoid gotchas.

get the benefit of learning from the experience of others.

do not have to reinvent solutions for commonly recurring
problems.
Establish common terminology

Communication and teamwork require a common base of
vocabulary and a common viewpoint of the problem.
WHY …[CONTD.,]
19
Consider two carpenters discussing how to build the drawers
for some cabinets.
Carpenter 1: How do you think we should build these
drawers?
Carpenter 2: Well, I think we should make the joint by cutting
straight down into the wood, and then cut back up 45
degrees, and then going straight back down, and then back
up the other way 45 degrees, and then going straight back
down, and then…
WHY …[CONTD.,]
20
Consider a programmer describing,
“And then, I use a WHILE LOOP here to do…followed by a series
of IF statements to do…and here I use a SWITCH to handle…”
WHY …[CONTD.,]
21
Carpenter 1: “Should we use a dovetail joint or a miter joint?”
Courtesy:Wikipedia
WHY …[CONTD.,]
22
Carpenter 1: Should we use a dovetail joint or a miter joint?
The real question is
Should we use a joint that is expensive to make but is both
beautiful and durable, or should we just make a quick and
dirty joint that will last at least until the check clears?
Courtesy:Wikipedia
WHY …[CONTD.,]
23
Who is more efficient?
Who would you rather work with?
WHY …[CONTD.,]
24

Improve team communications and individual learning

Improved modifiability and maintainability of code

Design patterns illustrate basic object-oriented principles

Adoption of improved strategies even when patterns aren't
present
PATTERNS HELP
US SEE
THE FOREST &
THETREES
25
Design Patterns Explained : A New Perspective on
Object-Oriented Design, Second Edition
By Alan Shalloway, James R. Trott
Courtesy:Wikipedia
REFERENCES
26

Mais conteúdo relacionado

Mais procurados

Design studies research quotes
Design studies research quotesDesign studies research quotes
Design studies research quotes
Luca Galli
 

Mais procurados (8)

How to be sexy as presenter
How to be sexy as presenterHow to be sexy as presenter
How to be sexy as presenter
 
Anatomy of architectural design concept
Anatomy of architectural design conceptAnatomy of architectural design concept
Anatomy of architectural design concept
 
UX Trivia Night
UX Trivia NightUX Trivia Night
UX Trivia Night
 
Design studies research quotes
Design studies research quotesDesign studies research quotes
Design studies research quotes
 
I Love Patterns
I Love PatternsI Love Patterns
I Love Patterns
 
how to make architecture graduation project
how to make architecture graduation project how to make architecture graduation project
how to make architecture graduation project
 
Employment branding is dead | Talent Connect Anaheim
Employment branding is dead | Talent Connect AnaheimEmployment branding is dead | Talent Connect Anaheim
Employment branding is dead | Talent Connect Anaheim
 
Carpe Diem: Attention, Awareness, and Interaction Design 2009
Carpe Diem: Attention, Awareness, and Interaction Design 2009Carpe Diem: Attention, Awareness, and Interaction Design 2009
Carpe Diem: Attention, Awareness, and Interaction Design 2009
 

Semelhante a Design Patterns Story

A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docxA Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
blondellchancy
 
Dimensioning the Public Sacred by A Nelson 2012
Dimensioning the Public Sacred by A Nelson 2012Dimensioning the Public Sacred by A Nelson 2012
Dimensioning the Public Sacred by A Nelson 2012
Amber Daniela Nelson
 

Semelhante a Design Patterns Story (20)

Futurizing the Human Experience thru Inclusive Design: The Good People
Futurizing the Human Experience thru Inclusive Design: The Good PeopleFuturizing the Human Experience thru Inclusive Design: The Good People
Futurizing the Human Experience thru Inclusive Design: The Good People
 
Design Critique and Criticism
Design Critique and Criticism Design Critique and Criticism
Design Critique and Criticism
 
Design Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition ConferenceDesign Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition Conference
 
Introduction to Design Thinking Workshop
Introduction to Design Thinking WorkshopIntroduction to Design Thinking Workshop
Introduction to Design Thinking Workshop
 
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docxA Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
A Design Thinking Workshop for the MSIS CoreCarl M. Briggs Ph..docx
 
27 creativity and innovation tools - in one-pagers!
27 creativity and innovation tools - in one-pagers!27 creativity and innovation tools - in one-pagers!
27 creativity and innovation tools - in one-pagers!
 
Interaction Design Style (Part 5 of 5)
Interaction Design Style (Part 5 of 5)Interaction Design Style (Part 5 of 5)
Interaction Design Style (Part 5 of 5)
 
Understand Problems : Notes
Understand Problems : NotesUnderstand Problems : Notes
Understand Problems : Notes
 
My Design Theory
My Design TheoryMy Design Theory
My Design Theory
 
How2research
How2researchHow2research
How2research
 
THEORY OF DESIGN
THEORY OF DESIGN THEORY OF DESIGN
THEORY OF DESIGN
 
Don't let assumptions kill good ideas web con 2021
Don't let assumptions kill good ideas   web con 2021Don't let assumptions kill good ideas   web con 2021
Don't let assumptions kill good ideas web con 2021
 
Increasing Innovation IQ
Increasing Innovation IQIncreasing Innovation IQ
Increasing Innovation IQ
 
Dimensioning the Public Sacred by A Nelson 2012
Dimensioning the Public Sacred by A Nelson 2012Dimensioning the Public Sacred by A Nelson 2012
Dimensioning the Public Sacred by A Nelson 2012
 
Eduserv Digital Identities Workshop
Eduserv Digital Identities WorkshopEduserv Digital Identities Workshop
Eduserv Digital Identities Workshop
 
Inclusive Design: Tools, technologies + strategies
Inclusive Design: Tools, technologies + strategiesInclusive Design: Tools, technologies + strategies
Inclusive Design: Tools, technologies + strategies
 
Design for debate, an introduction to design fiction and my research topic (T...
Design for debate, an introduction to design fiction and my research topic (T...Design for debate, an introduction to design fiction and my research topic (T...
Design for debate, an introduction to design fiction and my research topic (T...
 
Playful Gray.pptx
Playful Gray.pptxPlayful Gray.pptx
Playful Gray.pptx
 
Design Thinking Teacher Workshop- Shelter Challenges
Design Thinking Teacher Workshop- Shelter ChallengesDesign Thinking Teacher Workshop- Shelter Challenges
Design Thinking Teacher Workshop- Shelter Challenges
 
Don't let assumptions kill good ideas
Don't let assumptions kill good ideasDon't let assumptions kill good ideas
Don't let assumptions kill good ideas
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

Design Patterns Story

  • 1. DESIGN PATTERNS STORY 1 ~ Arunkumar A 6-Mar-2015
  • 3. CHRISTOPHER ALEXANDER The Timeless Way of Building, NewYork: Oxford University Press, 1979. 3 Courtesy:Wikipedia …is the father of the Pattern Language movement in Computer Science
  • 4. DESIGN – GOOD OR BAD? If a person were going to design an entryway for a house,  How would he/she know that the design was good?  Can we know good design?  Is there an objective basis for such a judgment?  A basis for describing our common consensus? 4
  • 5. DESIGN – GOOD … [CONTD.,] What is present in a good quality design that is not present in a poor quality design? What is present in a poor quality design that is not present in a good quality design? 5
  • 7. WHAT IS A PATTERN? Christopher’s definition, A pattern is "a solution to a problem in a context": Each pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice 7
  • 8. DESCRIPTION OF A PATTERN  The name of the pattern  The purpose of the pattern, the problem it solves  How we could accomplish this  The constraints and forces we have to consider in order to accomplish it 8
  • 10. COURTYARD Courtyard (plural courtyards) an area, open to the sky, partially or wholly surrounded by walls or buildings 10 Courtesy:Wikipedia
  • 11. EXCERPTS FROM THE TIMELESS WAY OF BUILDING 11 “In the same way, a courtyard, which is properly formed, helps people come to life in it “ A pattern always has a name and has a purpose. Here, the pattern's name is Courtyard, and its purpose is to help energize people, to help them feel alive. “Consider the forces at work in a courtyard. Most fundamental of all, people seek some kind of private outdoor space, where they can sit under the sky, see the stars, enjoy the sun, perhaps plant flowers. This is obvious. “ It is important to state explicitly the problem being solved, which is the reason for having the pattern in the first place. This is what Alexander does here for Courtyard. “But there are more subtle forces too. For instance, when a courtyard is too tightly enclosed, has no view out, people feel uncomfortable, and tend to stay away ...they need to see out into some larger and more distant space.” He points out a difficulty with the simplified solution and then gives us a way to solve the problem that he has just pointed out. Familiarity sometimes keeps us from seeing the obvious. The value of a pattern is that those with less experience can take advantage of what others have learned before them: both what must be included to have a good design, and what must be avoided to keep from a poor design.
  • 13. SOFTWARE DESIGN PATTERNS Early 1990s,  Were there problems in software that occur over and over again that could be solved in somewhat the same manner?  Was it possible to design software in terms of patterns, creating specific solutions based on these patterns only after the patterns had been identified? 13
  • 14. GANG OF FOUR (GOF) Gamma, E., Helm, R., Johnson, R.,Vlissides, J., Design Patterns: Elements of Reusable Object-Oriented Software, Boston:Addison- Wesley, 1995. 14
  • 15. PATTERN A Pattern has • Name • Intent • Problem • Solution • Participants & Collaborators • Consequences • Implementation • Generic diagram 15
  • 16. 23 GOF DESIGN PATTERNS16 Courtesy:flickr.com
  • 18. WHY STUDY DESIGN PATTERNS? 18 Reuse solutions  get a head start on problems and avoid gotchas.  get the benefit of learning from the experience of others.  do not have to reinvent solutions for commonly recurring problems. Establish common terminology  Communication and teamwork require a common base of vocabulary and a common viewpoint of the problem.
  • 19. WHY …[CONTD.,] 19 Consider two carpenters discussing how to build the drawers for some cabinets. Carpenter 1: How do you think we should build these drawers? Carpenter 2: Well, I think we should make the joint by cutting straight down into the wood, and then cut back up 45 degrees, and then going straight back down, and then back up the other way 45 degrees, and then going straight back down, and then…
  • 20. WHY …[CONTD.,] 20 Consider a programmer describing, “And then, I use a WHILE LOOP here to do…followed by a series of IF statements to do…and here I use a SWITCH to handle…”
  • 21. WHY …[CONTD.,] 21 Carpenter 1: “Should we use a dovetail joint or a miter joint?” Courtesy:Wikipedia
  • 22. WHY …[CONTD.,] 22 Carpenter 1: Should we use a dovetail joint or a miter joint? The real question is Should we use a joint that is expensive to make but is both beautiful and durable, or should we just make a quick and dirty joint that will last at least until the check clears? Courtesy:Wikipedia
  • 23. WHY …[CONTD.,] 23 Who is more efficient? Who would you rather work with?
  • 24. WHY …[CONTD.,] 24  Improve team communications and individual learning  Improved modifiability and maintainability of code  Design patterns illustrate basic object-oriented principles  Adoption of improved strategies even when patterns aren't present
  • 25. PATTERNS HELP US SEE THE FOREST & THETREES 25
  • 26. Design Patterns Explained : A New Perspective on Object-Oriented Design, Second Edition By Alan Shalloway, James R. Trott Courtesy:Wikipedia REFERENCES 26