Confronto tra gli strumenti per la build automation

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Confronto tra gli strumenti per la build automation"

Transcript

1 Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Ingegneria del Software Confronto tra gli strumenti per la build automation Anno Accademico 2014/2015 Candidato: Di Girolamo Rocco matr. N

2 Dedico l intero percorso universitario e questo traguardo a coloro che mi hanno sempre sostenuto e che non hanno mai smesso di credere in me, mia mamma, mio papà e mio fratello Luca

3 La felicità è un percorso, non una destinazione. Lavora come se non avessi bisogno di denaro, ama come se non ti avessero mai ferito e balla, come se non ti vedesse nessuno. Ricordati che la pelle avvizzisce, i capelli diventano bianchi e i giorni diventano anni. Ma l importante non cambia: la tua forza e la tua convinzione non hanno età. Dietro ogni traguardo c è una nuova partenza. Dietro ogni risultato c è un altra sfida. Finché sei vivo, sentiti vivo. Vai avanti, anche quando tutti si aspettano che lasci perdere. 1 1 Madre Teresa di Calcutta.

4 Indice Introduzione vi 1 Evoluzione storica degli strumenti 1 2 Caratteristiche dei tools Requisiti base e opzionali degli strumenti di compilazione Classificazione Il file di configurazione Altri aspetti Shell Le funzionalità Il linguaggio interpretato Make e confronto con Shell Gestione delle dipendenze Il Makefile Problematiche del Make GNU make e la sua portabilità Apache Ant e confronto con Make Vantaggi dell implementazione in Java Build.xml - Il file di Configurazione Limiti degli script Ant Facilità d uso, Leggibilità e Testing iii

5 Indice 6 Apache Maven e confronto con Apache Ant Obiettivi di Maven POM - Il file di Configurazione Gestione delle dipendenze Apache Maven e confronto con Apache Ivy Gestione delle dipendenze e dei conflitti Gradle e confronto con Apache Ant e Maven Integrazione con altri tool Struttura Gradle Gestione delle dipendenze Microsoft MSBuild 24 9 Conclusioni e Sviluppi Futuri 26 Ringraziamenti 28 Bibliografia 30 iv

6 Elenco delle figure 1.1 Posizione di Gradle rispetto agli altri strumenti per la Build Automation Apache Ant Apache Maven Gradle Integrazione di Gradle con altri tools v

7 Introduzione Un approccio professionale per sviluppare del software che soddisfi gli standard di qualità richiede, oltre che la competenza e l esperienza dello sviluppatore, altri requisiti come: un ambiente di sviluppo adeguato, un buon debugger e, non ultimo, un eventuale tool per la build automation. In particolare, i tools per la build automation ci permettono di automatizzare alcune attività del ciclo di vita di un software, tra cui: Compilazione: si tratta del procedimento di trasformazione dei codici sorgenti, scritti dall utente, in codice binario, leggibile dalla macchina; Linking: consiste nel procedimento di integrazione dei vari moduli a cui un programma fa riferimento con lo scopo di creare una singola unità eseguibile; Packaging dei binari: il risultato della compilazione deve assumere una forma compatta e una chiara connotazione in base al suo scopo: eseguibile, libreria da esportare, etc.; Esecuzione di test automatizzati: con lo scopo di garantire l affidabilità del prodotto software, esso deve essere testato in ogni sua funzionalità e sotto ogni tipo di condizione. Data la complessità di un software sviluppato oggigiorno, non è sufficiente un essere umano per effettuare tale strategia di test, ma è necessario automatizzare l operazione attraverso software appositamente programmati; Distribuzione della soluzione software: una volta che il software è pronto e testato, deve essere installato e configurato sui sistemi per i quali è stato implementato; da notare che questo tipo di automazione non ha niente in comune con la deployment automation, che invece riguarda l automazione nella fase di distribuzione. Mentre un sistema di build autovi

8 Introduzione mation produce codice eseguibile da codice sorgente, un sistema di deployment automation studia la distribuzione che il codice eseguibile ha rispetto a un ambiente; Documentazione del progetto e/o rilascio di note: data la complessità odierna di un software e l evoluzione che subisce attraverso le varie versioni pubblicate, la redazione di una buona documentazione è estremamente importante. Ovviamente la documentazione prenderà la forma più consona al tipo di progetto, rispettando gli standard imposti, e al target di utilizzatore. Per poter automatizzare queste attività è spesso necessario scrivere del codice in un linguaggio di scripting (oppure utilizzare programmi visuali). Tale codice è da considerare a pieno titolo nell insieme del codice del programma. Automatizzando le attività sopra elencate attraverso i tools di build automation, i vantaggi che lo sviluppatore otterrà saranno molteplici, quali: Miglioramento della qualità del prodotto; Accelerazione dei tempi di compilazione e della fase di collegamento; Eliminazione delle attività ridondanti; Minimizzazione del bad builds, ovvero errori nella fase di costruzione del software; Cronologia degli sviluppi e delle release in modo da analizzare i problemi; Risparmio di tempo e denaro. In questo elaborato, cercherò di evidenziare tutte le differenze e le somiglianze tra i principali tools di build automation, strutturando il lavoro in tre fasi principali: nella prima fase introdurrò una descrizione storica di come si sono susseguiti i tools e quindi di come è cambiato il modo di interpretare il concetto di build automation; nella seconda fase evidenzierò quali caratteristiche uno strumento di compilazione deve e può avere, definendo quindi i requisiti necessari e quelli opzionali; inoltre metterò in risalto alcuni aspetti che mi permetteranno di effettuare un confronto più dettagliato; infine, nella terza fase effettuerò il confronto tra gli strumenti seguendo l ordine cronologico di come gli stessi si sono susseguiti nel tempo. vii

9 Capitolo 1 Evoluzione storica degli strumenti Inizialmente gli sviluppatori effettuavano la chiamata al compilatore tramite riga di comando; questo metodo funzionava in maniera efficace solo quando veniva richiesta la compilazione di un solo file sorgente con lo scopo di generare l oggetto finale distribuibile; quando invece, i moduli di codice sorgente diventarono molti, e dovendo rispettare uno specifico ordine su come venivano passati al compilatore, la chiamata al compilatore attraverso riga di comando non era più una soluzione ragionevole. Make è stata la soluzione a questo problema: nato nel 1977 per sistemi Unix, si basa su un file di scripting chiamato Makefile per determinare il grafo delle dipendenze e gli script necessari per la compilazione da passare alla Shell. Con l avvento dei processori multi-core, Make si è evoluto accettando anche un esecuzione parallelizzabile, che in una nuova versione di Make detta BSD Make diventa la caratteristica predominante dello strumento. Make include tutt oggi altre versioni, tra le quali GNU Make il quale è una sua implementazione per Linux e OS X; e Nmake che normalmente fa parte di Visual Studio ed è quindi una versione per Microsoft. Quest ultima supporta le direttive del preprocessore quali l include e le espressioni condizionali. Successivamente tale utility è stata sostituita da uno strumento più funzionale detto MSBuild o Microsoft Build Engine. Nel tempo il processo di sviluppo è diventato sempre più complesso e l esigenza di aumentare l automazione nella costruzione del software ha portato gli sviluppatori ad aggiungere azioni preliminari e/o a posteriori alla fase di compilazione, come ad esempio il check-out per il controllo versione. 1

