SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
ROOTS




    DPDx – A Common Result Exchange Format
          for Design Pattern Detection


 Günter Kniesel        Péter Hegedũs        Alexander Chatzigeorgiou       Yann-Gaël Guéhéneuc
Alexander Binun       Lajos Jenő Fülöp         Nikolaos Tsantalis


University of Bonn   University of Szeged    University of Macedonia   École Polytechnique de Montréal
 Bonn, Germany        Szeged, Hungary         Thessaloniki, Greece            Québec, Canada
  {gk, binun}          {hpeter, flajos}          {achat, nikos}             yann-gael.gueheneuc
@iai.uni-bonn.de      @inf.u-szeged.hu           @java.uom.gr                   @polymtl.ca
Relevance

          DPD = complex program analysis
            program structure
            behaviour
            static and dynamic relations


  DPD result fusion = combining different program analysis results

                                         Results of tool B
                  Results of tool A                                  Results of tool C


                                      DPD result fusion

                                           Inproved result

 G. Kniesel, A. Binun: Standing on the shoulders of giants - A data fusion approach to design
 pattern detection. ICPC 2009, pp. 208-217.

DPDX - 2                              CSMR, Madrid, March 16, 2010       G. Kniesel        ROOTS
Why Exchange Results?




                Detection         Visualisation
               Detection         Visualisation
              Detection         Visualisation
                                                                      Repository


               Common Interchange Format                              Results and
                                                                     Assessments


             Result Fusion         Asessment
            Result Fusion         Asessment
           Result Fusion         Asessment




DPDX - 3                      CSMR, Madrid, March 16, 2010   G. Kniesel             ROOTS
Why a Specific Format?


 General format                                    Specific format
  Can do many things                               Can do a one thing well




                                                    No unnecessary generality
                                                       (no extra meta-levels)
                                                    Easy to write / implement
                                                    Easy to read / understand
                                                    Compact


DPDX - 4                CSMR, Madrid, March 16, 2010              G. Kniesel     ROOTS
ChallengeDifferences


  Problem definitions


  Analysis techniques                                  95%
                                                        Challenge to agree
  Levels of detail                                     on what
                                                        to exchange

  Terminology


  Result formats                                       5%
                                                        Challenge to
                                                        agree on syntax




DPDX - 5                 CSMR, Madrid, March 16, 2010          G. Kniesel    ROOTS
Design Motifs as UML Templates
Decorator
              Class role
                                                                             Field role
              Method role     Component
                                                                 component
                              operation()
           Relationship


              ConcreteComponent                        Decorator
                                                      operation()                         Statement role
                                                                     component.operation()


              Optional Role                   ConcreteDecorator
                                                       operation()



DPDX - 6                          CSMR, Madrid, March 16, 2010               G. Kniesel           ROOTS
Approach Overview

              Metamodel of          Metamodel of                  Metamodel of
              Design Motifs         DPD Results               Program Element IDs
           conformsTo         conformsTo                      conformsTo



                                      Results
                Roles and     of tool T for program P            IDs of elements
                 relations                                        of program P
                                         Mappings
                                       of roles and
                                      relations to IDs
                 Singleton


                 Decorator




DPDX - 7                       CSMR, Madrid, March 16, 2010      G. Kniesel         ROOTS
Program IDs = Navigation Paths

  package java.io;                                                        java.io

  public class BufferedWriter extends Writer {                            BufferedWriter

           private Writer out;                                            Writer

           public void write(char[] cbuf, int off, int len) ... {         write(char[], int, int)

               synchronized (lock) {                                      1st statement, body part
                  ensureOpen();
                  if (...) ... else ...
                  if (...) {                                              3rd statement, then part
                        flushBuffer();
                        out.write(cbuf, off, len)                         2nd statement, call part
                        ...
                  }
                  ...
  }        }   }

DPDX - 8                                   CSMR, Madrid, March 16, 2010       G. Kniesel            ROOTS
Program IDs = Navigation Paths

  package java.io;

  public class BufferedWriter extends Writer {                            Named Elements

           private Writer out;

           public void write(char[] cbuf, int off, int len) ... {         Typed Elements

               synchronized (lock) {                                      Indexed Elements
                  ensureOpen();
                  if (...) ... else ...
                  if (...) {                                              Block Names
                        flushBuffer();
                        out.write(cbuf, off, len)
                        ...
                  }
                  ...
  }        }   }

