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. 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
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. 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. ADVANTAGES OF USING DESIGN PATTERNS IN
S/W DEVELOPMENT
• Increasing reusability
• Modularization
• Quality
• Consistency b/w design & implementation
• Relationships b/w design & implementation.
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. 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. 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. 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
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. 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, http://dx.doi.org/10.1016/j.infsof.2011.10.006.
• 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 http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4579432&tag=1
•
Apostolos Ampatzoglou , Apostolos Kritikos, George Kakarontzas, Ioannis Stamelos
An empirical investigation on the reusability of design patterns and software
packages . http://dl.acm.org/citation.cfm?id=2039844
• Gang of Four Design Patterns 2.0
http://www.dofactory.com/Framework/Framework.aspx
Definition from Wikipedia DEREK The idea was introduced by the architect Christopher Alexander in the field of architectureand has been adapted for various other disciplines, including computer science. An organized collection of design patterns that relate to a particular field is called a pattern language.WHY THEY ARE USED ?We need not remake everything from scratch, software design patterns are used as templates and they save timeA Design Pattern produce more maintainable code than a simpler solution.4. designer has to consider, such as pattern size and the most important quality attributes
DerekThese may not be the only patterns designed, but indeed they are the ones that are well documented.
From ppt-1 slide no 54 Shubhi.Terms specific to design ; vary with the developerWould list pros and cons for a particular s/w design pattern and a manual how to use a design (esp if it’s a complex one )Design pattern - abstract. Works with the existing thing- doesn’t replace everythingMakes the existing methods easyInclude examples
SQA ieee 1 paper. page -2 …this is a diagram depicting abstract software development process… ShubhiAs design patterns returns a great quality in software, professionals are extensively using design pattern in the design phase of object oriented system./ Software Development.When a design pattern is applied , it breaks the structure into modules.
Source : ppt -4 slide no 5 DerekAn example,
Derek Point-2 could be related to the software dev diagram shown before
Ppt-4 slide 9 ShubhiIf they are not familiar data structures or complex domain-specific subsystems, what are they ?2. Creating a gui /- Rules may be part of the solution in a pattern description, but a rule solution is neither sufficient nor necessary.They are:“Descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.”
Source : sqa ieee 1 paper page 1 Shubhi– insert clip artWith the help of metrics(sub point )Not using the same pattern twice…..The quality of a given design problem description has a great impact on the overall quality of the proposed method.2. Thus, if the more words of problem definition of design patterns are used in description of real design problems, the probability of finding the right design patterns will be more.((To overcome this difficulty, the words that are used in the problem definition of the used design patterns group should becollected in a glossary, i.e., Design Patterns Glossary, that available to s/w developers))
Picked from sqa- 4 page-2 Shubhi
Derek.. 5 parameters : reliability, maintainability, size(adequate), efficiency, securitySpeak more on functional quality on this slide
Derek
By Both of us :As design patterns returns a great quality in software , professionals are extensively using design pattern in the design phase of object oriented system.