10 Capitolo 1. Evoluzione storica degli strumenti Make comunque non era l unico strumento disponibile e neanche il più efficiente. All inizio del 2000 viene presentato Apache Ant, originario del progetto Tomcat; esso è stato scritto per superare alcune problematiche che presentava Unix make. Intorno al 2002 era molto utilizzato dagli sviluppatori java tanto da fornire nelle distribuzioni dei programmi anche il file di configurazione di Ant. Anche se Ant risolve alcuni limiti del Make, porta nuove problematiche, come ad esempio l utilizzo dell XML che, come vedremo in seguito, rende il progetto difficile da gestire quando quest ultimo cresce in dimensioni. Successivamente nel 2004 l avvento di Apache Maven porta con sé novità e soluzioni, come l utilizzo di convenzioni, la gestione delle dipendenze e il controllo di versione; ma non risolve alcune problematiche della concorrenza, come l utilizzo dell XML. A pochi mesi di differenza dalla pubblicazione di Apache Maven (luglio - settembre) è stato pubblicato Apache Ivy che è invece un tool specificamente orientato alla gestione delle dipendenze, progettato per essere utilizzabile autonomamente o anche in sinergia con Ant. Successivamente, nel 2009 è stato integrato come sotto progetto all interno di Apache Ant. Negli ultimi anni la build automation ha avuto sempre più rilievo, sia per i tool commerciali sia open source, andando a supportare con il tempo uno sviluppo a integrazione continua 1. Da notare che gli strumenti d integrazione continua (CruiseControl, Hudson, etc.) sono differenti dagli strumenti di sviluppo automatizzato (Make, Ant, Maven, etc.). In particolare lo sviluppo automatizzato è un prerequisito per un uso efficace dello sviluppo a integrazione continua e gli strumenti d integrazione continua sono una categoria appartenente agli strumenti per la build automation. Un traguardo successivo nell evoluzione storica prende il nome di advanced build automation, ovvero un esecuzione remota per la creazione 2 e/o l elaborazione 3 distribuita di un prodotto software. Il processo di sviluppo distribuito deve possedere l intelligenza artificiale per comprendere le dipendenze nel codice sorgente al fine di gestire bene le fasi di compilazione e collegamento; alcuni strumenti comprendono tali relazioni dal codice sorgente (Rational ClearMake distributed, Electric Cloud ElectricAccelerator), altri si basano sulle dipendenze definite dall utente 1 Integrazione continua: consiste in una strategia di sviluppo con continue chiamate alla fase di compilazione incluso un test di integrazione per verificare la correttezza del prodotto. 2 Per creazione distribuita ( distribuited build ) significa che le chiamate reali al compilatore e al linker possono essere servite in più posizione per migliorare la velocita della fase di sviluppo. 3 Per elaborazione distribuita ( distribuited processing ) significa che ogni passo di un processo o di un flusso di lavoro può essere inviato a una macchina diversa per l esecuzione. 2

11 Capitolo 1. Evoluzione storica degli strumenti (Platform LSF lsmake). Tuttavia non tutti gli strumenti di build automation sono in grado di eseguire uno sviluppo distribuito; la maggior parte fornisce solo il supporto all elaborazione distribuita. Tutt oggi un sacco di sviluppatori sono alla ricerca di alternative a strumenti di compilazione stabili e più efficienti. In questo ambito si fa strada il passaggio dall utilizzo di XML a un linguaggio più espressivo e leggibile: uno strumento di compilazione che porta avanti questa idea è Gant, tool di creazione attraverso il quale si possono combinare caratteristiche Groovy con le conoscenze esistenti di Ant senza dover scrivere XML. Tuttavia, uno degli strumenti più utilizzati e più in voga in questi ultimi tempi è Gradle: esso si inserisce a destra degli strumenti visti fin ora e soddisfa molte esigenze dei moderni strumenti di compilazione. Gradle fornisce un DSL espressivo, un approccio alla configurazione e gestione delle dipendenze potente. Figura 1.1: Posizione di Gradle rispetto agli altri strumenti per la Build Automation Quindi attraverso questi strumenti abbiamo visto come si è evoluto il modo di interpretare il concetto di build automation nel settore dello sviluppo software, nonché l aumento d interesse da parte della comunità di sviluppatori nei confronti di tale argomento. 3

12 Capitolo 2 Caratteristiche dei tools In questo capitolo verranno raggruppati tutti i possibili requisiti che potranno essere analizzati nei capitoli successivi, in modo da poter mettere in luce tutti i punti di forza e di debolezza di ogni tool. 2.1 Requisiti base e opzionali degli strumenti di compilazione In questa sezione sono elencati i requisiti che un sistema di compilazione deve e può possedere. I requisiti base sono: Supporto a frequenti compilazioni in maniera tale da catturare subito eventuali problemi evitando una compilazione unica con errori disseminati lungo tutto il codice; Supporto alla gestione delle dipendenze: a livello professionale lo sviluppo di un software dipende da altri progetti, librerie e framework che costituiscono le fondamenta del progetto stesso. Gestendo questo aspetto si solleva il programmatore da un compito molto faticoso che include il soddisfacimento dei vincoli di dipendenza in primo luogo, ma anche la gestione di eventuali conflitti per l assegnazione delle dipendenze tra i vari moduli e il reperimento delle dipendenze in locale o su rete, mettendo a disposizione le versioni più aggiornate o quelle meglio compatibili; Supporto ad uno sviluppo incrementale: 1 ; 1 Sviluppo incrementale: consiste in un modello di sviluppo di un progetto software basato sulla successione dei seguenti passi principali: pianificazione, analisi dei requisiti, progettazione, implementazione, prove e valutazione. 4

13 Capitolo 2. Caratteristiche dei tools Capacità di collegare una segnalazione sul codice sorgente al relativo codice binario; Sviluppo accelerato; Estrazione di informazioni e reporting sulle fase di compilazione e di collegamento; Invece i requsiti opzionali sono: Generare note di rilascio e altra documentazione, come le pagine di aiuto; Costruire report di stato; Esecuzione di test; in particolare nel caso in cui il test sia negativo, lo strumento deve avere la capacità di produrre una segnalazione; Sintesi delle caratteristiche aggiunte / modificate / cancellate con ogni nuova compilazione; 2.2 Classificazione In base alle operazioni che svolge e a come è stato implementato, ogni tool per la build automation può appartenere ad una delle seguenti sei categorie: 2 : Make based tools - basati sull utility Make ed ovviamente sono incluse tutte le derivazioni stesse di Make; No Make based tools; Build Scripting generation tools - sono strumenti per automatizzare la generazione di script di costruzione; Continuous integration tools - sono strumenti sviluppati principalmente per uno sviluppo a integrazione continua; Configuration management tools - destinati alla configurazione e gestione di sistemi; Others tools. 2 Per una lista completa di tutti gli strumenti appartenenti ad ogni categoria riferirsi a [4] 5

