Programmazione Java Avanzata



Похожие документы
Strumenti per lo sviluppo software in comunità

Programmazione Java Avanzata Concetti su Java

Iniziamo la panoramica sul funzionamento dell'svn sulla suite S.A.

Alma Mater Studiorum Università di Bologna. Controllo di versione. S. Golovchenko (UNIBO) INGEGNERIA DEI SISTEMI SOFTWARE / 18

Server Galileo.

Luca Ottaviano. Everyday Git

DRUPAL CONTINUOUS INTEGRATION. Parte I - Introduzione

Gestione della configurazione del software

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

Test e collaudo del software Continuous Integration and Testing

Giuseppe Capizzi. Ambienti di sviluppo Open Source

Novità di Access 2010

Tecnologie Open Source. Subversion

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Gestione Automatizzata di una Lista Nozze

Creare una nuova spedizione personalizzata.

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

III.2 Come condividere risultati

Fabio Zanasi. 12 maggio 2010

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Sistema Ipsoa Bilancio

Eclipse e Subversion

Tale attività non è descritta in questa dispensa

Gestore Comunicazioni Obbligatorie - VARDATORI - Progetto SINTESI Dominio Provinciale Modulo Applicativo:COB Procedura VARDATORI

Professional PHP Refactoring

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

VMware. Gestione dello shutdown con UPS MetaSystem

IL CASO DELL AZIENDA. Perché SAP.

Corso di Informatica

MANUALE D USO itarget ordini

CONTENT MANAGEMENT SYSTEM

Guida Rapida all uso del License Manager di ROCKEY4Smart (V )

C++ E QT, BINOMIO PERFETTO

Architetture Applicative

Soluzioni informatiche per l'innovazione aziendale. SineKartaMFP. Caratteristiche e funzionalità

Mon Ami 3000 Produzione base Produzione articoli con distinta base e calcolo dei fabbisogni

MagiCum S.r.l. Progetto Inno-School

Software per Helpdesk

Ambienti per lo sviluppo collaborativo del software (CDE)

Manuale Terminal Manager 2.0

INNOVAZIONE XNOTTA PER PORTALI TURISTICI

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

PREMESSA AUTOMAZIONE E FLESSIBILITA'

Strumenti per la gestione della configurazione del software

Mac Application Manager 1.3 (SOLO PER TIGER)

Al giorno d oggi, i sistemi per la gestione di database

Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE

Installazione del Software. per lo Sviluppo di Applicazioni Java

Finalità della soluzione Schema generale e modalità d integrazione Gestione centralizzata in TeamPortal... 6

Guida Rapida di Syncronize Backup

Relazione di Tirocinio presso STMicroelectronics

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Strumenti di gestione del ciclo di vita del software

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

2015 PERIODO D IMPOSTA

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

GUIDA AL CHART TRADING

Sage Start Archivio file Guida. Dalla versione

Lifephone. Introduzione. Database. Sito

ARCHIVIA PLUS - ARCHIFILE

MODULO PER LA GESTIONE DEI RESI

Web Application Libro Firme Autorizzate

GESTIONE AVANZATA DEI MATERIALI

Caratteristiche generali

Un nuovo modo per fare analisi e generare documenti dinamici

Piano di gestione della qualità

SOFTWARE. Aprendo il SW la prima schermata che appare è la seguente:

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

MANUALE LAVORATORE GESTIONE CURRICULUM E OFFERTE DI LAVORO

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.

SIEBEL CRM ON DEMAND MARKETING

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

itime Chiaramente inclusa la stampa del cartellino presenze come previsto dalle normative

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Rasip, MIDlet per scambio di messaggi SIP

COS È. Il sistema consente di pianificare acquistare immagazzinare inventariare amministrare controllare il magazzino di cantiere.

Транскрипт:

Programmazione Java Avanzata Concetti di Java, parte 2 Ing. Giuseppe D'Aquì

