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

More Related Content

PDF
Yogesh_job_resume
PDF
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
PDF
MSR Asia Summit
PDF
Mribp13.ppt
PDF
Ppap13a.ppt
PDF
Software Design Patterns in Theory
PDF
Quality and Software Design Patterns
PDF
Software Design Patterns in Practice
Yogesh_job_resume
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
MSR Asia Summit
Mribp13.ppt
Ppap13a.ppt
Software Design Patterns in Theory
Quality and Software Design Patterns
Software Design Patterns in Practice

Viewers also liked (12)

PDF
Wcre12c.ppt
PDF
Wcre13a.ppt
PDF
Ppap13b.ppt
PDF
Wcre13b.ppt
PDF
Rsse12.ppt
PDF
Wcre13c.pdf
PDF
Ssbse12b.ppt
PDF
Ssbse12a.ppt
PDF
Icsoc12 tooldemo.ppt
PDF
See12.ppt
PDF
Wcre12b.ppt
PDF
Jcom02.ppt
Wcre12c.ppt
Wcre13a.ppt
Ppap13b.ppt
Wcre13b.ppt
Rsse12.ppt
Wcre13c.pdf
Ssbse12b.ppt
Ssbse12a.ppt
Icsoc12 tooldemo.ppt
See12.ppt
Wcre12b.ppt
Jcom02.ppt
Ad

Similar to Icsm07 tooldemo.pdf (20)

PDF
Icsm07 tooldemo.ppt
PDF
Oopsla07 tooldemo.ppt
PDF
Ecoop05 bsup.ppt
PDF
Cascon05 tooldemo.ppt
PDF
ECOOP05 BSUP.ppt
PDF
Ecoop05 woo ra.ppt
PPT
Il product development - 20 01 2011
PPT
Software Development for Processionals.ppt
PPT
newpptnewpptttttttttttttttttttttttttttttt.ppt
PDF
Primers or Reminders? The Effects of Existing Review Comments on Code Review
PDF
Eosp summer 2011
PDF
Econometrics for python, how to deal with data
PDF
OCCIware - A Formal Toolchain for Managing Everything-as-a-Service
PDF
Scilab Enterprises (Numerical Computing)
PDF
Evolution of design systems at GE
PDF
ECOOP05 WOORa.ppt
PDF
SpagoBI_CLLAP2009
PPTX
Lightweight Model-Driven Engineering
PDF
Developing a gui based design software in
PDF
Valcon Design Robustness Program 2013
Icsm07 tooldemo.ppt
Oopsla07 tooldemo.ppt
Ecoop05 bsup.ppt
Cascon05 tooldemo.ppt
ECOOP05 BSUP.ppt
Ecoop05 woo ra.ppt
Il product development - 20 01 2011
Software Development for Processionals.ppt
newpptnewpptttttttttttttttttttttttttttttt.ppt
Primers or Reminders? The Effects of Existing Review Comments on Code Review
Eosp summer 2011
Econometrics for python, how to deal with data
OCCIware - A Formal Toolchain for Managing Everything-as-a-Service
Scilab Enterprises (Numerical Computing)
Evolution of design systems at GE
ECOOP05 WOORa.ppt
SpagoBI_CLLAP2009
Lightweight Model-Driven Engineering
Developing a gui based design software in
Valcon Design Robustness Program 2013
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

Recently uploaded (20)

PDF
Architecture types and enterprise applications.pdf
PDF
Developing a website for English-speaking practice to English as a foreign la...
DOCX
search engine optimization ppt fir known well about this
PPTX
Tartificialntelligence_presentation.pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Getting Started with Data Integration: FME Form 101
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
Unlock new opportunities with location data.pdf
PDF
August Patch Tuesday
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
PDF
DP Operators-handbook-extract for the Mautical Institute
Architecture types and enterprise applications.pdf
Developing a website for English-speaking practice to English as a foreign la...
search engine optimization ppt fir known well about this
Tartificialntelligence_presentation.pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Getting Started with Data Integration: FME Form 101
1 - Historical Antecedents, Social Consideration.pdf
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Unlock new opportunities with location data.pdf
August Patch Tuesday
Taming the Chaos: How to Turn Unstructured Data into Decisions
O2C Customer Invoices to Receipt V15A.pptx
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
sustainability-14-14877-v2.pddhzftheheeeee
observCloud-Native Containerability and monitoring.pptx
A comparative study of natural language inference in Swahili using monolingua...
Module 1.ppt Iot fundamentals and Architecture
Web Crawler for Trend Tracking Gen Z Insights.pptx
DP Operators-handbook-extract for the Mautical Institute

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