14 Capitolo 2. Caratteristiche dei tools 2.3 Il file di configurazione Un aspetto che verrà ampiamente discusso nel capitolo successivo sarà il build file o file di configurazione che la maggior parte dei tools dispongono: le operazioni che devono essere svolte per trasformare il progetto sorgente nella soluzione finale vengono raccolte in tale file, che a volte fa riferimento o include altri file secondari; esso è scritto in un linguaggio che può variare da un linguaggio XML a un linguaggio specifico del dominio (DSL) Altri aspetti Saranno presi in considerazione anche aspetti come: Licenza del software; Tempo di creazione di uno script; Difficoltà di apprendimento; Integrazione con altri tool; Flessibilità; Configurabilità; Requisiti e risorse hardware richieste per il funzionamento dello strumento; 3 Un Linguaggio specifico di Dominio è un linguaggio di programmazione o un linguaggio di specifica dedicato a particolari problemi di un dominio, a una particolare tecnica di rappresentazione e/o a una particolare soluzione tecnica. 6

15 Capitolo 3 Shell La soluzione più semplice ai problemi di build automation è la scrittura di script di Shell. La Shell è la parte di sistema operativo che permette agli utenti di interagire con il sistema stesso, impartendo comandi e richiedendo l avvio di altri programmi. In generale esistono molti tipi di Shell, che si dividono principalmente in testuali e grafiche: una Shell testuale è un programma dotato di un interfaccia a riga di comando, che viene eseguito all interno di un terminale. Le più note Shell testuali sono il prompt dei comandi in Windows, la Bash in Unix/Linux. Le Shell testuali dei sistemi Unix integrano un linguaggio di scripting con il quale è possibile scrivere veri e propri programmi che possono ad esempio automatizzare le operazioni di amministrazione di sistema, semplificandole. Nel caso di Shell grafiche è comune fare riferimento ai cosiddetti desktop environment, che forniscono agli utilizzatori un ambiente grafico da cui è possibile gestire file e avviare programmi. L evoluzione delle Shell grafiche è rappresentata dalle cosiddette GUI (Graphic User Interface), che hanno una rappresentazione dei dati più user-friendly. 3.1 Le funzionalità Sono presenti potenti strumenti all interno della Shell per collegare tra loro diversi programmi per svolgere compiti complessi, come le pipe e la redirezione. Le moderne Shell testuali posseggono diverse funzionalità ergonomiche, tra le quali: Cronologia dei comandi eseguiti, che permette di ripetere gli ultimi comandi digitati; 7

16 Capitolo 3. Shell Completamento automatico dei comandi; Job control, che permette di avviare in background più programmi o di sospenderli temporaneamente. Tutte le Shell (es. Bash, DOS Shell, etc.) forniscono comandi a sufficienza per la gestione del file system; tuttavia con la Shell non abbiamo nessun supporto alla programmazione ad oggetti e supporto limitato alla programmazione strutturata. 3.2 Il linguaggio interpretato Un altra caratteristica importante è che i linguaggi di Shell scripting sono interpretati: se vengono utilizzati per realizzare elaborazioni complesse, queste ultime sono difficili da testare. In generale un linguaggio di scripting è un linguaggio di programmazione interpretato destinato a compiti di automazione del sistema operativo (batch) o delle applicazioni (macro), o a essere usato all interno delle pagine web. Consistono generalmente in semplici programmi il cui scopo è l interazione con altri programmi molto più complessi; si distinguono dai programmi con cui interagiscono poiché quest ultimi sono solitamente implementati in un linguaggio differente e non interpretato. La caratteristica di essere linguaggi interpretati comporta: Una minore efficienza a run-time: un programma interpretato, in esecuzione, richiede più memoria ed è meno veloce, a causa dell overhead introdotto dall interprete stesso. Durante l esecuzione, l interprete deve infatti analizzare le istruzioni a partire dal livello sintattico, identificare le azioni da eseguire ed eseguirle; mentre le istruzioni del codice compilato, già in linguaggio macchina, vengono caricate e istantaneamente eseguite dal processore. In compenso, l interpretazione di un programma può essere più rapida del ciclo compilazione/esecuzione. Questa differenza può costituire un vantaggio durante lo sviluppo, specialmente se questo viene condotto con tecniche di fast prototyping o durante il debugging. Inoltre, la maggior parte degli interpreti consentono all utente di agire sul programma in esecuzione sospendendolo, ispezionando o modificando i contenuti delle sue variabili in modo spesso più flessibile e potente di quanto si possa ottenere da un debugger per il codice compilato. 8

17 Capitolo 4 Make e confronto con Shell Il Make è un utility sviluppata sui sistemi operativi della famiglia UNIX, ma disponibile su un ampia gamma di sistemi, che automatizza il processo di creazione di file che dipendono da altri file, minimizzando il tempo di compilazione, risolvendo le dipendenze e invocando programmi esterni per il lavoro necessario. Storicamente i Makefile - file su cui si basa Make per il suo funzionamento - sono stati inventati per coadiuvare il lavoro dei programmatori (principalmente C/C++) minimizzando i tempi di compilazione dei programmi e gestendo in maniera automatica o semiautomatica le dipendenze tra i vari moduli. Make è il capostipite di un intera categoria di software per la Build Automation che, partendo dai suoi algoritmi e dal suo formato, ha permesso la produzione di diverse versioni dello stesso, come: GNU Make - utility estremamente diffusa -, Cmake - tool per risolvere alcuni problemi di portabilità del Make - e Nmake - l antenato dell attuale MSBuild di Microsoft. 4.1 Gestione delle dipendenze Il make gestisce anche le dipendenze che ci sono nel progetto. Si utilizza un meccanismo di controllo tale da confrontare ogni modulo con la sorgente o con i file intermedi da cui esso deriva (detti file di dipendenza); se tali file hanno subito qualche modifica dall ultima compilazione, Make li ricompila. Per determinare se un file non è aggiornato rispetto alle sue fonti, Make confronta la data di modifica del modulo con quella del file di dipendenza. Un modulo può essere trattato come non aggiornato se i comandi usati per la compilazione sono cambiati. 9

