SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Ptidej: A Flexible Reverse
Engineering Tool Suite
Yann-Gaël Guéhéneuc
ICSM
Paris, France
2/10/07
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

© Guéhéneuc 2007
Outline
 Ptidej

in a Nutshell
 Brief History
 Main Characteristics
 Demo
– Reverse Engineering of JHD v5.1
– Identification of Design Motifs, Defects
– Model Transformations and External Tools
2/16

 Thoughts

for Discussions
Ptidej in a Nutshell




3/16

Ptidej: Pattern Trace Identification, Detection,
and Enhancement in Java
Tool suite to develop theories and methods to
evaluate and improve the quality of objectoriented programs by promoting the use of
idioms, design patterns, and architectural
patterns
– Research
– Education
Brief History


1999: Birth



– Hervé Albin-Amiot creates DPL
(Design Pattern Language), a
meta-model for design motifs


– Creation of the Ptidej Team to
develop and enhance the tool
suite at University of Montreal
– Parser for AOL
– Parser for AspectJ
– Parser for a subset of C++
– DSL for design defects
specification and identification
– Identification of micro-patterns

2001–2003: Childhood
– DPL becomes PADL to describe
programs and motifs
• Parser for Java

– Caffeine is developed to analyse
dynamically Java programs
– Explanation-based constraint
programming to identify motifs
– Visualisation of systems, motifs,
occurrences

4/16

2003–2007: Teenage days



2008: ?
Main Characteristics
 Today

– 30 JDT projects
– 200 packages
– 1,150 classes
– 80,000 LOC
 Contributions

of several master and
Ph.D. students
 Used in several publications, see
5/16

www.ptidej.net/publications
Main Characteristics


PADL meta-model
–
–
–
–



6/16

Composite
Observer
Visitor
(Singleton)



Ptidej framework
–
–
–
–
–

Observer
Builder
Template Method
Abstract Factory
(Singleton)

See Yann-Gaël Guéhéneuc ; Ptidej: Promoting
Patterns with Patterns ; BSUP, in 2005
Main Characteristics
 Reflection

– Meta-model constituents
– Design motifs, design defects
– PADL analyses
– Ptidej UI analyses
– Ptidej Viewer extensions

7/16
Main Characteristics
 Some

hot spots

to add new constituents
IBuilder to draw graphic representations
IPADLAnalysis to add new PADL analyses
IDesignMotif to add new design motifs
IPtidejAnalysis to add new Ptidej analyses
IExtension to extend the UI
IWindow to add new window in the UI

– IFactory
–
–
–
–
–
–
8/16
Demo
Reverse Engineering
A

.ptidej file lists a set of file to be
parsed and their languages
[Ptidej Project]
Name = DPL - JHotDraw v5.1
JavaCode = ../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/applet/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/application/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/contrib/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/figures/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/framework/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/samples/javadraw/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/samples/net/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/samples/nothing/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/samples/pert/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/standard/;../../../DPL - JHotDraw
v5.1/bin/CH/ifa/draw/util/

9/16
Demo
Reverse Engineering


PADL Meta-model
– Pattern and Abstractlevel Description
Language
– Meta-mode to
describe objectoriented software
systems and
patterns

10/16
Demo
Reverse Engineering

11/16
Demo
Identification of Design Motifs, Defects
 Design

motifs

– PADL meta-model
– Solutions of design patterns
– Explanation-based constraint programming
 Design

12/16

defects

– DSL language
– Structural relationships, structural and
lexical properties, metric values
– Template-based code generation
Demo
Identification of Design Motifs, Defects

13/16

Composite Design Motif
Demo
Identification of Design Motifs, Defects

14/16

Swiss Army Knife
Demo
Model Transformations and External Tools

15/16

Dotty
Thoughts for Discussions
 More

information at www.ptidej.net

 Language

independence

– See WOOR’06 and ’07 workshop reports
 Framework

independence
 Framework documentation

16/16

– API
– Hot spots
– Design patterns and defects

Contenu connexe

En vedette (12)

Wcre12c.ppt
Wcre12c.pptWcre12c.ppt
Wcre12c.ppt
 
Wcre13a.ppt
Wcre13a.pptWcre13a.ppt
Wcre13a.ppt
 
Ppap13b.ppt
Ppap13b.pptPpap13b.ppt
Ppap13b.ppt
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
Rsse12.ppt
Rsse12.pptRsse12.ppt
Rsse12.ppt
 
Wcre13c.pdf
Wcre13c.pdfWcre13c.pdf
Wcre13c.pdf
 
Ssbse12b.ppt
Ssbse12b.pptSsbse12b.ppt
Ssbse12b.ppt
 
Ssbse12a.ppt
Ssbse12a.pptSsbse12a.ppt
Ssbse12a.ppt
 