Testi Consigliati Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Tutorials [http://download.oracle.com/javase/tutorial/java/] SVN Book [http://svnbook.red-bean.com/nightly/en/index.html] Git User Manual [http://www.kernel.org/pub/software/scm/git/docs/user-manual.html]

Java Annotations Dalla versione 5.0 Java ha introdotto dei meccanismi per inserire metadati descrittivi nel codice stesso Questi metadati (dati a proposito dei dati) possono essere usati per rendere espliciti alcuni comportamenti Siccome sono immersi nel codice, esistono analizzatori in grado di adoperarli per semplificare il lavoro si sviluppo o potenziare il Design By Contract Es. @Override, @Deprecated Molti framework definiscono annotation proprie

Annotations predefinite @Override Dichiara che il metodo successivo deve prevalere sul metodo della superclasse @Deprecated Dichiara che il metodo successivo è deprecato @SuppressWarnings Dichiara che i warning di compilazione per il metodo successivo devono essere trascurati

Annotations predefinite 2 @SuppressWarnings Può avere uno di due argomenti: deprecation - rimuove i warning sulle funzioni deprecate unchecked - rimuove i warning sull'uso dei Generics

Java Reflection La Java Reflection Api è un insieme di classi e funzionalità che vengono usate per conoscere e manipolare gli oggetti e i metodi attualmente in esecuzione Per esempio è possibile aggiungere o eliminare metodi alle classi a run-time Es. obj.getclass() Può essere usato per rendere il codice illeggibile (spaghetticoding) Viene usato più proficuamente per realizzare funzioni di analisi del codice, usate dagli IDE e dai framework

Controllo di Versione Version Control System (VCS) Una branca del Software Change/Configuration System (SCM) Strumenti che permettono di verificare, per la modifica di un software: Cosa Quando Perché

Controllo di Versione: scopi Automatizzare la fase di build e shipping/deployment Collaborazione Rendere omogenei i processi di sviluppo di differenti team nella stessa azienda Documentare le modifiche Analizzare e correggere le regressioni

Controllo di Versione: concetti Ogni sviluppatore effettua una copia locale del codice (checkout), su cui effettua le modifiche Una volta terminato il lavoro, può verificare i punti cambiati tramite diff Se le modifiche vanno bene può spostarle su un repository (deposito del codice) tramite commit

Controllo di Versione: concetti 2 È possibile definire linee di sviluppo tramite un'operazione detta branching Se più sviluppatori stanno modificando la stessa parte del software, si devono integrare le tali modifiche con un merge

VCS Centralizzati Un unico repository I client hanno ciascuno una copia locale che sincronizzano con il server all'inizio e alla fine del lavoro Il server gestisce l'autenticazione e i permessi Repository Server RCS Client Client Client Copia Locale Copia Locale Copia Locale

VCS Centralizzati: Pro e Contro Pro: Il codice pulito rimane in un unico luogo, quindi il suo backup è più semplice Ogni sviluppatore ha responsabilità di integratore (ognuno può risolvere i propri problemi di integrazione) Contro: Non si possono salvare le modifiche non complete Ogni sviluppatore ha responsabilità di integratore (un commit di un codice non perfetto può causare danni a tutto il team)

Subversion Subversion (in breve SVN) è un progetto della Apache Software Foundation per il Controllo di Versione Centralizzato Sostituisce l'ormai obsoleto Concurrent Version System (CVS) Sebbene si stia diffondendo il modello distribuito, SVN esiste ancora in molte aziende Repository Open Source famosi: Sourceforge Google Code

Esercitazione http://sourceforge.net/projects/win32svn Subclipse TortoiseSVN gdata-api-client

VCS Distribuiti Ogni sviluppatore ha il proprio repository Ogni repository è indipendente Per convenzione si definisce un master repository nel quale viene inserito il codice funzionante e integrato DVCS Repo1 Master Repository DVCS DVCS Repo2 DVCS Repo3

VCS Distribuiti: Pro e Contro Pro: Non c'è bisogno di essere in sede Non c'è il rischio che un commit di un altro sviluppatore blocchi il nostro backup Contro: Ogni repository ha bisogno di essere conservato tramite backup L'integrazione delle varie linee di sviluppo deve essere coadiuvata da strumenti esterni di collaborazione (wiki, bug tracking, documentazione, etc) o da sviluppatori dedicati

Git È il più famoso DVCS Progettato per lo sviluppo del kernel Linux Facilita la creazione di branch e i successivi merge Per Eclipse: EGit Repository Open Source famosi: GitHub Gitorius Altri DVCS diffusi sono Mercurial, Bazaar

Eclipse Debug Java Debug serve per individuare una porzione di codice affetta da errori Eclipse possiede al suo interno strumenti per il debug di codice Java (e di altri linguaggi)

Eclipse Debug Java 2 Funzionalità principali: Breakpoint Step-by-step Visualizzazione variabili

Eclipse Refactoring Il Refactoring è una modifica al codice che non punta a modificare la funzionalità del software, ma la sua architettura interna Per esempio, l'azione di rinominare una classe o una funzione I principali refactorings sono stati analizzati da Martin Fowler nel libro omonimo

Eclipse Principali Refactoring Rename Move Encapsulate field Extract method Extract Class Pull up/push Down

Serializzazione La Serializzazione, in Java, è la trasformazione di un oggetto nella sua rappresentazione binaria Un oggetto serializzato può essere salvato su disco, su database, inviato via internet etc Gli oggetti, per essere serializzabili, devono implementare l'interfaccia Serializable

Serializzazione 2 Ogni oggetto serializzabile deve avere una variabile membro serialversionuid È una sorta di hash che serve a controllare che non vengano deserializzati oggetti di versioni diverse Si possono utilizzare gli oggetti ObjectInputStream e ObjectOutputStream