18 Capitolo 4. Make e confronto con Shell 4.2 Il Makefile Una volta definite le dipendenze esse vengono processate dal programma Make che si occupa di eseguire le istruzioni contenute nel Makefile. Un Makefile è un file di scripting scritto in linguaggio dichiarativo su cui si basa Make per conoscere cosa deve fare in fase di deployment e di installazione del software e per definire le interdipendenze che ci sono tra le varie fasi. Si può pensare a un Makefile come ad una ricetta: Make legge la ricetta, decide quali misure devono essere eseguite, ed esegue solo quei passaggi che sono necessari per produrre il modulo finito. Un aspetto in comune tra Shell e Make è la chiamata da linea di comando, poiché make è distribuito in forma di eseguibile a linea di comando. L uso di Make permette di avere tempi di esecuzione più brevi rispetto alla Shell: un programma eseguito interamente dalla riga di comando, ad ogni chiamata deve essere ricompilato, mentre utilizzando un Makefile e chiamando da Shell il comando Make, viene ricompilato solo il file sorgente modificato. Anche se è possibile scrivere uno script di complessità sufficiente a ricompilare solo quei moduli che lo richiedono, Make fa questo lavoro in maniera migliore. Una differenza sostanziale tra i due strumenti sta nell utilizzo di un file (il Makefile) da parte di Make, mentre la Shell si basa solo su ciò che le viene impartito da riga di comando. Poiché Make dipende dal linguaggio di Shell e quest ultima non è indipendente dal sistema operativo, questo comporta che entrambi dipendono dal sistema operativo: cambiando sistema, la Shell (e quindi Make) cambia. Questo problema può essere gestito generando script di build specifici per ogni piattaforma, che a loro volta vengono elaborati da Make. Strumenti comuni per questo processo sono Autoconf e CMake. Il Makefile non è nativamente compatibile con Windows, né portabile su sistemi Unix; per un linguaggio indipendente dalla piattaforma come Java, questo è stato un grosso problema. Anche per le applicazioni che non richiedono l indipendenza dalla piattaforma, i Makefile risultano essere una soluzione eccessivamente complessa per sviluppare in Java. Tra gli aspetti a sfavore dell utilizzo del Make troviamo anche le limitazioni nell implementare strutture di controllo sofisticate all interno del Makefile. 10

19 Capitolo 4. Make e confronto con Shell 4.3 Problematiche del Make Il problema con strumenti come Make, quando utilizzati nella loro configurazione standard, è che la compilazione viene eseguita in modo sequenziale. Quando ci sono migliaia di file questo tipo di procedura può essere molto lenta. Con l avvento dei processori multi-core, Make ha sfruttato tale vantaggio in una nuova versione che permette anche un esecuzione parallelizzabile: BSD Make. BSD Make oltre ad avere questa particolarità, supporta anche le espressioni condizionali e la produzione di obiettivi in fase di esecuzione. Nonostante i vantaggi, il problema di una compilazione in parallelo è risolvere le dipendenze, infatti se il Makefile non definisce con precisione le dipendenze di ogni modulo, i tempi di costruzione potrebbero rimanere elevati, eliminando il vantaggio dell utilizzo di sistemi multi-core. 4.4 GNU make e la sua portabilità GNU Make invece è un implementazione Make per Linux/OS X ampiamente utilizzata. Esso fornisce diverse estensioni rispetto all originale Make, come la possibilità di definire costrutti condizionali e funzioni integrate usate per eliminare la necessità di Shell-scripting nelle regole del Makefile nonché di manipolare le variabili impostate e utilizzate nel Makefile. Compilare un programma GNU Make è un operazione abbastanza semplice se si hanno già a disposizione tutte le librerie richieste. Inoltre GNU Make mette a disposizione moltissime funzionalità che consentono di utilizzarlo negli ambiti più disparati. I programmi GNU non sono di solito forniti con Makefile, è infatti necessario lanciare lo script che analizza il sistema su cui sta girando, creando un Makefile ad hoc da poter essere utilizzato sull attuale piattaforma. Questo sistema rende un programma GNU, non solo portatile attraverso i vari tipi di Unix, ma anche attraverso i vari tipi di processori; caratteristica che ne Make ne la Shell hanno. 11

20 Capitolo 5 Apache Ant e confronto con Make Figura 5.1: Apache Ant Apache Ant è un software originario del progetto Tomcat di Apache del Non è solo limitato a compilazione del codice, ma anche l imballaggio, la sperimentazione e molto di più; quindi può essere utilizzato per operazioni molto più complesse di un semplice build. Come abbiamo detto nella descrizione storica, è nato con l intendo di sostituire Make e sopperire ai suoi difetti. Il difetto più grande era quello della portabilità, in quanto piattaforme diverse richiedevano comandi di Shell diversi e quindi un Makefile diverso. Ant risolve questo problema fornendo una grande quantità di funzionalità incorporate in modo tale da comportarsi allo stesso su tutte le piattaforme. Si basa su un idea di programmazione procedurale. 5.1 Vantaggi dell implementazione in Java Essenzialmente è simile al Make ma è implementato in java, ottenendo uno strumento più adatto alla costruzione di progetti java, ma non solo: infatti può essere utilizzato anche per applicazioni basate su altri linguaggi. Inoltre è indipendente dal sistema operativo e dalla piattaforma su cui gira ma richiede che sia presente una JDK nel sistema. Un altro vantaggio 12

21 Capitolo 5. Apache Ant e confronto con Make dell implementazione in java è la possibilità di creare Javadoc e di utilizzare librerie Ant per estendere le funzionalità; tali librerie messe a disposizione da Apache svolgono una vasta gamma di attività attraverso i loro task; viene anche fornita la possibilità di realizzare dei task riusabili. Grazie a tutti questi aspetti è uno dei tool più utilizzato per la produzione di applicazioni Java. 5.2 Build.xml - Il file di Configurazione Un aspetto cruciale nell utilizzare Ant è che non richiede altro codice da scrivere per costruire l applicazione, piuttosto l intero processo è definito da obiettivi che non sono altro che elementi XML. Quindi la differenza che si evince tra Ant e Make è proprio l utilizzo in Ant dell XML per descrivere il processo di generazione e le sue dipendenze, mentre Make utilizza il Makefile. Per impostazione predefinita, il file XML è denominato build.xml. Il maggiore inconveniente di Ant è proprio l utilizzo di XML: è efficiente per la descrizione dei dati in modo gerarchico poiché si basa su una struttura di tipo gerarchico, ma perde punti nell esprimere il flusso del programma e la logica condizionale. Come uno script di build cresce in complessità, gestire il codice diventa un incubo. È prassi dei programmatori tentare di rendere il software quanto più indipendente possibile e in questo Ant risulta essere molto potente: infatti attraverso semplici direttive è possibile esportare dove necessario non solo il pacchetto ma anche tutti i file di configurazione. Il vantaggio principale di Ant risiede nel controllo e nella flessibilità del processo di costruzione. Lo scopo principale è la realizzazione di Jar e War in modo da rendere l export di applicazioni Java non solo semplice ma soprattutto customizzabile. Infatti con Ant non solo è possibile creare i pacchetti java per l export ma personalizzare il singolo file in modo che sia configurabile su qualsiasi ambiente. 5.3 Limiti degli script Ant Dando un occhio più da vicino agli script e alla loro gestione in Ant possiamo notare che: La maggior parte delle volte sono generati automaticamente da altri programmi, come ad esempio da IDE come Eclipse; questo aspetto, insieme alla natura stessa degli script XML 13