DPDX - 9                                   CSMR, Madrid, March 16, 2010      G. Kniesel      ROOTS
Program Element IDs

ID Metamodel                                 ProgramElementID
                                parent       elementKind: String
                                    1


                         ref
        Name                         Signature                               Index                        BlockName
                         1..*
  name: String                      name: String                 indexInParent: int             nameInParent: String

      kind  {class,                       kind                                                           kind  {block}
     interface, field,                    {method}                     kind  {block, ...}
       basicType}


Sample ID                  Body of the synchronized block that is the first statement in the ... method of .

             :Name                  :Signature                               :Index                        :Block
         class                           method                     synchronized                            block
java.io.BufferedWriter                    write                          1                                  body



 DPDX - 10                                    CSMR, Madrid, March 16, 2010                   G. Kniesel                ROOTS
Metamodel of Design Motifs


                                                         containedRoles

                                                          *
  variantOf




              1                       1..*                                           1                   *
                     Motif                                     Role                                            Property
                                     roles
                  name : String                   name        : String                                       name : String
              *                                   kind        : String                                       value : String
                                  target          cardinality : String                   source              strict : Bool
                                      1                                                  1

                                                          Relation
                                             1                                       1
                                                  name                    : String
                                                  srcCard                 : String
                                                  targetCard              : String
                                                  direct                  : Bool




DPDX - 11                                  CSMR, Madrid, March 16, 2010                     G. Kniesel                   ROOTS
Metamodel of DPD Results


                 1                         DPD Result                                       1
                 Tool                                                          Program
             name: String          diagnostics          1..*                 name: String
            version : String                                                version : String
                                           Diagnostic                      language: String
                                          motif : String
                                                                                                 0,1
                                                                            Justification
                                                                      0,1 explanation : String
                               roleAssignments          1..*                 score : Real
                           1
                 Role                 RoleAssignment
                                                                             player         1

                                                                          ProgramElementID
                                                                         source 1 1 target
               Relation              RelationAssignment
                           1

                           relationAssignments           1..*



DPDX - 12                              CSMR, Madrid, March 16, 2010            G. Kniesel              ROOTS
ImplementationXSD and XML




DPDX - 13    CSMR, Madrid, March 16, 2010   G. Kniesel   ROOTS
Conclusions

 Specification
  Element IDs
  Design Motifs
  Detection Results                                    Portal:
                                                        http://sewiki.iai.uni-bonn.de/dpdx/
 Implementation
  XML Schema Definition (XSD)
  Sample translator and visualizer


 Properties
  Completeness
  Language independence
  Reproducibility, Comparability, Justifiability


DPDX - 14                      CSMR, Madrid, March 16, 2010            G. Kniesel        ROOTS

Weitere ähnliche Inhalte

Was ist angesagt? (11)

Genetic Programming with Polymorphic Types and Higher-Order Functions
Genetic Programming with Polymorphic Types and Higher-Order FunctionsGenetic Programming with Polymorphic Types and Higher-Order Functions
Genetic Programming with Polymorphic Types and Higher-Order Functions
 
Part of speech tagger
Part of speech taggerPart of speech tagger
Part of speech tagger
 
Access Control via Belnap Logic
Access Control via Belnap LogicAccess Control via Belnap Logic
Access Control via Belnap Logic
 
Library of Coupled Operators
Library of Coupled OperatorsLibrary of Coupled Operators
Library of Coupled Operators
 
Fine-Grained Intercontact Characterization in Disruption-Tolerant Networks
Fine-Grained Intercontact Characterization in Disruption-Tolerant NetworksFine-Grained Intercontact Characterization in Disruption-Tolerant Networks
Fine-Grained Intercontact Characterization in Disruption-Tolerant Networks
 
Applying SOS to MDE
Applying SOS to MDEApplying SOS to MDE
Applying SOS to MDE
 
Test design problems investigation taixiaomei 20120807
Test design problems investigation taixiaomei 20120807Test design problems investigation taixiaomei 20120807
Test design problems investigation taixiaomei 20120807
 
