SlideShare a Scribd company logo
On the Automatic Detection and Correction
        of Software Architectural Defects
           in Object-Oriented Designs




             Naouel Moha and Yann-Gaël Guéhéneuc
              6th ECOOP workshop on Object-Oriented Reengineering
                              Glasgow, Scotland
                                 2005/07/26
GEODES 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                                                        © Moha and Guéheneuc 2005
Outline

       n Objective
       n Terminology
         – Taxonomy, Classifications, Formalization
       n Detection   of Software Defects
         – Techniques, Tools
       n Correction   of Software Defects
         – Techniques, Tools
       n Challenges
2/10
Objective
       n   Our Aim
           – “Formalize SAD* including antipatterns and design defects for their
             detection and correction in object-oriented architectures and to
             correct them”
       n   Perspectives
           – Short term: Get some feedback from the WOOR participants
           – Mid term: Formalization of SAD defects and analysis of techniques
           – Long term: Techniques and tools for automatic detection and
             correction


       n   Related Work
           – “Anti Patterns: Refactoring Software, Architectures, and Projects in
             Crisis”, Brown et al.
3/10
                                                        *SAD (Software Architectural Defects)
Terminology                                       (1/3)

       n   Taxonomy
           – Antipatterns, design defects, code smells
       n   Classifications
           – Few classifications of defects at design level
       n   Among SAD, three categories [1]
           – Intra-classes: Internal structure of a class
           – Inter-classes: External structure of the classes
             (public interface) and their relationships
             (inheritance, association...)
4/10
           – Behavioural: Semantics of the program
Terminology           (2/3)

       n   Classifications




5/10
Terminology                                    (3/3)

       n Formalization
         – Only textual descriptions of software
           defects but no formal description of SAD
           • Ex: Detection of antipatterns by intuition
           • Design defects?
         – Meta-models
           • PADL [2]¸ FAMIX [3], DMP [4]
           • Right meta-model to formalise and to detect
             SAD defects in OO architectures?
6/10
Detection of Software Defects
       n   Existing Techniques
            – Reading techniques (software inspections)
            – At code level: Functional or structural testing
       n   Suggestions
            –   Extraction of code comments
            –   Behavioural analysis based on the sequence diagrams
            –   Dynamic detection during execution (assertions, pre- and post-conditions)
            –   Metrics (number of methods, attributes, LOC)
            –   Code smells: Heuristics at the code level for an automatic detection
            –   Are they good?
       n   Tools
            – Ex: OptimalAdvisor, IBM Structural Analysis for Java (SA4J), SmallLint
                   •   Help in understanding and in visualizing the structure of the code
                   •   Provide some basic measures (size, inheritance)
                   •   Highlight some problems
7/10
                   •   Limited: Do not support the detection of defects at the design level
Correction of Software Defects
       n   Techniques
           – Behaviour preserving and non-behaviour preserving
             refactoring techniques
           – Semi-automatic correction


       n   Our aim
           – To precise, to develop, or to extend refactoring techniques
           – Generic techniques applicable on any SAD


       n   Tools
           – Basic refactorings: package/class/method
8/10         rename/move/remove, variable insert/remove/rename…
Challenges

       n Future   work
         – Classifying SAD
         – Formalizing SAD
         – Defining techniques, tools, and metrics for
           the automatic detection and the semi-
           automatic correction of SAD
         – Implementing and validating these
           techniques and tools

9/10
References
        [1]   Yann-Gaël Guéhéneuc and Hervé Albin-Amiot. Using design patterns and constraints to automate the detection and correction of
              inter-class design defects. In Quioyun Li, Richard Riehle, Gilda Pour, and Bertrand Meyer, editors, proceedings of the 39th
              conference on the Technology of Object-Oriented Languages and Systems, pages 296–305. IEEE Computer Society Press, July
              2001.
              Available at: www.yann-gael.gueheneuc.net/Work/Publications/.

        [2]    Hervé Albin-Amiot and Yann-Gaël Guéhéneuc. Meta-modeling design patterns: Application to pattern detection and code
              synthesis. In Bedir Tekinerdogan, Pim Van Den Broek , Motoshi Saeki, Pavel Hruby, and Gerson Suny é, editors, proceedings of
              the 1st ECOOP workshop on Automating Object-Oriented Software Development Methods. Centre for Telematics and Information
              Technology, University of Twente, October 2001. TR-CTIT-01-35.
              Available at: www.yann-gael.gueheneuc.net/Work/Publications/.

        [3]   Serge Demeyer, St´ephane Ducasse, and Sander Tichelaar. Why FAMIX and not UML? Technical report, Software Composition
              Group, University of Bern, 1999.
              Available at: iamwww.unibe.ch/famoos/FAMIX/ whyFAMIX/whyFAMIX.html.

        [4]   Kim Mens, Isabel Michiels, and Roel Wuyts. Supporting software development through declaratively codified programming
              patterns. Elsevier Journal on Expert Systems with Applications, 23(4). Lecture Notes in Computer Science (LNCS), November
              2002.