Icsoc12 tooldemo.ppt
Icsoc12 tooldemo.pptIcsoc12 tooldemo.ppt
Icsoc12 tooldemo.ppt
 
See12.ppt
See12.pptSee12.ppt
See12.ppt
 
Wcre12b.ppt
Wcre12b.pptWcre12b.ppt
Wcre12b.ppt
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 

Similaire à Icsm07 tooldemo.pdf

Cascon05 tooldemo.ppt
Cascon05 tooldemo.pptCascon05 tooldemo.ppt
Cascon05 tooldemo.pptPtidej Team
 
ECOOP05 BSUP.ppt
ECOOP05 BSUP.pptECOOP05 BSUP.ppt
ECOOP05 BSUP.pptPtidej Team
 
Il product development - 20 01 2011
Il  product development - 20 01 2011Il  product development - 20 01 2011
Il product development - 20 01 2011nakham
 
Software Development for Processionals.ppt
Software Development for Processionals.pptSoftware Development for Processionals.ppt
Software Development for Processionals.pptNaeemAhmed654645
 
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code ReviewPrimers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code ReviewDelft University of Technology
 
OCCIware - A Formal Toolchain for Managing Everything-as-a-Service
OCCIware - A Formal Toolchain for Managing Everything-as-a-ServiceOCCIware - A Formal Toolchain for Managing Everything-as-a-Service
OCCIware - A Formal Toolchain for Managing Everything-as-a-ServiceJean Parpaillon
 
Evolution of design systems at GE
Evolution of design systems at GEEvolution of design systems at GE
Evolution of design systems at GEDavid Cronin
 
ECOOP05 WOORa.ppt
ECOOP05 WOORa.pptECOOP05 WOORa.ppt
ECOOP05 WOORa.pptPtidej Team
 
SpagoBI_CLLAP2009
SpagoBI_CLLAP2009SpagoBI_CLLAP2009
SpagoBI_CLLAP2009guest76d50b
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringJordi Cabot
 
Developing a gui based design software in
Developing a gui based design software inDeveloping a gui based design software in
Developing a gui based design software inLaukik Raut
 
Valcon Design Robustness Program 2013
Valcon Design Robustness Program 2013Valcon Design Robustness Program 2013
Valcon Design Robustness Program 2013martinebro
 
Project Guidance and Project flow for UG & PG candidates
Project Guidance and Project flow for UG & PG candidatesProject Guidance and Project flow for UG & PG candidates
Project Guidance and Project flow for UG & PG candidatespradeep kumar
 

Similaire à Icsm07 tooldemo.pdf (20)

Icsm07 tooldemo.ppt
Icsm07 tooldemo.pptIcsm07 tooldemo.ppt
Icsm07 tooldemo.ppt
 
Oopsla07 tooldemo.ppt
Oopsla07 tooldemo.pptOopsla07 tooldemo.ppt
Oopsla07 tooldemo.ppt
 
Ecoop05 bsup.ppt
Ecoop05 bsup.pptEcoop05 bsup.ppt
Ecoop05 bsup.ppt
 
Cascon05 tooldemo.ppt
Cascon05 tooldemo.pptCascon05 tooldemo.ppt
Cascon05 tooldemo.ppt
 
ECOOP05 BSUP.ppt
ECOOP05 BSUP.pptECOOP05 BSUP.ppt
ECOOP05 BSUP.ppt
 
Ecoop05 woo ra.ppt
Ecoop05 woo ra.pptEcoop05 woo ra.ppt
Ecoop05 woo ra.ppt
 
Il product development - 20 01 2011
Il  product development - 20 01 2011Il  product development - 20 01 2011
Il product development - 20 01 2011
 
Software Development for Processionals.ppt
Software Development for Processionals.pptSoftware Development for Processionals.ppt
Software Development for Processionals.ppt
 
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code ReviewPrimers or Reminders? The Effects of Existing Review Comments on Code Review
Primers or Reminders? The Effects of Existing Review Comments on Code Review
 
Eosp summer 2011
Eosp summer 2011Eosp summer 2011
Eosp summer 2011
 
OCCIware - A Formal Toolchain for Managing Everything-as-a-Service
OCCIware - A Formal Toolchain for Managing Everything-as-a-ServiceOCCIware - A Formal Toolchain for Managing Everything-as-a-Service
OCCIware - A Formal Toolchain for Managing Everything-as-a-Service
 
Evolution of design systems at GE
Evolution of design systems at GEEvolution of design systems at GE
Evolution of design systems at GE
 
ECOOP05 WOORa.ppt
ECOOP05 WOORa.pptECOOP05 WOORa.ppt
ECOOP05 WOORa.ppt
 
