SlideShare a Scribd company logo
1 of 19
Download to read offline
Do Design Patterns Impact
  Software Quality Positively?


            Foutse Khomh and Yann-Gaël Guéhéneuc

                     foutsekh@iro.umontreal.ca, guehene@iro.umontreal.ca
                                             CSMR'08
GEODES Ptidej Team – OO Programs Quality Evaluation and Enhancement using Patterns
       Group of Open, Distributed Systems, Experimental Software Engineering
       Department of Informatics and Operations Research
       University of Montreal                                                        © Khomh, 2008
Context
        Design patterns (as presented by the GoF) have
        been said to have a positive impact on quality
        characteristics
        – Expandability
        – Reusability
        – Understandability


        But, some studies presented counter-examples, i.e.,
        Wendorff (Assessment of design patterns during
        software reengineering: Lessons learned from a large
        commercial project.)
2/??
Study Design (1/2)


        Hypothesis: “Design patterns have a
        positive impact on quality
        characteristics”

        Objective: prove or disprove the
        hypothesis with concrete evidence

3/??
Study Design (2/2)

        Required choices
        – Quality characteristics
        – Kind of study


        Our choices
        – 10 quality characteristics related to design,
          implementation, and runtime
        – Empirical study (vs. absolute, vs. relative)
           • Manual activity
           • Developers' perception
4/??
Method
        Choice of design patterns of interest
        – 23 design patterns in the GoF book


        Identification and definition of quality characteristics
        of interest
        – 10 characteristics
            Design          Implementation      Runtime
            Expandability   Learnability        Generality
            Simplicity      Understandability   Modularity at runtime
            Reusability     Modularity          Scalability
                                                Robustness

        Definition of a scale
5/??
        – Likert scale of 5 points + "I don't know"
Data Collection

         Questionnaire send out to colleagues
         with a good knowledge of design
         patterns between January and May
         2007

         Questionnaire posted on mailing-lists
          refactoring@yahoogroups.com
          patterns-discussion@cs.uiuc.edu
6/??
          gang-of-4-patterns@cs.uiuc.edu
Data Processing
        Number of received questionnaires: 30
        – Number of complete questionnaires: 18
        – Number of almost complete (90%) questionnaires: 2
        – Incomplete questionnaires or with “I don't know”:10


        Number of kept questionnaires: 20

        Answers A and B aggregated in Positive, C in
        Neutral, and D and E in Negative
        – Some questionnaire were clearly generally more
          positive/negative than others
7/??
Results (1/2)




8/??
Results (2/2)

         We discuss detailed results
         – Three well-known design patterns
           • Composite
           • Abstract Factory
           • Flyweight
         – Three quality characteristics mentioned in
           the GoF
           • Reusability
           • Expandability
9/??       • Understandability
Composite

                    Overall positive
                    impact on quality
                    attributes
                    Scalability and
                    robustness not so
                    positively impacted




10/??
Abstract Factory

                           Overall neutral
                           impact on quality
                           attributes
                           Expandability,
                           generality, and
                           modularity as
                           expected
                           Robustness
                           surprising
11/??
Flyweight

                    Overall negative
                    impact on quality
                    attributes
                    Positive impact
                    only on scalability
                    as expected




12/??
Reusability
           Positive     Neutral      Negative
        A.Factory     Builder     Bridge
                                                10 positive impacts
        F.Method      Singleton   Decorator
        Prototype     Facade      Flyweight     6 neutral impacts
        Adapter       Mediator    Command
        Composite
        Ch.Of.Resp.
                      Memento
                      Proxy
                                  Interpreter
                                  State
                                                7 negative impacts
        Iterator                  Visitor
        Observer
        Strategy
        T.Method




13/??
Expandability
           Positive     Neutral     Negative
        A.Factory     Flyweight   Singleton    19 positive impacts
        Builder       Memento
        F.Method      Proxy                    3 neutral impacts
        Prototype
        Adapter
        Bridge
                                               1 negative impact
        Composite
        Decorator
        Facade
        Ch.Of.Resp.
        Command
        Interpreter
        Iterator
        Mediator
        Observer
        State
        Strategy
        T.Method
        Visitor
