SlideShare a Scribd company logo
Khashayar Khosravi and Yann-Gaël Guéhéneuc
© Khosravi and Guéhéneuc 2005
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
GEODES
On Issues with Software
Quality Model
9th ECOOP workshop on Quantitative Approaches
in Object-Oriented Software Engineering
Glasgow, Scotland
2005/07/25
2/20
Context
n Software industry (non-military, life-
threatening) balance price and quality
n Very high expectations of customers
n No clear consensual relation
among/between models, metrics yet
3/20
Context
n A. Einstein was right: Everything is
relative J
– Rational constructivism
– Computer science = Creating reality
– Truth does not exist: Felicity of choices
4/20
Issues with Quality Models
n Human estimations
n Software metrics
n Quality models
5/20
Human Estimations
n People are the best to judge the quality
of programs, designs, architectures…
n Problems
– Different tastes, different values
– Time-consuming
n Solution?
– Categorize groups of people dealing with
the software product
6/20
Software Metrics
n Only automatic means to evaluate the
quality systematically
n Problems
– Evaluation of source code is not enough
– With different viewpoints, finding
acceptable threshold is difficult
n Solutions?
– Combining dynamic, structural metrics
– Taking into account patterns
7/20
Quality Models
n Several quality models exist at different
level of abstraction
n Problems
– Affecting weights to quality characteristics
(sub-, sub-sub-, metrics…)
– Missing concepts, decomposing quality
n Solutions?
– Coefficients
– Assessing sub-sets of characteristics
8/20
Our Approach (1/12)
n Devise a software quality models
solving some of the previous problems
n Main idea: Design patterns
– Focus on few characteristics
– Use the patterns to take into account
design and architecture
– Use machine learning technique to
incorporate human evaluations
9/20
Our Approach (2/12)
n Design patterns provide “good”
solutions to recurring design problems
n Focus on
– Flexibility
– Reusability
– Robustness
– Scalability
– Usability
10/20
Our Approach (3/12)
n Design patterns are used to build “good”
designs or architectures
n Design patterns provide a means to
evaluate manually the quality of sets of
classes (not just single classes)
– And to learn from these evaluations
11/20
Our Approach (4/12)
n In a Nutshell
Programs Patterns
Metric
values
Sub-characteristics
Characteristics
FindFind Evaluate
Compute
Evaluate
Link with machine
learning technique
vs.
12/20
Our Approach (5/12)
n Steps
1. Identify the quality characteristics shared
by a set of patterns
2. Organise the quality characteristics
3. Choose internal attributes relevant to the
patterns and their characteristics
4. Identify programs using the patterns
5. Assess the quality of the used patterns
using the model from step 2
13/20
Our Approach (6/12)
n Steps
6. Compute the metrics from step 3 on the
program from step 4
7. Link the metric values from step 6 with
the quality assessment from step 5
8. Validate the quality model on other used
patterns from step 5
14/20
Our Approach (7/12)
n Patterns
– 23 design patterns
from the GoF
n Quality Model
15/20
Our Approach (8/12)
n Programs
– JHotDraw
– JUnit
– Lexi
16/20
Our Approach (9/12)
n Metrics
– ACAIC, ACMIC, AID, CBO, CLD,
cohesionAttributes, connectivity, DCAEC,
DCMEC, DIT, ICHClass, LCOM1, LCOM2,
LCOM5, NCM, NMA, NMI, NMO, NOA,
NOC, NOD, NOP, SIX, and WMC
17/20
OurApproach(10/12)
nEstimations
18/20
Our Approach (11/12)
n Results
19/20
Our Approach (12/12)
n Previous rules apply to any micro-
architectures of a OO program
n Evaluate subsets of the program
design, architecture
– Not the complete program
– Not just classes
20/20
Conclusion
n Issues with quality models
n A new approach to building quality
models
– Patterns
– Human estimations
– Design, architecture
n Software metrics?