22 Capitolo 5. Apache Ant e confronto con Make li rende un po limitati in quanto a strutture di controllo e alla possibilità di introdurre comportamenti dinamici; Gli script devono per forza risiedere su disco, non possono essere risorse remote; Molti script di Ant presentano dei valori di default per delle opzioni che non sono coerenti con le versioni precedenti dello script che svolge gli stessi compiti; un eventuale modifica potrebbe bloccare l esecuzione stessa dello script; Nell espansione di uno script le proprietà non definite non causano un errore che induce il programmatore a farci attenzione ma vengono considerati come riferimenti non espansi; 5.4 Facilità d uso, Leggibilità e Testing Ant può essere richiamato da linea di comando in modo da poter essere facilmente integrato in altri programmi e non necessita di installazione in quanto è sufficiente copiare i file ed eventualmente, settarne il percorso tra i path predefiniti. Nel Makefile, qualsiasi regola per creare un tipo di file da un altro può essere scritta in linea all interno del Makefile stesso. In Ant invece è più complesso: deve essere scritta l attività in Java e inclusa con il file Ant. Tuttavia, questa separazione può migliorare la leggibilità dello script Ant nascondendo alcuni dettagli di come un task sia eseguito su piattaforme diverse. Con Ant si possono eseguire script di test e suite di test. Supporta Junit 3, Junit 4, TestNG etc. Inoltre, è possibile convertire report XML sui test in report HTML. Quindi Ant è abbastanza flessibile ma non dà alcuna indicazione su come strutturare il progetto e rende ogni script di build unico e difficile da comprendere in modo proporzionale alla complessità dello script stesso. Dopo la sua versione iniziale, è stato migliorato con la possibilità di accettare plug-in. Tuttavia, diverse proposte per una versione Ant 2 sono state fatte, ma nessuna è stata in grado di trovare grande accettazione dalla comunità degli sviluppatori. 14

23 Capitolo 6 Apache Maven e confronto con Apache Ant Figura 6.1: Apache Maven Maven non è soltanto un tool per la build automation a differenza di Ant ma fu pensato per unificare il modo di sviluppare e organizzare diversi progetti della famiglia Apache. Esso è uno strumento per la gestione di progetti che prevede un insieme di standard, trattazione del ciclo di vita (dalla costruzione, ai test e documentazione), un sistema di gestione delle dipendenze e l uso di plugin per svolgere attività in fasi specifiche del ciclo di vita. Usando Maven si descrive un progetto usando un ben definito modello, sul quale Maven stesso può applicare una logica trasversale a partire da un insieme di plugin condivisi o personalizzati. La parola Maven significa accumulatore di conoscenza in Yiddish. Maven affronta due aspetti della costruzione di software: in primo luogo, descrive come il software è costruito, e in secondo luogo, descrive le sue dipendenze. Una prima differenza tra Ant e Maven sta nel come vengono classificati i due strumenti: Ant è un insieme di strumenti mentre Maven è un framework. Allo stesso modo di Make e Ant, Maven può essere eseguito da linea di comando. Inoltre, cosi come Ant, Maven legge uno o più file xml di configurazione e le variabili possono essere dichiarate in un file separato detto application.properties (in Ant si chiamava 15

24 Capitolo 6. Apache Maven e confronto con Apache Ant build.properties). Come detto nella definizione, Maven gestisce il ciclo di vita del software, dalla scrittura del codice al deploy in ambiente di produzione. Le fasi standard di Maven sono le seguenti: validate, generate-sources, process-sources, generate-resources, process-resources, compile, process-test-sources, process-test-resources, test-compile, test, package, install, e deploy. Le fasi possono essere personalizzate. Le operazioni (chiamati goals) di Maven, così come quelle associate ai diversi plugin, ricadono ciascuna in una particolare fase. 6.1 Obiettivi di Maven Maven si basa sull applicazione di modelli per realizzare un infrastruttura che mostra le caratteristiche di visibilità, riutilizzabilità, manutenibilità, e comprensibilità. Senza queste caratteristiche, è altamente improbabile che più persone lavoreranno produttivamente insieme su un progetto. Senza visibilità è improbabile che un individuo sa cosa un altro ha compiuto. Quando il codice non è riutilizzato è molto difficile creare un sistema gestibile. Se ci sono molti moduli divisi senza nessuna correlazione, difficilmente si riuscirà ad avere una visione complessiva del progetto. Di conseguenza si finisce con l avere un decadimento della conoscenza condivisa unita alla frustrazione tra i membri del team. Un effetto naturale quando i processi non funzionano allo stesso modo per tutti. Maven cerca di risolvere proprio questi problemi e soddisfare queste caratteristiche, sia a livello di progettazione, che di test, documentazione e cosi via. 6.2 POM - Il file di Configurazione Uno schema di partenza per il file di configurazione richiede come unici input necessari, il nome dell applicazione e il dominio di riferimento degli sviluppatori: la necessità di indicare sia il nome che il dominio è legata alla possibilità di poter fornire nomi universali (URI) ai progetti, in modo che possano essere univocamente reperiti sulla rete. Questo aspetto evidenzia una differenza rispetto ad Ant: Ant richiedeva risorse locali mentre in Maven le risorse possono essere anche su rete. In particolare nella maggior parte dei casi Maven può funzionare solo e soltanto in presenza di connessione ad Internet. 16

25 Capitolo 6. Apache Maven e confronto con Apache Ant Riguardo il file di configurazione, Ant è procedurale: infatti è necessario fornire informazioni su cosa fare, in che ordine farle e quando farle, tutte tramite codice; mentre Maven è dichiarativo e si definisce tutto nel file di configurazione del progetto. Questo file di configurazione sul quale si basa la filosofia di Maven è chiamato POM scritti in XML: come abbiamo detto, la configurazione riguarda il nome del progetto, il suo proprietario e le sue dipendenze da altri progetti. Si possono anche configurare le singole fasi del processo di creazione, che sono attuate come plugin. I progetti più grandi dovrebbero essere suddivisi in diversi moduli, ognuno con il proprio POM. Come per Ant, anche per Maven l utilizzo dell XML come formato di configurazione è rigorosamente strutturato e altamente standardizzato comportando un alto livello di dettaglio nel definire la configurazione di un progetto e portando cosi difficoltà sia nella lettura che nella scrittura del file stesso, soprattutto se si tratta di file di grandi dimensioni. Tuttavia, la struttura interna del file è diametralmente diversa: mentre Ant richiede agli sviluppatori di scrivere tutti i comandi che portano alla corretta esecuzione di un compito, Maven si basa su convenzioni e mette a disposizione gli obiettivi disponibili che possono essere richiamati nel progetto. Come aggiunta supplementare Maven ha introdotto la possibilità di scaricare le dipendenze da altri progetti attraverso la rete (in seguito adottato da Ant attraverso Ivy) che di per sé ha rivoluzionato il modo con il quale viene fornito il software. La personalizzazione dei target (obiettivi) diventa difficile poiché Maven è focalizzata principalmente sulla gestione delle dipendenze, e scrivere script personalizzati sono in realtà più difficili in Maven che in Ant. L unico modo per poter scrivere logica personalizzata in modo semplice, e quindi uscire dalle convenzioni di Maven, è attraverso l utilizzo di un plugin chiamato Mojo. Maven può essere visto come Ant con delle convenzioni sulla configurazione, quindi non abbiamo bisogno di fornire informazioni sulla struttura del progetto nel file pom.xml, ottenendo quindi maggiore facilità d uso. In Maven abbiamo maggiori librerie e plug-in di utilità, infatti la maggior parte delle funzionalità di Maven è in plugin: plugin per la costruzione, il collaudo, la gestione, controllo del codice sorgente, l esecuzione di un server web, etc. Inoltre Maven è orientato anche alla riutilizzabilità perché è possibile sia pubblicare progetti per poi riutilizzarli in altri ambiti, sia pubblicare plugin creati all occorrenza. Maven ha una migliore integrazione con gli IDE sia nella fase di 17

