SlideShare a Scribd company logo
1 of 20
Download to read offline
Ptidej in my PaLM
Using explanations for
design patterns identification
Us
Æ Yann-Gaël Guéhéneuc
n 2nd year PhD student
n Object Models and Components Team
n Partly funded by Object Technology International, Inc.
(Canada)
Æ Narendra Jussien
n Assistant Professor
n Constraint Programming Team
Æ Research hosted by the
École des Mines de Nantes
Long-term goal
n To improve the quality of software
architecture
– To improve flexibility, understandability, …
– Maintenance = 75% of the life of a software
n Design patterns
« Describe simple and elegant solutions to specific
architectural problems in OO software design »
– Experience of skillful developers
– Recurrent architectural problems
Composite
pattern solution
Composite composes objects into tree structures to
represent part-whole hierarchies. It lets clients treat
individual objects and compositions of objects uniformly.
Basic
Example:A
Main ideas
n Design patterns are good micro-
architectural solutions
n Micro-architectures close to a design
pattern solution may be improved
n These are transformed into the
corresponding design pattern solution
Problem
n To identify
– The Use of a design pattern solution
• Well written code
• Notion of complete version
– The Misuse of a design pattern solution
• Code improvement
• Notion of distorted version
+ No up-front descriptions of the distortions
ProblemBasic
A
Example:
Complete and
distorted versions?
Complete and distorted versions
n Related works
– The search of sub-graphs in a graph
– The phase of adaptation in case-based
reasoning
n But we need complete and distorted
versions
ÆExplanation-based CP (eCP)
Solution
n Explanation-based CP enables
– Justifications
• Programming = « artistic » activity
• Explain why / how the code is modified
– Complete and distorted versions
– Strong interactivity with the user
• Dynamic description of the distortions
Explanation-based CP 1/3
n Set of constraints justifying an
action performed by the solver
–Value removal
–Contradiction
n Trace of the solver behavior
Explanation-based CP 2/3
n Application
–Assistance upon failure
–Interactive solvers
–New search algorithms
• Path-repair (AAAI 2000)
• Mac-DBT (CP 2000)
• …
Explanation-based CP 3/3
n An implementation: PaLM
–Developed at the EMN
–On top of Choco
–Written in Claire
–Used in Path-Repair, Mac-DBT
–Reliable and efficient
Our application
n The design pattern solution
– A class defines a variable
– Relationships among classes define
constraints
n The source code of the application
– The classes define the domain of the
variables
– Relationships among classes give the
semantics of the constraints
n The Composite design pattern solution
n Its constraints
ConstraintsBasic
A
Example:
composite < component
leaf < component
composite ⊃ component
InteractionBasic
A
Example:
composite < component
leaf < component
composite ⊃ component
ResultsBasic
A
Example:
Our results 1/3
n Implementation
– Constraints
• Inheritance, creation, composition, …
– Design pattern solutions
• Composite, Façade, Factory Method, …
n Experiments
– Small test-cases
– JEdit v3.1 (~250 classes), JHotDraw v5.1
(~155 classes), Ptidej itself (!), …
Our results 2/3
Our results 3/3
Conclusion and future
n An application of explanation-based CP
– Non-trivial problem
n Short term
– To add more design pattern solutions
– To develop the constraints system
• New algorithm CSP-NN [Morning session]
– Scalability and weights (noise)
n Long term
– automation and interaction (usability)

More Related Content

What's hot

ECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.pptECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.ppt
Ptidej Team
 
Problem Solving Techniques
Problem Solving TechniquesProblem Solving Techniques
Problem Solving Techniques
Ashesh R
 
Project Specs
Project SpecsProject Specs
Project Specs
factorX
 
Project Specs
Project SpecsProject Specs
Project Specs
factorX
 
RESUME_Sangam Sharma
RESUME_Sangam SharmaRESUME_Sangam Sharma
RESUME_Sangam Sharma
Sangam Sharma
 

What's hot (12)

ECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.pptECOOP05 QAOOSEb.ppt
ECOOP05 QAOOSEb.ppt
 
A Methodology for Enhancing Programming Competence of Students Using Parikshak
A Methodology for Enhancing Programming Competence of Students Using ParikshakA Methodology for Enhancing Programming Competence of Students Using Parikshak
A Methodology for Enhancing Programming Competence of Students Using Parikshak
 
Study techniques of programming in C
Study techniques of programming in CStudy techniques of programming in C
Study techniques of programming in C
 
Problem Solving Techniques
Problem Solving TechniquesProblem Solving Techniques
Problem Solving Techniques
 
Complexity metrics and models
Complexity metrics and modelsComplexity metrics and models
Complexity metrics and models
 
Project Specs
Project SpecsProject Specs
Project Specs
 
Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...
Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...
Promise 2011: "An Iterative Semi-supervised Approach to Software Fault Predic...
 
130817 latifa guerrouj - context-aware source code vocabulary normalization...
130817   latifa guerrouj - context-aware source code vocabulary normalization...130817   latifa guerrouj - context-aware source code vocabulary normalization...
130817 latifa guerrouj - context-aware source code vocabulary normalization...
 
Project Specs
Project SpecsProject Specs
Project Specs
 
RESUME_Sangam Sharma
RESUME_Sangam SharmaRESUME_Sangam Sharma
RESUME_Sangam Sharma
 
Software engineer java (Madrid)Spain
Software engineer java (Madrid)SpainSoftware engineer java (Madrid)Spain
Software engineer java (Madrid)Spain
 
Ctssb
CtssbCtssb
Ctssb
 

Similar to Ijcai01 mspc.ppt

Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
the_wumberlog
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
B.T.L.I.T
 
