1 / 19

CloneDetector

CloneDetector. Program pentru depistarea proiectelor Java copiate. Adrian-Vlad LEP , c oordonator : Ioana Ş ORA Universitatea Politehnica Timi ş oara Automatică si Calculaotare Calculatoare si Tehnologia Informaţiei Iunie 2011. un program scris in Prolog. Ce este CloneDetector ?.

jabir
Download Presentation

CloneDetector

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CloneDetector Program pentrudepistareaproiectelor Java copiate Adrian-Vlad LEP, coordonator : IoanaŞORA UniversitateaPolitehnicaTimişoara Automatică si Calculaotare Calculatoare si Tehnologia Informaţiei Iunie 2011

  2. un program scris in Prolog Ce este CloneDetector ?

  3. depisteazaproiecte scolareJavacopiate. Ce face CloneDetector ?

  4. CloneDetector Depisteazatoatetipurile de clone. Algoritmimunredenumirilor– celemaiintalniteschimbari Combinametode de depistarebazatepe metrici grafuri de apeluri (call graph)

  5. Urmatoarele Subiecte : Infrastructura folosita Implementarea algoritmului Rezultatele obtinute

  6. Infrastructura folosita JTransformer : plugin eclipse care transforma codul sursa Java intr-un arbore sintactic abstract(AST) memorat sub forma de fapte Prolog.

  7. Descrierea Algoritmului Proiectul 1 Proiectul 2 Class 2 Clasa 1 Class B Clasa A oMetoda2 oMetodaB metoda1 Class 3 metodaA Class C metoda2 metodaB

  8. Implementarea algoritmului

  9. Metricile folosite • Metrici la nivel de clasa - Numaratribute • Numarmetode • Numarinterfete • Are superclasa ? • Metrici la nivel de metoda • Semnatura metodei • Numar While • Numar If • Numar operatori

  10. Analiza grafurilor de apeluri • Se aplica la nivelul tuturor metodelor unei clase. • In fiecare metoda gaseste apeluri catre alte metode. • Compara metodele apelate. • Compara clasele din care fac parte.

  11. Nivele de suspiciune La Nivel de Metode • HIGH match • satisfac filtrele bazate pe : • Metrici de metoda • Graf de apeluri • LOW match • satisfac filtrele bazate pe : • Metrici de metoda La nivel de Clase • LOW • Metrici de clase • MEDIUM • LOW + metodesimilare < PragHigh • HIGH • LOW+ metodesimilare > PragHigh Exemplu: PragHigh : - 60% metodesa fie HIGH match si - nr. de maxim metodenesimilare 3

  12. Vizualizarea Rezultatelor

  13. Rezultate

  14. Rezultate • Analizareaunui set de teme, de la laboratorul de PASSC: • 16 proiectecomparate • 120 de parechi de cate 2 proiecteanalizate in 21 de secunde • depistate 2 proiectecopiate

  15. Avantaje si facilitati Algoritm imun la redenumiri Rapid : SWI-Prolog e multi-threading Se pot exclude clase din analiza Flexibilitate – prin alegerea/crearea profilelor Usor de adaugat noi filtre

  16. Limitari Obtinerea bazei de cunostinte depinde de JTransformer Pentru viteze acceptabile este limitat la proiecte scolare de pana la 30 clase.

  17. Posibile directii de dezvolatare Integrarea ca serviciu Web Posibila integrare cu eclipse

  18. Concluzii CloneDetector depisteaza proiecte scolare copiate Este imun redenumirilor Depisteaza copii cu modificari complexe Disponibile online : https://licentavlad.googlecode.com/svn/trunk Acest proiect a fost prezentat si la SCSS 2011

More Related