Ambienti di Sviluppo Insieme omogeneo di strumenti adatti allo sviluppo di progetti software. • Editor; • Compilatori e/o interpreti; • Strumenti di test; Fondamenti di Programmazione Editor Applicazioni che permettono di editare / disegnare il codice sorgente • Testuali: – Formattazione • Indentazione; • Colori; – Code Completion • Grafici: – Disegno di interfacce (WYSIWYG); – Disegno della struttura del codice; Fondamenti di Programmazione Compilatore Traduce un programma scritto in un linguaggio di alto livello (programma sorgente) in un programma funzionalmente equivalente che può essere eseguito da uno specifico sistema di calcolo Programma sorgente Fondamenti di Programmazione Compilatore Istruzioni Eseguibili Interprete Esegue, in corrispondenza dei dati d’ingresso, il programma sorgente scritto in un linguaggio di alto livello. Programma sorgente Interprete Dati input Fondamenti di Programmazione Output programma Java Bytecode Indipendente dalla piattaforma javac Demo.java java Demo Codice sorgente Compilatore Java Java FILE CON ESTENSIONE .JAVA FILE CON ESTENSIONE .CLASS (es. Demo.java, Esempio.java ...) (es. Demo.class, Esempio.class ...) Fondamenti di Programmazione JVM Istruzioni Eseguibili ISTRUZIONI MACCHINA (es. 01011010 ...) Codice sorgente • Listato del programma – File con estensione “.java” – Modificabile con un comune editor testuale • Blocco note • Edit (dos) • Wordpad Fondamenti di Programmazione Codice Compilato • Codice di programma (BYTECODE) – File con estensione “.class” – Interpretabile da una “qualsiasi” macchina virtuale Java (JVM) – Indipendente dalla piattaforma Una macchina virtuale Java = Interprete di ByteCode Fondamenti di Programmazione Macchine Virtuali Java • Applicazioni stand alone • Integrate in un Browser • Integrate all’interno di altre applicazioni – ambienti di sviluppo – programmi applicativi • Implementate in HW – Firmware – Processori Fondamenti di Programmazione Test & Debug • Test: – Verifica del funzionamento del programma rispetto ai requisiti; – Tipicamente a Scatola Nera (chiusa). • Debug: – Eliminazione dei malfunzionamenti di un programma; – Preferibilmente con la possibilità di analizzare lo stato del programma in punti prestabiliti e di poterne seguire l’evoluzione. Fondamenti di Programmazione Ambienti di Sviluppo per Java • Diverse tipologie (come per altri linguaggi) – Potenzialità – Livello di integrazione tra i diversi strumenti – Strumenti aggiuntivi – Librerie fornite – Aderenza allo “standard” Fondamenti di Programmazione Ambienti di sviluppo • Base (JDK). • Editor testuali per sviluppatori: – Jpad, JPadPro, JEdit... • Ambienti integrati: – Eclipse,NetBeans, JBuilder, JDev, ... Fondamenti di Programmazione L’armamentario di base • javac Nome.java • Compila nome.java producendo Nome.class • java Nome • Interpreta Nome.class cercando il metodo main nella classe nome • documentazione (formato html) • jar • javadoc Fondamenti di Programmazione • Tutto quello che avreste voluto sapere … • Gestione archivi di classi • Generazione documentazione Eclipse • IDE multilinguaggio (es. Java, C/C++) • Sviluppato in Java => multipiattaforma • Open Source: sviluppato inizialmente da IBM; dal 2004 controllato dalla Eclipse Foundation, organizzazione no profit indipendente. • Modulare ed espandibile in base alle esigenze dell’utente Fondamenti di Programmazione Architettura • Architettura a plugin: – “Core”: funzionalità di base – Plugin: sfruttano le funzionalità offerte dallo strato “core” ed cooperano tra loro per offrire servizi all’utente – Eclipse è un applicativo Java che quindi richiede l’esecuzione di una JVM: i plugin potrebbero essere molto numerosi => Eclipse utilizza una politica di load on demand dei plugin, per minimizzare la quantità di memoria necessaria Per il nostro corso non è necessario installare alcun plugin aggiuntivo Fondamenti di Programmazione Installazione • Installare Java SE Development Kit (JDK) 5 o 6; oppure il Java Runtime Environment (JRE) 5 o 6 http://java.sun.com • Download di Eclipse, edizione Classic, versione 3.3 dal sito http://www.eclipse.org • Avviare Eclipse Fondamenti di Programmazione Workspace • All’avvio Eclipse chiede di specificare il Workspace: cartella usata per memorizzare i progetti e altre informazioni relative all’operatività dell’utente. Fondamenti di Programmazione Workspace Fondamenti di Programmazione Perspectives • Per uno stesso workspace esistono più perspectives, che raggruppano funzionalità (view) in base all’operatività dell’utente. – Java (Sviluppo di codice sorgente) – Debug (Debug del programma) Fondamenti di Programmazione Views • • Le views sono delle “schede” inserite nelle perspectives; offrono numerosi strumenti per le attività connesse allo sviluppo del software Possono essere spostate, mediante trascinamento, nella porzione desiderata Fondamenti di Programmazione Workspace, Perspectives, Views 1 Fondamenti di Programmazione Creare un nuovo progetto 1. File => New => Project 2. Java Project 3. Next Fondamenti di Programmazione La scelta Java Project può comparire già al livello di New Creare un nuovo progetto 1. Digitare il nome del progetto 2. Next Fondamenti di Programmazione Creare un nuovo progetto • E’ necessario specificare (o accettare le impostazioni di default) – Cartella radice dei sorgenti (es. “src”) – Cartella nella quale vengono posti i compilati (es. “bin”, “class”, “build”) Fondamenti di Programmazione Creare una nuova classe • File => New => Class oppure • click tasto destro sul package seguito da New => Class Fondamenti di Programmazione Creare una nuova classe • E’ OBBLIGATORIO specificare il nome della classe • E’ consigliato specificare il package • E’ possibile generare automaticamente codice aggiuntivo (scheletro del main, interfacce, superclassi, ecc.) • Eclipse verifica che il nome della classe sia “corretto” (buone abitudini…) Fondamenti di Programmazione Compilazione • Eclipse offre due possibilità: – Compilazione automatica; segnala in tempo reale gli errori rilevati – Compilazione on demand; L’opzione di compilazione automatica (default) è impostabile mediante Project -> Build Automatically Fondamenti di Programmazione Esecuzione • Selezionare la classe che possiede il metodo Main • Click con tasto destro => Run As => Java Application … oppure… Fondamenti di Programmazione Esecuzione • Run => Open Run Dialog • Specificare la classe contenente il metodo main • Specificare eventuali parametri da passare al main • Specificare, se necessario, il nome della configurazione E’ possibile avviare l’ultima esecuzione semplicemente selezionando Run => Run (Ctrl + F11) Fondamenti di Programmazione