More Related Content

What's hot

Resume Emilligan (3) (1)
Resume Emilligan (3) (1)Resume Emilligan (3) (1)
Resume Emilligan (3) (1)
Elizabeth Milligan
 
Pro Bono O.R. - Simplifying selection and improving allocation for Charityworks
Pro Bono O.R. - Simplifying selection and improving allocation for CharityworksPro Bono O.R. - Simplifying selection and improving allocation for Charityworks
Pro Bono O.R. - Simplifying selection and improving allocation for Charityworks
The OR Society
 
An experience with the App Inventor in CS0 for the development of the STEM di...
An experience with the App Inventor in CS0 for the development of the STEM di...An experience with the App Inventor in CS0 for the development of the STEM di...
An experience with the App Inventor in CS0 for the development of the STEM di...
Technological Ecosystems for Enhancing Multiculturality
 
The Green Lab - [01 C] Empirical software engineering
The Green Lab - [01 C] Empirical software engineeringThe Green Lab - [01 C] Empirical software engineering
The Green Lab - [01 C] Empirical software engineering
Ivano Malavolta
 
Lecture 12
Lecture 12Lecture 12
Lecture 12
Jeet Das
 
The Green Lab - [05 B] Experiment design (advanced)
The Green Lab - [05 B] Experiment design (advanced)The Green Lab - [05 B] Experiment design (advanced)
The Green Lab - [05 B] Experiment design (advanced)
Ivano Malavolta
 
[02-A] The experimental process
[02-A] The experimental process[02-A] The experimental process
[02-A] The experimental process
Ivano Malavolta
 
[05-B] Experiment design (advanced)
[05-B] Experiment design (advanced)[05-B] Experiment design (advanced)
[05-B] Experiment design (advanced)
Ivano Malavolta
 
softwareanalytics2015-RecordOfAchievement
softwareanalytics2015-RecordOfAchievementsoftwareanalytics2015-RecordOfAchievement
softwareanalytics2015-RecordOfAchievement
Roman Ganopolskyi
 
softwareanalytics2015-RecordOfAchievement
softwareanalytics2015-RecordOfAchievementsoftwareanalytics2015-RecordOfAchievement
softwareanalytics2015-RecordOfAchievement
Harris Veziris
 
The Green Lab - [05 A] Experiment design (basics)
The Green Lab - [05 A] Experiment design (basics)The Green Lab - [05 A] Experiment design (basics)
The Green Lab - [05 A] Experiment design (basics)
Ivano Malavolta
 
Netp3 survey.doc
Netp3 survey.docNetp3 survey.doc
Netp3 survey.doc
BonnieNoel
 
Ase07 tooldemo.ppt
Ase07 tooldemo.pptAse07 tooldemo.ppt
Ase07 tooldemo.ppt
Ptidej Team
 
What can you expect from the exam
What can you expect from the examWhat can you expect from the exam
What can you expect from the exam
JCA
 
05. Aggregeted report
05. Aggregeted report05. Aggregeted report
05. Aggregeted report
Petros Michailidis
 
130924 yann-gael gueheneuc - an overview of software code quality and conne...
130924   yann-gael gueheneuc - an overview of software code quality and conne...130924   yann-gael gueheneuc - an overview of software code quality and conne...
130924 yann-gael gueheneuc - an overview of software code quality and conne...
Ptidej Team
 
Web-based Virtual Reality development in classroom: From learner's perspectives
Web-based Virtual Reality development in classroom: From learner's perspectivesWeb-based Virtual Reality development in classroom: From learner's perspectives
Web-based Virtual Reality development in classroom: From learner's perspectives
VinhNguyen628
 
G325 section a1a intro
G325 section a1a introG325 section a1a intro
G325 section a1a intro
cigdemkalem
 
