EUCIP Core BuildEUCIP Core Build è una delle tre aree fondamentali di EUCIP Core, la certificazione di base che consente l'accesso alla certificazione di uno dei 21+1 profili professionali individuati nel campo dell'ICT. Metodologie per lo sviluppo di sistemiIn questa parte vengono descritti gli aspetti relativi allo sviluppo di sistemi informativi. Software applicativo e software di sistemaIl software è l'insieme dei programmi che permettono ai componenti fisici del computer di svolgere determinati compiti. I programmi sono sequenze di istruzioni, eseguite dall'elaboratore secondo un ordine prestabilito, che producono soluzioni a determinati problemi. Si distinguono due categorie fondamentali di software: Software di sistema e Software applicativo.
Principi e metodologie per lo sviluppo di sistemiDal punto di vista produttivo il software, come ogni prodotto commerciale, vive le varie fasi di evoluzione del suo mercato. Il suo ciclo di vita generalmente prevede le fasi di analisi, progettazione, sviluppo, verifica e validazione, rilascio, manutenzione. Nella fase di analisi viene definito ciò che deve essere fatto specificando funzionalità e requisiti che il sistema dovrà possedere; nella fase di progettazione vengono specificate le modalità di sviluppo e la struttura che il sistema dovrà avere; lo sviluppo consiste nell'implementazione del sistema; la verifica e la validazione consentono le verifiche di conformità e di congruenza con le specifiche richieste; il rilascio consiste nella consegna e conseguente installazione del prodotto; la manutenzione prevede le modifiche successive al rilascio. Esistono alcuni modelli di riferimento nello sviluppo del software:
Strumenti per lo sviluppo di sistemiPer gestire le attività inerenti allo sviluppo di sistemi si ricorre spesso a strumenti software denominati CASE (Computer-Aided Software Engineering) che, attraverso varie funzionalità, supportano tutte le fasi della produzione del software.
Collaudo del software e del sistemaSecondo l'ANSI (American National Standards Institute) la verifica di un sistema software comprende le attività di "revisione, ispezione, collaudo, prova formale e indagine che definiscono ed attestano come gli oggetti, i processi, i servizi e i documenti siano conformi ai requisiti specificati".
Implementazione di sistemiL'implementazione di un sistema software richiede l'intervento di un programmatore o di un team di programmazione e prevede la traduzione in codice di linguaggio di programmazione degli algoritmi sviluppati in fase di progettazione. La codifica avviene in genere con l'ausilio di tool specifici che rendono più agevole il lavoro. Per la scrittura del codice vengono utilizzati editor di testo, il codice viene poi tradotto in linguaggio macchina attraverso i compilatori, il programma compilato viane poi testato attraverso i debugger. Controllo e sicurezza dei sistemiSecondo le norme ISO, un sistema software deve assicurare "la protezione dei dati e delle risorse di calcolo in termini di integrità, riservatezza e disponibilità."
Gestione dei dati e basi di datiCon il termine basi di dati (database) si indicano in informatica gli archivi di dati, organizzati attraverso tecniche di modellazione e gestiti sulle memorie di massa dei computer attraverso applicazioni software definite database management system (DBMS). Dati e transazioniLe basi di dati vengono utilizzate prevalentemente per lo sviluppo di applicazioni gestionali. I database devono essere accessibili sia in lettura che in scrittura, dunque modificabili. Il risultato dell'operazione di modifica dei dati (transazione), se va a buon fine, deve essere permanente (commit) in caso contrario deve essere garantito il ripristino dello stato precedente l'inizio della transazione (rollback). I DBMS supportano la registrazione delle transazioni alle quali forniscono le caratteristiche riassunte nell'acronimo ACID: Atomicity Consistency Isolation Durability. L'atomicità (atomicity) è la caratteristica che rende la transazione indivisibile, cioè le consente di giungere a un completamento valido (commit/rollback); la coerenza (consistency) è assicurata dalle regole sulle modalità di aggiornamento dei dati che devono impedire errori o incongruenze; l'isolamento (isolation) evita l'accesso simultaneo agli stessi dati da parte di transazioni separate evitando situazioni di conflitto; la persistenza (durability) deve garantire la possibilità di ripristino di "stati precedenti" in caso di malfunzionamenti o guasti del sistema. Modelli di datiLa progettazione di DBMS viene trattata su tre livelli separati: livello fisico, livello concettuale, livello vista utente. Il livello fisico (physical level) riguarda la modalità di memorizzazione dei dati dal punto di vista fisico, il livello concettuale (conceptual level) si occupa della struttura delle informazioni e delle relazioni tra i dati, il livello vista utente (view level) riguarda le modalità attraverso le quali gli utenti accedono ai dati. Attraverso il livello concettuale gli archivi di dati vengono modellati attraverso opportuni schemi e le varie entità identificate vengono messe in relazione tra di loro secondo le necessità. Tra i modelli più diffusi nella progettazione concettuale:
Data warehouse e data miningL'esistenza di differenti database in un'unica azienda, a volte implementati con tecnologie diverse, può rendere necessario un incrocio dei dati tra i vari oggetti al fine di ricavare informazioni più dettagliate e/o integrazioni ai dati già esistenti. Le operazioni di incrocio delle varie fonti vengono dette di data wharehousing e le successive analisi dei nuovi dati data mining. Un data warehouse, quindi, è un sistema che serve a localizzare, estrarre, trasformare e caricare i dati provenienti da varie fonti. Il data mining utilizza i dati estratti con il data warehousing al fine di produrre analisi sempre più dettagliate. I database relazionaliUn database relazionale è costituito da più tabelle. Ogni tabella, composta da righe e colonne, rappresenta le informazioni relative a un insieme di soggetti (es. clienti, fornitori, libri, prodotti ecc.). Ogni riga (record) contiene i dati relavi a un soggetto, le colonne (campi) rappresentano le singole informazioni del soggetto. Per identificare univocamente un soggetto si utilizza un campo con caratteristiche di univocità (chiave primaria). Le tabelle possono essere poste in relazione tra di loro utilizzando i contenuti di colonne che esistono in entrambe. Interrogazioni e rapportiL'interrogazione, ovvero la lettura e la gestione dei dati dei database, avviene attraverso l'algebra relazionale o il linguaggio SQL (structured query language). L'algebra relazionale, in quanto linguaggio procedurale, può necessitare di più passaggi per arrivare a un risultato; il linguaggio SQL, non procedurale, permette, in genere, con un singolo comando di ottenere il risultato atteso. Tra le varie operazioni possibili con il linguaggio SQL:
Amministrazione di basi di datiLe operazioni di gestione di un database sono affidate a uno o più amministratori del database (DBA - database administrator). Il DBA, tra le altre cose, ricopre un ruolo fondamentale nella configurazione e manutenzione del database e la configurazione dei permessi sugli accessi degli utenti. ProgrammazioneMetodi e tecniche di progettazione softwareSecondo il teorema di Jacopini e Bohm, per realizzare un programma sono sufficienti appena tre strutture: sequenza, selezione, iterazione. Nella sequenza, le istruzioni vengono eseguite una di seguito all'altra; nella selezione, un'istruzione o una sequenza di istruzioni vengono eseguite in base al verificarsi o meno di una determinata condizione; nell'iterazione, un'istruzione o una sequenza di istruzioni vengono ripetute in base al verificarsi o meno di una determinata condizione. Strutture di dati e algoritmiTipi di dati
Algoritmi di ordinamento Esistono varie soluzioni per l'ordinamento dei dati, ognuna delle quali presenta vantaggi e svantaggi in termini di prestazioni:
Tipi di linguaggi di programmazioneDal punto di vista storico, i linguaggi di programmazione possono essere suddivisi in:
Introduzione ai concetti della programmazione - Il linguaggio EPLPer verificare le conoscenze di programmazione del candidato, in alcuni dei test d'esame per la certificazione EUCIP CORE, le domande vengono formulate utilizzando il linguaggio EPL. EPL (EUCIP programming language) è un linguaggio di programmazione semplificato, con poche istruzioni, che consente la scrittura di programmi semplici utilizzando una sintassi molto simile al linguaggio C. Di seguito un breve manuale EPL. Per una chiara comprensione è richiesta la conoscenza dei principi base della programmazione. Dichiarazione di variabili
char a; dichiarazione di una variabile di nome a di tipo alfanumerico int b=5; dichiarazione di una variabile di nome b di tipo numerico intero e sua inizializzazione con il valore 5 float c; dichiarazione di una variabile di nome c di tipo numerico reale char d[10]; dichiarazione array di nome d di 11 elementi di tipo alfanumerico (0-10) Operatori aritmetici + somma - sottrazione * moltiplicazione / divisione % modulo (esempio: a = 14%3 = 2, restituisce il resto di una divisione) Operatori di confronto
Operatori logici
istruzioni e blocchi
Istruzioni condizionali If (condizione) Istruzione-vero|{blocco-istruzioni-vero} Else Istruzione-falso|{blocco-istruzioni-falso} esempio: if (a>b) { a=a-1; b=b+1; } else a=a+1; Cicli
while (condizione) istruzione|{blocco-istruzioni} do...while do istruzione|{blocco-istruzioni} while (condizione) for for (start;condizione;incremento) istruzione|{blocco-istruzioni} Istruzioni I/O
Struttura di un programma
main() { istruzione; istruzione; } esempio di programma che prende in input due interi, li somma e stampa il risultato main() { int a; int b; readf(a,b); int somma; somma=a+b; printf(somma); } Utilizzo di procedure
int somma; main() { int a; int b; readf(a,b); calcola(a,b) printf(somma); } calcola(n1,n2) { somma=n1+n2; } Dopo aver preso in input a e b, il controllo passa alla procedura calcola con il passaggio di parametri (a,b). La procedura calcola assegna a n1 il valore di a e a n2 il valore di b ed effettua la somma. Alla fine il controllo ritorna al main e precisamente all'istruzione successiva alla chiamata della procedura calcola (printf(somma)). Utilizzo di funzioni A differenza delle procedure, le funzioni restituiscono un risultato main() { int a; int b; readf(a,b); printf(calcola(a,b)); } calcola(n1,n2) { return n1+n2; } La presenza della variabile somma non è necessaria in questo caso. L'istruzione return indica il valore da restituire. Prove e collaudi (testing)Durante le prove ed il collaudo del software vengono svolte le attività di ricerca e correzione di eventuali errori e/o incongruenze. Il risultato dovrà garantire il buon funzionamento del prodotto e soprattutto che questo soddisfi appieno le esigenze del cliente.
Interfaccia utenteInterazione uomo-macchinaLa trasmissione di informazioni tra due o più terminali è definita comunicazione. Le entità minime coinvolte nella comunicazione sono il mittente, il destinatario e il messaggio. Il mittente genera ed invia il messaggio e il destinatario lo riceve. L'analisi da parte di alcuni studiosi delle entità coinvolte nella comunicazione ha portato allo sviluppo di modelli diversi: il mittente converte il messaggio in segnale e lo invia attraverso un canale che collega mittente e destinatario. Il segnale può venire disturbato dalla presenza di rumore. L'errore generato dal rumore può venire corretto da segnali aggiuntivi; il canale è lo strumento fisico attraverso il quale il mittente invia al destinatario il messaggio; la comunicazione avviene attraverso un codice (linguistico, gestuale ecc.) le cui regole devono essere condivise tra mittente e destinatario; il messaggio si riferisce a un contesto (una serie di informazioni); dal modello lineare di trasmissione del messaggio di Shannon e Weaver si passa ad un modello circolare: il messaggio viene elaborato attraverso un codificatore, un interprete e un decodificatore e ciascun soggetto viene considerato un sistema completo di comunicazione dotato di abilità ricettive e trasmissive. La comunicazione nelle reti telematiche utilizza i principi di quest'ultimo modello. I computer in rete possono comunicare grazie agli standard definiti da organismi internazionali che stabiliscono il formato dei messaggi e le regole da utilizzare durante la comunicazione (protocolli). Progettazione graficaNella trasmissione di informazioni attraverso internet, con le pagine web, assume un ruolo fondamentale il testo scritto. La leggibilità del testo dipende dal set di caratteri utilizzato, dalla dimensione, dagli altri elementi di formattazione e dalla sua impaginazione assieme agli altri elementi visivi. I caratteri possono essere a dimensione fissa, cioè tutti i caratteri occupano la stessa dimensione (es. Courier) oppure proporzionali, cioè diversi caratteri dello stesso set possono avere dimensioni diverse (es. Garamond). Alcuni tipi di caratteri sono serif (con grazie), cioè hanno delle rifiniture sottili alle estremità, altri sans serif (senza grazie). La dimensione del carattere è misurata in punti, e, mentre su carta le dimensioni ottimali sono tra 10-12 punti, sul monitor sono tra i 18 e i 72 punti. La formattazione del testo comprende anche gli effetti che danno più o meno risalto ai caratteri come il corsivo, il grassetto e il sottolineato. Sul web l'impaginazione è affidata al linguaggio HTML (hyper text markup language) che fornisce le direttive al browser su come deve visualizzare il testo assieme agli altri oggetti che compongono la pagina. Le immagini utilizzate nelle pagine web devono essere trattate e compresse prima con opportuni strumenti grafici. Le immagini bitmap sono rappresentate attraverso una griglia di punti (pixel) a ognuno dei quali viene associato un gradiente di colore e una posizione. Più sono i punti e più alta è la risoluzione dell'immagine. Le immagini vettoriali sono definite tramite funzioni matematiche che descrivono le linee e i piani da cui sono composte. L'immagine in questo caso non ha problemi di risoluzione in quanto i cambi di dimensione vengono risolti modificando le variabili contenute nella sua descrizione matematica. Tra i formati compressi bitmap, utilizzati sul web, si distinguono: TIFF, GIF, JPEG, PNG. Metodi e tecniche attualiLo sviluppo di un sito web richiede la conoscenza, almeno di base, del linguaggio HTML oltre che la disponibilità di strumenti hardware e software. La scrittura del codice HTML può avvenire con un semplice editor di testo (es. Notepad) oppure con uno strumento professionale che permette il disegno della pagina in modalità WYSIWYG (What You See Is What You Get) che genera l'HTML in automatico (es. Dreamweaver). Il trattamento delle immagini avviene attraverso programmi di grafica (es. Photoshop) e l'inserimento di filmati avviene grazie a strumenti come Adobe FLASH o Microsoft Silverlight. Bibliografia
Voci correlateCollegamenti esterni
|