Relazione di Tirocinio presso STMicroelectronics Tirocinante Rosolino Finazzo Tutor Aziendale Dott. Giuseppe Montalto 28 agosto 2008
Indice 1 Presentazione 2 1.1 Doucumentazione......................... 2 1.2 Stato iniziale del sistema di building.............. 2 1.3 Obiettivi.............................. 2 2 Realizzazione dell interfaccia 3 3 Studio dell infrastruttura Server-Side 4 3.1 BugFix.............................. 5 3.2 Modifiche al Build Script.................... 5 4 Realizzazione dell Installer 5 1
1 Presentazione Il progetto in realizzazione, consiste nello sviluppo di un interfaccia grafica in Java,adattata al sistema interno di building di STMicroelectronics. L applicativo é stato rilasciato come prodotto RCP,ovvero una Eclipse Rich Client Application, che fa uso di un set minimale di plug-ins Eclipse Based. 1.1 Doucumentazione Per la documentazione sull ambiente PDE (Plugin Development Environment) di Eclipse,é stato adottato il testo Eclipse: Building Commercial Quality Plug-ins, Second Edition, dal quale, in particolare, si sono apprese le tecniche base per la realizzazione di interfacce elementari. 1.2 Stato iniziale del sistema di building Inizialmente il sistema di building per sorgenti compatibili con STWorkbench 1,era provvisto di: Uno script di lancio nativo per sistemi Win32 e Linux Uno script Ant lato client, per il trasferimento di sorgenti compressi ad un server HTTP/FTP 2 Due Java Servlets, in esecuzione sul server HTTP/FTP, utilizzate rispettivamente per la sincronizzazione delle richieste di building, e per il passaggio dei parametri di building impostati alla macchina di Build (Build-Machine). Un Server FTP, per l hosting e il trasferimento dei sorgenti compressi e dei binari in fase di fetch. Uno script Ant lato server, in esecuzione sul server HTTP/FTP, per il lancio dello script di Build vero e proprio nella Build-Machine,e per il fetching dei binari appena compilati. Lo script Bash 3 lanciato sulla Build-Machine per la compilazione stand-alone dei sorgenti. 1.3 Obiettivi L obiettivo iniziale, era dunque quello di fornire un interfaccia user friendly e facilmente riadattabile a nuove versioni di STWorkbench, da utilizzare in sostituzione dello script di lancio nativo. 1 L IDE Eclipse realizzato e utilizzato dal team di sviluppo in STMicroelectronics 2 Apache Ant é uno strumento di build Java-based 3 swtbuilder.sh 2
Figura 1: Remote Builder GUI 2 Realizzazione dell interfaccia L interfaccia grafica, della quale viene sopra fornita una screenshot é stata realizzata mediante le librerie grafiche SWT di Java Eclipse, essa consiste di tre viste 4 : 1. La Standard Output View 2. La Standard Error View 3. La Settings View Le prime due, in fase di build, permettono di visualizzare rispettivamente lo stream di Output e di Error dello script Ant client-side, la Settings View invece offre un resoconto dei parametri di Building settati. 4 Componente grafico di una Eclipse Window, utilizzata per elencare e mostrare delle proprietá 3
Figura 2: Remote Builder Preference Page Il settaggio dei parametri é reso possibile da una pagina delle preferenze, ogni parametro inserito, viene memorizzato tramite un meccanismo di serializzazione, su un apposito file (data.dat). É stato aggiunto anche un Help, in lingua Inglese, che spiega il funzionamento dell interfaccia, le pagine di help possono essere navigate tramite il browser di sistema. 3 Studio dell infrastruttura Server-Side Per meglio adattare l interfaccia all infrastruttura di Build lato Server, con l aiuto del tutor aziendale dott. Giuseppe Montalto, é stato analizzato il funzionamento degli script lato Server, in particolar modo dello script Ant, che dopo aver trasferito il source-tree compresso alla Build-Machine,lancia lo script nativo di compilazione nella stessa macchina, e infine ne preleva i binari prodotti. 4
3.1 BugFix Alcune modifiche sono state effettuate, una in particolare, per risolvere un bug di sincronizzazione tra la compilazione e il prelevamento dei binari. 3.2 Modifiche al Build Script Insieme al precedente, é stato anche modificato il Build Script in linguaggio Bash per la compilazione dei sorgenti. In particolare é stato risolto un bug in una regex, che non permetteva di selezionare opportunamente la modalitá di compilazione in base ai parametri di ingresso forniti. 4 Realizzazione dell Installer Dopo aver esportato l RCP in eseguibili su piattaforme Linux e Win32, é stata utilizzata la suite Install Anywhere 5, per realizzare un installer multiplatform del prodotto. In entrambe le piattaforme é stato reso possibile includere un installazione della JVM 6 per l esecuzione del prodotto. Firma del Tirocinante Firma del Tutor Aziendale Firma del Tutor Universitario 5é stata adoperata una macchina virtuale per realizzare l installer 6 Java Virtual Machine 5