26 Capitolo 6. Apache Maven e confronto con Apache Ant costruzione che modifica. 6.3 Gestione delle dipendenze L innovazione portata da Maven è la gestione delle dipendenze. Basta dichiarare le dipendenze e le dipendenze transitive 1 e Maven le gestirà scaricandole automaticamente per ogni modulo che ne ha bisogno incluso nel progetto. Viceversa con Ant, per avere una simile gestione, ci vorrebbe una grande mole di lavoro, anche se si potrebbe risolvere il problema attraverso l utilizzo di librerie esterne. Da notare che non sempre viene nominata esattamente l URL del progetto da cui dipende ciò che dobbiamo costruire, ma vengono forniti il groupid, l artifactid e la version, essi saranno sufficienti a Maven per reperire ciò che serve, nel caso esso sia stato correttamente pubblicato nell ambito del dominio com.mycompany.app. In assenza della dichiarazione della URL, Maven cerca in locale e sul sito ufficiale del progetto Maven. Quindi c è la possibilità di includere progetti disponibili in remoto e di collegarli dinamicamente a tempo di compilazione. Tuttavia la gestione delle dipendenze di Maven include delle insidie: Richiesta di spazio sul disco e ram; infatti anche per un progetto semplice viene richiesta un ampia regolazione della JVM; ancora peggio se poi si utilizza anche un IDE; Quando si vuole compilare un modulo, verranno risolte tutte le dipendenze, comprese quelle transitorie, richiamando tutti i moduli - eventualmente su rete - e richiedendo tempo nella fase di compilazione. Analogo discorso quando si devono gestire le dipendenze dei plugin inseriti nel progetto; Progetti sviluppati su una singola macchina possono dipendere tra loro attraverso il repository locale 2. Maven scarica dinamicamente le librerie Java e i plugin da uno o più repository come il Maven 2 Central Repository, e li memorizza in una cache locale. Sotto questa gestione Maven presenta delle problematiche di sicurezza poiché è impossibile determinare la provenienza degli artefatti che si includono nel progetto, ne Maven stesso effettua un controllo sull affidabilità di questi dati inseriti nella cache locale del repository; 1 Dipendenze transitive: dipendenze esterne che possono avere un riferimento ad altre librerie o risorse 2 Repository locale: è una struttura di cartelle che agisce sia come una cache per le dipendenze scaricate che come un luogo di deposito centralizzato per i manufatti costruiti localmente 18

27 Capitolo 6. Apache Maven e confronto con Apache Ant Il Manager delle Dipendenze non gestisce i conflitti tra le diverse versioni della stessa libreria (Ivy è molto meglio); 6.4 Apache Maven e confronto con Apache Ivy Ivy si può vedere come un estensione di Apache Ant che si occupa essenzialmente della gestione delle dipendenze di un progetto, reporting e pubblicazione. E uno strumento molto flessibile e configurabile, infatti può essere adattato ad una vasta gamma di gestione delle dipendenze. Inoltre possiede un potente motore di gestione delle dipendenze transitive. Poiché il confronto con Apache Ant è stato già effettuato, in questo paragrafo ci focalizzeremo nell analizzare principalmente la gestione delle dipendenze che introduce Ivy, rispetto a quella di Maven. Prima di passare a tale confronto notiamo che c è una differenza sostanziale su come sono definiti i due tool: Apache Maven è uno strumento di gestione dei progetti software e comprensione, mentre Apache Ivy è solo uno strumento di gestione delle dipendenze, integrato con Ant Gestione delle dipendenze e dei conflitti Apache Ivy si basa sul concetto di configurazione, ovvero un modo per utilizzare, testare o per vedere un modulo. In ogni configurazione, è possibile dichiarare le dipendenze da altri moduli, e descrivere qual è la configurazione della dipendenza di cui si ha bisogno. Questo si chiama mappatura di configurazione. Apache Maven invece ha un modulo chiamato campo di applicazione nel quale è possibile dichiarare una dipendenza e poi, a seconda dell ambito, si otterrà l artefatto di tale dipendenza con le relative dipendenze ad esso collegate. Però gli ambiti sono predefiniti e non si possono variare. Un altro aspetto da analizzare è la gestione dei conflitti, richiamata quando si trattano dipendenze transitive: Apache Ivy consente di muoversi liberamente utilizzando gestori di conflitti diversi per decidere quale revisione considerare; mentre con Apache Maven, la gestione dei conflitti è molto semplice: il principio è quello di ottenere la definizione più vicina 3. 3 Se il modulo dipende dalla definizione 1.0, nessuna dipendenza potrà mai riuscire ad ottenere la definizione 1.1 senza un cambiamento nella dichiarazione di dipendenza. 19

28 Capitolo 7 Gradle e confronto con Apache Ant e Maven Figura 7.1: Gradle Gradle è l ultimo passo evolutivo negli strumenti di generazione basati su JVM. È un software multipiattaforma per l automazione dello sviluppo fondato sulle idee di Apache Ant e Maven. Ha il potere di Ant e la flessibilità sul ciclo di vita e facilità d uso di Maven. Il risultato finale è uno strumento che è stato rilasciato nel 2012 ed ha guadagnato un sacco di attenzione in un breve periodo di tempo. Gradle non utilizza XML (che a causa della sua natura gerarchica è meno flessibile) per descrivere il dominio del problema, ma un domain-specific language (DSL) basato su Groovy (una delle lingue JVM) il quale a sua volta è basato su Java, che rende semplice definire anche una logica personalizzata. Non è necessario essere un esperto di Groovy per iniziare poiché, basandosi su java è possibile migrare gradualmente da un linguaggio all altro. Costruendo con Gradle si riescono ad ottenere script molto più brevi e più chiari di quelli scritti per Ant o Maven. Gli script Gradle possono essere eseguiti direttamente, al contrario di quelli di Apache Maven. Inoltre, al contrario di Apache Maven, che definisce il ciclo di vita di un processo, e di Apache 20

