Yann-Gaël Guéhéneuc
© Guéhéneuc 2007
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
GEODES
Ptidej: A Flexible Reverse
Engineering Tool Suite
ICSM
Paris, France
2/10/07
2/16
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
 Thoughts for Discussions
3/16
Ptidej in a Nutshell
 Ptidej: Pattern Trace Identification, Detection,
and Enhancement in Java
 Tool suite to develop theories and methods to
evaluate and improve the quality of object-
oriented programs by promoting the use of
idioms, design patterns, and architectural
patterns
– Research
– Education
4/16
Brief History
 1999: Birth
– Hervé Albin-Amiot creates DPL
(Design Pattern Language), a
meta-model for design motifs
 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
 2003–2007: Teenage days
– 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
 2008: ?
5/16
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
www.ptidej.net/publications
6/16
Main Characteristics
 PADL meta-model
– 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/16
Main Characteristics
 Reflection
– Meta-model constituents
– Design motifs, design defects
– PADL analyses
– Ptidej UI analyses
– Ptidej Viewer extensions
8/16
Main Characteristics
 Some hot spots
– IFactory 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
9/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/
10/16
Demo
Reverse Engineering
 PADL Meta-model
– Pattern and Abstract-
level Description
Language
– Meta-mode to
describe object-
oriented software
systems and
patterns
11/16
Demo
Reverse Engineering
12/16
Demo
Identification of Design Motifs, Defects
 Design motifs
– PADL meta-model
– Solutions of design patterns
– Explanation-based constraint programming
 Design defects
– DSL language
– Structural relationships, structural and
lexical properties, metric values
– Template-based code generation
13/16
Demo
Identification of Design Motifs, Defects
Composite Design Motif
14/16
Demo
Identification of Design Motifs, Defects
Swiss Army Knife
15/16
Demo
Model Transformations and External Tools
Dotty
16/16
Thoughts for Discussions
 More information at www.ptidej.net
 Language independence
– See WOOR’06 and ’07 workshop reports
 Framework independence
 Framework documentation
– API
– Hot spots
– Design patterns and defects

More Related Content

PDF
Icsm07 tooldemo.pdf
PDF
Oopsla07 tooldemo.ppt
PDF
Ecoop05 bsup.ppt
PDF
Cascon05 tooldemo.ppt
PDF
Ase07 tooldemo.ppt
PDF
Ase07 tooldemo.ppt
PDF
ECOOP05 BSUP.ppt
Icsm07 tooldemo.pdf
Oopsla07 tooldemo.ppt
Ecoop05 bsup.ppt
Cascon05 tooldemo.ppt
Ase07 tooldemo.ppt
Ase07 tooldemo.ppt
ECOOP05 BSUP.ppt

More from Yann-Gaël Guéhéneuc (20)

PDF
Rights, Copyrights, and Licences for Software Engineering Research v1.0
PDF
Evolution and Examples of Java Features, from Java 1.7 to Java 24
PDF
Projects Panama, Valhalla, and Babylon: Java is the New Python v0.9
PDF
Consequences and Principles of Software Quality v1.0
PDF
About Empirical Studies on Software Quality
PDF
A (Very) Brief History of Ethics for Software Engineering Research
PDF
Project Manifold (Forwarding and Delegation)
PDF
Reviewing Processes and Tools, Publishers, Open Access
PDF
Custom Annotations in Java with Project Lombok
PDF
Some Pitfalls with Python and Their Possible Solutions v1.0
PDF
Advice for writing a NSERC Discovery grant application v0.5
PDF
Ptidej Architecture, Design, and Implementation in Action v2.1
PDF
Evolution and Examples of Java Features, from Java 1.7 to Java 22
PDF
Consequences and Principles of Software Quality v0.3
PDF
Some Pitfalls with Python and Their Possible Solutions v0.9
PDF
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
PDF
An Explanation of the Halting Problem and Its Consequences
PDF
Are CPUs VMs Like Any Others? v1.0
PDF
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
PDF
Well-known Computer Scientists v1.0.2
Rights, Copyrights, and Licences for Software Engineering Research v1.0
Evolution and Examples of Java Features, from Java 1.7 to Java 24
Projects Panama, Valhalla, and Babylon: Java is the New Python v0.9
Consequences and Principles of Software Quality v1.0
About Empirical Studies on Software Quality
A (Very) Brief History of Ethics for Software Engineering Research
Project Manifold (Forwarding and Delegation)
Reviewing Processes and Tools, Publishers, Open Access
Custom Annotations in Java with Project Lombok
Some Pitfalls with Python and Their Possible Solutions v1.0
Advice for writing a NSERC Discovery grant application v0.5
Ptidej Architecture, Design, and Implementation in Action v2.1
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Consequences and Principles of Software Quality v0.3
Some Pitfalls with Python and Their Possible Solutions v0.9
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Halting Problem and Its Consequences
Are CPUs VMs Like Any Others? v1.0
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Well-known Computer Scientists v1.0.2
Ad