Pearson_Psych_Assessment_Platform_Marion_Buchenau
Pearson_Psych_Assessment_Platform_Marion_BuchenauPearson_Psych_Assessment_Platform_Marion_Buchenau
Pearson_Psych_Assessment_Platform_Marion_Buchenau
Marion Buchenau
 

What's hot (19)

Resume Emilligan (3) (1)
Resume Emilligan (3) (1)Resume Emilligan (3) (1)
Resume Emilligan (3) (1)
 
Pro Bono O.R. - Simplifying selection and improving allocation for Charityworks
Pro Bono O.R. - Simplifying selection and improving allocation for CharityworksPro Bono O.R. - Simplifying selection and improving allocation for Charityworks
Pro Bono O.R. - Simplifying selection and improving allocation for Charityworks
 
An experience with the App Inventor in CS0 for the development of the STEM di...
An experience with the App Inventor in CS0 for the development of the STEM di...An experience with the App Inventor in CS0 for the development of the STEM di...
An experience with the App Inventor in CS0 for the development of the STEM di...
 
The Green Lab - [01 C] Empirical software engineering
The Green Lab - [01 C] Empirical software engineeringThe Green Lab - [01 C] Empirical software engineering
The Green Lab - [01 C] Empirical software engineering
 
Lecture 12
Lecture 12Lecture 12
Lecture 12
 
The Green Lab - [05 B] Experiment design (advanced)
The Green Lab - [05 B] Experiment design (advanced)The Green Lab - [05 B] Experiment design (advanced)
The Green Lab - [05 B] Experiment design (advanced)
 
[02-A] The experimental process
[02-A] The experimental process[02-A] The experimental process
[02-A] The experimental process
 
[05-B] Experiment design (advanced)
[05-B] Experiment design (advanced)[05-B] Experiment design (advanced)
[05-B] Experiment design (advanced)
 
softwareanalytics2015-RecordOfAchievement
softwareanalytics2015-RecordOfAchievementsoftwareanalytics2015-RecordOfAchievement
softwareanalytics2015-RecordOfAchievement
 
softwareanalytics2015-RecordOfAchievement
softwareanalytics2015-RecordOfAchievementsoftwareanalytics2015-RecordOfAchievement
softwareanalytics2015-RecordOfAchievement
 
The Green Lab - [05 A] Experiment design (basics)
The Green Lab - [05 A] Experiment design (basics)The Green Lab - [05 A] Experiment design (basics)
The Green Lab - [05 A] Experiment design (basics)
 
Netp3 survey.doc
Netp3 survey.docNetp3 survey.doc
Netp3 survey.doc
 
Ase07 tooldemo.ppt
Ase07 tooldemo.pptAse07 tooldemo.ppt
Ase07 tooldemo.ppt
 
What can you expect from the exam
What can you expect from the examWhat can you expect from the exam
What can you expect from the exam
 
05. Aggregeted report
05. Aggregeted report05. Aggregeted report
05. Aggregeted report
 
130924 yann-gael gueheneuc - an overview of software code quality and conne...
130924   yann-gael gueheneuc - an overview of software code quality and conne...130924   yann-gael gueheneuc - an overview of software code quality and conne...
130924 yann-gael gueheneuc - an overview of software code quality and conne...
 
Web-based Virtual Reality development in classroom: From learner's perspectives
Web-based Virtual Reality development in classroom: From learner's perspectivesWeb-based Virtual Reality development in classroom: From learner's perspectives
Web-based Virtual Reality development in classroom: From learner's perspectives
 
G325 section a1a intro
G325 section a1a introG325 section a1a intro
G325 section a1a intro
 
Pearson_Psych_Assessment_Platform_Marion_Buchenau
Pearson_Psych_Assessment_Platform_Marion_BuchenauPearson_Psych_Assessment_Platform_Marion_Buchenau
Pearson_Psych_Assessment_Platform_Marion_Buchenau
 

Similar to Ecoop05 qaoos eb.ppt

