TOOLS USA01.ppt

175 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
175
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

TOOLS USA01.ppt

  1. 1. Using Design Patterns and Constraints toAutomate the Detection and Correction of Inter-class Design Defects Yann-Gaël Guéhéneuc (guehene@emn.fr) Hervé Albin-Amiot (albin@emn.fr) École des Mines de Nantes, France Object Technology Soft-Maint S.A., France International Inc., Canada
  2. 2. Design patterns Constraints Inter-class design defects The Ptidej tool To assess / to increase software2/25 flexibility and understandability
  3. 3. Summary n An overview of software quality n A classification of design defects n On inter-class design defects n Design pattern modeling n Design defects detection n Design defects correction n Case studies n Conclusion and future work3/25
  4. 4. An overview of software quality n Viewpoints – ISO/IEC 9126 • Functionality, reliability, usability, efficiency, maintainability, portability – ISO/IEC 14598 – Coupling, cohesion, method replacement… n Maintenance = 75% n Design defects4/25
  5. 5. A classification of design defects n Intra-class / Inter-class / Behavioral Number: 39/61 (64%) Detection–correction: 25% Number: 13/61 (21%)5/25 Detection–correction: 8%
  6. 6. On inter-class design defects 1/2 n Design patterns – [Gamma et al. 1994] • Quality architectural solutions • Language independent – General Smalltalk- or C++-level • Domain independent • Flexibility, understandability – Other authors6/25
  7. 7. On inter-class design defects 2/2 n Wanted software quality characteristics – Flexibility – Understandability n Hypotheses – Groups of entities similar to a design pattern = Inter-class design defects – Making these groups of entities closer to a design pattern = Improving architectural7/25 quality (flexibility and understandability)
  8. 8. Design pattern modeling 1/3 n Meta-model – Describe the entities and elements in design pattern abstract models n Abstract model – Describe a design pattern in term of roles n Concrete model – Link an abstract model to real code8/25
  9. 9. ic A Bas xample : Meta-model 2/3 E9/25
  10. 10. ic A Bas xample : Composite 3/3 E Informal descriptions from [Gamma et al.] Instance of class Pattern Translates into Instance of class PInterface Instance of class PClass Instance of class PAssoc Instance of class PDelegation name() Instance of class PMethod Pattern, PInterface, PClass, PAssoc,10/25 PDelegation, and PMethod are classes defined in our meta-model
  11. 11. Design pattern detection 1/4 n Design pattern abstract model – Detection rules, i.e., constraints • Roles as variables • Relationships as constraints among variables n CSP – Source code for domain – Abstract model for variables, constraints11/25
  12. 12. ic A Bas xample : Composite 2/4 E Source code 1 Composite pattern abstract model Source code n CSP CSP Distorted concrete models12/25 Composite pattern concrete model 1 Composite pattern concrete model n
  13. 13. Design pattern detection 3/4 n Distorted concrete models – The design pattern – Not quite • Some constraints are not verified n Back to our hypotheses – Groups of entities similar to a design pattern13/25
  14. 14. Design pattern detection 4/4 n Explanation-based Constraint Programming [Jussien] – Set of constraints justifying an action performed by the PaLM solver • Value removal • Contradiction – Strong interactivity with the user through dynamic removal / addition of constraints14/25
  15. 15. Inter-class design defects 1/5 n The Ptidej tool – Hypotheses – Design pattern abstract models – Design pattern concrete models – Inter-class design defects • Detection • Correction15/25
  16. 16. ic A Bas xample : Ptidej 2/5 E16/25
  17. 17. ic A Bas xample : Ptidej 3/5 E17/25
  18. 18. ic A Bas xample : Ptidej 4/5 E18/25
  19. 19. ic A Bas xample : Ptidej 5/5 E19/25
  20. 20. Case studies 1/4 n Several applications being reviewed – Small test-cases – HotJava v3.0 (~90 classes) – JEdit v3.1 (~250 classes) – JHotDraw v5.1 (~155 classes) – JUnit v3.2 (~90 classes)20/25
  21. 21. Case studies 2/421/25
  22. 22. Case studies 3/422/25
  23. 23. Case studies 4/423/25
  24. 24. Conclusion and future work n Design patterns + Constraints + Inter-class design defects – To assess / to increase software flexibility and understandability n Semantics, scalability, software quality characteristics, automation, interaction, weights, noise, hybrid24/25
  25. 25. Thank you for your attention Questions? Comments? École des Mines de Nantes Yann-Gaël Guéhéneuc (guehene@emn.fr) Object Technology International Inc.25/25 Hervé Albin-Amiot (albin@emn.fr) Soft-Maint S.A.

×