10/10

More Related Content

PPTX
object oriented system development
PDF
Kalinichenko_CV
DOCX
Ramakeerthi_1+yr_resume
PDF
Software engineering principles (marcello thiry)
DOC
balachandrarao_resume
PPTX
Reverse Engineering Malware Training
PPTX
Software requirement enginering
PDF
Cs1111 software engineering
object oriented system development
Kalinichenko_CV
Ramakeerthi_1+yr_resume
Software engineering principles (marcello thiry)
balachandrarao_resume
Reverse Engineering Malware Training
Software requirement enginering
Cs1111 software engineering

Similar to ECOOP05 WOORa.ppt (20)

PDF
Ecoop05 woo ra.ppt
PDF
Correctness
PDF
Elevator pitch for testing software architecture and software design
PDF
Elevator pitch architecture design
PPTX
Slides for Houston iPhone Developers' Meetup (April 2012)
 
PDF
Wbt07 tooldemo.ppt
PDF
Software defect prevention example project
PDF
010821+presentation+oti.ppt
PDF
November 2024 - Top 10 Read Articles in Software Engineering & Applications
PDF
Defect prevention techniques
PPTX
SQA Lec_4.ppt learn sqa knowledge using this pptx
PDF
TOOLS USA01.ppt
PPT
Slides chapter 9
PPTX
On the Relevance of Code Anomalies for Identifying Architecture Degradation S...
PDF
Defect effort prediction models in software maintenance projects
PDF
F017652530
PDF
A Review on Software Fault Detection and Prevention Mechanism in Software Dev...
PDF
ASE01.ppt
PDF
Devnology back toschool software reengineering
PDF
Sustainability Evaluation of Software Architectures: A Systematic Review
Ecoop05 woo ra.ppt
Correctness
Elevator pitch for testing software architecture and software design
Elevator pitch architecture design
Slides for Houston iPhone Developers' Meetup (April 2012)
 
Wbt07 tooldemo.ppt
Software defect prevention example project
010821+presentation+oti.ppt
November 2024 - Top 10 Read Articles in Software Engineering & Applications
Defect prevention techniques
SQA Lec_4.ppt learn sqa knowledge using this pptx
TOOLS USA01.ppt
Slides chapter 9
On the Relevance of Code Anomalies for Identifying Architecture Degradation S...
Defect effort prediction models in software maintenance projects
F017652530
A Review on Software Fault Detection and Prevention Mechanism in Software Dev...
ASE01.ppt
Devnology back toschool software reengineering
Sustainability Evaluation of Software Architectures: A Systematic Review
Ad

More from Ptidej Team (20)

PDF
From IoT to Software Miniaturisation
PDF
Presentation
PDF
Presentation
PDF
Presentation
PDF
Presentation by Lionel Briand
PDF
Manel Abdellatif
PDF
Azadeh Kermansaravi
PDF
Mouna Abidi
PDF
CSED - Manel Grichi
PDF
Cristiano Politowski
PDF
Will io t trigger the next software crisis
PDF
PDF
Thesis+of+laleh+eshkevari.ppt
PDF
Thesis+of+nesrine+abdelkafi.ppt
PDF
Medicine15.ppt
PDF
Qrs17b.ppt
PDF
Icpc11c.ppt
PDF
Icsme16.ppt
PDF
Msr17a.ppt
PDF
Icsoc15.ppt
From IoT to Software Miniaturisation
Presentation
Presentation
Presentation
Presentation by Lionel Briand
Manel Abdellatif
Azadeh Kermansaravi
Mouna Abidi
CSED - Manel Grichi
Cristiano Politowski
Will io t trigger the next software crisis
Thesis+of+laleh+eshkevari.ppt
Thesis+of+nesrine+abdelkafi.ppt
Medicine15.ppt
Qrs17b.ppt
Icpc11c.ppt
Icsme16.ppt
Msr17a.ppt
Icsoc15.ppt
Ad

Recently uploaded (20)

PDF
Getting Started with Data Integration: FME Form 101
PDF
Empathic Computing: Creating Shared Understanding
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Encapsulation theory and applications.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPT
Teaching material agriculture food technology
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
Big Data Technologies - Introduction.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
Getting Started with Data Integration: FME Form 101
Empathic Computing: Creating Shared Understanding
MYSQL Presentation for SQL database connectivity
Digital-Transformation-Roadmap-for-Companies.pptx
Spectral efficient network and resource selection model in 5G networks
Encapsulation theory and applications.pdf
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Teaching material agriculture food technology
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Big Data Technologies - Introduction.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
SOPHOS-XG Firewall Administrator PPT.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Encapsulation_ Review paper, used for researhc scholars
Assigned Numbers - 2025 - Bluetooth® Document
Building Integrated photovoltaic BIPV_UPV.pdf

