IDE Ambiente di sviluppo IDE - Integrated Development Environment Telematica II 5. Esercitazione/Laboratorio 1 e un Ambiente di Sviluppo Integrato che consente di creare in modo semplice progetti composti da molti file e di compilarli con un solo click semplifica l iter dello sviluppo eliminando la necessità di compiere operazioni ripetitive normalmente contiene un debugger grafico che consente di eseguire l applicazione passo-passo per vedere come si comporta (correzione degli errori) Corso di Laurea in Ingegneria Informatica A.A. 2009-2010 2 Semestre Prof. Giovanni Pascoschi 2 Eclipse introduzione #1 Eclipse introduzione #2 Eclipse è un IDE multilinguaggio (JAVA, C/C++, PHP, ecc) open source sviluppato inizialmente da IBM utilizzando JAVA Successivamente il progetto fu reso open source e ceduto nel 2004 ad un consorzio no-profit indipendente che include tra le varie aziende: IBM, Borland, Merant, QNX Software, Rational, Red Hat, SuSE, TogetherSoft, Oracle, HP, Sybase Progetti portati avanti dal consorzio di Eclipse La piattaforma eclipse ( Eclipse Platform ) Il toolkit di sviluppo java ( Java Development ToolKit, JDT) Il toolkit di sviluppo C/C++ ( C++ Development ToolKit, CDT) L'ambiente di sviluppo di plug-ins (Plugin Development Environment, PDE) La sola IBM ha investito in Eclipse circa 40 milioni di $ prima di renderlo open source IBM continua lo sviluppo di Eclipse tramite una società sussidiaria chiamata OTI (Object Technologies International) 3 4
Eclipse introduzione #3 Installazione JDK 6.0 per installare JDK6 update 20 (File Size: 76.67 MB) Architettura a plug-in Core : funzionalità di base Plug-in : sfruttano le funzionalità offerte dallo strato core e cooperano tra loro per offrire servizi all utente Eclipse richiede l esecuzione di una JVM i plug-in potrebbero essere numerosi, ma viene utilizzata una politica di caricamento on demand per minimizzare la quantità di memoria necessaria (non necessari per i nostri scopi) http://java.sun.com/javase/downloads/index.jsp seguire le istruzioni per l installazione requisiti S.O. : Windows (XP, Vista, Server 2003/2008, Win7); Solaris (diverse versioni); Linux (diverse versioni) per installare la documentazione di Java SE 6 Documentation : Java SE Development Kit Documentation 6u18 jdk-6u18-docs.zip (File Size: 56.30 MB) decompattare nella sottocartella docs 5 6 Installazione Eclipse Eclipse - avvio per installare Eclipse andare dal website Eclipse Downloads Eclipse IDE for JAVA Developers (File Size: 92 MB) eseguire il file eclipse.exe scompattare il file in una directory. Cio è sufficiente per usare Eclipse non occorre nessuna procedura addizionale di installazione tutorial su Eclipse (inglese) http://www.vogella.de/articles/eclipse/article.html lo scopo fondamentale del workspace è la gestione delle risorse di utente che sono organizzate in uno o più progetti di massimo livello gerarchico ogni progetto è associato ad una cartella del workspace di eclipse (per comodità si puo conservare la stessa impostazione per tutti i progetti) 7 8
Eclipse - perspectives Eclipse - views per uno stesso workspace esistono piu perspectives (contenitore visuale), che raggruppano funzionalità (view) in base all operatività scelta dall utente, p.e.: le views sono schede visualizzate nelle perspectives che offrono alcune funzionalità correlate allo sviluppo del software Java sviluppo di codice sorgente le views possono essere ridimensionate/spostate nel workspace Debug debug del programma 9 10 Workspace Eclipse views perspectives Introduzione Eclipse Progetti, File sorgenti JAVA In Eclipse i programmi sviluppati hanno la seguente organizzazione views File sorgenti (JAVA source file) E un programma (estensione.java) in JAVA che implementa una determinata classe views Progetti (Projects) Nel caso di sviluppo di programmi con piu classi è necessario distribuire il codice su più file. In questi casi tutti i file che logicamente costituiscono un programma devono essere raggruppati insieme. Un progetto (project) è una cartella dove vengono conservati tutte le classi appartenenti a uno stesso programma. 11 12
Creazione di un nuovo progetto JAVA Creazione di una nuova classe JAVA Creare un nuovo progetto di tipo Java Project (FileNewProject) Inserire il nome del progetto (p.e. HelloWorld) e terminare il wizard (finish) Creare una nuova classe (FileNewClass) Specificare il nome (p.e. Topolino) della classe e impostare il check box per la creazione del metodo main Indicare inoltre il package da usare è possibile generare in automatico lo scheletro della classe (main, interfacce, superclasse, ecc.) 13 14 Compilazione Esecuzione 15 Ci sono due possibilità : compilazione automatica (Project Build automatically) segnala in tempo reale gli errori rilevati compilazione on-demand (ProjectBuild all o Build project) 16 per poter eseguire un programma ci sono diverse possibilità 1) Run Run configurations per impostare una nuova configurazione di esecuzione di tipo Java Application, indicare il nome del progetto, indicare la main class Run 2) cliccando con il tasto destro del mouse sul progetto e scegliendo Run as Java application
Esempio di output del programma Eclipse Debug in Eclipse l output del programma è visualizzato nella views Console (in maniera simile al Visual C++) e possibile verificare il funzionamento del programma tramite la funzionalità di Debug tramite il Debug è possibile eliminare malfunzionamenti di un programma cio è fattibile analizzando lo stato di esecuzione del programma tramite breakpoints in punti prestabiliti il debugging verrà analizzato piu in dettaglio in una lezione successiva 17 18 Dimostrazione pratica Eclipse Esercitazione di laboratorio Eclipse Vengono illustrati i vari passi per creare progetti con Eclipse (editing, compilazione, running) Vengono illustrati alcuni esercizi assegnati nelle scorse lezioni con le relative soluzioni in Eclipse (esercizio n.1, n.2 e n.3) Svolgimento di un esercizio assegnato con Eclipse Cambiare l esercizio 1 passando i valori dei due numeri tramite parametri nella linea di comando 19 20
Fine della lezione Esercizio n.4 Realizzare l'implementazione della classe la cui specifica è riportata in seguito: Domande? public class Stack { // attributi public final int MAX = 100; // dimensione dell array private int testa; // testa della pila private int[ ] vett = new int[max]; // array della pila // metodi Stack( ) { // costruttore testa = MAX; } public int pop( ); // estrazione di un elemento public void push(int val); // inserimento di un elemento public int top ( ); // legge l elemento di testa senza estrarlo public boolean full( ); // verifica che la pila è piena (true se vero) public boolean empty( ); // verifica che la pila è vuota (true se vero) public int get_num( ); // da il numero di elementi presenti nella pila }; 21 22 Esercizio n.5 23 Realizzare l'implementazione della classe la cui specifica è riportata in seguito: class Coda { // attributi public final int MAX = 100; // dimensione dell array private int fine; // indicatore riempimento della coda private int[ ] vett = new int[max]; // array della coda }; // metodi Coda( ) { // costruttore fine = -1; } public int pop( ); // estrazione di un elemento public void push(int val); // inserimento di un elemento public int top ( ); // legge l elemento di inizio coda senza estrarlo public boolean full( ); // verifica se la coda è piena (true se vero) public boolean empty( ); // verifica se la coda è vuota (true se vero) public int get_num( ); // da il numero di elementi presenti nella coda