Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

Published in: Education, Technology, Design
  • Be the first to comment


  1. 1. Software Design Pattern & Quality Assurance
  2. 2. WHAT ARE DESIGN PATTERNS ? Each pattern describes a problem that 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. — Christopher Alexander In early 90s, Gamma, Helm , Johnson & Vlissides borrowed the idea from architecture and used it in software engineering.
  3. 3. TYPES OF PATTERNS • Creational patterns: – Deal with initializing and configuring classes and objects • Structural patterns: – Deal with decoupling interface and implementation of classes and objects – Composition of classes or objects • Behavioural patterns: – Deal with dynamic interactions among societies of classes and objects – How they distribute responsibility
  4. 4. 23 GoF PATTERNS
  5. 5. WHAT TO EXPECT FROM A DESIGN PATTERN? • A common design vocabulary • A documentation and learning aid • An adjunct to existing methods • A target for refining existing design
  7. 7. ELEMENTS OF SOFTWARE DESIGN PATTERN • Design Patterns have 4 essential characteristics : 1. 2. 3. 4. Pattern name: increases vocabulary of designers Problem: intent, context, when to apply Solution: UML-like structure, abstract code Consequences: results and tradeoffs
  8. 8. ADVANTAGES OF USING DESIGN PATTERNS IN S/W DEVELOPMENT • Increasing reusability • Modularization • Quality • Consistency b/w design & implementation • Relationships b/w design & implementation.
  9. 9. SOME RELATED MISCONCEPTIONS • Design Patterns ARE NOT • Data structures that can be encoded in classes and reused as is (i.e., linked lists, hash tables) • Complex domain-specific designs (for an entire application or subsystem) • Rules • Designed to be executed / analyzed by computers • Programming languages
  10. 10. DESIGN PATTERN & QUALITY ASSURANCE • In practice, measurement of software quality is not easy. • There is no standard approach for estimating software design quality by design patterns.
  11. 11. IMPACT ON QUALITY • With the design patterns, the quality improves, whole architecture of the system becomes more adaptable and extensible. • Design pattern reusability can be perceived in two ways, (a) reusing the idea of a pattern and (b) reusing the source code of a design pattern instance. • Developers are not particularly interested in reusing code that applies a pattern more than they are in reusing any code that fulfills their functional needs
  12. 12. QUALITY • The Five Parameters of Quality • Reliability, Maintainability, Efficiency, Security, and Size • Software Functional Quality • Bugs, Defects, Mean-Time-To-Failure (MTTF) • Software Structural Quality
  13. 13. IMPACT ON VARIOUS PARAMETERS • Structural quality characteristics influencing reusability Attribute Effect Coupling - Cohesion + Messaging + Size + Inheritance - Complexity -
  14. 14. CONCLUSION There is no consensus among these studies regarding the impact of design patterns on software quality attributes : while some studies reported a positive or neutral impact , other studies reported a negative effect. In general, the impact of design patterns on maintainability, evolution and change-proneness is negative. The best designs will use many design patterns that dovetail and intertwine to produce a greater whole.
  15. 15. REFERENCES • Apostolos Ampatzoglou, Georgia Frantzeskou, Ioannis Stamelos, A methodology to assess the impact of design patterns on software quality, Information and Software Technology, Volume 54, Issue 4, April 2012, Pages 331-346, ISSN 09505849, • M. Khaer, M. Hashem, and M. Masud, "An empirical analysis of software systems for measurement of design quality level based on design patterns," in Computer and information technology, 2007. iccit 2007. 10th international conference on, dec. 2007, pp. 1 -6 • Apostolos Ampatzoglou , Apostolos Kritikos, George Kakarontzas, Ioannis Stamelos An empirical investigation on the reusability of design patterns and software packages . • Gang of Four Design Patterns 2.0
  16. 16. QUESTIONS