Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del...
-
Upload
adriano-valenti -
Category
Documents
-
view
212 -
download
0
Transcript of Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del...
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
1
JAVA: obiettivi di progetto del linguaggio
Nota storica: Il linguaggio JAVA (inizialmente Oak) è stato progettato in origine per programmare i microchip di elettrodomestici
REQUISITI PROGETTUALI PRINCIPALI
• familiare
• object-oriented
• robusto
• efficiente
• sicuro
• portabile
• semplice
• concorrente
• dinamico
• distribuito
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
2
JAVA ha una sintassi familiare
-I progettisti di JAVA sapevano che un nuovo linguaggio non avrebbe preso piede se non avesse avesse avuto una sintassi familiare ai programmatori professionisti, così scelsero di utilizzare quanto più possibile una sintassisimile al C++
- JAVA non è comunque la versione “per Internet” di C++
-E’ un linguaggio fondato sulle necessità e sulle esperienze di “veri” programmatori
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
3
JAVA è object-oriented
-JAVA risponde all’esigenza di realizzare sistemi software facili da modificare e manutenere
- JAVA consente alti livelli di riusabilità del codice
- JAVA fornisce un’arsenale di classi per lo sviluppo di interfacce utente e di applicazioni Internet impiegabili con relativa facilità
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
4
JAVA è robusto
-Una delle principali fonti di crash dei programmi scritti in C/C++ è l’uso scorretto dell’aritmetica dei puntatori: JAVA non fornisce tipi puntatori, né tanto meno l’aritmetica dei puntatori
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
5
JAVA è efficiente
-Sebbene l’eseguibile prodotto dal compilatore JAVA sia una sequenza di comandi per un interprete, ciò rende i programmi JAVA mediamente non più di 10 volte più lenti di corrispondenti programmi C++. -La perdita di efficienza che ne deriva è più che accettabile per il tipo di applicazioni cui è solitamente applicato JAVA, tipicamente programmi altamente interattivi
-Altri linguaggi interpretati quali BASIC, Tcl, PERL, presentano livelli di inefficienza tali da limitarne decisamente la possibilità di utilizzo
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
6
JAVA è sicuro
-Il rischio di infezione virale o di introduzione di “cavalli di Troia” nell’eseguire sul proprio computer programmi convenzionali di provenienza incerta è molto alto. Ciò rendeva la pratica di “scaricarsi” programmi eseguibili da Internet qualcosa di poco sicuro e da evitare -JAVA offre un ambiente di esecuzione sicuro confinando il programma scaricato da Internet in un “firewall” da cui non è possibile accedere ad altre parti del computer
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
7
JAVA è portabile (indipendente dalla piattaforma)
-Programmi scritti in linguaggi convenzionali quali il C e il C++ sono, almeno in teoria, portabili da una piattaforma all’altra, a patto di ricompilarli per la nuova piattaforma
-Dei programmi scaricabili da Internet si ha a disposizione spesso solo l’eseguibile, specifico per ciascun tipo di CPU se si tratta di programmi scritti in C/C++
-Se pure fosse disponibile il sorgente del programma, saremmo costretti a ricompilarlo prima di poterlo eseguire - JAVA: la magia del Bytecode
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
8
JAVA è portabile: bytecode e macchina virtuale
Codice sorgente
CompilatoreCodice oggetto
CPUCompilatore convenzionale
Codice sorgente
Compilatore Bytecode
Macchina virtualeper computer A
Compilatore JAVA
Macchina virtualeper computer B
Macchina virtualeper computer C
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
9
JAVA è semplice
-JAVA è facile da imparare e da impiegare in maniera produttiva, soprattutto se si conosce la filosofia di fondo della programmazione a oggetti e/o il linguaggio C++
-Le caratteristiche più complesse di C++ sono state escluse da JAVA, oppure realizzate in maniera più semplice
-JAVA non comprende caratteristiche insolite o sorprendenti: esiste sempre un numero ridotto di modi ben chiari e definiti per eseguire un determinato compito
-A differenza di altri linguaggi sovraccarichi di caratteristiche (esempio, ADA), JAVA ha un numero minimo di caratteristiche di base, estensibili se necessario con l’uso di librerie
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
10
JAVA è concorrente
-JAVA fornisce gli strumenti per gestire flussi di controllo concorrenti: i Thread e i meccanismi di sincronizzazione
-L’approccio facile alla concorrenza offerto da JAVA permette di concentrarsi sul comportamento specifico del programma, piuttosto che sul come realizzare e gestire il mutlitasking
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
11
JAVA è dinamico
- I programmi JAVA gestiscono estensivamente informazioni di tipo run-time per l’accesso agli oggetti durante l’esecuzione (es. binding dinamico)
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2
12
JAVA è distribuito
- JAVA gestisce i protocolli TCP/IP: accedere ad una risorsa tramite un URL è del tutto analogo all’accedere a un file
- Invio di messaggi remoti: programmazione client/server