Indietro

ⓘ EUCIP Core Build




                                     

ⓘ EUCIP Core Build

EUCIP Core Build è una delle tre aree fondamentali di EUCIP Core, la certificazione di base che consente laccesso alla certificazione di uno dei 21+1 profili professionali individuati nel campo dellICT. La certificazione delle conoscenze degli argomenti EUCIP Core si ottiene superando tre esami, uno per ogni area, gestiti in Italia dallAssociazione italiana per linformatica ed il calcolo automatico. I contenuti vengono individuati dal CEPIS, organismo europeo senza fini di lucro che riunisce trentasei associazioni di informatica, tra cui AICA, in rappresentanza di trentuno paesi europei. Gli argomenti sono raccolti nel syllabus che descrive in dettaglio ciò che il candidato deve sapere per conseguire la certificazione EUCIP Core. In particolare, nellarea Build vengono raccolti tutti gli aspetti relativi alla realizzazione e al miglioramento dei sistemi informativi: il processo di sviluppo dei sistemi, la gestione delle basi di dati, la progettazione software, la cura degli aspetti grafici.

                                     

1.1. Metodologie per lo sviluppo di sistemi Software applicativo e software di sistema

Il software è linsieme dei programmi che permettono ai componenti fisici del computer di svolgere determinati compiti. I programmi sono sequenze di istruzioni, eseguite dallelaboratore secondo un ordine prestabilito, che producono soluzioni a determinati problemi. Si distinguono due categorie fondamentali di software: Software di sistema e Software applicativo. Rifacendosi ad unorganizzazione a livelli, il software di sistema software di base si trova ad un livello basso, vicino alle risorse fisiche della macchina che li esegue, mentre il software applicativo sta ad un livello più alto, lontano dallhardware e più vicino allutilizzatore. Lesempio più comune di software di sistema è il sistema operativo, che è un programma che fa funzionare i vari componenti del computer e permette allutente di interagire con lelaboratore. I software applicativi realizzano funzionalità specifiche direttamente per lutente:

  • applicativi gestionali: contabilità, magazzino ecc.
  • applicativi per intrattenimento: giochi, player audio/video ecc.
  • editoria e multimedialità: elaborazioni di immagini, video, audio ecc.
  • applicativi duso generale: elaborazioni testi, fogli elettronici ecc.
  • applicativi duso professionale: progettazione CAD ecc.
  • applicativi per lo sviluppo: assemblatori, compilatori, debugger, interpreti ecc.
                                     

1.2. Metodologie per lo sviluppo di sistemi Principi e metodologie per lo sviluppo di sistemi

Dal 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 nellimplementazione 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:

  • Il modello a cascata prevede la concatenazione a sequenza delle varie fasi del ciclo di vita. Ogni fase è legata alla precedente e il passaggio da una fase allaltra prevede unattività di revisione ed approvazione alla quale partecipano gli autori dellattività stessa e quelli dellattività successiva design review.
  • Nel modello a rilasci incrementali i prototipi vengono gradualmente sostituiti con un altri con funzionalità sempre maggiori.
  • Il modello a prototipazione sfrutta, come il modello a spirale, un prototipo al fine di offrire al cliente un prodotto intermedio su cui confrontare le proprie esigenze. La differenza con il modello precedente è che il feedback non avviene di continuo, ma a date prefissate.
  • Il modello a spirale utilizza il concetto di prototipo sviluppo parziale del prodotto. Il prototipo viene raffinato di volta in volta con uno scambio continuo tra committente e fornitore.
                                     

1.3. Metodologie per lo sviluppo di sistemi Strumenti per lo sviluppo di sistemi

Per 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. Spesso vengono utilizzati più prodotti CASE nellambito di un progetto, gli upper CASE tools, che si adattano meglio alla gestione dei requisiti della progettazione, e i lower CASE tools, più adatti nelle fasi di programmazione, debugging e testing.

                                     

1.4. Metodologie per lo sviluppo di sistemi Collaudo del software e del sistema

Secondo lANSI 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". La revisione è lattività di valutazione dello stato del progetto che consente lindividuazione dei punti deboli e lanalisi delle possibili soluzioni. La rintracciabilità consente la definizione dei legami tra le varie parti del progetto e i requisiti richiesti. La prova formale serve a dimostrare da un punto di vista logico-matematica la correttezza del software. Il collaudo è il test del sistema su tutte le sue funzionalità per valutare la corrispondenza tra i risultati effettivi e quelli attesi.

                                     

1.5. Metodologie per lo sviluppo di sistemi Implementazione di sistemi

Limplementazione di un sistema software richiede lintervento 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 lausilio 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.

                                     

1.6. Metodologie per lo sviluppo di sistemi Controllo e sicurezza dei sistemi