Software Development for Processionals.ppt
Software Development for Processionals.pptSoftware Development for Processionals.ppt
Software Development for Processionals.ppt
NaeemAhmed654645
 
Toolsusa01.ppt
Toolsusa01.pptToolsusa01.ppt
Toolsusa01.ppt
Yann-Gaël Guéhéneuc
 
The Green Lab - [02 B] Experiment scoping
The Green Lab - [02 B] Experiment scopingThe Green Lab - [02 B] Experiment scoping
The Green Lab - [02 B] Experiment scoping
Ivano Malavolta
 
master_thesis.pdf
master_thesis.pdfmaster_thesis.pdf
master_thesis.pdf
EL MAJJODI Ayoub
 
1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx
drennanmicah
 
[02-B] Experiment scoping
[02-B] Experiment scoping[02-B] Experiment scoping
[02-B] Experiment scoping
Ivano Malavolta
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
Ivano Malavolta
 
ADOVH Research Methodology.pdf
ADOVH Research Methodology.pdfADOVH Research Methodology.pdf
ADOVH Research Methodology.pdf
ADOVH-University of South Africa
 
Ch03-Software Engineering Model
Ch03-Software Engineering ModelCh03-Software Engineering Model
Ch03-Software Engineering Model
Bala Ganesh
 
Towards an Evaluation of Graphical User Interfaces Aesthetics based on Metrics
Towards an Evaluation of Graphical User Interfaces Aesthetics based on MetricsTowards an Evaluation of Graphical User Interfaces Aesthetics based on Metrics
Towards an Evaluation of Graphical User Interfaces Aesthetics based on Metrics
Jean Vanderdonckt
 
Thesis
ThesisThesis
Thesis
Lashanda83
 
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
PMI_IREP_TP
 
Day 1 1620 - 1705 - maple - pranabendu bhattacharyya
Day 1   1620 - 1705 - maple - pranabendu bhattacharyyaDay 1   1620 - 1705 - maple - pranabendu bhattacharyya
Day 1 1620 - 1705 - maple - pranabendu bhattacharyya
PMI2011
 
Learninig Analytics Special Track: A cluster-based analisys to diagnose stude...
Learninig Analytics Special Track: A cluster-based analisys to diagnose stude...Learninig Analytics Special Track: A cluster-based analisys to diagnose stude...
Learninig Analytics Special Track: A cluster-based analisys to diagnose stude...
Miguel Rodriguez Artacho
 
software engineering powerpoint presentation foe everyone
software engineering powerpoint presentation foe everyonesoftware engineering powerpoint presentation foe everyone
software engineering powerpoint presentation foe everyone
rebantaofficial
 
Predicting User Ratings of Competitive ProgrammingContests using Decision Tre...
Predicting User Ratings of Competitive ProgrammingContests using Decision Tre...Predicting User Ratings of Competitive ProgrammingContests using Decision Tre...
Predicting User Ratings of Competitive ProgrammingContests using Decision Tre...
IRJET Journal
 
Rsse12.ppt
Rsse12.pptRsse12.ppt
Learning Management Systems Evaluation based on Neutrosophic sets
Learning Management Systems Evaluation based on Neutrosophic setsLearning Management Systems Evaluation based on Neutrosophic sets
Learning Management Systems Evaluation based on Neutrosophic sets
nourallah
 
Requirements quality analysis - A successful case study in the Railway Industry
Requirements quality analysis - A successful case study in the Railway IndustryRequirements quality analysis - A successful case study in the Railway Industry
Requirements quality analysis - A successful case study in the Railway Industry
The REUSE Company
 
Recommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software DevelopmentRecommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software Development
Francis Palma
 

Similar to Ecoop05 qaoos eb.ppt (20)

Software Development for Processionals.ppt
Software Development for Processionals.pptSoftware Development for Processionals.ppt
Software Development for Processionals.ppt
 
Toolsusa01.ppt
Toolsusa01.pptToolsusa01.ppt
Toolsusa01.ppt
 