Ch03-Software Engineering Model
Ch03-Software Engineering ModelCh03-Software Engineering Model
Ch03-Software Engineering Model
Bala Ganesh
 

Similar to Ijcai01 mspc.ppt (20)

Toolsusa01.ppt
Toolsusa01.pptToolsusa01.ppt
Toolsusa01.ppt
 
010821+presentation+oti.ppt
010821+presentation+oti.ppt010821+presentation+oti.ppt
010821+presentation+oti.ppt
 
Object Oriented System Design
Object Oriented System DesignObject Oriented System Design
Object Oriented System Design
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Towards Filling the Gap in Conversational Search: From Passage Retrieval to C...
Towards Filling the Gap in Conversational Search: From Passage Retrieval to C...Towards Filling the Gap in Conversational Search: From Passage Retrieval to C...
Towards Filling the Gap in Conversational Search: From Passage Retrieval to C...
 
Resume1
Resume1Resume1
Resume1
 
Designing Object Oriented Software - lecture slides 2013
Designing Object Oriented Software - lecture slides 2013Designing Object Oriented Software - lecture slides 2013
Designing Object Oriented Software - lecture slides 2013
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
 
Do you think OOP when writing topics?
Do you think OOP when writing topics?Do you think OOP when writing topics?
Do you think OOP when writing topics?
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
TOOLS USA01.ppt
TOOLS USA01.pptTOOLS USA01.ppt
TOOLS USA01.ppt
 
Ch03-Software Engineering Model
Ch03-Software Engineering ModelCh03-Software Engineering Model
Ch03-Software Engineering Model
 
Software Design Principles and Best Practices - Satyajit Dey
Software Design Principles and Best Practices - Satyajit DeySoftware Design Principles and Best Practices - Satyajit Dey
Software Design Principles and Best Practices - Satyajit Dey
 
PROBLEM SOLVING TECHNIQUES
PROBLEM SOLVING TECHNIQUESPROBLEM SOLVING TECHNIQUES
PROBLEM SOLVING TECHNIQUES
 
2016 03-09 research seminar
2016 03-09 research seminar2016 03-09 research seminar
2016 03-09 research seminar
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Unit 2
Unit 2Unit 2
Unit 2
 
GCU list of modules
GCU list of modulesGCU list of modules
GCU list of modules
 
session on pattern oriented software architecture
session on pattern oriented software architecturesession on pattern oriented software architecture
session on pattern oriented software architecture
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
 

More from 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
 
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
 

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

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
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

Ijcai01 mspc.ppt

  • 1. Ptidej in my PaLM Using explanations for design patterns identification
  • 2. Us Æ Yann-Gaël Guéhéneuc n 2nd year PhD student n Object Models and Components Team n Partly funded by Object Technology International, Inc. (Canada) Æ Narendra Jussien n Assistant Professor n Constraint Programming Team Æ Research hosted by the École des Mines de Nantes
  • 3. Long-term goal n To improve the quality of software architecture – To improve flexibility, understandability, … – Maintenance = 75% of the life of a software n Design patterns « Describe simple and elegant solutions to specific architectural problems in OO software design » – Experience of skillful developers – Recurrent architectural problems
  • 4. Composite pattern solution Composite composes objects into tree structures to represent part-whole hierarchies. It lets clients treat individual objects and compositions of objects uniformly. Basic Example:A
  • 5. Main ideas n Design patterns are good micro- architectural solutions n Micro-architectures close to a design pattern solution may be improved n These are transformed into the corresponding design pattern solution
  • 6. Problem n To identify – The Use of a design pattern solution • Well written code • Notion of complete version – The Misuse of a design pattern solution • Code improvement • Notion of distorted version + No up-front descriptions of the distortions
  • 8. Complete and distorted versions n Related works – The search of sub-graphs in a graph – The phase of adaptation in case-based reasoning n But we need complete and distorted versions ÆExplanation-based CP (eCP)
  • 9. Solution n Explanation-based CP enables – Justifications • Programming = « artistic » activity • Explain why / how the code is modified – Complete and distorted versions – Strong interactivity with the user • Dynamic description of the distortions
  • 10. Explanation-based CP 1/3 n Set of constraints justifying an action performed by the solver –Value removal –Contradiction n Trace of the solver behavior
  • 11. Explanation-based CP 2/3 n Application –Assistance upon failure –Interactive solvers –New search algorithms • Path-repair (AAAI 2000) • Mac-DBT (CP 2000) • …
  • 12. Explanation-based CP 3/3 n An implementation: PaLM –Developed at the EMN –On top of Choco –Written in Claire –Used in Path-Repair, Mac-DBT –Reliable and efficient
  • 13. Our application n The design pattern solution – A class defines a variable – Relationships among classes define constraints n The source code of the application – The classes define the domain of the variables – Relationships among classes give the semantics of the constraints
  • 14. n The Composite design pattern solution n Its constraints ConstraintsBasic A Example: composite < component leaf < component composite ⊃ component
  • 15. InteractionBasic A Example: composite < component leaf < component composite ⊃ component
  • 17. Our results 1/3 n Implementation – Constraints • Inheritance, creation, composition, … – Design pattern solutions • Composite, Façade, Factory Method, … n Experiments – Small test-cases – JEdit v3.1 (~250 classes), JHotDraw v5.1 (~155 classes), Ptidej itself (!), …
  • 20. Conclusion and future n An application of explanation-based CP – Non-trivial problem n Short term – To add more design pattern solutions – To develop the constraints system • New algorithm CSP-NN [Morning session] – Scalability and weights (noise) n Long term – automation and interaction (usability)