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
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
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)