ECOOP05 WOORa.ppt

  • 1. On the Automatic Detection and Correction of Software Architectural Defects in Object-Oriented Designs Naouel Moha and Yann-Gaël Guéhéneuc 6th ECOOP workshop on Object-Oriented Reengineering Glasgow, Scotland 2005/07/26 GEODES 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 © Moha and Guéheneuc 2005
  • 2. Outline n Objective n Terminology – Taxonomy, Classifications, Formalization n Detection of Software Defects – Techniques, Tools n Correction of Software Defects – Techniques, Tools n Challenges 2/10
  • 3. Objective n Our Aim – “Formalize SAD* including antipatterns and design defects for their detection and correction in object-oriented architectures and to correct them” n Perspectives – Short term: Get some feedback from the WOOR participants – Mid term: Formalization of SAD defects and analysis of techniques – Long term: Techniques and tools for automatic detection and correction n Related Work – “Anti Patterns: Refactoring Software, Architectures, and Projects in Crisis”, Brown et al. 3/10 *SAD (Software Architectural Defects)
  • 4. Terminology (1/3) n Taxonomy – Antipatterns, design defects, code smells n Classifications – Few classifications of defects at design level n Among SAD, three categories [1] – Intra-classes: Internal structure of a class – Inter-classes: External structure of the classes (public interface) and their relationships (inheritance, association...) 4/10 – Behavioural: Semantics of the program
  • 5. Terminology (2/3) n Classifications 5/10
  • 6. Terminology (3/3) n Formalization – Only textual descriptions of software defects but no formal description of SAD • Ex: Detection of antipatterns by intuition • Design defects? – Meta-models • PADL [2]¸ FAMIX [3], DMP [4] • Right meta-model to formalise and to detect SAD defects in OO architectures? 6/10
  • 7. Detection of Software Defects n Existing Techniques – Reading techniques (software inspections) – At code level: Functional or structural testing n Suggestions – Extraction of code comments – Behavioural analysis based on the sequence diagrams – Dynamic detection during execution (assertions, pre- and post-conditions) – Metrics (number of methods, attributes, LOC) – Code smells: Heuristics at the code level for an automatic detection – Are they good? n Tools – Ex: OptimalAdvisor, IBM Structural Analysis for Java (SA4J), SmallLint • Help in understanding and in visualizing the structure of the code • Provide some basic measures (size, inheritance) • Highlight some problems 7/10 • Limited: Do not support the detection of defects at the design level
  • 8. Correction of Software Defects n Techniques – Behaviour preserving and non-behaviour preserving refactoring techniques – Semi-automatic correction n Our aim – To precise, to develop, or to extend refactoring techniques – Generic techniques applicable on any SAD n Tools – Basic refactorings: package/class/method 8/10 rename/move/remove, variable insert/remove/rename…
  • 9. Challenges n Future work – Classifying SAD – Formalizing SAD – Defining techniques, tools, and metrics for the automatic detection and the semi- automatic correction of SAD – Implementing and validating these techniques and tools 9/10
  • 10. References [1] Yann-Gaël Guéhéneuc and Hervé Albin-Amiot. Using design patterns and constraints to automate the detection and correction of inter-class design defects. In Quioyun Li, Richard Riehle, Gilda Pour, and Bertrand Meyer, editors, proceedings of the 39th conference on the Technology of Object-Oriented Languages and Systems, pages 296–305. IEEE Computer Society Press, July 2001. Available at: www.yann-gael.gueheneuc.net/Work/Publications/. [2] Hervé Albin-Amiot and Yann-Gaël Guéhéneuc. Meta-modeling design patterns: Application to pattern detection and code synthesis. In Bedir Tekinerdogan, Pim Van Den Broek , Motoshi Saeki, Pavel Hruby, and Gerson Suny é, editors, proceedings of the 1st ECOOP workshop on Automating Object-Oriented Software Development Methods. Centre for Telematics and Information Technology, University of Twente, October 2001. TR-CTIT-01-35. Available at: www.yann-gael.gueheneuc.net/Work/Publications/. [3] Serge Demeyer, St´ephane Ducasse, and Sander Tichelaar. Why FAMIX and not UML? Technical report, Software Composition Group, University of Bern, 1999. Available at: iamwww.unibe.ch/famoos/FAMIX/ whyFAMIX/whyFAMIX.html. [4] Kim Mens, Isabel Michiels, and Roel Wuyts. Supporting software development through declaratively codified programming patterns. Elsevier Journal on Expert Systems with Applications, 23(4). Lecture Notes in Computer Science (LNCS), November 2002. 10/10