14/??
Understandability
            Positive     Neutral      Negative
        A.Factory      Proxy       Decorator     15 positive impacts
        Builder        Memento     Flyweight
        F.Method       T.Method    Ch.Of.Resp.   3 neutral impacts
        Prototype                  Command
        Singleton
        Adapter
                                   Visitor       5 negative impacts
        Bridge
        Composite
        Facade
        Interpreter
        Iterator
        Mediator
        Observer
        State
        Strategy




15/??
Null Hypothesis Test




16/??
Conclusion (1/2)

         Globally, design patterns have a
         positive impact on quality attributes
          Quality                   Expandability        Simplicity     Reusabilit      Learnabilit     Understandabilit
          Characteristics                                               y               y               y

          Number of                 19+ / 4-             16+ / 7-       11+ / 12-       14+ / 9-        11+ / 12-
          Positive/Negative
          Patterns




          Quality Characteristics    Modularity     Generality        Mod. at runtime     Scalability     Robustness



          Number of                  18+ / 5-       19+ / 4-          11+/ 12-            1+ / 22-        0+ / 23-
          Positive/Negative
          Patterns

17/??
Conclusion (2/2)

         Pattern by pattern, their impact on
         quality varies and includes negative
         impact!

         So, design patterns do not always
         improve the quality of systems, thus
         they should be use with caution

18/??
Help Wanted

         Please help us refine this study by
         downloading and filling in the
         questionnaire



            http://www.ptidej.net/downloads/



19/??

More Related Content

Viewers also liked

SxSW Highlights 25. april 2014 - Niels Chr. Møller, Express
SxSW Highlights 25. april 2014 - Niels Chr. Møller, ExpressSxSW Highlights 25. april 2014 - Niels Chr. Møller, Express
SxSW Highlights 25. april 2014 - Niels Chr. Møller, Express
HusetMarkedsforing
 

Viewers also liked (10)

Ruby RussonR
Ruby RussonRRuby RussonR
Ruby RussonR
 
Ppt For Visit To A Mall
Ppt For Visit To A MallPpt For Visit To A Mall
Ppt For Visit To A Mall
 
MBA 713 - Chapter 07
MBA 713 - Chapter 07MBA 713 - Chapter 07
MBA 713 - Chapter 07
 