Secondo le norme ISO, un sistema software deve assicurare "la protezione dei dati e delle risorse di calcolo in termini di integrità, riservatezza e disponibilità." Lintegrità garantisce la protezione dei dati da alterazioni accidentali o dolose, la riservatezza dovrebbe garantire la segretezza delle informazioni, la disponibilità è riferita alla messa a disposizione dellutente autorizzato di tutte le informazioni e tutte le funzionalità alle quali è abilitato.

                                     

2. Gestione dei dati e basi di dati

Con 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.

                                     

2.1. Gestione dei dati e basi di dati Dati e transazioni

Le 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 delloperazione 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 linizio della transazione rollback.

I DBMS supportano la registrazione delle transazioni alle quali forniscono le caratteristiche riassunte nellacronimo ACID: Atomicity Consistency Isolation Durability. Latomicità 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; lisolamento isolation evita laccesso 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.



                                     

2.2. Gestione dei dati e basi di dati Modelli di dati

La progettazione di DBMS viene trattata su tre livelli separati: livello fisico, livello concettuale, livello vista utente. Il livello fisico physical leve l 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 le varie entità identificate vengono messe in relazione tra di loro secondo le necessità. Tra i modelli più diffusi nella progettazione concettuale:

  • il modello reticolare, standardizzato successivamente al modello gerarchico, si basa sullutilizzo di grafi;
  • il modello relazionale consente di organizzare i dati in insiemi di record a struttura fissa, si basa sullalgebra relazionale e sulla teoria degli insiemi ed è strutturato attorno al concetto di relazione;
  • il modello a oggetti rappresenta levoluzione del modello relazionale ed estende alla basi di dati il paradigma della OOP Object-oriented programming.
  • il modello E/R entità/relazioni individua gli oggetti che compongono la realtà da modellare entità, gli attributi che caratterizzano le entità le associazioni che individuano le correlazioni logiche tra le entità; è un modello per la rappresentazione concettuale dei dati ad un alto livello di astrazione;
  • il modello gerarchico, definito durante la prima fase di sviluppo dei DBMS, si basa sulluso di strutture ad albero;


                                     

2.3. Gestione dei dati e basi di dati Data warehouse e data mining

Lesistenza di differenti database in ununica 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 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.

                                     

2.4. Gestione dei dati e basi di dati I database relazionali

Un database relazionale è costituito da più tabelle. Ogni tabella, composta da righe e colonne, rappresenta le informazioni relative a un insieme di soggetti. 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.

                                     

2.5. Gestione dei dati e basi di dati Interrogazioni e rapporti

Linterrogazione, ovvero la lettura e la gestione dei dati dei database, avviene attraverso lalgebra relazionale o il linguaggio SQL structured query language. Lalgebra 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:

  • create, drop, alter per la creazione, cancellazione e modifica delle tabelle;
  • grant, revoke per assegnare o revocare privilegi agli utenti.
  • insert, delete, update per inserire, eliminare, modificare record;
                                     

2.6. Gestione dei dati e basi di dati Amministrazione di basi di dati

Le 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.

                                     

3.1. Programmazione Metodi e tecniche di progettazione software

Secondo 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 allaltra; nella selezione, unistruzione o una sequenza di istruzioni vengono eseguite in base al verificarsi o meno di una determinata condizione; nelliterazione, unistruzione o una sequenza di istruzioni vengono ripetute in base al verificarsi o meno di una determinata condizione. La programmazione strutturata rispetta il teorema di Jacopini e Bohm e quando fa uso di procedure viene chiamata anche programmazione procedurale. Una procedura racchiude un insieme di istruzioni ed è individuata attraverso un nome univoco. Le procedure vengono invocate da un qualsiasi punto del programma principale o da altre procedure e, al termine dellesecuzione delle sue istruzioni, il controllo ritorna allistruzione successiva a quella che lha invocata. Lutilizzo delle procedure, chiamate anche sottoprogrammi o subroutine, permette al programmatore di suddividere il programma in più sottoprogrammi al fine di far svolgere a questi determinate funzione visibili e richiamabili dal resto del codice. La suddivisione del programma in più sottoprogrammi viene chiamata progettazione top-down, dove ogni sottoprogramma può essere scomposto a sua volta in altri sottoprogrammi. Lo scopo è quello di portare rapidamente alla diminuzione della complessità totale del sistema. In alternativa al modello top-down cè la progettazione bottom-up, nella quale parti individuali del sistema sono specificate in dettaglio. Queste parti vengono poi connesse tra loro in modo da formare componenti più grandi, che vengono a loro volta interconnesse fino a realizzare un sistema completo. Altre tipologie di tecniche di progettazione software sono: la programmazione funzionale, che fa un grande uso delle funzioni che vengono trattate come fossero valori e quindi utilizzabili come parametri per altre funzioni; la programmazione orientata agli oggetti OOP, dove il software è composto da una serie di oggetti da usare e manipolare attraverso le funzioni che gli stessi mettono a disposizione. I costrutti fondamentali dellOOP sono le classi e lereditarietà. La classe è un tipo di dato definito dallutente caratterizzato da una serie di attributi, che ne rappresentano lo stato, e di metodi per manipolarlo. Per ogni classe possono essere effettuate delle istanze oggetti che poi vengono utilizzate allinterno del programma mediante i metodi che la classe stessa mette a disposizione. Lereditarietà rende possibile derivare un tipo da una classe già esistente, variando tutte o in parte le vecchie funzionalità overriding o aggiungendone delle nuove.



                                     

