SlideShare a Scribd company logo
1 of 16
A quantitative approach for evaluating
the quality of design patterns
Nieh-Lin Hsheh, Peng-Hua Chu, William Chu
The Journal of Systems and Software 81 (2008)
1430 – 1439
M9837205 鄭聰賢
Introduction (1/2)
 Object-oriented is a paradigm of the
software engineering now.
 Design pattern
 based on object-oriented.
 is to define an abstraction of problem.
 is to solve this particular problem.
 But how to know a design pattern is good?
How to define “good”?
Introduction (2/2)
 So, what we need?
 An evaluation approach to help pattern
developers check if a design pattern is well-
designed.
 A quantitative method that help measure the
effectiveness of the quality improvement of a
design pattern.
QMOOD
Quality Model for Object-Oriented Design
(Bansiya and Davis, 2002)
Essentials of design pattern
 There are four essentials of design pattern
(Gamma et al. 1994)
 Pattern Name
 Intent
 Solution
 Consequences
Pattern evaluation (1/2)
Observer pattern
Define an one-to-many dependency between
objects so that when one object changes state, all
its dependents are automatically notified and
undated. (Gamma et al. 1994)
Functional aspect
The subject to notify all observers
when it changes its state.
Non-functional aspect
Notification to work automatically
without knowing the types of
observers.
FR-intent (IF)
NFR-intent (IN)
Quality focus Q(dp) = (IF , IN)
Pattern evaluation (2/2)
FR-structure NFR-structure
SF(dp) SN(dp)
T
)()(),( dpSSTdpS NFS 
COF (COupling Factor)
 The coupling factor (Brito and Abreu, 1995)
 
TCTC
CCclientis
TC
i
TC
j ji

  
2
1 1
),(_
where TC is the total number of classes and
Quality improvement effectiveness
 )(
)())((
),( m
mmT
MmGTM 

 

μ : an object-oriented metric
M: meta-model
T: transformation
G: an aggregation function* such as an average function
: a typical model set whose elements are instantiated from M
m: any instances of M
T(m): total classes that transformed
* In computer science, an aggregate function is a
function that returns a single value from a
collection of input values such as a set, a bag or
a list. See: http://goo.gl/RrKkJ
M
μ (M,T) > 0 means that the transformation T enhances the property
P, i.e., T can transform instances of M into another model with a
higher property P.
μ (M,T) < 0 means the transformation T impairs the property P
μ (M,T) = 0 means the transformation T is effectiveless on the
meta-model M
Quality Improvement Effectiveness
on property P
Assume a design TSSCPIIdp NFNF ,,,,,, C: Coupling Factor
P-improver
)),(()()(*
satisfiedSIddpimproverPdpimproverP FF 
Define: a design pattern dp is a well-designed P-improver
if it is a P-improver and its NFR-structure does not impair
its FR-intent, i.e.,
where d(intent, structure) is a satisfaction function, representing the
degree to which the intent can be realized in the structure.
•The degree is called satisfaction degree in our approach.
•If the intent is a functional intent, the degree is either 1 (satisfied) or 0
(not satisfied).
•If the intent is nonfunctional, the degree ranges between 0 and 1.
•The satisfaction degree is just a concept which cannot be directly
measured.
Case Study - Mediator (1/3)
Mediator pattern:
 Define an object that encapsulates how a set
of object interacts. Mediator promotes loose
coupling by keeping objects from referring to
each other explicitly, and it lets you vary their
interaction independently. (France et al. 2004)
Case Study - Mediator (2/3)
 Step 1: Extraction the nonfunctional intent
and the quality focus definition
 IF(Mediator) : A colleague object can
communicate with other colleague objects.
 IN(Mediator) : A colleague object can
communicate with other colleague objects in a
loose coupling manner by explicitly keeping
objects from referring to each other.
Step 2: Designing the
pattern structures
Step 3: Designing the
transformation
Case Study - Mediator (3/3)
QIEP(Mediator) = -0.7195 ≒ -0.72 is negative,
consistent with the constraint “decreased” coupling factor,
so we conclude the Mediator is a Coupling-Improver.
Step 4. Performing pattern validation
Conclusion
 A quality-improver design pattern is a design pattern
which intents to address quality requirements and
has a better structure for addressing them.
 In the future, we plan to develop a tool for our
verification method. A XMI-based representation will
be developed for representing the meta-level
functional and non-functional structures of a design
pattern.
 To define the transformation in the design pattern,
we will explore the possibility of applying the
technique of Model-Driven Architecture (MDA)

More Related Content

What's hot

Multiobjective optimization and trade offs using pareto optimality
Multiobjective optimization and trade offs using pareto optimalityMultiobjective optimization and trade offs using pareto optimality
Multiobjective optimization and trade offs using pareto optimalityAmogh Mundhekar
 
Multi-Objective Optimization in Rule-based Design Space Exploration (ASE 2014)
Multi-Objective Optimization in Rule-based Design Space Exploration (ASE 2014)Multi-Objective Optimization in Rule-based Design Space Exploration (ASE 2014)
Multi-Objective Optimization in Rule-based Design Space Exploration (ASE 2014)hani_abdeen
 
Evidential diagnosis of inconsistencies in object oriented designs
Evidential diagnosis of inconsistencies in object oriented designsEvidential diagnosis of inconsistencies in object oriented designs
Evidential diagnosis of inconsistencies in object oriented designsKyriakos Kasis
 
Feature enginnering and selection
Feature enginnering and selectionFeature enginnering and selection
Feature enginnering and selectionDavis David
 
Cause effect graphing technique
Cause effect graphing techniqueCause effect graphing technique
Cause effect graphing techniqueAnkush Kumar
 
Linear Programming Problems {Operation Research}
Linear Programming Problems {Operation Research}Linear Programming Problems {Operation Research}
Linear Programming Problems {Operation Research}FellowBuddy.com
 
Factorial design ,full factorial design, fractional factorial design
Factorial design ,full factorial design, fractional factorial designFactorial design ,full factorial design, fractional factorial design
Factorial design ,full factorial design, fractional factorial designSayed Shakil Ahmed
 
A Literature Survey of Benchmark Functions For Global Optimization Problems
A Literature Survey of Benchmark Functions For Global Optimization ProblemsA Literature Survey of Benchmark Functions For Global Optimization Problems
A Literature Survey of Benchmark Functions For Global Optimization ProblemsXin-She Yang
 
Design of experiments-Box behnken design
Design of experiments-Box behnken designDesign of experiments-Box behnken design
Design of experiments-Box behnken designGulamhushen Sipai
 
Operation's research models
Operation's research modelsOperation's research models
Operation's research modelsAbhinav Kp
 
Fractional Factorial Designs
Fractional Factorial DesignsFractional Factorial Designs
Fractional Factorial DesignsThomas Abraham
 
Fractional factorial design tutorial
Fractional factorial design tutorialFractional factorial design tutorial
Fractional factorial design tutorialGaurav Kr
 
LINEAR PROGRAMMING
LINEAR  PROGRAMMINGLINEAR  PROGRAMMING
LINEAR PROGRAMMINGROSHAN GOWDA
 
Introduction to principal component analysis (pca)
Introduction to principal component analysis (pca)Introduction to principal component analysis (pca)
Introduction to principal component analysis (pca)Mohammed Musah
 

What's hot (20)

Multiobjective optimization and trade offs using pareto optimality
Multiobjective optimization and trade offs using pareto optimalityMultiobjective optimization and trade offs using pareto optimality
Multiobjective optimization and trade offs using pareto optimality
 
Linear programing
Linear programingLinear programing
Linear programing
 
Multi-Objective Optimization in Rule-based Design Space Exploration (ASE 2014)
Multi-Objective Optimization in Rule-based Design Space Exploration (ASE 2014)Multi-Objective Optimization in Rule-based Design Space Exploration (ASE 2014)
Multi-Objective Optimization in Rule-based Design Space Exploration (ASE 2014)
 
New seven management tools
New seven management toolsNew seven management tools
New seven management tools
 
Slides chapters 28-32
Slides chapters 28-32Slides chapters 28-32
Slides chapters 28-32
 
Evidential diagnosis of inconsistencies in object oriented designs
Evidential diagnosis of inconsistencies in object oriented designsEvidential diagnosis of inconsistencies in object oriented designs
Evidential diagnosis of inconsistencies in object oriented designs
 
Feature enginnering and selection
Feature enginnering and selectionFeature enginnering and selection
Feature enginnering and selection
 
Cause effect graphing technique
Cause effect graphing techniqueCause effect graphing technique
Cause effect graphing technique
 
Linear programing
Linear programingLinear programing
Linear programing
 
5 factorial design
5 factorial design5 factorial design
5 factorial design
 
Linear Programming Problems {Operation Research}
Linear Programming Problems {Operation Research}Linear Programming Problems {Operation Research}
Linear Programming Problems {Operation Research}
 
Factorial design ,full factorial design, fractional factorial design
Factorial design ,full factorial design, fractional factorial designFactorial design ,full factorial design, fractional factorial design
Factorial design ,full factorial design, fractional factorial design
 
A Literature Survey of Benchmark Functions For Global Optimization Problems
A Literature Survey of Benchmark Functions For Global Optimization ProblemsA Literature Survey of Benchmark Functions For Global Optimization Problems
A Literature Survey of Benchmark Functions For Global Optimization Problems
 
Design of experiments-Box behnken design
Design of experiments-Box behnken designDesign of experiments-Box behnken design
Design of experiments-Box behnken design
 
om
omom
om
 
Operation's research models
Operation's research modelsOperation's research models
Operation's research models
 
Fractional Factorial Designs
Fractional Factorial DesignsFractional Factorial Designs
Fractional Factorial Designs
 
Fractional factorial design tutorial
Fractional factorial design tutorialFractional factorial design tutorial
Fractional factorial design tutorial
 
LINEAR PROGRAMMING
LINEAR  PROGRAMMINGLINEAR  PROGRAMMING
LINEAR PROGRAMMING
 
Introduction to principal component analysis (pca)
Introduction to principal component analysis (pca)Introduction to principal component analysis (pca)
Introduction to principal component analysis (pca)
 

Viewers also liked

SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNSSOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNSshubbhi
 
Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Kiran Hanjar
 
Bayesian Networks - A Brief Introduction
Bayesian Networks - A Brief IntroductionBayesian Networks - A Brief Introduction
Bayesian Networks - A Brief IntroductionAdnan Masood
 
Bayesian Belief Networks for dummies
Bayesian Belief Networks for dummiesBayesian Belief Networks for dummies
Bayesian Belief Networks for dummiesGilad Barkan
 
Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assuranceruth_reategui
 
Android fundamental development
Android fundamental developmentAndroid fundamental development
Android fundamental developmentBayu Firmawan Paoh
 
Pemrograman Mobile Android (Modul III)
Pemrograman Mobile Android (Modul III)Pemrograman Mobile Android (Modul III)
Pemrograman Mobile Android (Modul III)dikwan_moeis
 
Android (software) Design Pattern
Android (software) Design PatternAndroid (software) Design Pattern
Android (software) Design PatternArif Huda
 
Pemrograman Mobile Android (Modul II)
Pemrograman Mobile Android (Modul II)Pemrograman Mobile Android (Modul II)
Pemrograman Mobile Android (Modul II)dikwan_moeis
 
Pemanfaatan Teknologi Android
Pemanfaatan Teknologi AndroidPemanfaatan Teknologi Android
Pemanfaatan Teknologi AndroidArif Huda
 
introduction to programmer career path
introduction to programmer career pathintroduction to programmer career path
introduction to programmer career pathArif Huda
 
Quality Models
Quality ModelsQuality Models
Quality Modelsnethisip13
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurancelakshmi1693
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 

Viewers also liked (16)

SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNSSOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
 
Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )
 
Bayesian Networks - A Brief Introduction
Bayesian Networks - A Brief IntroductionBayesian Networks - A Brief Introduction
Bayesian Networks - A Brief Introduction
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Bayesian Belief Networks for dummies
Bayesian Belief Networks for dummiesBayesian Belief Networks for dummies
Bayesian Belief Networks for dummies
 
Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assurance
 
Testing Metrics
Testing MetricsTesting Metrics
Testing Metrics
 
Android fundamental development
Android fundamental developmentAndroid fundamental development
Android fundamental development
 
Pemrograman Mobile Android (Modul III)
Pemrograman Mobile Android (Modul III)Pemrograman Mobile Android (Modul III)
Pemrograman Mobile Android (Modul III)
 
Android (software) Design Pattern
Android (software) Design PatternAndroid (software) Design Pattern
Android (software) Design Pattern
 
Pemrograman Mobile Android (Modul II)
Pemrograman Mobile Android (Modul II)Pemrograman Mobile Android (Modul II)
Pemrograman Mobile Android (Modul II)
 
Pemanfaatan Teknologi Android
Pemanfaatan Teknologi AndroidPemanfaatan Teknologi Android
Pemanfaatan Teknologi Android
 
introduction to programmer career path
introduction to programmer career pathintroduction to programmer career path
introduction to programmer career path
 
Quality Models
Quality ModelsQuality Models
Quality Models
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 

Similar to Quality of design patterns

Fundamentals of Quantitative Analysis
Fundamentals of Quantitative AnalysisFundamentals of Quantitative Analysis
Fundamentals of Quantitative AnalysisJubayer Alam Shoikat
 
Algorithm ExampleFor the following taskUse the random module .docx
Algorithm ExampleFor the following taskUse the random module .docxAlgorithm ExampleFor the following taskUse the random module .docx
Algorithm ExampleFor the following taskUse the random module .docxdaniahendric
 
S-CUBE LP: Service Discovery and Task Models
S-CUBE LP: Service Discovery and Task ModelsS-CUBE LP: Service Discovery and Task Models
S-CUBE LP: Service Discovery and Task Modelsvirtual-campus
 
Measurement and metrics in model driven software development
Measurement and metrics in model driven software developmentMeasurement and metrics in model driven software development
Measurement and metrics in model driven software developmentSelman Bozkır
 
Iso9126 based software quality evaluation using choquet integral
Iso9126 based software quality evaluation using choquet integral Iso9126 based software quality evaluation using choquet integral
Iso9126 based software quality evaluation using choquet integral ijseajournal
 
Developing Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software SystemsDeveloping Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software Systems James Hill
 
Gqm paper
Gqm paperGqm paper
Gqm paperinandhu
 
kuyper_instructionalscience29
kuyper_instructionalscience29kuyper_instructionalscience29
kuyper_instructionalscience29Michiel Kuijper
 
CS8592 Object Oriented Analysis & Design - UNIT V
CS8592 Object Oriented Analysis & Design - UNIT V CS8592 Object Oriented Analysis & Design - UNIT V
CS8592 Object Oriented Analysis & Design - UNIT V pkaviya
 
Evaluating effectiveness factor of object oriented design a testability pers...
Evaluating effectiveness factor of object oriented design  a testability pers...Evaluating effectiveness factor of object oriented design  a testability pers...
Evaluating effectiveness factor of object oriented design a testability pers...ijseajournal
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...acijjournal
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...acijjournal
 
IRJET- Sentimental Analysis for Online Reviews using Machine Learning Algorithms
IRJET- Sentimental Analysis for Online Reviews using Machine Learning AlgorithmsIRJET- Sentimental Analysis for Online Reviews using Machine Learning Algorithms
IRJET- Sentimental Analysis for Online Reviews using Machine Learning AlgorithmsIRJET Journal
 
Quality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White BoxQuality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White BoxKimberly Jones
 
22_RepeatedMeasuresDesign_Complete.pptx
22_RepeatedMeasuresDesign_Complete.pptx22_RepeatedMeasuresDesign_Complete.pptx
22_RepeatedMeasuresDesign_Complete.pptxMarceloHenriques20
 

Similar to Quality of design patterns (20)

Fundamentals of Quantitative Analysis
Fundamentals of Quantitative AnalysisFundamentals of Quantitative Analysis
Fundamentals of Quantitative Analysis
 
Algorithm ExampleFor the following taskUse the random module .docx
Algorithm ExampleFor the following taskUse the random module .docxAlgorithm ExampleFor the following taskUse the random module .docx
Algorithm ExampleFor the following taskUse the random module .docx
 
S-CUBE LP: Service Discovery and Task Models
S-CUBE LP: Service Discovery and Task ModelsS-CUBE LP: Service Discovery and Task Models
S-CUBE LP: Service Discovery and Task Models
 
Measurement and metrics in model driven software development
Measurement and metrics in model driven software developmentMeasurement and metrics in model driven software development
Measurement and metrics in model driven software development
 
Me 601-gbu
Me 601-gbuMe 601-gbu
Me 601-gbu
 
Iso9126 based software quality evaluation using choquet integral
Iso9126 based software quality evaluation using choquet integral Iso9126 based software quality evaluation using choquet integral
Iso9126 based software quality evaluation using choquet integral
 
Developing Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software SystemsDeveloping Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software Systems
 
Slides chapter 15
Slides chapter 15Slides chapter 15
Slides chapter 15
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Gqm paper
Gqm paperGqm paper
Gqm paper
 
Thesis Proposal Presentation
Thesis Proposal PresentationThesis Proposal Presentation
Thesis Proposal Presentation
 
kuyper_instructionalscience29
kuyper_instructionalscience29kuyper_instructionalscience29
kuyper_instructionalscience29
 
CS8592 Object Oriented Analysis & Design - UNIT V
CS8592 Object Oriented Analysis & Design - UNIT V CS8592 Object Oriented Analysis & Design - UNIT V
CS8592 Object Oriented Analysis & Design - UNIT V
 
Evaluating effectiveness factor of object oriented design a testability pers...
Evaluating effectiveness factor of object oriented design  a testability pers...Evaluating effectiveness factor of object oriented design  a testability pers...
Evaluating effectiveness factor of object oriented design a testability pers...
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
 
IRJET- Sentimental Analysis for Online Reviews using Machine Learning Algorithms
IRJET- Sentimental Analysis for Online Reviews using Machine Learning AlgorithmsIRJET- Sentimental Analysis for Online Reviews using Machine Learning Algorithms
IRJET- Sentimental Analysis for Online Reviews using Machine Learning Algorithms
 
Quality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White BoxQuality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White Box
 
Me2011 Granularity presentation by Henderson-Sellers
Me2011 Granularity presentation by Henderson-SellersMe2011 Granularity presentation by Henderson-Sellers
Me2011 Granularity presentation by Henderson-Sellers
 
22_RepeatedMeasuresDesign_Complete.pptx
22_RepeatedMeasuresDesign_Complete.pptx22_RepeatedMeasuresDesign_Complete.pptx
22_RepeatedMeasuresDesign_Complete.pptx
 

Recently uploaded

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfdanishmna97
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaWSO2
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingWSO2
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityVictorSzoltysek
 
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 DiscoveryTrustArc
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
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 FMESafe Software
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...caitlingebhard1
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 

Recently uploaded (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
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
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
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
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 

Quality of design patterns

  • 1. A quantitative approach for evaluating the quality of design patterns Nieh-Lin Hsheh, Peng-Hua Chu, William Chu The Journal of Systems and Software 81 (2008) 1430 – 1439 M9837205 鄭聰賢
  • 2. Introduction (1/2)  Object-oriented is a paradigm of the software engineering now.  Design pattern  based on object-oriented.  is to define an abstraction of problem.  is to solve this particular problem.  But how to know a design pattern is good? How to define “good”?
  • 3. Introduction (2/2)  So, what we need?  An evaluation approach to help pattern developers check if a design pattern is well- designed.  A quantitative method that help measure the effectiveness of the quality improvement of a design pattern.
  • 4. QMOOD Quality Model for Object-Oriented Design (Bansiya and Davis, 2002)
  • 5. Essentials of design pattern  There are four essentials of design pattern (Gamma et al. 1994)  Pattern Name  Intent  Solution  Consequences
  • 6. Pattern evaluation (1/2) Observer pattern Define an one-to-many dependency between objects so that when one object changes state, all its dependents are automatically notified and undated. (Gamma et al. 1994) Functional aspect The subject to notify all observers when it changes its state. Non-functional aspect Notification to work automatically without knowing the types of observers. FR-intent (IF) NFR-intent (IN) Quality focus Q(dp) = (IF , IN)
  • 7. Pattern evaluation (2/2) FR-structure NFR-structure SF(dp) SN(dp) T )()(),( dpSSTdpS NFS 
  • 8. COF (COupling Factor)  The coupling factor (Brito and Abreu, 1995)   TCTC CCclientis TC i TC j ji     2 1 1 ),(_ where TC is the total number of classes and
  • 9. Quality improvement effectiveness  )( )())(( ),( m mmT MmGTM      μ : an object-oriented metric M: meta-model T: transformation G: an aggregation function* such as an average function : a typical model set whose elements are instantiated from M m: any instances of M T(m): total classes that transformed * In computer science, an aggregate function is a function that returns a single value from a collection of input values such as a set, a bag or a list. See: http://goo.gl/RrKkJ M μ (M,T) > 0 means that the transformation T enhances the property P, i.e., T can transform instances of M into another model with a higher property P. μ (M,T) < 0 means the transformation T impairs the property P μ (M,T) = 0 means the transformation T is effectiveless on the meta-model M
  • 10. Quality Improvement Effectiveness on property P Assume a design TSSCPIIdp NFNF ,,,,,, C: Coupling Factor
  • 11. P-improver )),(()()(* satisfiedSIddpimproverPdpimproverP FF  Define: a design pattern dp is a well-designed P-improver if it is a P-improver and its NFR-structure does not impair its FR-intent, i.e., where d(intent, structure) is a satisfaction function, representing the degree to which the intent can be realized in the structure. •The degree is called satisfaction degree in our approach. •If the intent is a functional intent, the degree is either 1 (satisfied) or 0 (not satisfied). •If the intent is nonfunctional, the degree ranges between 0 and 1. •The satisfaction degree is just a concept which cannot be directly measured.
  • 12. Case Study - Mediator (1/3) Mediator pattern:  Define an object that encapsulates how a set of object interacts. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently. (France et al. 2004)
  • 13. Case Study - Mediator (2/3)  Step 1: Extraction the nonfunctional intent and the quality focus definition  IF(Mediator) : A colleague object can communicate with other colleague objects.  IN(Mediator) : A colleague object can communicate with other colleague objects in a loose coupling manner by explicitly keeping objects from referring to each other.
  • 14. Step 2: Designing the pattern structures Step 3: Designing the transformation
  • 15. Case Study - Mediator (3/3) QIEP(Mediator) = -0.7195 ≒ -0.72 is negative, consistent with the constraint “decreased” coupling factor, so we conclude the Mediator is a Coupling-Improver. Step 4. Performing pattern validation
  • 16. Conclusion  A quality-improver design pattern is a design pattern which intents to address quality requirements and has a better structure for addressing them.  In the future, we plan to develop a tool for our verification method. A XMI-based representation will be developed for representing the meta-level functional and non-functional structures of a design pattern.  To define the transformation in the design pattern, we will explore the possibility of applying the technique of Model-Driven Architecture (MDA)

Editor's Notes

  1. Observer pattern如何
  2. The property refers to an object-oriented design property defined in U2, which may be design size, hierarchy, abstraction, encapsulation, coupling, cohesion, composition, inheritance, polymorphism, message, or complexity. Constraint refers to the expected constraint on the subject’s property, which may be increased, decreased or maintained.
  3. 如何能夠宣稱,當套用某個design pattern時對原本的model是有效的?
  4. 簡單來說:要看某個功能性結構,套用了某個dp後,是否在某個屬性(P)上有所影響,那麼可套用這個公式進行測量,若QIEp大於0,則可宣稱某個因子,例如 Coupling是增加的