Recently uploaded (20)

PPTX
Introduction to Windows Operating System
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PPTX
GSA Content Generator Crack (2025 Latest)
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
How Tridens DevSecOps Ensures Compliance, Security, and Agility
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PDF
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
PDF
Types of Token_ From Utility to Security.pdf
PPTX
Tech Workshop Escape Room Tech Workshop
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
Cost to Outsource Software Development in 2025
DOCX
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
PDF
Time Tracking Features That Teams and Organizations Actually Need
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
iTop VPN Crack Latest Version Full Key 2025
Introduction to Windows Operating System
Weekly report ppt - harsh dattuprasad patel.pptx
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Oracle Fusion HCM Cloud Demo for Beginners
GSA Content Generator Crack (2025 Latest)
Computer Software and OS of computer science of grade 11.pptx
How Tridens DevSecOps Ensures Compliance, Security, and Agility
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
Designing Intelligence for the Shop Floor.pdf
Salesforce Agentforce AI Implementation.pdf
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
Types of Token_ From Utility to Security.pdf
Tech Workshop Escape Room Tech Workshop
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Cost to Outsource Software Development in 2025
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
Time Tracking Features That Teams and Organizations Actually Need
Why Generative AI is the Future of Content, Code & Creativity?
iTop VPN Crack Latest Version Full Key 2025
Ad

Icsm07 tooldemo.ppt

  • 1. Yann-Gaël Guéhéneuc © Guéhéneuc 2007 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 GEODES Ptidej: A Flexible Reverse Engineering Tool Suite ICSM Paris, France 2/10/07
  • 2. 2/16 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  Thoughts for Discussions
  • 3. 3/16 Ptidej in a Nutshell  Ptidej: Pattern Trace Identification, Detection, and Enhancement in Java  Tool suite to develop theories and methods to evaluate and improve the quality of object- oriented programs by promoting the use of idioms, design patterns, and architectural patterns – Research – Education
  • 4. 4/16 Brief History  1999: Birth – Hervé Albin-Amiot creates DPL (Design Pattern Language), a meta-model for design motifs  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  2003–2007: Teenage days – 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  2008: ?
  • 5. 5/16 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 www.ptidej.net/publications
  • 6. 6/16 Main Characteristics  PADL meta-model – 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. 7/16 Main Characteristics  Reflection – Meta-model constituents – Design motifs, design defects – PADL analyses – Ptidej UI analyses – Ptidej Viewer extensions
  • 8. 8/16 Main Characteristics  Some hot spots – IFactory 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
  • 9. 9/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/
  • 10. 10/16 Demo Reverse Engineering  PADL Meta-model – Pattern and Abstract- level Description Language – Meta-mode to describe object- oriented software systems and patterns
  • 12. 12/16 Demo Identification of Design Motifs, Defects  Design motifs – PADL meta-model – Solutions of design patterns – Explanation-based constraint programming  Design defects – DSL language – Structural relationships, structural and lexical properties, metric values – Template-based code generation
  • 13. 13/16 Demo Identification of Design Motifs, Defects Composite Design Motif
  • 14. 14/16 Demo Identification of Design Motifs, Defects Swiss Army Knife
  • 15. 15/16 Demo Model Transformations and External Tools Dotty
  • 16. 16/16 Thoughts for Discussions  More information at www.ptidej.net  Language independence – See WOOR’06 and ’07 workshop reports  Framework independence  Framework documentation – API – Hot spots – Design patterns and defects