Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Ambienti di Sviluppo
Insieme omogeneo di strumenti adatti allo
sviluppo di progetti software.
• Compilatori e/o interpreti;
• Editor;
• Strumenti di debug e/o test;
1
Linguaggi compilati
• Codice sorgente “convertito” nel
corrispondente codice in linguaggio macchina
(es. C/C++)
• Pro: controllo errori, prestazioni
• Contro: portabilità
2
Ambienti di sviluppo
1
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
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
Compilatore
Istruzioni
Eseguibili
3
Linguaggi interpretati
• Il codice sorgente viene interpretato “al volo”
da un interprete (es. PHP)
• Le istruzioni sono eseguite così come
descritte nel codice sorgente
• Pro: portabilità
• Contro: prestazioni, controllo errori
4
Ambienti di sviluppo
2
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Interprete
Esegue, in corrispondenza dei dati d’ingresso, il
programma sorgente scritto in un linguaggio di alto
livello.
Programma
sorgente
Interprete
Output
programma
Dati input
5
E Java?
• Nato con lo scopo di realizzare un linguaggio
write once, run everywhere ("scrivi una volta,
esegui ovunque")
• Linguaggio sia compilato che interpretato
• Obiettivo: acquisire i pro delle due precedenti
tipologie riducendo i contro
6
Ambienti di sviluppo
3
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
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 ...)
JVM
Istruzioni
Eseguibili
ISTRUZIONI
MACCHINA
(es. 01011010 ...)
7
Installazione JDK
• http://java.sun.com/javase/downloads/index.jsp
per il download
8
Ambienti di sviluppo
4
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Codice sorgente
• Listato del programma
– File con estensione “.java”
– Modificabile con un comune editor testuale
• Blocco note
• Edit (dos)
• Wordpad
9
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
10
Ambienti di sviluppo
5
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Macchine Virtuali Java (JVM)
• Applicazioni stand alone
• Integrate in un Browser
• Integrate all’interno di altre applicazioni
– ambienti di sviluppo
– programmi applicativi
• Implementate in HW
– Firmware
– Processori
11
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)
html)
• jar
• javadoc
• Tutto quello che avreste
voluto sapere …
• Gestione archivi di classi
• Generazione
documentazione
12
Ambienti di sviluppo
6
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
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;
13
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”
14
Ambienti di sviluppo
7
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Ambienti di sviluppo
• Base (JDK).
• Editor testuali per sviluppatori:
– Jpad, JPadPro, JEdit...
• Ambienti integrati:
– Eclipse, NetBeans, JBuilder, JDev, ...
15
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
16
Ambienti di sviluppo
8
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Architettura
• Architettura a plugin:
plugin:
– “Core”: funzionalità di base
– Plugin:
Plugin: sfruttano le funzionalità offerte dallo strato “core” e
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,
plugin, per
minimizzare la quantità di memoria necessaria
Per il nostro corso non è necessario installare alcun plugin
aggiuntivo
17
Installazione Eclipse
• http://www.eclipse.org/downloads/
18
Ambienti di sviluppo
9
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Workspace
• All’avvio Eclipse chiede di specificare il Workspace:
cartella usata per memorizzare i progetti e altre
informazioni relative all’operatività dell’utente.
19
Workspace
20
Ambienti di sviluppo
10
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
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)
21
Views
•
•
Le views sono delle “schede”
schede” inserite nelle perspectives; offrono numerosi
strumenti per le attività connesse allo sviluppo del software
Possono essere spostate,
spostate, mediante trascinamento,
trascinamento, nella porzione desiderata
22
Ambienti di sviluppo
11
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Workspace, Perspectives, Views
1
23
Creare un nuovo progetto
1. File => New => Project
2. Java Project
La scelta Java Project può
comparire già al livello di New
3. Next
24
Ambienti di sviluppo
12
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Creare un nuovo progetto
1.
Digitare il nome del progetto
2.
Next
25
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”)
26
Ambienti di sviluppo
13
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Creare una nuova classe
• File => New => Class
oppure
• click tasto destro sul package
seguito da New => Class
27
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,
main,
interfacce, superclassi, ecc.)
• Eclipse verifica che il nome della
classe sia “corretto” (buone
abitudini…)
28
Ambienti di sviluppo
14
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
Compilazione
• Eclipse offre due possibilità:
possibilità:
– Compilazione automatica;
automatica; segnala in tempo reale gli errori rilevati
– Compilazione on demand;
L’opzione di compilazione automatica (default) è impostabile mediante
Project -> Build Automatically
29
Esecuzione
• Selezionare la classe che possiede il metodo Main
• Click con tasto destro => Run As => Java Application
… oppure…
30
Ambienti di sviluppo
15
Modulo di Fondamenti di Programmazione
P. Baroni - P.Martinelli - M. Rossi – A. Viola
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)
31
Test & Debug
• Test:
– Verifica del funzionamento del programma rispetto ai
requisiti;
– Tipicamente a Scatola Nera (chiusa).
– Casi di test (“Unit
(“Unit test case”)
• 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.
32
Ambienti di sviluppo
16