Jb2415831591
Jb2415831591Jb2415831591
Jb2415831591
 
ASE01.ppt
ASE01.pptASE01.ppt
ASE01.ppt
 
Consistent Modeling Technique for Accurate Transaction Level Models
Consistent Modeling Technique for Accurate Transaction Level ModelsConsistent Modeling Technique for Accurate Transaction Level Models
Consistent Modeling Technique for Accurate Transaction Level Models
 
On the Integration of Real-Time and Fault-Tolerance in P2P Middleware
On the Integration of Real-Time and Fault-Tolerance in P2P MiddlewareOn the Integration of Real-Time and Fault-Tolerance in P2P Middleware
On the Integration of Real-Time and Fault-Tolerance in P2P Middleware
 

Ähnlich wie CSMR10b.ppt

Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31
Magnus Christerson
 
Data-Intensive Text Processing with MapReduce
Data-Intensive Text Processing  with MapReduce Data-Intensive Text Processing  with MapReduce
Data-Intensive Text Processing with MapReduce
George Ang
 
Data-Intensive Text Processing with MapReduce
Data-Intensive Text Processing with MapReduceData-Intensive Text Processing with MapReduce
Data-Intensive Text Processing with MapReduce
George Ang
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Code
lbergmans
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet code
lbergmans
 
Plagiarism introduction
Plagiarism introductionPlagiarism introduction
Plagiarism introduction
Merin Paul
 
Domain Specific Language Design
Domain Specific Language DesignDomain Specific Language Design
Domain Specific Language Design
Markus Voelter
 

Ähnlich wie CSMR10b.ppt (20)

Csmr10b.ppt
Csmr10b.pptCsmr10b.ppt
Csmr10b.ppt
 
Reifying the concurrency concern into xDSML specifications
Reifying the concurrency concern into xDSML specificationsReifying the concurrency concern into xDSML specifications
Reifying the concurrency concern into xDSML specifications
 
Introducing MDSD
Introducing MDSDIntroducing MDSD
Introducing MDSD
 
Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31
 
Supporting Users in KDD Processes Design: a Semantic Similarity Matching Appr...
Supporting Users in KDD Processes Design: a Semantic Similarity Matching Appr...Supporting Users in KDD Processes Design: a Semantic Similarity Matching Appr...
Supporting Users in KDD Processes Design: a Semantic Similarity Matching Appr...
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
 
Model executability within the GEMOC Studio
Model executability within the GEMOC StudioModel executability within the GEMOC Studio
Model executability within the GEMOC Studio
 
Data-Intensive Text Processing with MapReduce
Data-Intensive Text Processing  with MapReduce Data-Intensive Text Processing  with MapReduce
Data-Intensive Text Processing with MapReduce
 
Data-Intensive Text Processing with MapReduce
Data-Intensive Text Processing with MapReduceData-Intensive Text Processing with MapReduce
Data-Intensive Text Processing with MapReduce
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Code
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet code
 
Plagiarism introduction
Plagiarism introductionPlagiarism introduction
Plagiarism introduction
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDE
 
CG2010 Introducing MDSD
CG2010 Introducing MDSDCG2010 Introducing MDSD
CG2010 Introducing MDSD
 
CSMR06a.ppt
CSMR06a.pptCSMR06a.ppt
CSMR06a.ppt
 
Domain Specific Language Design
Domain Specific Language DesignDomain Specific Language Design
Domain Specific Language Design
 
An introduction to automated analysis of feature models through propositional...
An introduction to automated analysis of feature models through propositional...An introduction to automated analysis of feature models through propositional...
An introduction to automated analysis of feature models through propositional...
 
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...
 

Mehr von Ptidej Team

Mehr von 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
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 
Thesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptThesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.ppt
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