SpagoBI_CLLAP2009
SpagoBI_CLLAP2009SpagoBI_CLLAP2009
SpagoBI_CLLAP2009
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven Engineering
 
Developing a gui based design software in
Developing a gui based design software inDeveloping a gui based design software in
Developing a gui based design software in
 
Valcon Design Robustness Program 2013
Valcon Design Robustness Program 2013Valcon Design Robustness Program 2013
Valcon Design Robustness Program 2013
 
Resume
ResumeResume
Resume
 
MTech- Viva_Voce
MTech- Viva_VoceMTech- Viva_Voce
MTech- Viva_Voce
 
Project Guidance and Project flow for UG & PG candidates
Project Guidance and Project flow for UG & PG candidatesProject Guidance and Project flow for UG & PG candidates
Project Guidance and Project flow for UG & PG candidates
 

Plus de 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
 

Plus de 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
 

Dernier

Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 

Dernier (20)

Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 

Icsm07 tooldemo.pdf

  • 1. Ptidej: A Flexible Reverse Engineering Tool Suite Yann-Gaël Guéhéneuc ICSM Paris, France 2/10/07 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 © Guéhéneuc 2007
  • 2. Outline  Ptidej in a Nutshell  Brief History  Main Characteristics  Demo – Reverse Engineering of JHD v5.1 – Identification of Design Motifs, Defects – Model Transformations and External Tools 2/16  Thoughts for Discussions
  • 3. Ptidej in a Nutshell   3/16 Ptidej: Pattern Trace Identification, Detection, and Enhancement in Java Tool suite to develop theories and methods to evaluate and improve the quality of objectoriented programs by promoting the use of idioms, design patterns, and architectural patterns – Research – Education
  • 4. Brief History  1999: Birth  – Hervé Albin-Amiot creates DPL (Design Pattern Language), a meta-model for design motifs  – Creation of the Ptidej Team to develop and enhance the tool suite at University of Montreal – Parser for AOL – Parser for AspectJ – Parser for a subset of C++ – DSL for design defects specification and identification – Identification of micro-patterns 2001–2003: Childhood – DPL becomes PADL to describe programs and motifs • Parser for Java – Caffeine is developed to analyse dynamically Java programs – Explanation-based constraint programming to identify motifs – Visualisation of systems, motifs, occurrences 4/16 2003–2007: Teenage days  2008: ?
  • 5. Main Characteristics  Today – 30 JDT projects – 200 packages – 1,150 classes – 80,000 LOC  Contributions of several master and Ph.D. students  Used in several publications, see 5/16 www.ptidej.net/publications
  • 6. Main Characteristics  PADL meta-model – – – –  6/16 Composite Observer Visitor (Singleton)  Ptidej framework – – – – – Observer Builder Template Method Abstract Factory (Singleton) See Yann-Gaël Guéhéneuc ; Ptidej: Promoting Patterns with Patterns ; BSUP, in 2005
  • 7. Main Characteristics  Reflection – Meta-model constituents – Design motifs, design defects – PADL analyses – Ptidej UI analyses – Ptidej Viewer extensions 7/16
  • 8. Main Characteristics  Some hot spots to add new constituents IBuilder to draw graphic representations IPADLAnalysis to add new PADL analyses IDesignMotif to add new design motifs IPtidejAnalysis to add new Ptidej analyses IExtension to extend the UI IWindow to add new window in the UI – IFactory – – – – – – 8/16
  • 9. Demo Reverse Engineering A .ptidej file lists a set of file to be parsed and their languages [Ptidej Project] Name = DPL - JHotDraw v5.1 JavaCode = ../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/applet/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/application/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/contrib/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/figures/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/framework/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/samples/javadraw/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/samples/net/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/samples/nothing/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/samples/pert/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/standard/;../../../DPL - JHotDraw v5.1/bin/CH/ifa/draw/util/ 9/16
  • 10. Demo Reverse Engineering  PADL Meta-model – Pattern and Abstractlevel Description Language – Meta-mode to describe objectoriented software systems and patterns 10/16
  • 12. Demo Identification of Design Motifs, Defects  Design motifs – PADL meta-model – Solutions of design patterns – Explanation-based constraint programming  Design 12/16 defects – DSL language – Structural relationships, structural and lexical properties, metric values – Template-based code generation
  • 13. Demo Identification of Design Motifs, Defects 13/16 Composite Design Motif
  • 14. Demo Identification of Design Motifs, Defects 14/16 Swiss Army Knife
  • 15. Demo Model Transformations and External Tools 15/16 Dotty
  • 16. Thoughts for Discussions  More information at www.ptidej.net  Language independence – See WOOR’06 and ’07 workshop reports  Framework independence  Framework documentation 16/16 – API – Hot spots – Design patterns and defects