29 Capitolo 7. Gradle e confronto con Apache Ant e Maven Ant, dove l ordine dei compiti è determinato dalle dipendenze, Gradle utilizza un grafo aciclico diretto (DAG) per determinare l ordine in cui i processi possono essere eseguiti. Gradle è stato progettato per sviluppi multi-progetto che possono crescere fino a divenire abbastanza grandi e supporta sviluppi incrementali determinando in modo intelligente quali parti del build tree sono aggiornate (up-to-date), in modo che tutti i processi che dipendono solo da quelle parti non avranno bisogno di essere rieseguiti; così facendo, si riduce significativamente il tempo di costruzione del progetto, in quanto, durante il nuovo tentativo di costruzione, verranno eseguite solo le attività il cui codice è effettivamente stato alterato a partire dall ultima costruzione completata. Gradle supporta anche la costruzione del progetto per processi concorrenti, il che consente di svolgere alcuni compiti durante la costruzione (ad esempio, i test automatizzati attraverso gli unit test), eseguiti in parallelo su più core della medesima CPU, su più CPU o su più computer. Questo aspetto può essere visto come una differenza sostanziale rispetto a Maven che, come sappiamo, aveva problemi nella gestione delle dipendenze e negli aggiornamenti che portavano ad avere tempi di compilazione più lunghi. Il software integra in se alcuni punti di forza di Apache Maven, ovvero: convenzione sulla configurazione, ciclo di vita, gestione delle dipendenze nello stile di Apache Ivy o Maven e l utilizzo di repository. 7.1 Integrazione con altri tool Figura 7.2: Integrazione di Gradle con altri tools Lo strumento permette di integrare, senza sforzo, progetti scritti in linguaggi di programmazione diversi da Java. Se si arriva da Ant, Gradle non obbliga a effettuare una migrazione 21

30 Capitolo 7. Gradle e confronto con Apache Ant e Maven dell infrastruttura completa, permettendo di riutilizzare le attività Ant standard. I Target Ant vengono direttamente mappati come compiti Gradle in fase di esecuzione. Gradle possiede una classe di supporto per gli script Ant chiamata AntBuilder, che si fonde completamente nel DSL Gradle: attraverso di essa sembra di scrivere XML classico. Invece per Maven, Gradle fornisce un convertitore per la sua logica; in futuro mira a raggiungere una profonda integrazione anche con Maven; Inoltre Gradle è compatibile con i repository di Maven e Ivy ma, a differenza di Maven che ha un repository predefinito, con Gradle è necessario definire il repository che si desidera utilizzare. 7.2 Struttura Gradle Proprio come avviene con Apache Maven, la struttura di Gradle è costituita da un nucleo astratto e da una serie di plugin che ne espandono le funzionalità. Anche la costruzione dei progetti Java avviene per mezzo di plugin. Alcuni plug-in consentono di monitorare la qualità del software ricorrendo all esecuzione di controlli automatici ed alla produzione di report corrispondenti all attività di costruzione. Gradle utilizza tre file principali per personalizzare la costruzione: build.gradle - Il file contenente tutte le informazioni sul build; settings.gradle (opzionale) - Il file contiene la definizione dei moduli di cui si compone il multi-progetto; gradle.properties (opzionale) - Il file contiene un elenco di valori validi per l inizializzazione delle proprietà di uno specifico progetto Gradle; Il processo di costruzione di Gradle si suddivide in due fasi principali, che vengono sempre eseguite: la configurazione e l esecuzione. Durante il ciclo di configurazione, vengono delineati i passi dell intera costruzione per generare il grafico di dipendenza (DAG) che contiene la sequenza di tutte le fasi da eseguire. La seconda fase consiste nell attraversamento delle attività precedentemente rilevate. 22

31 Capitolo 7. Gradle e confronto con Apache Ant e Maven 7.3 Gestione delle dipendenze La gestione delle dipendenze in Gradle non solo è altamente configurabile ma si sforza anche di essere il più possibile compatibile con le infrastrutture di gestione delle dipendenze esistenti (come ad esempio Maven e Ivy). La capacità di Gradle di gestire le dipendenze non si limita all utilizzo di librerie esterne, poiché se gli elementi DSL standard non si adattano alle esigenze del progetto, si può anche definire un vocabolario proprio attraverso l utilizzo delle estensioni di Gradle. Inoltre fornisce un supporto potente per la definizione e l organizzazione per la costruzione multi progetto, così come la gestione delle dipendenze tra i progetti. Un requisito fondamentale è la riproducibilità, ovvero se il programma funziona su un altra macchina; Make non è riproducibile poiché deve produrre lo stesso risultato su macchine diverse, indipendentemente dal contenuto della cache locale. Il Manager delle dipendenze di Ivy e Maven nella loro implementazione corrente non possono garantire pienamente la riproducibilità perché quando una dipendenza viene scaricata e memorizzata nella cache locale, non viene preso in considerazione l origine del manufatto; in situazioni in cui il repository viene modificato per un progetto, la dipendenza della cache viene considerata risolta, anche se il contenuto del manufatto potrebbe essere leggermente diverso. Nel peggiore dei casi, questo causerà un difetto che è estremamente difficile da risolvere. Gradle invece, fornisce la propria soluzione per la gestione delle dipendenze in modo configurabile, affidabile ed efficiente: considera ciascuno dei moduli di un progetto di grandi dimensioni, un progetto separato il quale può definire le dipendenze a librerie esterne o altri moduli. Inoltre, ogni sottoprogetto può essere eseguito singolarmente. Gradle capisce quale sottoprogetto richiede la ricostruzione delle dipendenze, senza dover memorizzare artefatti nella cache locale. In questo modo Gradle risolve le problematiche sulla sicurezza nella gestione delle dipendenze presenti invece in Maven. Se si inizia un nuovo processo Gradle, ogni volta il caricamento di tutte le sue dipendenze interne e l esecuzione della logica di build, richiedono un paio di secondi prima che inizi ad eseguire. Per migliorare le prestazioni di avvio, Gradle può essere eseguito in modalità demone. In pratica non esegue solo la build, ma mantiene l esecuzione in background, cosi invocazioni di build successive saranno sulle spalle del processo daemon esistente. Di conseguenza, Gradle risulta molto veloce nell eseguire le operazioni rispetto ai tools concorrenti. 23

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Eclipse e Subversion

Eclipse e Subversion Eclipse e Subversion Prerequisito: creare un repository gratuito su http://www.assembla.com Svn: condivisione progetto Svn: condivisione progetto Svn: condivisione progetto Svn: condivisione progetto Svn:

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere

Dettagli

Novità di Access 2010

Novità di Access 2010 2 Novità di Access 2010 In questo capitolo: Gestire le impostazioni e i file di Access nella visualizzazione Backstage Personalizzare l interfaccia utente di Access 2010 Creare database utilizzando modelli

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

Dettagli

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

lem logic enterprise manager

