Università degli Studi di Milano Bicocca – Laurea Magistrale in Informatica Corso di Evoluzione Sistemi Software e Reverse Engineering 2008/2009 – Prof.ssa Arcelli Pinot Pattern INference and recOvery Tool Carella Carmine Faustinoni Fabrizio Falco Giuseppe Passoni Alberto Riferimenti: http://www.cs.ucdavis.edu/~shini/research/pinot/ 1 Pinot • Tool di pattern detection, molto veloce e accurato; • Implementato come modifica di Jikes: compilatore C++ open source per Java; • Computer utilizzato: • Intel core 2 duo, 1.66GHz, 2Gb RAM Comandi di esecuzione INSTALLAZIONE / COMPILAZIONE: Dopo aver estratto il .tar eseguire i seguenti comandi: 1. $ cd pinot (cartella in cui si è estratto il tool) 2. $ ./configure 3. $ make 4. $ sudo make install 5. $ export CLASSPATH=.:/cartella_pinot/lib/rt.jar ESECUZIONE: Un unico comando: dove package i (1<=i<=n) sono gli n package che compongono il software 1. $ pinot /cartella_sw_da_analizzare/src/package1/*.java /cartella_sw_da_analizzare/src/package2/*.java… /cartella_sw_da_analizzare/src/packagen/*.java &> report.txt Report Report Per ogni istanza di design pattern trovato, vengono visualizzati i relativi dettagli, come nell’esempio seguente del VISITOR: Il report completo è troppo lungo per questa presentazione, per ulteriori dettagli si rimanda al file del report. Conclusioni • VANTAGGI: • velocità di computazione: 5-8 secondi; • rilevazione di molti tipi di pattern •SVANTAGGI: • funziona solo con linux; • non ha interfaccia grafica riga di comando; • installazione difficile solo se non si ha familiarità con linux • report poco leggibile Riferimenti • Sito: http://www.cs.ucdavis.edu/~shini/research/pinot/ • Download: http://www.cs.ucdavis.edu/~shini/research/pinot/pinot-src.tar.gz • Installazione: http://www.cs.ucdavis.edu/~shini/research/pinot/PINOT_INSTALL