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