SlideShare a Scribd company logo
1 of 10
Download to read offline
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

Similar to ECOOP05 WOORa.ppt

04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
Oose unit 1 ppt
Oose unit 1 pptOose unit 1 ppt
Oose unit 1 pptDr VISU P
 
OOSE Unit 1 PPT.ppt
OOSE Unit 1 PPT.pptOOSE Unit 1 PPT.ppt
OOSE Unit 1 PPT.pptitadmin33
 
Usability evaluation of Domain-Specific Languages
Usability evaluation of Domain-Specific LanguagesUsability evaluation of Domain-Specific Languages
Usability evaluation of Domain-Specific LanguagesAnkica Barisic
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software EngineeringMuhammadTalha436
 
20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptxJayaramB11
 
CS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdf
CS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdfCS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdf
CS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdfTitoMido1
 
Software engineering
Software engineeringSoftware engineering
Software engineeringh2eEdgar
 
Ooad lab manual(original)
Ooad lab manual(original)Ooad lab manual(original)
Ooad lab manual(original)dipenpatelpatel
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 pptDr VISU P
 

Similar to ECOOP05 WOORa.ppt (20)

Ecoop05 woo ra.ppt
Ecoop05 woo ra.pptEcoop05 woo ra.ppt
Ecoop05 woo ra.ppt
 
Correctness
CorrectnessCorrectness
Correctness
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 
SE notes 2.pdf
SE notes 2.pdfSE notes 2.pdf
SE notes 2.pdf
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
Oose unit 1 ppt
Oose unit 1 pptOose unit 1 ppt
Oose unit 1 ppt
 
010821+presentation+oti.ppt
010821+presentation+oti.ppt010821+presentation+oti.ppt
010821+presentation+oti.ppt
 
OOSE Unit 1 PPT.ppt
OOSE Unit 1 PPT.pptOOSE Unit 1 PPT.ppt
OOSE Unit 1 PPT.ppt
 
Oopsla07 tooldemo.ppt
Oopsla07 tooldemo.pptOopsla07 tooldemo.ppt
Oopsla07 tooldemo.ppt
 
Usability evaluation of Domain-Specific Languages
Usability evaluation of Domain-Specific LanguagesUsability evaluation of Domain-Specific Languages
Usability evaluation of Domain-Specific Languages
 
Introduction of Software Engineering
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software Engineering
 
1.Basic Introduction (1).ppt
1.Basic Introduction (1).ppt1.Basic Introduction (1).ppt
1.Basic Introduction (1).ppt
 
20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx
 
CS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdf
CS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdfCS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdf
CS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdf
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
chapter 1.ppt
chapter 1.pptchapter 1.ppt
chapter 1.ppt
 
Design final
Design finalDesign final
Design final
 
Ooad lab manual(original)
Ooad lab manual(original)Ooad lab manual(original)
Ooad lab manual(original)
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 

More from Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Recently uploaded

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

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