3.2. Programmazione Strutture di dati e algoritmi

Tipi di dati

Il dato è lentità astratta sulla quale lavorano i programmi. Per rappresentare i dati si utilizzano le variabili, cui corrispondono locazioni di memoria. Una variabile è definita tramite nome e tipo. Il nome serve a identificarla, il tipo per rappresentare lintervallo di valori che può assumere e quali operazioni si possono effettuare su di esso. I tipi di dati possono essere semplici o strutturati. I tipi di dati semplici sono nativi del linguaggio di programmazione e corrispondono a singoli valori. Esempi di tipi di dati semplici sono: int, float per il linguaggio C, integer, single per il linguaggio Visual Basic. I tipi di dati strutturati strutture di dati sono collezioni di dati di tipo semplice. Ogni collezione è vista come unico oggetto, ma è possibile gestire ogni singolo componente. Tra le strutture di dati:

  • il record, a differenza dellarray, permette di rappresentare strutture eterogenee, quindi di raggruppare informazioni diverse tra loro; il record è formato da un numero di campi che possono essere di tipo semplice o a loro volta strutturati;
  • la lista è un insieme sequenziale di dati, ognuno dei quali contiene la propria informazione e lindirizzo dellelemento successivo; in coda, il puntatore allelemento successivo è NULL.
  • lalbero è una struttura gerarchica, i cui elementi vengono detti nodi; gli alberi vengono utilizzati nella gestione di grandi quantità di dati sui quali vengono effettuate molte ricerche; i nodi sono collegati tra di loro dagli archi; ogni nodo eccetto il nodo radice ha un unico arco entrante e più archi uscenti; un nodo che è unito ad un altro da un solo percorso è detto foglia; gli archi indicano una relazione padre-figlio; il numero dei figli di un nodo determina il grado del nodo; un albero è orientato quando è significativo lordine in cui sono disposti i figli di ogni nodo; un albero di ricerca binaria è un albero orientato in cui ogni nodo ha al massimo due figli e ogni nodo del sottoalbero di sinistra contiene valori minori della radice e ogni sottoalbero di destra contiene valori maggiori della radice.
  • gli array sono sequenze finite di elementi dello stesso tipo, ad ognuno dei quali viene associato un indice posizione; il numero di indici rappresenta la dimensione dellarray; per ogni array è necessario specificare il nome, il tipo degli elementi, la dimensione; gli array possono essere a una o due dimensioni, gli array monodimensionali vettori contengono N+1 elementi dove N è lindice dellultimo elemento e 0 è lindice del primo, mentre gli array bidimensionali sono costituiti da N elementi, ciascuno dei quali è un array di M elementi e ogni elemento dellarray è individuato univocamente da una coppia di indici, dei quali il primo identifica la sua posizione in N e il secondo quella in M;

Algoritmi di ordinamento Esistono varie soluzioni per lordinamento dei dati, ognuna delle quali presenta vantaggi e svantaggi in termini di prestazioni:

  • lalgoritmo mergesort procede dividendo il vettore in due parti, ordinandole e poi unendo le parti ordinate; è un algoritmo di tipo ricorsivo e si basa sul paradigma divide et impera per il quale il vettore viene diviso sempre in parti minori che poi vengono uniti tra loro in modo ordinato;
  • il Quicksort è un ottimo algoritmo di ordinamento ricorsivo che, come mergesort, si basa sul paradigma divide et impera; la base del suo funzionamento è lutilizzo ricorsivo della procedura partition: preso un elemento da una struttura dati es. array si pongono gli elementi minori a sinistra rispetto a questo e gli elementi maggiori a destra.
  • lalgoritmo bubblesort scandice un array monodimensionale un elemento per volta, scambiando il valore con quello successivo se questultimo è minore; ripete loperazione finché non ci sono più scambi il vettore è ordinato;
                                     

3.3. Programmazione Tipi di linguaggi di programmazione