454-MASTER THESE 15 SIMPLE SKILLS by DAVE KERPEN (life's lessons)
454-MASTER THESE 15 SIMPLE SKILLS by DAVE KERPEN (life's lessons)454-MASTER THESE 15 SIMPLE SKILLS by DAVE KERPEN (life's lessons)
454-MASTER THESE 15 SIMPLE SKILLS by DAVE KERPEN (life's lessons)
 
S.S. (Recycle) Portfolio
S.S. (Recycle) Portfolio S.S. (Recycle) Portfolio
S.S. (Recycle) Portfolio
 
SxSW Highlights 25. april 2014 - Niels Chr. Møller, Express
SxSW Highlights 25. april 2014 - Niels Chr. Møller, ExpressSxSW Highlights 25. april 2014 - Niels Chr. Møller, Express
SxSW Highlights 25. april 2014 - Niels Chr. Møller, Express
 
Applying for a job in the qld public sector website document
Applying for a job in the qld public sector website documentApplying for a job in the qld public sector website document
Applying for a job in the qld public sector website document
 
It
ItIt
It
 
Foundation meeting BGCOA May 30
Foundation meeting BGCOA May 30Foundation meeting BGCOA May 30
Foundation meeting BGCOA May 30
 
KK_8_TKJ
KK_8_TKJKK_8_TKJ
KK_8_TKJ
 

Similar to CSMR08.ppt

ECOOP07 QAOOSE.ppt
ECOOP07 QAOOSE.pptECOOP07 QAOOSE.ppt
ECOOP07 QAOOSE.ppt
Ptidej Team
 
ECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.pptECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.ppt
Ptidej Team
 
ECOOP05 BSUP.ppt
ECOOP05 BSUP.pptECOOP05 BSUP.ppt
ECOOP05 BSUP.ppt
Ptidej Team
 
Software Engg. process models
Software Engg. process modelsSoftware Engg. process models
Software Engg. process models
Tauseef Ahmad
 
06 jerome crotteux - 3 e
06   jerome crotteux - 3 e06   jerome crotteux - 3 e
06 jerome crotteux - 3 e
Linea Trovata
 

Similar to CSMR08.ppt (20)

Csmr08.ppt
Csmr08.pptCsmr08.ppt
Csmr08.ppt
 
ECOOP07 QAOOSE.ppt
ECOOP07 QAOOSE.pptECOOP07 QAOOSE.ppt
ECOOP07 QAOOSE.ppt
 
ECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.pptECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.ppt
 
ECOOP05 BSUP.ppt
ECOOP05 BSUP.pptECOOP05 BSUP.ppt
ECOOP05 BSUP.ppt
 
Unit 09: Web Application Testing
Unit 09: Web Application TestingUnit 09: Web Application Testing
Unit 09: Web Application Testing
 
Online Tv Music Channel Presentation
Online Tv Music Channel PresentationOnline Tv Music Channel Presentation
Online Tv Music Channel Presentation
 
TOOLS USA01.ppt
TOOLS USA01.pptTOOLS USA01.ppt
TOOLS USA01.ppt
 
5 Quality
5 Quality5 Quality
5 Quality
 
Introduction To Scrum
Introduction To ScrumIntroduction To Scrum
Introduction To Scrum
 
Software Engg. process models
Software Engg. process modelsSoftware Engg. process models
Software Engg. process models
 
Design Review Based on Failure Mode (DRBFM) Course
Design Review Based on Failure Mode (DRBFM) CourseDesign Review Based on Failure Mode (DRBFM) Course
Design Review Based on Failure Mode (DRBFM) Course
 
Android MVI in production
Android MVI in productionAndroid MVI in production
Android MVI in production
 
06 jerome crotteux - 3 e
06   jerome crotteux - 3 e06   jerome crotteux - 3 e
06 jerome crotteux - 3 e
 
Shilpi_Resume
Shilpi_ResumeShilpi_Resume
Shilpi_Resume
 
8 Habits of Customer-Obsessed Companies
8 Habits of Customer-Obsessed Companies8 Habits of Customer-Obsessed Companies
8 Habits of Customer-Obsessed Companies
 
HMK - Building Successful Information Systems
HMK - Building Successful Information SystemsHMK - Building Successful Information Systems
HMK - Building Successful Information Systems
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
 
The OO Design Principles
The OO Design PrinciplesThe OO Design Principles
The OO Design Principles
 
Ecoop07 qaoose.ppt
Ecoop07 qaoose.pptEcoop07 qaoose.ppt
Ecoop07 qaoose.ppt
 
Lessons from modern coaches for project managers
Lessons from modern coaches for project managersLessons from modern coaches for project managers
Lessons from modern coaches for project managers
 

More from Ptidej Team

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

CSMR08.ppt

  • 1. Do Design Patterns Impact Software Quality Positively? Foutse Khomh and Yann-Gaël Guéhéneuc foutsekh@iro.umontreal.ca, guehene@iro.umontreal.ca CSMR'08 GEODES Ptidej Team – OO Programs Quality Evaluation and Enhancement using Patterns Group of Open, Distributed Systems, Experimental Software Engineering Department of Informatics and Operations Research University of Montreal © Khomh, 2008
  • 2. Context Design patterns (as presented by the GoF) have been said to have a positive impact on quality characteristics – Expandability – Reusability – Understandability But, some studies presented counter-examples, i.e., Wendorff (Assessment of design patterns during software reengineering: Lessons learned from a large commercial project.) 2/??
  • 3. Study Design (1/2) Hypothesis: “Design patterns have a positive impact on quality characteristics” Objective: prove or disprove the hypothesis with concrete evidence 3/??
  • 4. Study Design (2/2) Required choices – Quality characteristics – Kind of study Our choices – 10 quality characteristics related to design, implementation, and runtime – Empirical study (vs. absolute, vs. relative) • Manual activity • Developers' perception 4/??
  • 5. Method Choice of design patterns of interest – 23 design patterns in the GoF book Identification and definition of quality characteristics of interest – 10 characteristics Design Implementation Runtime Expandability Learnability Generality Simplicity Understandability Modularity at runtime Reusability Modularity Scalability Robustness Definition of a scale 5/?? – Likert scale of 5 points + "I don't know"
  • 6. Data Collection Questionnaire send out to colleagues with a good knowledge of design patterns between January and May 2007 Questionnaire posted on mailing-lists refactoring@yahoogroups.com patterns-discussion@cs.uiuc.edu 6/?? gang-of-4-patterns@cs.uiuc.edu
  • 7. Data Processing Number of received questionnaires: 30 – Number of complete questionnaires: 18 – Number of almost complete (90%) questionnaires: 2 – Incomplete questionnaires or with “I don't know”:10 Number of kept questionnaires: 20 Answers A and B aggregated in Positive, C in Neutral, and D and E in Negative – Some questionnaire were clearly generally more positive/negative than others 7/??
  • 9. Results (2/2) We discuss detailed results – Three well-known design patterns • Composite • Abstract Factory • Flyweight – Three quality characteristics mentioned in the GoF • Reusability • Expandability 9/?? • Understandability
  • 10. Composite Overall positive impact on quality attributes Scalability and robustness not so positively impacted 10/??
  • 11. Abstract Factory Overall neutral impact on quality attributes Expandability, generality, and modularity as expected Robustness surprising 11/??
  • 12. Flyweight Overall negative impact on quality attributes Positive impact only on scalability as expected 12/??
  • 13. Reusability Positive Neutral Negative A.Factory Builder Bridge 10 positive impacts F.Method Singleton Decorator Prototype Facade Flyweight 6 neutral impacts Adapter Mediator Command Composite Ch.Of.Resp. Memento Proxy Interpreter State 7 negative impacts Iterator Visitor Observer Strategy T.Method 13/??
  • 14. Expandability Positive Neutral Negative A.Factory Flyweight Singleton 19 positive impacts Builder Memento F.Method Proxy 3 neutral impacts Prototype Adapter Bridge 1 negative impact Composite Decorator Facade Ch.Of.Resp. Command Interpreter Iterator Mediator Observer State Strategy T.Method Visitor 14/??
  • 15. Understandability Positive Neutral Negative A.Factory Proxy Decorator 15 positive impacts Builder Memento Flyweight F.Method T.Method Ch.Of.Resp. 3 neutral impacts Prototype Command Singleton Adapter Visitor 5 negative impacts Bridge Composite Facade Interpreter Iterator Mediator Observer State Strategy 15/??
  • 17. Conclusion (1/2) Globally, design patterns have a positive impact on quality attributes Quality Expandability Simplicity Reusabilit Learnabilit Understandabilit Characteristics y y y Number of 19+ / 4- 16+ / 7- 11+ / 12- 14+ / 9- 11+ / 12- Positive/Negative Patterns Quality Characteristics Modularity Generality Mod. at runtime Scalability Robustness Number of 18+ / 5- 19+ / 4- 11+/ 12- 1+ / 22- 0+ / 23- Positive/Negative Patterns 17/??
  • 18. Conclusion (2/2) Pattern by pattern, their impact on quality varies and includes negative impact! So, design patterns do not always improve the quality of systems, thus they should be use with caution 18/??
  • 19. Help Wanted Please help us refine this study by downloading and filling in the questionnaire http://www.ptidej.net/downloads/ 19/??