Design patterns were introduced in software engineering in the 1990s to provide common solutions to recurring problems. There are three main categories of patterns: creational, structural, and behavioral. Design patterns provide benefits like increased reusability, modularity, and consistency, but their impact on software quality is debated. While some studies found positive or neutral effects, others reported negative impacts on maintainability and evolvability. In general, well-designed systems can achieve quality by combining complementary patterns.
2. In early 90s, Gamma, Helm , Johnson & Vlissides borrowed
the idea from architecture and used it in software
engineering.
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
WHAT ARE DESIGN PATTERNS ?
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. • Design Patterns have 4 essential characteristics :
1. Pattern name: increases vocabulary of designers
2. Problem: intent, context, when to apply
3. Solution: UML-like structure, abstract code
4. Consequences: results and tradeoffs
ELEMENTS OF SOFTWARE DESIGN PATTERN
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 0950-
5849, 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 architecture and 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 time
A 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
Slide 20.. Ppt-5 Derek
Derek
These 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 developer
Would 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 everything
Makes the existing methods easy
Include examples
SQA ieee 1 paper. page -2 …
this is a diagram depicting abstract software development process… Shubhi
As 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 Derek
An example,
Derek
Point-2 could be related to the software dev diagram shown before
Ppt-4 slide 9 Shubhi
If 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 art
With 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 be
collected 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, security
Speak 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.