Informatica
Informatica
La parola informatica deriva dal francese informatique e dall’unione di due termini: informazione +
automatica. È stata coniata per denotare la disciplina che studia l’uso dei calcolatori elettronici
per elaborare l’informazione.
L’ICT indica l’insieme delle tecnologie che uniscono le funzioni dell’informatica alla trasmissione
dei dati, per poter realizzare applicazioni distribuite attraverso la cooperazione di più computer.
Concetto di informazione
L’informazione è uno scambio di conoscenza. Ogni messaggio utilizza un codice che deve
essere comune a chi lo trasmette e a chi lo riceve, sulla cui base il messaggio stesso deve essere
interpretato. I codici usano un certo numero di simboli di base e costruiscono messaggi complessi
combinando fra loro i simboli di base seguendo regole di combinazione.
Chi codifica un messaggio lo fa attraverso una successione di scelte, effettuate fra i simboli
semplici e le combinazioni di simboli semplici, messi a sua disposizione dal codice che sta
utilizzando.
Codifica dell’informazione
L’associazione tra un insieme di simboli e di significati si chiama codifica. La codifica realizza una
corrispondenza tra i simboli e il significato. In base a questa associazione, il simbolo porta
l’informazione con sé. L’insieme dei simboli utilizzati viene detto alfabeto e la regola di
associazione viene detta codice.
Ad un concetto possono corrispondere diverse rappresentazioni simboliche (es. 3, tre, three, etc).
È possibile passare da una codifica all’altra tramite un’operazione di transcodifica.
Tra i vari possibili codici, il più semplice è quello binario. Questo codice è composto solo da due
simboli: 0, 1. Usando opportune combinazioni (stringhe) di bit è possibile codificare qualsiasi
informazione.
Bit e byte
Il PC parla un linguaggio fatto di sole due cifre, ovvero 0 e 1 che sono gli stati del bit. Gli stati sono
assimilabili al concetto di circuito aperto e circuito chiuso dell’elettronica. Qualsiasi dato,
programma, contenuto multimediale etc. non è altro che una lunga sequenza di 0 e 1, ovvero un
numero binario.
Si può sempre ricondurre una scelta tra molte possibilità a una sequenza di scelte binarie.
Alcune leggi combinatorie ci consentono di capire quanti bit servono per rappresentare un certo
numero di oggetti.
123 = 1 x 100 + 2 x 10 + 3 x 1
Da binario a decimale
Da decimale a binario
I calcolatori
Uno dei punti di forza del computer consiste nella sua duplice natura di hardware e software. Il
computer è un elaboratore elettronico, cioè una macchina in grado di elaborare le informazioni
utilizzando componenti elettrici, elettronici e meccanici. Fino a pochi anni fa l’idea di una macchina
fisica in grado di manipolare qualcosa di irreale come le informazioni era considerata irrealizzabile.
Concetto di algoritmo
L’informatica consiste in larga parte nel trovare soluzioni a problemi, assicurandosi che tali
soluzioni possano essere attuate da una macchina. Quindi l’informazione viene elaborata per
risolvere problemi.
Di fronte a molti problemi, ci limitiamo a considerare la procedura risolutiva come una scatola
chiusa, che prende dei dati in input e restituisce degli output. Ma cosa c’è all’interno di questa
“scatola”? abbiamo un istruttore, che sa come risolvere il problema, che esprime la sua
conoscenza sotto forma di sequenza di operazioni elementari che un esecutore è in grado di
eseguire.
Un algoritmo è un sistema di regole e procedure di calcolo ben definite che portano alla soluzione
di un problema con un numero finito di operazioni. La definizione di un algoritmo è basata sulla
disponibilità di input e implica la loro trasformazione per la produzione di un output.
Gli algoritmi sono espressi mediante un linguaggio e sono realizzati da un esecutore (uomo o
macchina). Nell’elaboratore gli algoritmi per la soluzione di particolari problemi sono espressi
mediante un linguaggio di programmazione, ossia un linguaggio formale che l’elaboratore è in
grado di comprendere.
L’elaboratore esegue i programmi. Un programma eseguibile dal computer è una sequenza di
istruzioni macchina comprensibili da quel computer. Usando combinazioni diverse di istruzioni e
dati possiamo far fare al computer le cose più disparate. I linguaggi di programmazione
permettono di scrivere programmi con una notazione adatta agli esseri umani (e in alcuni casi)
molto intuitiva.
I connettivi logici
Per poter isolare la struttura logica del linguaggio naturale, valutare la correttezza di un
ragionamento, è utile selezionare una plausibile struttura logica del discorso naturale, lasciando
perdere altri aspetti.
A causa delle vastissime risorse espressive del linguaggio naturale, quest’operazione sarà
necessariamente una riduzione all’essenziale, che acquista univocità ma perde sfumature. Questa
operazione è detta ascesa sintattica, arriva alla costruzione di un linguaggio noto come
linguaggio della logica dei predicati.
Il linguaggio umano è costruito da frasi diverse tra loro. Le frasi affermative possono essere vere o
false e sono dette: proposizioni.
Sulle proposizioni, che hanno la caratteristica di poter assumere solo valori binari, è definita
l’Algebra di Boole, la logica su cui si basa il funzionamento del computer.
Una proposizione è ogni espressione linguistica per la quale abbia senso chiedersi se è vera o
falsa. A determinati termini che hanno un ruolo centrale nella combinazione logica delle
proposizione associamo dei simboli detti connettivi logici.
L’hardware è l’insieme dei dispositivi fisici, elettronici e meccanici che costituiscono l’elaboratore e
che permettono l’esecuzione materiale delle operazioni. L’hardware non comprende però solo
l’esterno del calcolatore, ma anche il suo interno.
Tra i componenti hardware possiamo trovare: processore (CPU), hard disk, scheda video, monitor,
tastiera, webcam etc.
Il punto di forza dei computer sta nel fatto che queste istruzioni possono essere codificate e
conservate nella macchina stessa, ma anche nel fatto che il software cambia a seconda
dell’utilizzo che se ne deve fare. In questo modo la stessa macchina hardware diventa di volta in
volta una macchina diversa (macchina da scrivere, consolle per videogiochi etc. in base al
software che usiamo).
Il software di sistema, (es. principale: sistema operativo windows, linux etc), ha lo scopo di
permettere all’utente di interagire facilmente con l’hardware, sfruttandone a pieno le potenzialità.
Basi di dati
La parola database viene tradotta con la locuzione base di dati.
Un database è un archivio contenente dati eterogenei, organizzati dall’elaboratore grazie ad
applicativi denominati DBMS.
Per archivio si intende una memoria di lavoro per gestire una grande quantità di dati.
Altre funzioni sono: validazione dei dati (controllando che siano corretti), normalizzazione del
database (controllando che non ci siano inutili duplicazioni), indicizzazione dei dati (organizzandoli
e ordinandoli), verifica della coerenza dei dati (in modo che alla modifica di un singolo dato
vengano aggiornati tutti quelli dipendenti da esso), regolamentazione dell’accesso agli utenti.
Un DMBS può ricevere comandi direttamente dall’utente in modo interattivo e tramite particolari
comandi, oppure tramite un programma scritto in un linguaggio algoritmico tradizionale che ingloba
alcuni comandi appartenenti ai linguaggio accettati dal DMBS.
Tipologie di Database
Database Relazionale
Nel Database Relazionale i dati sono organizzati in più tabelle, che possono essere correlate, ed è
possibile estrarre informazioni da più tabelle contemporaneamente.
Il progetto concettuale serve a tradurre la descrizione informale della realtà, descritta nei requisiti
del DB tipicamente sotto forma di documenti e moduli di vario genere, in uno schema formale e
completo da indipendente dai criteri di rappresentazione dei DMBS usato. Il prodotto si chiamerà
schema concettuale.
È la prima fase di costruzione di un DB, il cui scopo è quello di individuale la struttura dei dati che
devono essere archiviati e le relazioni tra loro esistenti. Questa fase prevede la costruzione di
Diagrammi Entità Relazionali (ERD), costituiti da 4 elementi:
Entità: un qualsiasi oggetto concettuale che caratterizza l’applicazione in questione e che può
essere individuato e distinto dagli altri.
Attributi: insieme di valori che caratterizzano un’entità.
Attributi chiave: gli attributi sufficienti ad identificare univocamente un’entità.
Relazioni: dipendenze o associazioni di interesse formativo tra le entità rappresentate.
Il progetto logico consiste nella traduzione dello schema concettuale in termini di un determinato
modello logico di dati usato dal DBMS che si intende utilizzare. Il risultato è lo schema logico.
Questo progetto include anche l’ottimizzazione della rappresentazione in funzione delle operazioni
eseguite.
Il progetto fisico è l’ultima fase della progettazione di un DB, prevede la sua implementazione,
ovvero la creazione vera e propria del Database fatta al computer. Prima di fare ciò, per ogni
campo di ciascuna tabella occorre definirne il tipo a seconda dell’informazione che contiene,
potendo scegliere tra diverse opzioni, ad esempio testo, numero, data, valuta, logico, contatore.
L’applicativo più comunemente usato per l’implementazione è Microsoft Access.
Le tabelle sono le unità base di un Database. Rappresentano la struttura fisica tipica all’interno
della quale vengono memorizzati i dati. Un DB è in grado di gestire contemporaneamente più
tabelle. Loro scopo è quello di raggruppare record omogenei, ovvero raccolgono un insieme di
dati relativi ad un argomento specifico (entità).
Una tabella è costituita da un insieme di campi, cioè spazi nei quali vengono inseriti i dati, nonché
le informazioni relative all’argomento della tabella.
Ogni riga prende il nome di record, e contiene tutte le informazioni relative ad un’entità
dell’argomento.
Ogni colonna riporta le informazioni relative ad uno specifico attributo.
Una tabella è il risultato della trasformazione del diagramma ER. La prima fase della sua
creazione consiste nel determinare:
Lo scopo della tabella e quindi l’argomento cui fa riferimento ciò che nel diagramma ER
rappresenta l’entità.
I campi della tabella e quindi il tipo di informazioni che si intendono raccogliere relative
all’argomento ciò che nel diagramma ER rappresentano gli attributi.
Nella creazione di tabelle, bisogna evitare ridondanze, evitare di creare voci con lo stesso nome
che contengano informazioni diverse, e accertarsi che ogni tabella contenga informazioni
omogenee in modo da agevolare l’archiviazione e la ricerca delle informazioni.
La chiave primaria di una tabella è un campo indicizzato, perché permette di ordinare i dati
secondo un ordine logico e trovare rapidamente quelli che cerchiamo.
Gli indici in una tabella, quindi, permettono di ordinare i record secondo un ordine logico, basato
cioè sul contenuto e non sull’ordine di inserimento, e di trovare i record che ci interessano più
velocemente, evitando di doverli scorrere tutti.
In una tabella l’indice può essere anche un campo diverso da quello chiave. Tra le proprietà
attribuibili a ogni campo c’è anche “indicizzato”. Ciò significa che i record della tabella saranno
ordinati secondo il contenuto di quel campo e la fase di ricerca delle informazioni sarà agevolata
proprio attraverso il campo stesso.
Per organizzare al meglio un archivio bisogna creare tante tabelle quante sono le tipologie di dati
da raccogliere. Tra le tabelle che costituiscono un archivio è possibile creare delle relazioni, in
modo da poter estrarre informazioni da più tabelle contemporaneamente, e quindi unire tali
informazioni. Per relazioni si intendono quindi le associazioni tra tabelle.
Due tabelle per essere correlate devono avere un campo in comune. Una relazione tra due
tabelle si basa sempre sull’uso di una:
Chiave primaria, che nella tabella A identifica in modo univoco ogni singolo record e perciò non
ammette duplicati
Chiave esterna, che permette di collegare la tabella B con la tabella A, riportando gli stessi dati
della chiave primaria di quest’ultima, ammettendo duplicati.
Una relazione è quindi una corrispondenza tra il campo chiave primaria di una tabella x e il campo
chiave esterna di una tabella y.
La chiave primaria nella tabella autori e non ammette duplicati perché identifica in maniera univoca
ogni singolo autore. La chiave esterna nella tabella libri e ammette duplicati perché libri diversi
possono essere stati scritti dallo stesso autore. Nell’esempio i due libri sono stati scritti dallo stesso
autore. Grazie alla relazione tra le due tabelle resa dalla chiave esterna “ID Autore”, per ogni libro
è possibile avere delle informazioni anche sull’autore, estrapolate dalla tabella primaria.
Definire la cardinalità significa esprimere numericamente il tipo di relazione che c’è tra due tabelle
(es. 1:1); il numero minimo e massimo di istanze di relazione per ogni istanza di un’entità cui quella
relazione si riferisce.
La relazione che intercorre tra due tabelle di un DB può essere di tre tipi:
Relazione uno a uno: un record di una tabella può essere correlato ad un solo record di una
seconda tabella. Quindi la chiave esterna non ammette duplicati.
Relazione uno a molti: un record univoco di una tabella può essere correlato a più record di
un’altra tabella, ma non viceversa.
Relazione molti a molti: più record di una tabella possono essere correlati a più record di un’altra
tabella. Questo tipo di relazione comporta necessariamente l’introduzione di una terza tabella,
detta tabella di congiunzione, in cui si riportano le chiavi primaria di entrambe le tabelle, che qui
diventano chiavi esterne e quindi ammettono duplicati.
La tabella di congiunzione permette di relazionare due tabelle aventi più record collegati tra loro,
attraverso l’impostazione di una relazione 1:X tra ciascuna tabella e la tabella di congiunzione
stessa.
Definite le relazioni, è possibile impostare l’Integrità Referenziale. Date due tabelle correlate A
(primaria) e B (secondaria), l’IR definisce alcune regole principali:
Non è possibile immettere un valore nel campo chiave esterna della tabella correlata B che non
esista nella chiave primaria della tabella primaia A
Non è possibile eliminare un record da una tabella primaria A se esistono record corrispondenti in
una tabella correlata B
Non è possibile modificare un valore chiave primaria nella tabella primaria A se quel record
dispone di record correlati (nella tabella B).
L’IR serve per assicurare che le relazioni tra i record delle tabelle correlate siano valide.
Query
Una query è uno strumento per interrogare un database. Permette di recuperare specifiche
informazioni tra i tanti dati archiviati nel database e raccolti in tabelle correlate, effettuando ricerche
incrociate sui record che rispondono a determinate caratteristiche, filtrando così i dati che
interessano, provenienti anche da tabelle diverse.
SQL (Structured Query Language) è il linguaggio standard per creare una query, nonché per
interrogare il database.
Query di Ordinamento: ordina i dati della ricerca secondo l’ordine da noi stabilito, ovvero secondo
i dati di un campo che scegliamo.
Query di Aggiornamento: permette di aggiornare il valore dei campi di una tabella in base alle
istruzioni della query.
Query di Join: chiama in gioco due tabelle correlate tra loro e permette quindi di estrarre specifici
dati appartenenti a entrambe le cartelle. Viene cos’ detta perché unisce i dati di due tabelle, che
devono però avere un campo in comune.
Operatori di confronto
Gli operatori di confronto servono a determinare uguaglianze e disuguaglianze tra valori e ad
effettuare ricerche all’interno dei dati.
Ad alcuni di questi operatori corrisponde un operatore contrario che fa uso del termine NOT
IS NOT
NOTLIKE
NOT BETWEEN
NOT IN
NOT EXISTS
Operatori logici
AND lega due condizioni, restituisce il valore TRUE se e solo entrambi gli operandi sono veri
OR lega due condizioni, restituisce TRUE se e solo almeno uno degli operandi è vero
NOT accetta un solo operando e restituisce il valore inverso: falso se è vero, vero se è falso
XOR accetta due condizioni, restituisce TRUE se e solo se uno degli operandi è vero
Architettura di un Calcolatore
Modello di Von Neumann: verso la metà del secolo scorso, sotto l’impulso dello sforzo bellico
dovuto alla seconda guerra mondiale, gli sviluppi dell’elettronica hanno reso possibile costruire
dispositivi che sono particolarmente adatti ed efficienti per la memorizzazione e la successiva
elaborazione di stringhe di bit.
Utilizzando la codifica universale fornita dal codice binario, l’idea fu quella di memorizzare nella
macchina non solo i dati, ma anche le istruzioni che le occorrevano per svolgere determinate
operazioni. Ciò rendeva la macchina programmabile, cioè non era più necessario reinserire le
istruzioni a ogni esecuzione ottenendo un minor spreco di tempo ed una maggiore velocità di
operazione. Lo scopo originale di queste macchine era di calcolare a grandissima velocità le
complesse tabelle numeriche che occorrevano per i calcoli balistici relativi alle traiettorie dei
proiettili.
La struttura del Modello di Von Neumann comprende 6 unità fondamentali.
L’Unità di Controllo (CU) si occupa di controllare tutte le operazioni del calcolatore, interpretare le
istruzioni prelevate dalla memoria e inviare alle altre unità i segnali per l’esecuzione delle
operazioni.
L’Unità aritmetico-logica (ALU) fornisce la capacità di effettuare operazioni aritmetiche di base.
Queste sono spesso integrate in una Unità di Elaborazione Centrare: la CPU.
La Memoria ha lo scopo di conservare le istruzioni e i dati da elaborare e i risultati ottenuti dalle
elaborazioni.
L’Unità di Ingresso (input) immette le informazioni nel calcolatore per farle elaborare.
L’Unità di Uscita (output) riceve le informazioni dalla memoria del calcolatore per renderle pronte
all’uso.
Il Bus è il canale di comunicazione che consente ai dati di transitare fra diversi componenti del
calcolatore.
Per ogni istruzione del programma la CPU, tramite la sua parte Controllo, ordina:
Il prelevamento di una istruzione dalla Memoria
La decodifica, cioè la interpreta capendo quali azioni comporta
La esegue utilizzando le opportune unità coinvolte
FETCH-DECODE-EXECUTE
Tutti i moderni calcolatori hanno la stessa architettura di base, che riprende il modello di Von
Neumann.
Un’unità centrale di elaborazione (CPU) che effettua e controlla le operazioni, elabora e smista i
dati di ingresso e uscita
Una memoria centrale che registra le istruzioni di un programma e i dati
Le unità periferiche di input/output che svolgono funzioni di comunicazione tra l’utente ed il
calcolatore
I bus necessari per scambiare dati tra le varie componenti
Il microprocessore è il vero e proprio cuore del PC, e corrisponde a quella che nel Modello di Von
Neumann veniva chiamata CPU; acronimo di Central Processing Unit, è l’unità centrale di
elaborazione.
Prende il nome di processore poiché svolge sistematicamente precise operazioni, elabora dunque
un “processo” ovvero legge le istruzioni e i dati dalla memoria ed esegue le istruzioni.
Un moderno microprocessore è realizzato come un unico componente elettronico integrato (anche
detto microchip) ed è composto da:
Unità di Controllo (CU) che interpreta le istruzioni da eseguire e coordina le azioni delle altre
componenti del calcolatore.
Unità Aritmetico-Logica (ALU) che esegue le operazioni matematiche
Zone di immagazzinamento dove vengono custoditi i dati in fase di elaborazione
Un bus “interno” tra le componenti della CPU
Una caratteristica fondamentale del processore è la sua velocità, cioè la capacità di eseguire una o
più operazioni al secondo. Questa velocità viene regolata da un orologio detto clock. La cosiddetta
velocità di clock viene espressa in hertz o cicli al secondo. Il legame tra la velocità di clock e la
capacità elaborativa del processore è molto complesso. Si può affermare che maggiore è la
velocità di esecuzione delle singole operazioni maggiore è la potenza del processore.
Tipi di memoria
Il nostro PC lavora elaborando dati ed eseguendo istruzioni che sono conservate in una memoria.
Le memorie possono essere distinte in:
Memoria di lavoro o centrale (MC), necessaria per l’accensione del pc, permette di caricare il
sistema operativo e di lavorare con i programmi e i dati.
Memoria di archiviazione o di massa (MM), utilizzata per registrare e conservare il sistema
operativo, i dati e i programmi nel tempo.
Si ha accesso diretto quando si può raggiungere l’informazione, ovunque essa sia localizzata,
immediatamente e senza dover attraversare un percorso. Es. memoria RAM, Zip, CD…
Si ha accesso sequenziale quando, per raggiungere l’informazione, è necessario scorrere tutte le
informazioni presenti prima di essa fino a posizionarsi sul punto richiesto. Es. videocassette,
dispositivi a nastro…
Utilizzando differenti tecnologie si possono realizzare diversi tipi di memorie con differente
combinazioni dei suddetti parametri.
Mediante tecnologie elettroniche (le stesse dei microprocessori) si possono realizzare memorie
veloci, volatili, ad accesso casuale, di capacità limitata, costose. Es. RAM e ROM.
Mediante tecnologie magnetiche & ottiche si possono realizzare memorie significativamente più
lente di quelle elettroniche, non volatili, ad accesso sequenziale o misto, di capacità elevata, meno
costose di quelle elettroniche. Es. CD e DVD
La Read Only Memory (ROM) è un tipo di memoria non volatile, cioè è una memoria che
conserva i dati e le istruzioni nel tempo. È di sola lettura, poiché l’utente non può modificarne i
contenuti: una ROM viene scritta solo in fabbrica con una dotazione di software denominata
firmware (è modificabile con speciali procedure di aggiornamento). Inoltre conserva i programmi
necessari per l’avvio del computer. Es. fa parte del firmware il BIOS, cioè quel gruppo di istruzioni
che consentono al processore di attivarsi al momento dell’accensione del computer, di rispondere
agli impulsi del clock e di effettuare un piccolo autotest di funzionamento.
La memoria centrale costituisce l’originale memoria di lavoro del modello di Von Neumann. È
solitamente realizzata con una tecnologia detta DRAM (dynamic RAM) meno veloce ma più
economica della SRAM (static RAM) utilizzata nelle cache. È una memoria ad accesso
casuale/diretto, cioè il tempo di reperimento delle informazioni non dipende dalla loro posizione
nella memoria stessa. Viene messa in comunicazione con il microprocessore dal memory bus
integrato sulla scheda madre. Viene assemblata sotto forma di moduli (di memoria) costruiti in
modo da poter essere allocati negli appositi slot della scheda madre. Il numero di slot disponibili
definisce la cosiddetta “espandibilità” di memoria (cioè le dimensioni massime che la memoria
centrale di un dato PC può raggiungere).
La memoria cache (“nascondiglio” o “deposito segreto”) è una memoria speciale della CPU e, a
differenza della memoria centrale (RAM) è più ridotta in termini di capacità di memorizzazione ma
più veloce. Contiene una copia temporanea delle istruzioni e dei dati che vengono maggiormente
utilizzati dalla CPU. Contiene una copia temporanea delle istruzioni e dei dati che vengono
maggiormente utilizzati dalla CPU. Quando è necessario l’accesso ad un dato, questo viene prima
cercato nella cache e in seguito nella memoria centrale. Nei moderni PC esistono vari tipi che si
differenziano a seconda del luogo dove sono collocate:
cache di primo livello (L1) viene integrata sullo stesso chip del processore, in tal modo essa, pur
essendo di dimensioni molto piccole (qualche KB), è estremamente veloce e consente al
processore di operare efficacemente.
cache di secondo livello (L2) è invece esterna al processore in modo da poter raggiungere
dimensioni più significative (qualche centinaio di KB). È estremamente veloce, ha lo scopo di
realizzare un livello intermedio tra la memoria centrale ed il processore.
La memoria di massa, detta anche memoria secondaria è una memoria non volatile che
memorizza i dati in modo permanente. È realizzata con tecnologie magnetiche ed ottiche (a
differenza della RAM e della ROM) e viene vista come una categoria di memoria destinata alla
archiviazione. Ha costi nettamente più bassi rispetto alla memoria centrale ed i tempi di accesso
sono molto più lenti a causa delle diverse caratteristiche tecnologiche. Esistono vare categorie di
memorie di massa:
I dischi (floppy disk, hard disk) nei quali i dati sono registrati su piste magnetiche o ottiche
concentriche ricavate su di un disco
I nastri magnetici nei quali i dati sono registrati lungo una fettuccia di materiale magnetico che
può scorrere sotto le stazioni di lettura e scrittura
Le memorie ottiche (CD, CD-ROM, DVD), dischi sui quali viene utilizzato un laser per riconoscere
sulla superficie parti nere (pits) o luminose riflettenti (lands) che codificano i bit 0 e 1.
L’hard disk (HD) o disco fisso, è il principale dispositivo di memoria di massa e viene utilizzato per
la memorizzazione permanente dei dati nel computer. La capacità (ai giorni nostri) è generalmente
espressa in GB/TB. È possibile dotare un PC di più HD in modo da aumentare la sua capacità
totale di memorizzazione. È costituito da uno o più dischi (alluminio o vetro) rivestiti di materiale
ferromagnetico in rapida rotazione e da due testine poste a piccolissima distanza dalle superfici in
grado di leggere e scrivere i dati. Il tempo di accesso alle informazioni non è costante
(diversamente da RAM e ROM) ma funzione della posizione del dato sul disco.
Dipende sia dallo spostamento della testina di lettura che dalla rotazione del disco fin quando non
viene trovato il dato; può variare notevolmente in funzione della velocità di rotazione del disco e di
altre caratteristiche costruttive.
Il Compact Disc (CD) ed il Digital Versatile Disk (DVD) sono dischi di registrazione ottica, mobile
e con buona capacità di memorizzazione (CD 700MB – DVD 5GB). Sono composti da un disco di
resina trasparente, solitamente di 12 cm di diametro, ricoperto da un sottile foglio di materiale
metallico sul quale sono memorizzate le informazioni. Sono i dispositivi di memorizzazione di
massa di tipo rimovibile più diffusi. Erano originariamente di tipo ROM (read only).
Successivamente sono state introdotte opportune periferiche (masterizzatori), e opportuni supporti
che possono essere scritti una o più volte. Per le loro capacità sono utilizzati per memorizzare film,
software, file mp3 ecc.
Una chiave usb, detta pendrive, è un dispositivo portatile per la memorizzazione di massa di
ultima generazione. I dati vengono immagazzinati in una memoria flash contenuta nella chiave.
Data la notevole capacità di memoria, le piccole dimensioni e la velocità di lettura e scrittura, la
chiave usb ha recentemente conquistato il ruolo di principale dispositivo rimovibile per la
memorizzazione.
Nel modello di Von Neumann per poter introdurre i dati in un elaboratore e rendere possibile
l’interazione tra questo e il mondo esterno, è necessaria la presenza di periferiche di ingresso e
uscita (input/output). La periferica non è altro che un dispositivo hardware collegato al computer e
gestito dal sistema operativo attraverso l’utilizzo di opportuni “driver” software.
Tastiera: “figlia” della macchina da scrivere, viene utilizzata per poter immettere dati in formato
alfabetico e numerico. Costituita da una serie di tasti su cui vi è una serigrafia che indica il
carattere che si ottiene con la pressione e che manda il relativo segnale del computer. Diverso
posizionamento dei tasti a seconda del paese di destinazione, design e modalità di collegamento
al pc.
Mouse: dispositivo in grado di inviare al sistema un comando da parte dell’utente in modo tale che
a un suo movimento su una base solida lineare ne corrisponda uno analogo da parte di un
indicatore sullo schermo del monitor detto puntatore. È dotato di uno o più tasti ai quali possono
essere assegnate varie funzioni. Può essere con filo oppure wireless, ottico oppure meccanico, e
le componenti principali sono: rotella di scorrimento pagina, rotelle di rilevazione movimento, sfera
di movimento, vano batterie
Monitor: dispositivo che mostra dati ed immagini a video elaborate dal computer. Le immagini
sono disegnate illuminando in vari modi i puntini luminosi (detti pixel) che costituiscono lo schermo.
La quantità di pixel che si possono illuminare determina la risoluzione del video espressa in
numero di pixel per colonna e per riga (es. 1280x1024 vuol dire 1024 righe ciascuna composta da
1280 di pixel). La grandezza è misurata in pollici (come per i televisori).
Stampante: permette un output su supporto cartaceo (e non solo). Il modo con cui i dati sono
rappresentati sul supporto cambia in ragione della tecnologia con cui è costruita la stampante
stessa. Le stampanti più comunemente utilizzate sono:
Inkjet (a getto di inchiostro): l’immagine sul foglio è il frutto della presenza di tante goccioline di
inchiostro. È poco adatte a grandi quantità di stampe per la scarsa velocità e l’altro consumo.
Laser: la stampa sul foglio è frutto di un procedimento fotografico. È adatta per chi necessita di
alta qualità di stampa ad un’alta velocità.
Oltre a tutte le componenti elencate, al suo interno l’elaboratore supporta altri tipi di schede che
curano alcune sue caratteristiche specifiche. Tra di esse le principali sono:
La scheda audio consente al PC di gestire il suono. Si sono sviluppate raggiungendo alti livelli
tecnologici fino ad arrivare all’audio dolby digital che dà profondità al suono, rendendo
incredibilmente realistica l’ambientazione sonora. Questa caratteristica permette ai musicisti di
comporre, modificare e suonare i solo brani utilizzando il PC come una vera orchestra
La scheda di rete permette ad un calcolatore di poter comunicare con uno o più calcolatori. Le
schede di rete si differenziano sia per la velocità a cui trasferiscono il segnale che per la tipologia
di connessione (con o senza cavo).
Tipologie di computer
I computer non sono tutti uguali, ma possono essere classificati in base alla loro potenza ed al loro
utilizzo.
Supercomputer: sono i computer più potenti e vengono impiegati, tra l’altro, nella progettazione
industriale e nelle previsioni atmosferiche. Sono macchine estremamente costose, di difficile
impiego e quasi sempre utilizzate da organismi statali/militari.
Mainframe: sono computer progettati per essere usati da molti utenti contemporaneamente
attraverso terminali. Questi ultimi sono composti essenzialmente da uno schermo e da una tastiera
che devono comunicare con il sistema centrale. I terminali non sono dei computer, ma piuttosto
delle periferiche input/output.
Minicomputer o mini: possono essere descritti come dei mainframe meno potenti ovvero pensati
per essere utilizzati da un numero minore di utenti. Posti al centro di una rete di terminali, ognuno
dei quali lavora con il mini come se fosse indipendente dagli altri. Quando necessario, gli utenti
possono condividere direttamente sia programmi e dati, sia le periferiche.
Workstation: sono stati i primi computer progettati per uso individuale; hanno alto rendimento e
medio/piccole dimensioni. Sono impiegate soprattutto in ambienti lavorativi di calcolo scientifico e
matematico e per lo sviluppo di grafica tridimensionale.
Personal Computer (PC): la grande diffusione e l’enorme successo dell’informatica, assieme alle
evoluzioni tecnologiche che hanno consentito la costruzione di calcolatori di piccole dimensioni,
bassi consumi e costi contenuti, hanno portato nei primi anni ’80 all’introduzione del personal
computer. Un esempio di PC sono i Desktop, ovvero i cosiddetti computer “da scrivania”, dedicati
al singolo utente e che hanno costi contenuti, capacità elaborative autonome e sono progettati per
essere posizionati permanentemente in casa o in ufficio.
Notebookk o “Laptop”: computer portatili, leggeri e maneggevoli, progettati per un utilizzo pratico
e frequente in qualunque situazione (batteria ricaricabile) che ne consente il funzionamento
autonomo. Estremamente leggeri anche a scapito della dotazione di periferiche. Molti modelli di
Notebook sono corredati da una apposita unità detta “docking station”, che ne rende possibile l’uso
in maniera equivalente ad una postazione fissa da ufficio (ad esempio, mediante la connessione
ad uno schermo più grande e a delle memorie di maggiore capacità).
Server: è usata come denominazione per modelli destinati ad essere utilizzati nella gestione di
applicazioni (server) di rete con pesanti carichi di lavoro, spesso senza il controllo di operatori e
per un periodo di tempo prolungato. Qualsiasi workstation è in grado di agire come server, tuttavia
i server in genere hanno caratteristiche speciali al fine di renderlo più adatto, come sistemi di
alimentazione e connessioni di rete ridondanti, o grandi capacità di memoria di massa. Sono
spesso realizzati in forma e dimensioni tali da poter essere ospitati in appositi armadi.
Reti di calcolatori
Fin dagli anni ’60 si era avuta l’idea di far comunicare tra loro calcolatori. Le risorse di calcolo
disponibili all’epoca erano ridotte, per cui l’idea di avere un sistema unico grazie al quale fosse
possibile condividere tali risorse era davvero interessante. Diversi i problemi da affrontare: i
calcolatori parlavano “lingue diverse”, ed erano spesso dislocati fisicamente in strutture diverse.
Ben presto ci si è convinti della necessità di avere sistemi distribuiti che mettessero in
comunicazione più elaboratori e dunque che mettessero a disposizione di tutti le loro risorse.
I sistemi distribuiti sono caratterizzati dalla presenza di molti calcolatori che interagiscono fra
loro. Tali sistemi si adattano in modo naturale alla struttura, tipicamente distribuita, delle imprese e
delle organizzazioni in cui essi operano.
La diffusione dei sistemi distribuiti, iniziata negli anni ’80, è avvenuta come reazione alla prevalente
organizzazione centralizzata dei sistemi informatici, basati sulla presenza di un unico grande
centro di elaborazione dati. Una costante e decisa tendenza in direzione dei sistemi distribuiti ha
caratterizzato il decennio passato e ha condotto allo sviluppo delle reti di calcolatori, intra- e inter-
organizzazioni. L’esempio più noto di rete di calcolatori che attraversa diverse organizzazioni è
rappresentato da Internet – le rete informatica mondiale.
1969: creazione della prima rete dal Dipartimento della Difesa americano attraverso i finanziamenti
dell’agenzia Advanced Research Projects Agency (ARPA) e con la collaborazione di università e
centri di ricerca per garantire la continuità delle comunicazioni anche in caso di bombardamento
nucleare.
1983: la componente militare è stata disaggregata e costituita nella forma di rete specifica
(MILnet). La parte restante destinata a interconnettere le università e i centri di ricerca di tutto il
mondo è diventata il ceppo originario dell’attuale Internet. ARPAnet è stata poi smantellata nel
1990.
ARPAnet è stato il terreno per lo sviluppo iniziale della Internet Protocol Suite (circa 100 protocolli
standard) che regolano le varie forme di comunicazione e trasmissione di dati tra reti dissimili.
L’appalto per la sua costruzione fu concesso ad una società chiamata BBN, che sviluppò il
protocollo a comunicazione di pacchetto (NCP) in seguito rimpiazzato dal TCP/IP e che ideò i primi
Interface Message Processor (IMP): computer particolari che eseguivano funzioni corrispondenti
a quelle degli odierni router installandoli in 4 università americane. L’IMP fungeva da intermediario
tra linee di connessione e mainframe, i grandi elaboratori centralizzati su cui all’epoca risiedevano
tutte le informazioni e tutti i programmi.
Tutto il traffico che viaggiava su queste connessioni non era confidenziale e serviva
prevalentemente a titolo di ricerca e sperimentazione.
Una delle discipline principalmente coinvolte nello studio dei sistemi distribuiti è la Telematica. A
metà strada tra le Telecomunicazioni e l’Informatica: la scienza che studia le tecniche e i protocolli
per la trasmissione dati, ossia i metodi con i quali i calcolatori comunicano fra loro.
Premessa essenziale alla realizzazione dei sistemi distribuiti è la capacità di trasmettere dati lungo
diversi canali di trasmissione. La trasmissione dati consente di collegare fra loro due calcolatori,
oppure di collegare un calcolatore ai suoi terminali remoti. Il parametro più significativo per
caratterizzare la trasmissione dati è la velocità di trasmissione, misurata in bps (bit per second).
Linea telefonica: a seconda delle tecniche e dei protocolli di comunicazione, si hanno velocità di
trasmissione che vanno dai 56 Kbps, a 128 Kbps fino a diversi Mbps.
Fibra ottica: progettato per la trasmissione veloce, può raggiungere velocità dell’ordine di 10
Gbps.
One elettromagnetiche: le connessioni si stabiliscono senza cavi. Gli standard attuali per
collegamenti forniscono prestazioni da 700 Kbps a 56 Mbps.
Le Reti di Calcolatori collegano elaboratori, detti nodi, situati ad una certa distanza fra loro,
fornendo a ciascuno vari servizi, ossia funzionalità disponibili a tutti i calcolatori della stessa rete.
Le comunicazione fra i nodi della rete ha luogo tramite scambio di messaggi, ossia pacchetti – o
sequenze di pacchetti – di byte inviati da un elaboratore all’altro ovvero lungo il canale di
comunicazione/trasmissione. Ogni messaggio scambiato è scomposto in una sequenza di
pacchetti, e ciascun pacchetto è trasmesso individualmente. I pacchetti sono sequenze di byte
(sequenze di blocchi di 8 bit) in genere di eguale lunghezza.
Nella comunicazione tra due elaboratori è necessario specificare il ruolo che ognuno di essi
assume. Si distinguono principalmente due tipi di architettura: client-server e peer to peer.
Una rete di calcolatori può avere una topologia regolare o irregolare, cioè una determinata struttura
di connessioni fra i calcolatori:
Topologie Regolari: predominanti nelle reti di tipo LAN – Local Area Network
Topologie Irregolari: predominanti nelle reti Geografiche di tipo WA – Wide Area Network.
Reti Locali. Le LAN sono sviluppate all’inizio degli anni Ottanta come soluzione tecnologica
avanzata per sfruttare al massimo la potenza dei personal computer e delle workstation. Questi
sistemi dispongono di processori ad alte prestazioni e video grafici ad elevata risoluzioni tali da
soddisfare molte delle esigenze dei loro utenti. Sono previsti anche servizi esterni, come stampanti
ad alta risoluzione oppure grandi memorie di massa.
Un LAN consente di collegare ogni utente a questi servizi e in più consente il collegamento alla
rete Internet. Un esempio è la rete ETHERNET, sviluppata dei laboratori di ricerca della Xerox di
Palo Alto e adottata come standard comune.
Reti Geografiche. La WAN collega calcolatori situati a grandi distanze. Gli elaboratori connessi ad
una WAN svolgono compiti applicativi specifici, es. gestire grandi basi di dati. Il sistema
BANCOMAT è ad esempio una rete WAN. In una rete WAN i programmi che operano presso un
nodo possono coinvolgere altri nodi costruendo computazioni distribuite. Uno dei nodi caratteristici
delle WAN è L’Intermediate Message Processor (IMP), che svolge essenzialmente la funzione di
ricevere e trasmettere i messaggi garantendo così la comunicazione tra ogni nodo della rete.
In una rete a topologia irregolare, ciascun pacchetto viaggia in rete da un nodo mittente ad un
nodo destinatario attraverso altri nodi; quando un nodo intermedio riceve un pacchetto, identifica
il destinatario e lo ritrasmette direttamente al destinatario, se è direttamente collegato, altrimenti ad
un successivo nodo intermedio più vicino al destinatario. Questo procedimento prende il nome di
instradamento dei pacchetti o routing. È evidente che il pacchetto debba contenere
un’informazione strutturata in grado di permettere questi hops.
In una rete topologicamente ben definita, una volta assegnato il canale di trasmissione che lega
due calcolatori, e una volta stabilito che la comunicazione avviene attraverso lo scambio di
messaggi composti da pacchetti ben formati, quello che manca per attivare una vera e propria
comunicazione è un protocollo che ne stabilisca le regole.
Modelli di riferimento
Dato che i protocolli devono essere utilizzati da tutti gli elaboratori, essi vengono definiti nell’ambito
di standard internazionali.
Canale di comunicazione/Wireless Internet Service Provider (WISP): ponti radio Hiperlan per
la realizzazione di dorsali di trasporto della Banda Larga. Base Station e apparati Customer
Provider Equipment (CPE) per la diffusione via radio della Banda Larga.
Computer: i moderni SO sono predisposti per l’accesso alle Reti (scheda di rete inclusa
nell’Hardware).
Modem: il termine deriva dall’unione di Modulatore e Demodulatore. Codifica e trasforma/modula
dati binari in impulsi elettromagnetici veicolabili attraverso una normale linea telefonica.
Decodifica/demodula gli impulsi elettromagnetici ricevuti dalla linea telefonica PSTN, traducendoli
nella forma binaria comprensibile per il computer. Un tipo particolare di modem diverso da quelli
utilizzati per i normali collegamenti analogici su linea commutata, è necessario anche per i
collegamenti ADSL.
Provider – Internet Service Provider: offrono servizi di accesso a Internet attraverso linea
telefonica tradizionale e la scelta dipende da preferenze personali. In genere la connessione alla
rete è gratuita e si paga solo le telefonate al provider.
Gestione delle Connessioni: le versioni più recenti di tutti i principali SO operativi offrono la
connessione a Internet con procedure guidate semplici e dettagliate.
Internet
Internet è una sorta di meta-rete costituita da molte reti telematiche connesse tra di loro. Non ha
importanza quale sia la tecnologica che le unisce. Non è neanche rilevante di che tipo siano i
computer connessi.
Punto di forza e motivo del suo espandersi è la sua capacità di “parlare” un linguaggio universale,
adatto alla quasi totalità degli elaboratori esistenti. Si calcola che Internet colleghi più di 2 miliardi
di utenti.
Internet si fonda sul protocollo TCP/IP. Rappresenta solo alcuni dei livelli dell’architettura ISO/OSI.
Il protocollo TCP ha il compito di controllare la trasmissione dei dati, di preparare i pacchetti per
l’invio e ricomporre la sequenza di pacchetti ricevuti
Il protocollo IP si occupa di trasmettere ogni singolo pacchetto da un elaborato ad un altro.
Ogni pacchetto può usare un percorso (routing) diverso. Il protocollo che determina
l’instradamento può scegliere le connessioni più favorevoli sulla base del carico della rete in quel
momento e può modificarli dinamicamente. In questo modo Internet gestisce ampia affidabilità e
ottime prestazioni.
Ogni nodo della rete Internet ha un proprio indirizzo IP, un codice identificativo. Sono lunghi 4
byte, sono quattro gruppi di 3 cifre che vanno da 0 a 255 separati da un punto, quindi ogni gruppo
è costituito da 1 byte.
Ad ogni nodo può essere assegnato un nome simbolico che viene gestito da un protocollo
specifico del TCP/IP chiamato Domain Name Server (DNS).
Per sicurezza in rete si intende la capacità di proteggere i dati in transito sulla rete.
Pericolo di intrusione: il rischio che un estraneo (definito hacker), a partire da un collegamento
alla rete pubblica possa riuscire a trovare la strada per inserirsi nella rete privata di un’azienda o di
un’organizzazione. Oltre agli hacker esistono i cracker (Black Hat Hacker), i quali sfruttano queste
violazioni a fine di lucro.
Una minaccia alla sicurezza dei sistemi è costituita dai cookie, piccoli file di testo che alcuni web
server mandano ai browser quando questi si collegano a essi e che memorizzano alcuni dati
personali. Tale meccanismo è stato previsto per rendere più semplici i successivi accessi allo
stesso sito, ma c’è il rischio che queste informazioni siano utilizzate per scopi illeciti.
Uno dei sistemi di difesa dalle intrusioni è il Firewall: è un software che si interpone tra la rete
aziendale e internet e che controlla gli accessi dall’esterno all’interno e viceversa. Si basa sul
controllo dei pacchetti.
Un meccanismo per far sì che non siano rubate importanti informazioni è la crittografia: consiste
nel manipolare e rendere illeggibili i dati prima di inviarli attraverso una enrcription (cifratura o
codifica) e di decodificarli attraverso encryption (decifratura o decodifica). I sistemi di crittografia si
dividono in:
Sistemi a chiave simmetrica: si utilizza una chiave, il cifrario, sia per decifrare sia per cifrare i
messaggi. La chiave è conosciuta da mittente e destinatario.
Sistemi a chiave asimmetrica: si utilizza una coppia di chiave: una chiave pubblica che viene
utilizzata dal mittente per codificare il messaggio mentre l’altra chiave è privata e riconosciuta solo
dal destinatario, per la decodifica.
Un virus informatico è un programma o parte di esso, che riesce in vario modo ad introdursi in un
sistema informatico (attraverso email o durante la navigazione) e a produrre danni. Le tipologie di
virus più diffuse:
Il Web
Il WWW – World Wide Web è un sistema per la gestione di documenti su internet. Per moltissimi
utenti coincide con internet, anche se la definizione è tecnicamente scorretta. Si tratta infatti di uno
dei principali servizi di internet.
Sviluppato al CERN di Ginevra, aveva lo scopo iniziale di documentare i progetti di ricerca
distribuiti si più laboratori internazionali.
La sua tecnologia è basata sugli ipertesti. Un generico documento composto di testi, immagini
ecc. contiene ipertesti se alcuni degli oggetti presenti nel documento sono utilizzati come rimando
ad altri oggetti del documento stesso o di un altro documento.
È evidente che da un documento contenuto in un nodo della rete è possibile passare ad un altro
documento semplicemente inserendo collegamenti/indirizzi giusti (ad altri ipertesti). Da un punto di
vista tecnologico, il WWW è basato su tre standard principali.
URL (Uniform Resource Location): sistema di indirizzi che identifica dove è conservato il
documento sulla rete Internet. Ogni URL indica un documento su di un nodo ed un’opportuna
modalità di trasferimento per richiamare il documento stesso quando un calcolatore remoto accede
a quell’url.
HTTP (Hypertext Transfer Protocol): protocollo per la comunicazione fra il client e il server,
consente il caricamento/trasferimento di pagine tenendo conto del tipo di informazione trasmessa.
HTML (Hypertext Markup Language): linguaggio standard per realizzare gli ipertesti e contiene i
comandi per la presentazione dei documenti su video e per la definizione dei riferimenti.
I documenti che costituiscono la rete ipertesuale del Web sono principalmente documenti testuali
ai quali possono essere associati oggetti grafici e in taluni casi altri moduli software. Struttura,
contenuti e aspetto di una pagina Web visualizzata da un utente sono definiti interamente nel
documento testuale che ne costituisce l’oggetto principale. Tale definizione attualmente si basa su
uno speciale linguaggio di rappresentazione dei documenti in formato elettronico appartenente alla
classe dei markup language e denominato HTTP.
La prima parte indica il tipo di server a cui si punta: http, ftp etc.
La seconda parte indica il nome simbolico dell’host su cui si trova il file indirizzato
La terza parte indica nome e posizione del singolo documento o file a cui ci si riferisce. Tra la
prima e la seconda parte vanno inseriti i caratteri ://.
Sebbene i PC usino gli indirizzi IP per comunicare, questi stessi numeri possono essere difficili da
ricordare: di conseguenza ai PC e alle reti vengono di soliti assegnati dei nomi mnemonici.
L’unione tra il nome di un computer e quello della rete a qui appartiene forma l’indirizzo simbolico
per quel particolare computer connesso ad Internet. Quest’ultimo è formato da gruppi di caratteri
separati dal punto e viene definito da regole precise. L’indirizzo simbolico deve essere convertito
nel corrispondente indirizzo IP.
Questo sistema di nomenclature viene definito Domain System Name (DNS). I vantaggi di questo
servizio sono la possibilità dell’uso di indirizzamento mnemonico l posto di quello numerico. Ad
ogni rete su Internet è richiesto di avere almeno due computer che svolgano il servizio di Name
Servers. Un Name Server è un database che contiene un elenco di corrispondenze nome
simbolico-indirizzo IP per un sottoinsieme degli host connessi ad Internet. I Name Servers di un
dato dominio vengono contattati ogni volta che un host abbia necessità di tradurre il nome
simbolico di un computer appartenente a quel dominio con il corrispondente indirizzo numerico e
viceversa.
Lo strumento usato per la ricerca di contenuti nel web è il motore di ricerca che si occupa della
indicizzazione delle pagine Web. Non è adatto ad ogni tipo di ricerca considerano che il Web non è
fatto solo di pagine HTML. Per quanto estesa la base di indicizzazione di un motore di ricerca,
questo copre solo una parte delle pagine realmente disponibili in rete. È probabile che nessun
motore di ricerca arrivi a coprire più del 30-35 % del numero complessivo di pagine. Il lavoro dei
motori di ricerca si divide in tre fasi:
Analisi: per analizzare il web i motori di ricerca utilizzano dei programmi detti crawler, che si
occupano di visitare automaticamente gli Uniform Resource Identifier contenuti nel database e
seguire i successivi URI che trovano all’interno dei documenti analizzati, inserendo di volta in volta
nel database tutte le informazioni delle pagine.
Catalogazione: a seconda di criteri, alcune delle pagine analizzate vengono inserite nel database
e nell’indice del motore di ricerca. La parte testuale archiviata durante la fase precedente verrà in
seguito analizzata per fornire le risposte alle ricerche degli utenti. Molti motori di ricerca rendono
disponibile una copia dei dati testuali di ogni pagina archiviata quando la risorsa originale sia
irraggiungibile – copia cache.
Risposta: rispondere alle richieste degli utenti implica la necessità di elencare i siti in ordine di
rilevanza rispetto alla richiesta ricevuta. Per stabilire la rilevanza di un sito vengono cercate nel
database quei documenti che contengono la parola chiave inserite all’utente. Ogni motore di
ricerca sfrutta propri algoritmi per classificare le pagine, controllando per esempio il numero di
volte che le parole chiave vengono ripetute, il numero di link che riceve quel documento, il numero
di visite del sito dopo una ricerca etc.
La rete Internet è in primo luogo uno strumento di comunicazione e per lo scambio di informazioni.
Naturalmente dietro gli schermi e le tastiere dei computer ci sono delle persone, la rete è quindi
una risorsa informativa ed un luogo di interazione culturale, sociale, economica. In questa pluralità
di offerta informativa risiede l’essenza stessa della rete. Le principali sono posta elettronica, chat,
forum, feed rss, wiki, blog, web radio.
Le tipologie di interazione comunicativa possibili via rete:
La parte di indirizzo alla sinistra del simbolo @ identifica l’utente in maniera univoca all’interno del
sistema informatico che ospita la sua casella di posta elettronica. Esistono diversi client per la
posta elettronica che facilitano le operazioni.
Un wiki è un tipo di sito che permette agli utenti di aggiungere, rimuovere ed editare facilmente i
contenuti. È uno spazio collaborativo online in cui gruppi di persone collaborano alla realizzazione
di un progetto. Una singola pagina è detta pagina wiki. Un wiki ha una struttura ipertestuale
navigabile, possibilità di editare online pagine e contenuti. Generalmente non esiste una verifica
preventiva sulle modifiche. È possibile però bloccare eventuali utenti indesiderati attraverso il
riconoscimento del loro indirizzo IP.
Il concetto di Usabilità
L’usabilità è la misura della qualità dell’esperienza dell’utente che interagisce con qualcosa.
L’efficacia, l’efficienza e la soddisfazione con la quale determinati utenti raggiungono scopi
specifici in determinati ambienti. (ISO-9241)
Visibilità dello stato del sistema: il sistema dovrebbe sempre tenere gli utenti informati riguardo
a quello che sta accadendo, con un feedback appropriato e in tempo ragionevole
Controllo dell’utente e libertà: Gli utenti selezionano spesso funzionalità del sistema per errore:
essi necessitano di uscite di emergenza chiaramente identificate per lasciare lo stato in cui si
trovano senza dover passare ad un’interfaccia sofisticata. Vanno supportate le funzioni di Undo e
Redo.
Consistenza e standard: Gli utenti non dovrebbero preoccuparsi di dover capire se parole,
situazioni e azioni diverse significano la stessa cosa. Seguire le convenzioni delle piattaforme su
cui si sta lavorando.
Prevenzione degli errori: Un design attento che previene un problema è meglio di un buon
messaggio di errore
Riconoscimento anziché ricordo: Rendere gli oggetti, le azioni e le opzioni visibili: l’utente non
dovrebbe ricordare informazioni tra finestre di dialogo successive. L’istruzione per l’uso del sistema
dovrebbe essere visibile o facilmente ritrovabile quando serve
Flessibilità ed efficienza d’uso: Gli acceleratori, non utilizzati dall’utente inesperto, possono
spesso accelerare l’interazione dell’utente esperto: permettere all’utente di personalizzare lo
svolgimento delle azioni frequenti.
Aiuto e documentazione: Anche se la situazione ideale è quella in cui il sistema può essere
utilizzato senza documentazione, può essere necessario fornire aiuto e documentazione. Tale
informazione dovrebbe essere facile da cercare, focalizzata sui compiti dell’utente, elencare i passi
concreti da fare e non essere troppo estesa.
L’usabilità nel web è importante perché nel 60% dei casi l’agente non trova l’informazione che
cerca. Il 50% di potenziali clienti vengono persi per via del cattivo web design.
Un sito web è usabile quando soddisfa i bisogni informativi dell’utente finale che lo sta visitano e
interrogandolo, fornendogli facilità di accesso e navigabilità e consentendo un adeguato livello di
comprensione dei contenuti.
Requisiti emergenti dell’usabilità dei siti web: navigabilità, utilità attesa, completezza dei contenuti,
comprensibilità delle informazioni, efficacia comunicativa, attrattività grafica.
Il concetto di accessibilità
Il termine accessibilità riferito al web, si riferisce alla possibilità di accedere alle informazioni e ai
servizi disponibili in rete da parte di categorie di utenti diversificate e da una gamma di dispositivi
diversi. L’attenzione è concentrata sulla possibilità di accedere all’informazione da parte di
categorie di utenti svantaggiate sotto il profilo fisico e psichico.
Classi di utenti: possono non essere in grado di vedere, ascoltare o muoversi o possono non
essere in grado di trattare alcuni tipi di informazioni facilmente o del tutto. Possono avere difficoltà
nella lettura o nella comprensione del testo. Possono non avere o non essere in grado di usare
una tastiera o un mouse. Possono avere uno schermo solo testuale, un piccolo schermo o una
connessione Internet molto lenta. Possono non parlare e capire fluentemente la lingua in cui il
documento è scritto. Possono trovarsi in una situazione in cui i loro occhi, orecchie o mani sono
occupati o impediti (ad es., stanno guidando, lavorano in un ambiente rumoroso, ecc.). Possono
avere la versione precedente di un browser, un browser completamente diverso, un browser
basato su dispositivi di sintesi vocale o un diverso sistema operativo.
Web Accessibility Initiative ( WAI): È una delle iniziative più significative nel campo
dell’accessibilità con l’obiettivo di rendere il web accessibile universalmente. Il gruppo di lavoro
WAI promuove quindi la ricerca e la formazione sulla materia e assicura che le tecnologie e gli
standard supportino l’accessibilità. Definisce documenti relativi all’accessibilità che si rivolgono a
tre classi di utenza:
Linee guida per l’accessibilità ai contenuti web: Forniscono regole e tecniche per i web
designer/autori affinché creino un documento accessibile
Linee guida per l’accessibilità degli strumenti di authoring: Si rivolgono ai creatori di strumenti di
authoring, affinché rendano facile la creazione di contenuto conforme agli standard per
l’accessibilità e siano essi stessi accessibili
Linee guida per l’accessibilità degli strumenti per navigare nel web: Si rivolgono agli sviluppatori di
strumenti di navigazione, dai browsers classici a dispositive che utilizzano tecnologie specializzate
per i disabili
Accessibilità non è sinonimo di usabilità, e inoltre non può esserci accessibilità senza usabilità.
Progettare per l’utente: quello che è chiaro e usabile per il progettista può essere oscuro per
l’utente. Inoltre gli utenti tipicamente non sanno qual è il modo migliore di organizzare
l’informazione. Bisogna porsi delle domande precise:
Quale utente? A quali categorie di utenti è destinato il prodotto? Di queste categorie, quali sono
prioritarie e quali secondarie?
Quali compiti? Quali sono i compiti che gli utenti dovranno svolgere con il prodotto? Quali sono
quelli principali e quali accessori?
Quale contesto d’uso? In quali contesti gli utenti dovranno svolgere i compiti individuati? Quali
contesti sono prevalenti in rapporto ai diversi compiti? Come possiamo caratterizzare con
precisione i diversi contesti?
Fedeltà nei prototipi:
Alta fedeltà (HI-FI): il prototipo assomiglia in tutti gli aspetti al modello finale
Bassa fedeltà (LO-FI): il prototipo assomiglia al prodotto finale, con molti dettagli mancanti
Test funzionale: esercizio sistematico di tutte le funzioni presenti nel sito, da parte degli
sviluppatori. Si possono usare check-list strutturate e tools appositi. Viene effettuato durante lo
sviluppo e prima del primo rilascio.
Test di usabilità: utilizzo del sito in scenari d’uso predefiniti, effettuato da utenti campione. Viene
effettuato quando opportuno, durante lo sviluppo per prototipi successivi (anche all’inizio: paper
sketch & simulation)
Controllo dei contenuti: verifica dei contenuti dal responsabile dei contenuti. Si effettua tramite
lettura delle pagine web e viene effettuato prima del rilascio.
Il software (o programmi)
È una sequenza di istruzioni che permette al computer di svolgere dei computi. In origine era
specializzato e costoso; a partire dagli anni ’80 vi è una produzione a larga scala. Ne esistono due
categorie: software di sistema e programmi applicativi.
Questo insieme di programmi prende il nome di Sistema Operativo: mostra il sistema informatico
all’utente come un erogatore di servizi, e a tali esercizi è associata l’esecuzione di uno o più
programmi specifici.
I programmi che svolgono determinati compiti sono chiamati programmi applicativi. Sono di varie
tipologie: videoscrittura, fogli elettronici, database, utility, etc.
Le interfacce sono il mezzo dell’interazione tra uomo e macchina. Le interfacce grafiche (GUI)
hanno elementi comuni, in modo da aiutare l’utente a muoversi in ogni ambiente con familiarità.
Tipi di interfacce: a linea di comando, grafiche, a stilo, touchscreen, conversazionali.
Livelli del software: la BIOS si rapporta direttamente con l’hardware del computer, fornendo
informazioni al sistema operativo; i programmi applicativi gestiscono l’hardware solo attraverso il
sistema operativo stesso.
Compiti del sistema operativo:
Gestire le risorse del computer
Gestire l’interazione tra utente e programmi
Regolare il multitasking e il multithreading
Gestire la contemporaneità di più utenti e il loro accesso alle risorse
Distribuire le operazioni tra più processori
Avvertire l’utente di eventuali errori, e impedire che facciano perdere dati e informazioni
Gestire l’alimentazione elettrica
Categorie di sistemi operativi: SO per i desktop (meno potenti e affidabili di tutti però sono i più
diffusi); SO per i server (pensati per la gestione multitasking e multithreading di applicazioni
mission-critical; SO per i mainframe (ogni azienda ne ha uno); SO per smartphone; SO embedded
(per elettrodomestici e piccoli apparecchi).
I nomi dei file servono alla loro esatta identificazione. I percorsi invece sono necessari per
ritrovare i file nei vari supporti di memorizzazione.
Non tutti i file sono memorizzati in spazi contigui, e il sistema operativo è costretto a un
superlavoro per recuperarne tutte le parti sparpagliate sul supporto. La deframmentazione evita
questo problema.
Driver fisico: controlla i meccanismi fisici dell’unità di lettura dei dispositivi esterni di I/O;
interagisce con la CPU attraverso i registri; utilizza una memoria dedicata alle operazioni I/O
(memoria ad accesso diretto).
Driver logico: software che gestisce gli errori in lettura/scrittura, gestisce i nomi/indirizzi del device
driver, gestisce le code di attesa.