The Green Lab - [02 B] Experiment scoping
The Green Lab - [02 B] Experiment scopingThe Green Lab - [02 B] Experiment scoping
The Green Lab - [02 B] Experiment scoping
 
master_thesis.pdf
master_thesis.pdfmaster_thesis.pdf
master_thesis.pdf
 
1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx
 
[02-B] Experiment scoping
[02-B] Experiment scoping[02-B] Experiment scoping
[02-B] Experiment scoping
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
ADOVH Research Methodology.pdf
ADOVH Research Methodology.pdfADOVH Research Methodology.pdf
ADOVH Research Methodology.pdf
 
Ch03-Software Engineering Model
Ch03-Software Engineering ModelCh03-Software Engineering Model
Ch03-Software Engineering Model
 
Towards an Evaluation of Graphical User Interfaces Aesthetics based on Metrics
Towards an Evaluation of Graphical User Interfaces Aesthetics based on MetricsTowards an Evaluation of Graphical User Interfaces Aesthetics based on Metrics
Towards an Evaluation of Graphical User Interfaces Aesthetics based on Metrics
 
Thesis
ThesisThesis
Thesis
 
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
Day1 1620-1705-maple-pranabendubhattacharyya-131008043643-phpapp02
 
Day 1 1620 - 1705 - maple - pranabendu bhattacharyya
Day 1   1620 - 1705 - maple - pranabendu bhattacharyyaDay 1   1620 - 1705 - maple - pranabendu bhattacharyya
Day 1 1620 - 1705 - maple - pranabendu bhattacharyya
 
Learninig Analytics Special Track: A cluster-based analisys to diagnose stude...
Learninig Analytics Special Track: A cluster-based analisys to diagnose stude...Learninig Analytics Special Track: A cluster-based analisys to diagnose stude...
Learninig Analytics Special Track: A cluster-based analisys to diagnose stude...
 
software engineering powerpoint presentation foe everyone
software engineering powerpoint presentation foe everyonesoftware engineering powerpoint presentation foe everyone
software engineering powerpoint presentation foe everyone
 
Predicting User Ratings of Competitive ProgrammingContests using Decision Tre...
Predicting User Ratings of Competitive ProgrammingContests using Decision Tre...Predicting User Ratings of Competitive ProgrammingContests using Decision Tre...
Predicting User Ratings of Competitive ProgrammingContests using Decision Tre...
 
Rsse12.ppt
Rsse12.pptRsse12.ppt
Rsse12.ppt
 
Learning Management Systems Evaluation based on Neutrosophic sets
Learning Management Systems Evaluation based on Neutrosophic setsLearning Management Systems Evaluation based on Neutrosophic sets
Learning Management Systems Evaluation based on Neutrosophic sets
 
Requirements quality analysis - A successful case study in the Railway Industry
Requirements quality analysis - A successful case study in the Railway IndustryRequirements quality analysis - A successful case study in the Railway Industry
Requirements quality analysis - A successful case study in the Railway Industry
 
Recommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software DevelopmentRecommendation System for Design Patterns in Software Development
Recommendation System for Design Patterns in Software Development
 

More from Yann-Gaël Guéhéneuc

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
Yann-Gaël Guéhéneuc
 
Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
Yann-Gaël Guéhéneuc
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
Yann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Yann-Gaël Guéhéneuc
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
Yann-Gaël Guéhéneuc
 
ICSOC'21
ICSOC'21ICSOC'21
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
Yann-Gaël Guéhéneuc
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
Yann-Gaël Guéhéneuc
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
Yann-Gaël Guéhéneuc
 
Msr20.ppt
Msr20.pptMsr20.ppt
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt

More from Yann-Gaël Guéhéneuc (20)

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
 
Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 

Recently uploaded

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
alowpalsadig
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
michniczscribd
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
KrishnaveniMohan1
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
confluent
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
Softradix Technologies
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
dhavalvaghelanectarb
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 