Dal punto di vista storico, i linguaggi di programmazione possono essere suddivisi in:

  • linguaggi di terza generazione detti anche linguaggi ad alto livello che utilizzano istruzioni con caratteristiche vicine al linguaggio umano, quindi più semplici da utilizzare; necessitano di traduttori interprete o compilatori. Tra questi: COBOL, FORTRAN, PASCAL, BASIC; Visual Basic, C, C++, JAVA;
  • linguaggi di quinta generazione ad altissimo livello, nati, in genere, per risolvere problemi legati allintelligenza artificiale.
  • di seconda generazione in cui le istruzioni, in linguaggio assembler, sono identificate attraverso dei simboli che corrispondono a determinate istruzioni in linguaggio macchina; lutilizzo di simboli facilita il lavoro del programmatore, ma rende necessario lutilizzo di traduttori assemblatori dei simboli in linguaggio macchina;
  • linguaggi di prima generazione categoria alla quale appartengono i diversi linguaggi macchina che utilizzano istruzioni espresse in forma binaria o esadecimale; ogni differente microprocessore è capace di eseguire uno specifico linguaggio macchina;
  • linguaggi di quarta generazione, non procedurali, spesso specifici di una determinata applicazione SQL,RPG ecc.;
                                     

3.4. Programmazione Introduzione ai concetti della programmazione - Il linguaggio EPL

Per verificare le conoscenze di programmazione del candidato, in alcuni dei test desame 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 Con la dichiarazione è possibile assegnare un nome simbolico, un tipo e facoltativamente un valore iniziale ad ogni variabile. Esempi:

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; 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 Ogni istruzione deve finire con il carattere punto e virgola ;. I blocchi di istruzioni es. le istruzioni interne ad un ciclo vanno racchiuse dentro le parentesi graffe {}.

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

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 il programma è racchiuso in un blocco principale main e tutte le istruzioni sono chiuse da un punto e virgola;

main { istruzione; istruzione; }

esempio di programma che prende in input due interi, li somma e stampa il risultato

main { int a; int b; readfa,b; int somma; somma=a+b; printfsomma; }

Utilizzo di procedure Lesempio precedente con lutilizzo di una procedura prevede la dichiarazione della variabile somma a livello globale visibile al main e a tutte le procedure. La procedura è esterna al main.

int somma; main { int a; int b; readfa,b; calcolaa,b printfsomma; } calcolan1,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 allistruzione successiva alla chiamata della procedura calcola printfsomma).

Utilizzo di funzioni

A differenza delle procedure, le funzioni restituiscono un risultato

main { int a; int b; readfa,b; printfcalcolaa,b); } calcolan1,n2 { return n1+n2; }

La presenza della variabile somma non è necessaria in questo caso. Listruzione return indica il valore da restituire.

                                     

3.5. Programmazione 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. Viene svolta, quindi, unattività di verifica che accerti che il programma aderisca alle specifiche stabilite in fase di progettazione e unattività di validazione che consiste nella verifica di conformità con i requisiti espressi dal committente. Il funzionamento non corretto di un programma è detto malfunzionamento failure ed è causato dalla presenza di anomalie fault. Con errore error o bug viene indicata la causa di unanomalia. Per la correzione delle anomalie durante la fase di testing viene effettuato il debugging attraverso il quale dopo aver localizzato gli errori e aver determinato la cause si potrà provvedere alla loro eliminazione. Il debugging viene effettuato attraverso il debugger che permette lesecuzione del programma passo tracing, lispezione e la modifica dei valori dei dati, il controllo del flusso del programma.

                                     

4.1. Interfaccia utente Interazione uomo-macchina

La 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. Lanalisi da parte di alcuni studiosi delle entità coinvolte nella comunicazione ha portato allo sviluppo di modelli diversi:

  • modello Shannon e Weaver

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. Lerrore generato dal rumore può venire corretto da segnali aggiuntivi;

  • modello di Jakobson

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;

  • modello di Osgood e Schramm

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 questultimo modello. I computer in rete possono comunicare grazie agli standard definiti da organismi internazionali che stabiliscono il formato dei messaggi le regole da utilizzare durante la comunicazione protocolli.

                                     

4.2. Interfaccia utente Progettazione grafica

Nella 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 limpaginazione è 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 dellimmagine.

Le immagini vettoriali sono definite tramite funzioni matematiche che descrivono le linee e i piani da cui sono composte. Limmagine 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.

                                     

4.3. Interfaccia utente Metodi e tecniche attuali

Lo 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 lHTML in automatico es. Dreamweaver. Il trattamento delle immagini avviene attraverso programmi di grafica es. Photoshop e linserimento di filmati avviene grazie a strumenti come Adobe FLASH o Microsoft Silverlight.