lem logic enterprise manager logic enterprise manager lem lem Logic Enterprise Manager Grazie all esperienza decennale in sistemi gestionali, Logic offre una soluzione modulare altamente configurabile pensata per la gestione delle

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

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

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli) SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli) Le seguenti istruzioni sono relative all installazione di SPSS Statistics con licenza per utenti singoli. Una

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

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

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

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

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

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

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda Fa quadrato attorno alla tua azienda Soluzioni software per L archiviazione elettronica dei documenti Perché scegliere Q Archiviazione Elettronica dei Documenti? Tale applicativo si pone come obbiettivo

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING Febbraio Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING COS E UN

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Identificare come i vari elementi dei Microsoft Dynamics CRM possono essere utilizzati per le relazioni con i clienti

Identificare come i vari elementi dei Microsoft Dynamics CRM possono essere utilizzati per le relazioni con i clienti PERIODO : Dal 11 novembre 2015 AL 4 dicembre 2015 Sede del corso: Presso GI Formazione in Piazza IV novembre 5, Milano Orari dalle 9.00 alle 13.00 e dalle 14.00 alle 18.00 A CHI E RIVOLTO IL CORSO Questo

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8 Ogni organizzazione possiede un sistema di regole che la caratterizzano e che ne assicurano il funzionamento. Le regole sono l insieme coordinato delle norme che stabiliscono come deve o dovrebbe funzionare

Dettagli

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete Sistemi Operativi di Rete Estensione dei Sistemi Operativi standard con servizi per la gestione di risorse in rete locale Risorse gestite: uno o più server di rete più stampanti di rete una o più reti

Dettagli

Ambienti di Sviluppo

Ambienti di Sviluppo Ambienti di Sviluppo Insieme omogeneo di strumenti adatti allo sviluppo di progetti software. Editor; Compilatori e/o interpreti; Strumenti di test; Applicazioni che permettono di editare / disegnare il

Dettagli

Intel One Boot Flash Update Utility Guida dell utente

Intel One Boot Flash Update Utility Guida dell utente Intel One Boot Flash Update Utility Guida dell utente Informazioni legali La Guida dell utente Intel One Boot Flash Update Utility, e il software in essa descritto sono forniti in licenza e possono essere

Dettagli

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti 20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1

Dettagli

Installazione di GFI WebMonitor

Installazione di GFI WebMonitor Installazione di GFI WebMonitor Requisiti di sistema di GFI WebMonitor Server Microsoft Windows 2000 (SP 3) o 2003. Microsoft ISA 2000 Server (non in modalità solo firewall) OPPURE Server Microsoft ISA

Dettagli

OmniAccessSuite. Plug-Ins. Ver. 1.3

OmniAccessSuite. Plug-Ins. Ver. 1.3 OmniAccessSuite Plug-Ins Ver. 1.3 Descrizione Prodotto e Plug-Ins OmniAccessSuite OmniAccessSuite rappresenta la soluzione innovativa e modulare per il controllo degli accessi. Il prodotto, sviluppato

Dettagli

Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.

Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2. Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.0 ver 1.0 del 19/03/2013 Nettuno Solutions s.r.l. Viale

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Le fattispecie di riuso

Le fattispecie di riuso Le fattispecie di riuso Indice 1. PREMESSA...3 2. RIUSO IN CESSIONE SEMPLICE...4 3. RIUSO CON GESTIONE A CARICO DEL CEDENTE...5 4. RIUSO IN FACILITY MANAGEMENT...6 5. RIUSO IN ASP...7 1. Premessa Poiché

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito) IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento

Dettagli

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it izticket Il programma izticket permette la gestione delle chiamate di intervento tecnico. E un applicazione web, basata su un potente application server java, testata con i più diffusi browser (quali Firefox,

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

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

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico Strumenti Processo parte VII Leggere Cap. 9 Ghezzi et al. Strumenti software che assistono gli ingegneri del software in tutte le fasi del progetto; in particolare progettazione codifica test Evoluzione

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008 IL SOFTWARE Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008 CHE COS È IL SOFTWARE In Informatica il termine Software indica l insieme dei programmi che consentono un

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

5-1 FILE: CREAZIONE NUOVO DOCUMENTO Capittol lo 5 File 5-1 FILE: CREAZIONE NUOVO DOCUMENTO In Word è possibile creare documenti completamente nuovi oppure risparmiare tempo utilizzando autocomposizioni o modelli, che consentono di creare

Dettagli

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna Il CMS Moka Giovanni Ciardi Regione Emilia Romagna Moka è uno strumento per creare applicazioni GIS utilizzando oggetti (cartografie, temi, legende, database, funzioni) organizzati in un catalogo condiviso.

Dettagli

Strumenti per la gestione della configurazione del software

Strumenti per la gestione della configurazione del software tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo ing. Luigi Suarato candidato Pasquale Palumbo Matr. 534/000021 MANUTENZIONE DEL SOFTWARE Il Configuration

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE Pag. 1 di 16 SOFTWARE A SUPPORTO DELLA (VERS. 3.1) Specifica dei Requisiti Utente Funzionalità di associazione di più Richiedenti ad un procedimento Codice Identificativo VERIFICHE ED APPROVAZIONI CONTROLLO

Dettagli

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato

Dettagli

Ciclo di vita dimensionale

Ciclo di vita dimensionale aprile 2012 1 Il ciclo di vita dimensionale Business Dimensional Lifecycle, chiamato anche Kimball Lifecycle descrive il framework complessivo che lega le diverse attività dello sviluppo di un sistema

Dettagli

03. Il Modello Gestionale per Processi

03. Il Modello Gestionale per Processi 03. Il Modello Gestionale per Processi Gli aspetti strutturali (vale a dire l organigramma e la descrizione delle funzioni, ruoli e responsabilità) da soli non bastano per gestire la performance; l organigramma

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

WorkFLow (Gestione del flusso pratiche)

WorkFLow (Gestione del flusso pratiche) WorkFLow (Gestione del flusso pratiche) Il workflow è l'automazione di una parte o dell'intero processo aziendale dove documenti, informazioni e compiti vengono passati da un partecipante ad un altro al

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

DINAMIC: gestione assistenza tecnica

DINAMIC: gestione assistenza tecnica DINAMIC: gestione assistenza tecnica INSTALLAZIONE SU SINGOLA POSTAZIONE DI LAVORO PER SISTEMI WINDOWS 1. Installazione del software Il file per l installazione del programma è: WEBDIN32.EXE e può essere

Dettagli

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

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

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale La soluzione modulare di gestione del Sistema Qualità Aziendale I MODULI Q.A.T. - Gestione clienti / fornitori - Gestione strumenti di misura - Gestione verifiche ispettive - Gestione documentazione del

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

VMware. Gestione dello shutdown con UPS MetaSystem

VMware. Gestione dello shutdown con UPS MetaSystem VMware Gestione dello shutdown con UPS MetaSystem La struttura informatica di una azienda Se ad esempio consideriamo la struttura di una rete aziendale, i servizi offerti agli utenti possono essere numerosi:

Dettagli

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,

Dettagli