Recently uploaded (20)

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 

Ecoop05 qaoos eb.ppt

  • 1. Khashayar Khosravi and Yann-Gaël Guéhéneuc © Khosravi and Guéhéneuc 2005 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 GEODES On Issues with Software Quality Model 9th ECOOP workshop on Quantitative Approaches in Object-Oriented Software Engineering Glasgow, Scotland 2005/07/25
  • 2. 2/20 Context n Software industry (non-military, life- threatening) balance price and quality n Very high expectations of customers n No clear consensual relation among/between models, metrics yet
  • 3. 3/20 Context n A. Einstein was right: Everything is relative J – Rational constructivism – Computer science = Creating reality – Truth does not exist: Felicity of choices
  • 4. 4/20 Issues with Quality Models n Human estimations n Software metrics n Quality models
  • 5. 5/20 Human Estimations n People are the best to judge the quality of programs, designs, architectures… n Problems – Different tastes, different values – Time-consuming n Solution? – Categorize groups of people dealing with the software product
  • 6. 6/20 Software Metrics n Only automatic means to evaluate the quality systematically n Problems – Evaluation of source code is not enough – With different viewpoints, finding acceptable threshold is difficult n Solutions? – Combining dynamic, structural metrics – Taking into account patterns
  • 7. 7/20 Quality Models n Several quality models exist at different level of abstraction n Problems – Affecting weights to quality characteristics (sub-, sub-sub-, metrics…) – Missing concepts, decomposing quality n Solutions? – Coefficients – Assessing sub-sets of characteristics
  • 8. 8/20 Our Approach (1/12) n Devise a software quality models solving some of the previous problems n Main idea: Design patterns – Focus on few characteristics – Use the patterns to take into account design and architecture – Use machine learning technique to incorporate human evaluations
  • 9. 9/20 Our Approach (2/12) n Design patterns provide “good” solutions to recurring design problems n Focus on – Flexibility – Reusability – Robustness – Scalability – Usability
  • 10. 10/20 Our Approach (3/12) n Design patterns are used to build “good” designs or architectures n Design patterns provide a means to evaluate manually the quality of sets of classes (not just single classes) – And to learn from these evaluations
  • 11. 11/20 Our Approach (4/12) n In a Nutshell Programs Patterns Metric values Sub-characteristics Characteristics FindFind Evaluate Compute Evaluate Link with machine learning technique vs.
  • 12. 12/20 Our Approach (5/12) n Steps 1. Identify the quality characteristics shared by a set of patterns 2. Organise the quality characteristics 3. Choose internal attributes relevant to the patterns and their characteristics 4. Identify programs using the patterns 5. Assess the quality of the used patterns using the model from step 2
  • 13. 13/20 Our Approach (6/12) n Steps 6. Compute the metrics from step 3 on the program from step 4 7. Link the metric values from step 6 with the quality assessment from step 5 8. Validate the quality model on other used patterns from step 5
  • 14. 14/20 Our Approach (7/12) n Patterns – 23 design patterns from the GoF n Quality Model
  • 15. 15/20 Our Approach (8/12) n Programs – JHotDraw – JUnit – Lexi
  • 16. 16/20 Our Approach (9/12) n Metrics – ACAIC, ACMIC, AID, CBO, CLD, cohesionAttributes, connectivity, DCAEC, DCMEC, DIT, ICHClass, LCOM1, LCOM2, LCOM5, NCM, NMA, NMI, NMO, NOA, NOC, NOD, NOP, SIX, and WMC
  • 19. 19/20 Our Approach (12/12) n Previous rules apply to any micro- architectures of a OO program n Evaluate subsets of the program design, architecture – Not the complete program – Not just classes
  • 20. 20/20 Conclusion n Issues with quality models n A new approach to building quality models – Patterns – Human estimations – Design, architecture n Software metrics?