CSMR10b.ppt

  • 1. ROOTS DPDx – A Common Result Exchange Format for Design Pattern Detection Günter Kniesel Péter Hegedũs Alexander Chatzigeorgiou Yann-Gaël Guéhéneuc Alexander Binun Lajos Jenő Fülöp Nikolaos Tsantalis University of Bonn University of Szeged University of Macedonia École Polytechnique de Montréal Bonn, Germany Szeged, Hungary Thessaloniki, Greece Québec, Canada {gk, binun} {hpeter, flajos} {achat, nikos} yann-gael.gueheneuc @iai.uni-bonn.de @inf.u-szeged.hu @java.uom.gr @polymtl.ca
  • 2. Relevance  DPD = complex program analysis  program structure  behaviour  static and dynamic relations  DPD result fusion = combining different program analysis results Results of tool B Results of tool A Results of tool C DPD result fusion Inproved result G. Kniesel, A. Binun: Standing on the shoulders of giants - A data fusion approach to design pattern detection. ICPC 2009, pp. 208-217. DPDX - 2 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 3. Why Exchange Results? Detection Visualisation Detection Visualisation Detection Visualisation Repository Common Interchange Format Results and Assessments Result Fusion Asessment Result Fusion Asessment Result Fusion Asessment DPDX - 3 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 4. Why a Specific Format? General format Specific format  Can do many things  Can do a one thing well  No unnecessary generality (no extra meta-levels)  Easy to write / implement  Easy to read / understand  Compact DPDX - 4 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 5. ChallengeDifferences  Problem definitions  Analysis techniques 95% Challenge to agree  Levels of detail on what to exchange  Terminology  Result formats 5% Challenge to agree on syntax DPDX - 5 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 6. Design Motifs as UML Templates Decorator Class role Field role Method role Component component operation() Relationship ConcreteComponent Decorator operation() Statement role component.operation() Optional Role ConcreteDecorator operation() DPDX - 6 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 7. Approach Overview Metamodel of Metamodel of Metamodel of Design Motifs DPD Results Program Element IDs conformsTo conformsTo conformsTo Results Roles and of tool T for program P IDs of elements relations of program P Mappings of roles and relations to IDs Singleton Decorator DPDX - 7 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 8. Program IDs = Navigation Paths package java.io; java.io public class BufferedWriter extends Writer { BufferedWriter private Writer out; Writer public void write(char[] cbuf, int off, int len) ... { write(char[], int, int) synchronized (lock) { 1st statement, body part ensureOpen(); if (...) ... else ... if (...) { 3rd statement, then part flushBuffer(); out.write(cbuf, off, len) 2nd statement, call part ... } ... } } } DPDX - 8 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 9. Program IDs = Navigation Paths package java.io; public class BufferedWriter extends Writer { Named Elements private Writer out; public void write(char[] cbuf, int off, int len) ... { Typed Elements synchronized (lock) { Indexed Elements ensureOpen(); if (...) ... else ... if (...) { Block Names flushBuffer(); out.write(cbuf, off, len) ... } ... } } } DPDX - 9 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 10. Program Element IDs ID Metamodel ProgramElementID parent elementKind: String 1 ref Name Signature Index BlockName 1..* name: String name: String indexInParent: int nameInParent: String kind  {class, kind  kind  {block} interface, field, {method} kind  {block, ...} basicType} Sample ID Body of the synchronized block that is the first statement in the ... method of . :Name :Signature :Index :Block class method synchronized block java.io.BufferedWriter write 1 body DPDX - 10 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 11. Metamodel of Design Motifs containedRoles * variantOf 1 1..* 1 * Motif Role Property roles name : String name : String name : String * kind : String value : String target cardinality : String source strict : Bool 1 1 Relation 1 1 name : String srcCard : String targetCard : String direct : Bool DPDX - 11 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 12. Metamodel of DPD Results 1 DPD Result 1 Tool Program name: String diagnostics 1..* name: String version : String version : String Diagnostic language: String motif : String 0,1 Justification 0,1 explanation : String roleAssignments 1..* score : Real 1 Role RoleAssignment player 1 ProgramElementID source 1 1 target Relation RelationAssignment 1 relationAssignments 1..* DPDX - 12 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 13. ImplementationXSD and XML DPDX - 13 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS
  • 14. Conclusions Specification  Element IDs  Design Motifs  Detection Results Portal: http://sewiki.iai.uni-bonn.de/dpdx/ Implementation  XML Schema Definition (XSD)  Sample translator and visualizer Properties  Completeness  Language independence  Reproducibility, Comparability, Justifiability DPDX - 14 CSMR, Madrid, March 16, 2010 G. Kniesel ROOTS