INFORMATICA_volume_1.pdf
Document Details
Uploaded by Deleted User
Tags
Full Transcript
Rete Nazionale Rete Naz ona e B Book ook in nPProgress rogress INFORMATICA 1 Capitolo A: Codifica dell’informazione BOOK IN PROGRESS CODIFICA DELL’INFORMAZIONE...
Rete Nazionale Rete Naz ona e B Book ook in nPProgress rogress INFORMATICA 1 Capitolo A: Codifica dell’informazione BOOK IN PROGRESS CODIFICA DELL’INFORMAZIONE A cura dei proff. Alessandra D'Orazio Giorgia Martina Paolo Lillo Book in Progress Pagina A1 Capitolo A: Codifica dell’informazione Competenze Abilità Conoscenze Saper codificare Riconoscere i diversi Dato e informazione un'informazione numerica tipi di informazioni Saper codificare Analogico e digitale un'informazione alfanumerica Saper individuare le Bit e byte tecniche di codifica conformi ai dati coinvolti Codifica dei dati INDICE Introduzione. Il bit pag. 3 Codifica dei numeri pag. 6 Codifica dei caratteri pag. 14 Codifica delle immagini (fisse) pag. 16 Codifica dell'audio pag. 26 Codifica del video pag. 27 Classificazione dell’informazione pag. 28 Approfondimento: aritmetica binaria pag. 30 Book in Progress Pagina A2 Capitolo A: Codifica dell’informazione Introduzione. Il bit Diamo una definizione di “INFORMATICA”: “L'informatica è la disciplina che si occupa della codifica, della memorizzazione, della trasmissione e dell'elaborazione dell'INFORMAZIONE” Intendiamo per INFORMAZIONE “Ogni messaggio o elemento conoscitivo che è possibile comunicare o acquisire” La parola e le espressioni del corpo, i segni (dai graffiti preistorici alla scrittura) e in generale tutto ciò che può essere percepito dai sensi, hanno permesso all'uomo nel corso della storia di comunicare, cioè di trasferire l’informazione non solo da uomo a uomo ma anche da generazione a generazione. I modelli culturali di oggi sono il risultato della lunga evoluzione del processo. Se la comunicazione è alla base del trasferimento delle informazioni, il ragionamento e quindi l'uso della capacità logica-deduttiva hanno da sempre avuto il compito di elaborare l'informazione attraverso l'uso di modelli interpretativi che con lo scorrere del tempo sono divenuti sempre più articolati e raffinati. L'uomo, del resto, si è sempre ingegnato per superare i suoi limiti utilizzando tecniche e strumenti per rendere sempre più efficace la sua capacità di comunicare: dall'uso dei tam- tam e dei segnali di fumo alle moderne tecnologie. Il lettore avrà certamente sentito parlare del “codice Morse”: quando nel 1838 si realizzarono i primi telegrafi via cavo (e successivamente via radio) gli unici “segnali” che era possibile produrre e distinguere in modo chiaro e immediatamente comprensibile erano due segnali acustici di lunghezza lunga e breve, rispettivamente linea e punto; la produzione dei segnali avveniva da un lato della linea telegrafica (trasmettitore), agendo su un interruttore a molla: ad una Book in Progress Pagina A3 Capitolo A: Codifica dell’informazione pressione breve corrispondeva un segnale del tipo punto mentre ad una pressione lunga faceva seguito un segnale del tipo linea; dall'altro lato della linea telegrafica il segnale elettrico ricevuto attivava un elettromagnete, il cui movimento portava in contatto una penna su una striscia di carta trascinata da un meccanismo a orologeria. Il messaggio più famoso del codice Morse è certamente SOS, il segnale di richiesta di soccorso (“Save Our Souls” cioè “Salvate le nostre anime”) corrispondente alla sequenza: dove i primi tre punti stanno per “S”, le tre linee stanno per “O” e gli ultimi tre punti stanno nuovamente per “S”. Punto e linea rappresentano quindi i 2 simboli grazie ai quali è possibile rappresentare i messaggi dell'alfabeto Morse. Quindi, una volta stabilita la corrispondenza tra l'insieme di punti e linee e le lettere dell'alfabeto, le cifre, i caratteri di interpunzione e alcuni segni convenzionali (ovvero una volta stabilita la codifica nell'alfabeto Morse di ogni singolo carattere che compone un testo scritto), un qualsiasi brano può essere codificato utilizzando punti e linee; d'altro canto, chiunque abbia a disposizione una tabella di conversione punti-linee → carattere sarà in grado di leggere il testo originale. L'alfabeto Morse è un esempio di CODIFICA; è chiaro che per la rappresentazione codificata dell'informazione è necessaria una CONVENZIONE (detta anche PROTOCOLLO), cioè un accordo tra le parti che devono comunicare sul SIGNIFICATO da dare alle sequenze di simboli: tanto più diffusa è tale convenzione tanto più estesa sarà la platea dei possibili fruitori. L'introduzione dell'informatica ha avviato un'epoca in cui l'informazione e il trattamento dell'informazione, grazie all'evoluzione della tecnologia elettronica, hanno assunto forme sempre più automatiche. Al fine di potere essere “gestita” da processi automatici è stato indispensabile rendere l'informazione sempre più autonoma cioè indipendente dalla capacità interpretativa dell'uomo. Prima di entrare nel vivo della trattazione sulla codifica dei più comuni tipi di informazione (spiegheremo tra un po' cosa intendiamo per “tipi”), soffermiamo la nostra attenzione sulla definizione e sulla codifica di un'informazione in ambiente più specificatamente informatico. Prima domanda: se l'informazione è l'oggetto intorno a cui ruota la disciplina Informatica, che cosa è un dato e che relazione intercorre tra un dato e un'informazione? Book in Progress Pagina A4 Capitolo A: Codifica dell’informazione Seconda domanda: nel campo dell'informatica, come si può memorizzare un'informazione e in quanti modi diversi è possibile rappresentare la stessa informazione? Rispondiamo alla prima domanda: i termini dato e informazione sono a volte utilizzati come sinonimi, ma i due concetti non coincidono. Facciamo alcuni esempi: il numero intero 16: è un dato o un'informazione? È un dato, diventa un'informazione se aggiungo che 16 è l'età di una ragazza oppure che 16 sono gli amici che ho invitato alla mia festa. Maria ha i capelli rossi: è un dato o un'informazione? È un'informazione: il dato, colore rosso, è “diventato” un'informazione in quanto è stato associato ai capelli di Maria. Quindi: un dato è una parte dell'informazione, la quale a sua volta può essere considerata come un dato a cui è associato il significato che ha nel contesto di studio. Più precisamente, possiamo considerare l'informazione costituita da tre elementi: il valore (il dato) il tipo (carattere, numero intero, stringa,..) utilizzato per esprimere il valore il significato (la semantica) da associare al valore Se l'informatica si occupa, tra le varie cose, così come detto nella definizione iniziale, di memorizzare ed elaborare le informazioni, che cosa verrà trascritto ovvero memorizzato e che cosa verrà elaborato? La risposta è: i dati! Possiamo ora rispondere alla seconda domanda, iniziando con il costatare che i dati sono memorizzati nelle memorie (di massa, centrale, RAM, ROM,..) ed elaborati dai computer: memorie e computer sono supporti fisici costituiti da dispositivi in grado di distinguere tra due (e solo due) diversi valori di riferimento di una grandezza fisica (assenza/presenza di tensione, luminoso/non luminoso). Tali dispositivi sono detti elettricamente bistabili. Se associamo a ciascun valore un simbolo, possiamo rappresentare i due diversi stati del dispositivo in esame con due simboli distinti; i due simboli utilizzati sono {0, 1}, che costituiscono l'alfabeto binario. Attenzione: 0 e 1 non sono numeri ma simboli, da non confondere quindi con i primi due numeri naturali. A questo punto possiamo definire il concetto informatico di BIT (BInary digiT = cifra binaria): “Il bit è l’unità elementare di informazione cioè la minima quantità di informazione codificabile” Il bit è quindi il più piccolo dato memorizzabile in un elaboratore e può rappresentare Book in Progress Pagina A5 Capitolo A: Codifica dell’informazione una sola informazione binaria. Qualsiasi altro tipo di informazione è rappresentato come sequenze finite di 0 e 1; come questi 2 simboli sono combinati tra loro dipende dal codice usato, ovvero dalla relazione che trasforma ogni dato in una stringa di bit. Ma una sequenza di bit cosa rappresenta? A quale possibile informazione è associata? Nei paragrafi successivi daremo una risposta a questi quesiti; più precisamente affronteremo il problema di come è possibile codificare: numeri caratteri immagini suoni video Codifica dei numeri Iniziamo con il ricordare alcune definizioni: Numero: oggetto o ente astratto Numerale: insieme di simboli che rappresenta un numero in un dato sistema di numerazione Sistema di numerazione: un insieme di simboli e un insieme di regole; i simboli servono per rappresentare un numero, le regole stabiliscono come scrivere e come operare con i numerali. Di conseguenza possiamo rappresentare un numero e scrivere il suo numerale solo dopo aver stabilito il sistema di numerazione che intendiamo utilizzare: se cambiamo sistema di numerazione, cambia la rappresentazione del numero. Esempio: il numerale 15 nel sistema decimale diventa XV in numeri romani. Esaminiamo allora due caratteristiche del sistema di numerazione che usiamo correntemente, il sistema decimale: è in base 10: ogni numero è rappresentato da una combinazione di 10 simboli diversi {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} è posizionale: esiste una regola che stabilisce un legame tra il simbolo e la sua posizione nel numerale che rappresenta il numero, cioè ogni cifra assume un valore diverso a seconda della posizione occupata nella rappresentazione del numero. Esempio: numerale = 184 → 1*102 +8* 101 +4*100 = 100 + 80 +4 posizione → 2 1 0 (N.B. Il simbolo di moltiplicazione è indicato con “*” e non con “x”, in conformità con la simbologia adottata in ambiente informatico) Book in Progress Pagina A6 Capitolo A: Codifica dell’informazione Come si può osservare, la posizione delle cifre in un numerale è tanto più importante, perché è quella che più contribuisce al valore finale (in gergo “più significativa”), quanto più a sinistra si trova nella sequenza numerica: la cifra MENO SIGNIFICATIVA è quella più a destra, che nel sistema decimale rappresenta le “unità”. Il sistema decimale deve ad una proprietà anatomica (le 10 dita delle mani) la sua diffusione, ma non risulta altrettanto vantaggioso quando l'elaborazione dei numeri si sposta dall'uomo al computer. Come già accennato nel paragrafo precedente, un computer in quanto macchina “sente” 2 diversi stati (acceso/spento, presenza/assenza di tensione); conseguenza quasi ovvia: per codificare i numeri che devono essere elaborati da un computer si utilizza il sistema di numerazione in base 2, ovvero il sistema di numerazione posizionale che ha il bit come elemento di base. Prenderemo in esame altri 2 sistemi di numerazione posizionali, il sistema di numerazione in base 8 (ottale) e il sistema in base 16 (esadecimale), entrambi caratterizzati dal fatto che le basi sono potenze della base 2 (spiegheremo in seguito cosa comporta questa considerazione). Due annotazioni: useremo il termine numero anche quando sarebbe più corretto utilizzare numerale ogni sequenza di simboli che scriveremo avrà come pedice la base in cui è espresso il numero. Esempio: 21510 rappresenta un numero espresso in base 10 10112 rappresenta un numero espresso in base 2 (si legge uno zero uno uno) Sistema di numerazione in base 2 Il sistema binario utilizza, come già detto, due simboli, 0 e 1, grazie ai quali possiamo rappresentare qualsiasi numero, purché si abbia a disposizione un numero di bit adeguati. Spieghiamo questa affermazione con una tabella in cui riportiamo tutti i valori rappresentabile con un determinato numero di bit n° di bit numeri rappresentabili 1 0 1 2 00 01 10 11 3 000 001 010 011 100 101 110 111 4 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 In generale con n bit si possono rappresentare interi positivi compresi nell'intervallo [0, 2n-1]. Attenzione: una volta che è stato fissato n, occorre rappresentare anche gli 0 non significativi. Book in Progress Pagina A7 Capitolo A: Codifica dell’informazione Sistema di numerazione in base 8 è un sistema di numerazione posizionale ogni numero è espresso come combinazione degli 8 simboli: 0, 1, 2, 3, 4, 5, 6, 7 Sistema di numerazione in base 16 è un sistema di numerazione posizionale ogni numero è espresso come combinazione dei 16 simboli: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Scriviamo i primi 21 numeri naturali in base 10, in base 2, in base 8, in base 16 (per semplicità, non ci preoccupiamo della lunghezza delle rappresentazioni nelle varie basi). base 10 base 2 base 8 base 16 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 17 10001 21 11 18 10010 22 12 19 10011 23 13 20 10100 24 14 Ma allora: se non abbiamo a disposizione la tabella precedente, come possiamo affermare che la sequenza 1101 in base 2 equivale a 13 in base 10 (11012=1310)? E soprattutto: come procediamo per valori maggiori di 20? 34710 in base 10 a quale valore corrisponde in base 2? e in base 16? e in base M? Esiste una tecnica, semplice e intuitiva, che permette di convertire un numero espresso in base 10 nell'equivalente in un'altra base M (in effetti è una tecnica che permette la conversione da una qualsiasi base N a una qualsiasi altra base M). Ricordiamo che stiamo trattando numeri naturali, quindi senza parte decimale e senza segno. Book in Progress Pagina A8 Capitolo A: Codifica dell’informazione La regola di conversione di un numero X in base 10, X10, nella base M è la seguente: 1. si esprime M in base 10 (indichiamo il numero ottenuto con M10) 2. si procede per divisioni successive, dove il divisore è sempre M10, il dividendo, invece, è X10 la prima volta, successivamente diventa il quoziente ottenuto nella divisione precedente 3. si termina il procedimento quando il valore del quoziente è 0 4. si prendono i resti delle divisioni effettuate in ordine inverso, dall'ultimo al primo 5. si convertono, per basi M>10, i resti ottenuti, espressi in base 10, nella corrispondente cifra in base M. Rileggiamo quanto esposto con M=2. Conversione da base 10 a base 2 1. (superfluo) si esprime 2 in base 10 2. si procede per divisioni successive del numero dato per 2 3. si termina il procedimento quando il valore del quoziente è 0 4. i resti delle singole divisioni vengono presi in ordine inverso rispetto a quello del calcolo e rappresentano le cifre del numero espresso in base 2 (ricordati che i soli possibili resti saranno 0 o 1). 5. (superfluo) Esempio: convertire 10610 in base 2. 106:2 =53 resto 0 53:2 =26 resto 1 26:2 =13 resto 0 13:2 =6 resto 1 6:2 =3 resto 0 3:2 =1 resto 1 1:2 =0 resto 1 106 53 26 13 6 3 1 0 ← quozienti 0 1 0 1 0 1 1 ← resti quindi 10610=11010102 Book in Progress Pagina A9 Capitolo A: Codifica dell’informazione Proponiamo altri esempi con base M diversa da 2: convertire 10610 in base 5 106:5 = 21 resto 1 21:5 = 4 resto 1 106 21 4 0 ← quozienti 4:5 = 0 resto 4 1 1 4 ← resti otteniamo: (106)10 = (411)5 convertire 18010 in base 16 180:16 = 11 resto 4 180 11 0 ← quozienti 11:16 = 0 resto 11 4 11 ← resti Ricorda che i resti sono in base 10, occorre quindi convertirli in base 16 (in generale in base M): (11)10 = (B)16 otteniamo: (180)10 = (B4)16 Consideriamo ora le conversioni da base M a base 10. Enunciamo la regola che permette di convertire un numero espresso in una base qualsiasi nella corrispondente rappresentazione decimale (ricorda che i sistemi coinvolti sono tutti sistemi posizionali) 1. si moltiplica ogni cifra per il valore della base elevato ad esponente pari alla posizione che ha la cifra nella sequenza di simboli 2. si sommano i valori così ottenuti Rileggiamo quanto esposto con M=2. Conversione da base 2 a base 10 1. si moltiplica ogni bit per il valore della base elevato ad esponente pari alla posizione che ha il bit nella sequenza di simboli 2. si sommano i valori così ottenuti. Esempio: convertire (11011)2 in base 10. 1 1 0 1 1= 1*24 +1*23 + 0*22 +1+21 +1*20 = 16 + 8 +0 + 1 + 1 = 27 in base 10 posizione → 4 3 2 1 0 Nell'esempio precedente, la cifra meno significativa è il coefficiente della potenza 2 0, la cifra più significativa (1 in posizione 4) è il coefficiente di 24. Proponiamo altri esempi con base M diversa da 2: Book in Progress Pagina A10 Capitolo A: Codifica dell’informazione Conversione dalla base M alla base 10 convertire 2146 in base 10 ricordando che la cifra meno significativa indica il coefficiente di 60 quella più significativa il coefficiente di 62, segue 2146 = 2* 62 + 1* 61 + 4* 60 = 2* 36 + 1*6 + 4*1 = 72 + 6 + 4= 8210 Conversione da base N a base M Nel caso generale, con N e M valori qualsiasi, è possibile applicare la regola espressa inizialmente ma, spesso, si preferisce trasformare il numero dalla base N alla base 10 e poi far seguire la conversione da base 10 a base M. Esempio: 457 = numero3 1° passo: si converte 457 in base 10→ 457 = 4*71 +5* 70 = 28+5 = 3310 2° passo: si converte il numero così ottenuto in base 3→ 3310 = 10203 Più semplice è la conversione se la base N è 2 e la base M è 8 oppure 16 (ma vale anche il viceversa): l'identità 8 = 23 permette di convertire ogni gruppo di 3 bit in un simbolo in base 8 e, viceversa, ogni simbolo in base 8 nella sequenza di 3 bit in base 2. Nel caso in cui la base è 16 (16 = 24), si ripete lo stesso procedimento ma con gruppi di 4 (e non 3) bit. Gli esempi chiariranno questo procedimento. Esempio: convertire 11100101010001002 in ottale Partendo dalla cifra meno significativa, si considerano le cifre binarie rispettivamente a gruppi di 3: 001 110 010 101 000 100 ↓ ↓ ↓ ↓ ↓ ↓ 1 6 2 5 0 4 Quindi: 11100101010001002 = 1625048 Esempio: convertire 1110011101010011002 in esadecimale Partendo dalla cifra meno significativa, si considerano le cifre binarie rispettivamente a gruppi di 4: 0011 1001 1101 0100 1100 ↓ ↓ ↓ ↓ ↓ 3 9 D 4 C Quindi: 1110011101010011002 = 39D4C16 Book in Progress Pagina A11 Capitolo A: Codifica dell’informazione Esempio: convertire 3728 in binario 0gni cifra viene codificata nel valore corrispondente in base 2 espresso con 3 bit: 3 7 2 ↓ ↓ ↓ 011 111 010 Quindi: 3728 = 0111110102 Esempio: convertire C2E316 in binario 0gni cifra viene codificata nel valore corrispondente in base 2 espresso con 4 bit: C 2 E 3 ↓ ↓ ↓ ↓ 1100 0010 1110 0011 Quindi: C2E316 = 11000010111000112 Esercizi: conversioni di base a) da base 10 a base 2 1) 23 2) 38 3) 100 4) 32 5) 70 6) 65 7) 98 8) 255 9) 318 10) 512 b) da base 10 alla base indicata 11) 34 in base 4 12) 128 in base 6 13) 7 in base 7 14) 100 in base 16 15) 1024 in base 5 16) 742 in base 9 Book in Progress Pagina A12 Capitolo A: Codifica dell’informazione 17) 38 in base 3 18) 42 in base 7 19) 78 in base 3 20) 153 in base 11 [12A11] c) da base 2 a base 10 21) 1011 22) 10110 23) 110011 24) 111111 25) 1011100 26) 11000000 27) 111010101 28) 100000000 29) 10000011 30) 110011001 d) da base N a base 10 31) 1528 32) 1234 33) 3425 34) A1F16 35) 3517 36) 12344 [impossibile] 37) 1005 38) 1006 39) 1017 40) A1912 e) da base N a base M 41) 1346 in base 2 42) 6158 in base 2 43) 3269 in base 16 [10B16] 44) 7148 in base 7 45) 11101102 in base 5 46) 1718 in base 16 47) 11101102 in base 16 48) 111101102 in base 8 49) 1AB616 in base 2 50) ABC16 in base 8 Book in Progress Pagina A13 Capitolo A: Codifica dell’informazione Codifica dei caratteri I numeri rappresentano solo una piccola parte delle informazioni memorizzate ed elaborate da un computer; insieme alla codifica delle informazioni numeriche è sorto il problema della rappresentazione dei dati alfanumerici, ovvero dei documenti testuali e anche in questo caso sono state elaborate leggi di trasformazione da carattere a stringa di bit. Prima però di entrare nel dettaglio è fondamentale introdurre la definizione di byte. Si definisce BYTE una sequenza di 8 BIT (evidente anche in questo caso la naturale predilezione che si ha in informatica per le potenze del 2 come conseguenza dell'uso della codifica binaria). Essendo codificabili su 8 bit 256 combinazioni distinte di 0/1, si ritenne che tale quantità di bit fosse sufficiente per rappresentare tutti i simboli utilizzabili nella scrittura di messaggi e documenti e da allora il BYTE è divenuta una sorta di unità di misura della codifica (1 BYTE = 1 carattere), tuttora utilizzata per definire la capacità di memoria: sempre privilegiando le potenze del 2 e utilizzando il simbolo “B” per riferirsi al byte (ricorda che “b” è usato per indicare grandezze espresse in bit), si definisce: sigla descrizione Quantità in byte 1kB 1 kilo-byte 1024 bytes 1MB 1 mega-byte 10242 bytes = 1.048.576 bytes 1GB 1 giga-byte 10243 bytes = 1.073.741.824 bytes 1TB 1 tera-byte 10244 bytes = 1.099.511.627.776 bytes Una unità a disco da 1TB (un tera-byte) è dunque in grado di memorizzare più di mille miliardi di caratteri. Si è detto che su 1 byte cioè su 8 bit è possibile codificare un carattere: come stabilire allora la corrispondenza tra byte e carattere? La corrispondenza non può che essere basata su una “convenzione”, cioè su un accordo stabilito da un'apposita commissione composta da tecnici, studiosi, rappresentanti di aziende, istituzioni e governi; delle diverse convenzioni esistenti ne consideriamo due: codice ASCII e codice UNICODE. Il codice ASCII (American Standard Code for Information Interchange ovvero codifica standard americana per lo scambio di informazioni) è nato come codice a 7 bit: sono sufficienti infatti 7 bit (quindi 128 combinazioni di 0/1) per rappresentare tutti i caratteri Book in Progress Pagina A14 Capitolo A: Codifica dell’informazione maiuscoli e minuscoli dell'alfabeto inglese, le cifre da 0 a 9, i simboli di punteggiatura, le parentesi, gli operatori matematici (“+”, “-”, “*”, “\”, “%”), gli operatori relazionali (“=”, “>”, “ CODIFICA > INFORMAZIONE CODIFICATA INFORMAZIONE CODIFICATA > DECODIFICA > INFORMAZIONE. Un'ultima nota: l'informazione codificata viene memorizzata in un “oggetto” chiamato file a cui si assegna un NOME allo scopo di caratterizzare in modo chiaro ciò che rappresenta; nel caso per esempio di un documento di testo contenente il curriculum vitae di un tale “Mario”, codificato in ASCII, si può assegnare un nome del tipo: curriculum_mario.txt dove si distinguono due parti, la prima “curriculum_mario” detta propriamente NOME; la seconda “txt” si dice ESTENSIONE e segue il PUNTO che fa da SEPARATORE. In ambiente WINDOWS l'estensione indica il TIPO di informazione (quindi il criterio utilizzato nella codifica) che con una convenzione piuttosto diffusa nel mondo dell'Informatica indica un contenuto di tipo testuale “semplice” cioè codificato con l'uso del codice ASCII. Il nome “curriculum_mario”, più che avere valore per l'operazione di decodifica, ha valore di “descrittore del contenuto” ed è liberamente scelto dall'autore dell'oggetto come “pro-memoria”: in questo modo, chi si trovasse a leggere nell'elenco dei file: curriculum_mario.txt curriculum_cesare.txt curriculum_rosa.txt dedurrebbe senza difficoltà il tipo e il contenuto dei file. Nella seguente tabella si indicano le estensioni più utilizzate insieme al tipo di informazione che generalmente caratterizzano: Tipologia Estensioni Grafica bitmap o raster bmp, jpg, gif, tiff, png, ico Grafica vettoriale eps, ai, wmf File eseguibili, codice oggetto, librerie dinamiche exe, com, lib, jar, war, ear, class, dll Documenti doc, docx, html, rtf, odt, txt Audio e musica wav, wma, au, mp2, mp3, mid Archiviazione e compressione zip, 7z, jar, arc, gzip, tar, tar.gz, rar Linguaggi di programmazione c, cpp, for, java, lisp, cob, asm, bas, php, asp, jsp, pl, py, rb Linguaggi di descrizione e stilizzazione pagina pdf, postscript, xsl-fo, css, xslt/xsl Book in Progress Pagina A29 Capitolo A: Codifica dell’informazione Approfondimento: aritmetica binaria Il sistema di numerazione binario è, come sottolineato più volte, un sistema di numerazione posizionale: di conseguenza in esso le quattro operazioni fondamentali seguono le stesse regole applicate nel sistema decimale. (Per semplicità, supponiamo che non ci siano limiti circa il numero di bit che occorrono per rappresentare il risultato). Addizione: si sommano le cifre di uguale peso, + 0 1 ricordando che si può avere un riporto (carry) sul bit di 0 0 1 peso immediatamente superiore. 1 1 0 ← con riporto di 1 Sottrazione: si sottraggono le cifre di uguale peso, - (*) 0 1 ricordando che si può avere un prestito (borrow) sul bit 0 0 1 ← con prestito di 1 di peso immediatamente superiore 1 1 0 (*) sulla prima colonna a sinistra le cifre del minuendo, sulla prima riga le cifre del sottraendo Moltiplicazione: le cifre costituenti il primo numero * 0 1 (moltiplicando) vengono moltiplicate per ciascuna cifra del 0 0 0 secondo numero (moltiplicatore): se la cifra del moltiplicatore 1 0 1 è pari a 1 si riscrive il moltiplicando, in caso contrario (cifra=0) il risultato è pari a 0. Si sommano tutti i numeri ottenuti (attenzione ai riporti!) Divisione: anche in questo caso il procedimento coincide con quello applicato tra numeri in base 10, con la semplificazione che il gruppo di cifre del dividendo esaminato può contenere il divisore 1 o 0 volte. Esempi: Addizione: 1101002 + 1110002 Sottrazione: 100112 – 11112 1 1 1 0 10 10 1 1 0 1 0 0 + 1 0 0 1 1 - 110100 1 1 1 0 0 0 = 1 1 1 1 = 2 + 1 1 0 0 1 0 0 0 0 1 0 0 111000 2 = 11001002 100112 – 11112 = 1002 Book in Progress Pagina A30 Capitolo A: Codifica dell’informazione Moltiplicazione: 111012 * 11102 Divisione: 1101012 : 112 1 1 1 0 1 * 1 1 0 1 0 1 1 1 1 1 1 0 = 1 1 1 0 0 0 1 1101012 : 1 10 10 1 1 0 0 0 112 = 0 0 0 0 0 0 0 100012 1 1 1 0 1 0 0 1 (resto = 1 1 1 0 1 111012 * 102) 11102 = 0 0 1 1 1 0 1 0 1 0 11001011 1 1 0 0 1 0 1 1 0 0 0 02 1 0 1 1 1 0 1 0 Interi positivi e negativi Torniamo sulla sottrazione; non è un caso che tutti gli esempi proposti sono caratterizzati da un valore del minuendo maggiore del valore del sottraendo, poiché finora abbiamo considerato la codifica e, quindi le operazioni, tra numeri naturali (numeri interi senza segno). Il passo successivo è quello esaminare la codifica dei numeri con segno, cioè dei numeri interi (positivi, negativi e 0). Nota bene: le argomentazioni successive hanno valore solo se si prendono in esame valori numerici codificati con un numero prefissato di cifre. Tra i diversi metodi per rappresentare i numeri interi in base 2, prendiamo in considerazione la rappresentazione in modulo e segno (M&S) la rappresentazione in complemento a 2 Rappresentazione in modulo e segno Dopo aver stabilito il numero N di bit che si vogliono utilizzare per la codifica, si riserva il bit più significativo per il segno, tutti gli altri (N-1) sono utilizzati per codificare il valore assoluto del numero in esame. La convenzione adottata è di utilizzare il valore 1 per il segno negativo, 0 per quello positivo. Esempio: con N=4 bit numero = -3 → 1011 dove 1 rappresenta il segno - numero = +3 → 0011 dove 0 rappresenta il segno + → i rimanenti 3 bit (011) rappresentano il valore assoluto, ovviamente uguale in entrambe le codifiche Book in Progress Pagina A31 Capitolo A: Codifica dell’informazione Osservazioni: lo 0 ha una doppia rappresentazione, una positiva e una negativa; l'intervallo di valori rappresentabili con N bit è [-2N-1+1, +2N-1-1]. Alla facilità di codifica corrispondono però problemi di elaborazione: il fatto che il bit più significativo (il bit del segno) ha un significato diverso dagli altri implica che deve essere trattato in modo diverso nelle operazioni. Esempio: Calcoliamo -20 +2 (supponiamo di utilizzare codifiche su 8 bit) -20 = 10010100 quindi 10010100 + + 2 = 00000010 00000010= 10010110 che corrisponde a -22 (non a -18 che è il risultato corretto) Il problema deriva dal fatto che per il bit del segno non vale più la regola del peso associato alla posizione. Si preferisce utilizzare, invece, la notazione in complemento a 2, che ci permette di trasformare la sottrazione in addizione. Rappresentazione in complemento a 2 Definiamo il significato di complemento ad una base: in generale si definisce complemento ad una base M di un numero X rappresentato con N cifre, quel numero Y che sommato a X dà come risultato la potenza N-esima della base. Difficile? No, se rileggiamo quanto detto attraverso degli esempi: esempio 1: se X= 6, M= 10 e N= 1, la potenza 101 è 10; quanto vale Y, ovvero quale è quel numero che sommato a 6 dà come risultato 10? la risposta, ovvia, è Y= 4 esempio 2: se X= 38, M= 10 e N= 2, la potenza 102 è 100; quanto vale Y? la risposta è Y= 62 (62+38 = 100). E se la base è 2? Il procedimento è il medesimo; esaminiamolo attraverso un esempio: se X= 11001 e N= 5, la potenza 25 è 100000, quindi il numero che sommato a X dà come risultato 100000 è Y=00111. Infatti 11001+ 00111 = 100000 Book in Progress Pagina A32 Capitolo A: Codifica dell’informazione Leggiamo quanto svolto in base 10: 110012= 25, la potenza 25 è 32 =100000 (ricordati che devi ragionare in base 2). Quale è quel numero che sommato a 25 dà 32? Risposta: 7 che in base 2 è proprio 111. Introduciamo ora la rappresentazione dei numeri interi in complemento a 2 (con N bit). Definizione: la rappresentazione di un numero positivo coincide con la rappresentazione in modulo e segno (entrambe con N bit) la rappresentazione di un numero negativo è costituita dal complemento a 2 del corrispondente numero positivo. Osservazioni: l'intervallo di valori rappresentabili con N bit è [-2N-1, +2N-1-1], quindi è possibile rappresentare un valore in più rispetto alla rappresentazione in modulo e segno. i numeri positivi iniziano tutti con un bit a 0 i numeri negativi iniziano tutti con un bit a 1 esiste una sola rappresentazione dello 0: (0... 0). Riportiamo nella successiva tabella la codifica in modulo e segno e in complemento a 2 dei numeri interi rappresentabile con N=4 bit. modulo e complemento a in base 10 segno 2 -8 ----------- 1000 -7 1111 1001 -6 1110 1010 -5 1101 1011 -4 1100 1100 -3 1011 1101 -2 1010 1110 -1 1001 1111 -0 1000 ---------- +0 0000 0000 +1 0001 0001 +2 0010 0010 +3 0011 0011 +4 0100 0100 +5 0101 0101 +6 0110 0110 +7 0111 0111 Book in Progress Pagina A33 Capitolo A: Codifica dell’informazione Esiste una regola di facile applicazione che permette di scrivere la rappresentazione di un numero negativo in complemento a 2 con N bit: 1. si scrive la codifica con N bit del numero positivo corrispondente 2. si lascia inalterata, partendo dal bit meno significativo, la sequenza di bit fino al primo 1 che si incontra, che rimane anch'esso invariato; si modificano tutti i altri bit: 0 diventa 1, 1 diventa 0. Esempio: vogliamo codificare in base 2 con 6 bit il corrispondente valore di -22 in base 10 1° passo: + 2210 = 0101102 2° passo: si complementa bit a bit, applicando la regola appena esposta 0 1 0 1 1 0 ↓ ↓ ↓ ↓ ↓ ↓ 1 0 1 0 1 0 quindi -2210=1010102 in complemento a 2 Affrontiamo ora il problema posto all'inizio del paragrafo: la sottrazione tra numeri relativi. Partiamo dalla considerazione che la differenza tra due numeri equivale alla somma algebrica tra il primo operando e l'opposto del secondo. Infatti 23 - 12 = → equivale 23 + ( -12) = +11 +11 È sufficiente rappresentare il sottraendo in complemento a 2, trasformando così una sottrazione in un'addizione. Enunciamo la regola per eseguire la somma algebrica tra 2 numeri interi codificati in complemento a 2 su N bit: si esprimono i numeri in complemento a 2 su N bit (la codifica differisce solo per i numeri negativi) si esegue la somma si trascura l'eventuale overflow (ovvero il bit di posizione N+1) Applichiamo la regola (negli esempi successivi i numeri sono codificati su 6 bit) Esempio: Operandi di segno opposto in questo caso il valore ottenuto è sempre corretto (il numero di bit è sufficiente per memorizzare il risultato) -22 = 101010 101010 + + 2= 000010 000010 = 101100 Book in Progress Pagina A34 Capitolo A: Codifica dell’informazione Nel risultato il bit del segno è 1 → valore negativo, quindi occorre complementare 101100 diventa 010100 = 20 risultato finale [ -22 + 2 = -20 ] → risultato corretto Esempio: Operandi di segno concorde + è sempre senza overflow (perché?) in questo caso il valore ottenuto non sempre è corretto risultato corretto risultato errato (senza overflow) (senza overflow) +17 + 8 = +25 +17 +16 = +33 +17 = 010001 010001 + +17 = 010001 010001 + +8 = 001000 001000 = +16 = 010000 010000 = 011001 100001 poiché [0110012 = 2510 ] Nel risultato il bit del segno è 1→valore negativo risultato corretto risultato errato Esempio: Operandi di segno concorde - è sempre con overflow (perché?) in questo caso il valore ottenuto non sempre è corretto risultato corretto risultato errato (con overflow) (con overflow) -24 + (-7) = -31 -24 + (-12) = -36 -24 = 101000 101000 + -24 = 101000 101000 + -7 = 111001 111001 = -12 = 110100 110100 = 1100001 1011100 Il bit più significativo è il bit di Il bit più significativo è il bit di overflow → si overflow → si trascura (è il 7° bit), il trascura (è il 7° bit), il bit immediatamente bit immediatamente successivo è il successivo è il bit del segno: valore 0 quindi il bit del segno: valore 1 quindi il risultato è positivo risultato si complementa poiché [11000012 = -3110] risultato corretto risultato errato Esercizi: eseguire le seguenti operazioni in aritmetica binaria, codificare i numeri in decimale e controllare i risultati ottenuti addizione 1) 1112 + 12 2) 11112 + 11012 3) 10010012 + 11102 4) 11111012 + 111111112 5) 10000002 + 100000002 6) 11001002 + 110112 Book in Progress Pagina A35 Capitolo A: Codifica dell’informazione 7) 10000002 + 111112 sottrazione(tra numeri naturali) 8) 1000002 – 100002 9) 1001102 – 1102 10) 11110002 – 101002 11) 10010002 – 10000012 12) 10001102 – 1100102 13) 10110112 – 1001102 14) 10110002 – 110102 moltiplicazione 15) 1012 * 102 16) 1012 * 1102 17) 10102 * 1112 18) 110112 * 11002 19) 111112 * 1112 20) 111112 * 11112 21) 111112 * 111112 divisione 22) 11002 : 112 [Q= 410 ; R= 010] 23) 1011112:1012 [Q= 910 ; R= 210] 24) 1011112 :1112 [Q= 610; R= 510] 25) 10100002 : 10112 [Q=710 ; R= 310] 26) 11111012 : 1102 [Q= 2010; R= 510] 27) 100010002 : 11112 [Q= 910; R= 110] 28) 1000000002 : 100002 [Q= 1610; R= 010] somma algebrica (in complemento a 2 su 7 bit) 29) 01000112 + 01011012 [-4810 errore] 30) 01000112 + 00011002 31) 10100112 + 00101112 [-2210] 32) 01100112 + 10001002 [-910] 33) 00110112 + 11001002 [-110] 34) 10001002 + 10011102 [-4610 errore] 35) 11100012 + 10011112 [-6410] 36) 11011102 + 11100102 [-3210] Book in Progress Pagina A36 Capitolo A: Codifica dell’informazione LABORATORIO Conversione dei numeri da un sistema numerico ad un altro Ora proviamo a costruire un foglio di calcolo che mi permetta di convertire i numeri nei vari sistemi numerici. Come ipotesi di partenza per tutti gli esercizi che realizzeremo, consideriamo sempre un numero con massimo 6 cifre, ma tale foglio di calcolo potrà essere ampliato a vostro piacimento utilizzando un numero diverso di cifre. CONVERSIONE BINARIO → DECIMALE Innanzitutto apriamo il foglio di calcolo e scriviamo le seguenti informazioni: Con lo schema impostato come figura riusciremo a convertire il numero binario “011101” in un numero decimale. Per prima cosa inserire tutte le informazioni cosi come scritte in figura. Nella cella A7 scrivere la formula =A6^A5 e trascinare fino alla cella F7 Nella cella A8 scrivere la formula =A7*A4 e trascinare fino alla cella F8 Book in Progress Pagina A37 Capitolo A: Codifica dell’informazione Nella cella H4 scrivere la formula = A8+B8+C8+D8+E8+F8 e premere INVIO Ora sappiamo che “011101” corrisponde a “29” nel sistema decimale! CONVERSIONE OTTALE → DECIMALE Proviamo ora ad impostare un foglio di calcolo per effettuare la conversione da un numero ottale in decimale: Per esempio, vogliamo trovare il corrispondente numero decimale del numero “256” in base 8. Partiamo sempre costruendo una tabella come la figura seguente: Successivamente inserite le seguenti informazioni: Nella cella A7 scrivere la formula =A6^A5 e trascinare fino alla cella F7 Nella cella A8 scrivere la formula =A7*A4 e trascinare fino alla cella F8 Book in Progress Pagina A38 Capitolo A: Codifica dell’informazione Nella cella H4 scrivere la formula = A8+B8+C8+D8+E8+F8 e premere INVIO. Ora sappiamo che il numero “256” in base 8 corrisponde al numero 174 nel sistema decimale. CONVERSIONE ESADECIMALE →DECIMALE Per ultimo, proviamo a convertire un numero in sistema esadecimale in decimale. Ora le cose si complicano un poco perchè le cifre del sistema esadecimale non sono tutte numeriche, ma dopo la cifra 9 dobbiamo considerare A, B, C, D, E, F che rispettivamente corrispondono a 10, 11, 12, 13, 14, 15. Procediamo quindi nel seguente modo: Per prima cosa scriviamo la seguente tabella come figura: Book in Progress Pagina A39 Capitolo A: Codifica dell’informazione Successivamente impostiamo la seguente tabella: Nelle celle A5:F5 dobbiamo impostare una Funzione che mi permetta di trovare la cifra numerica corrispondente alla cifra esadecimale inserita. La funzione in questione è =CERCA.VERT(). Come funziona? Questa funzione, in generale, permette di visualizzare un dato che si trova sullo stesso rigo di un valore dato in input. La sintassi della funzione è la seguente: =CERCA.VERT(valore da cercare; tabella dei valori; colonna in cui si trova il valore che si vuole visualizzare). Book in Progress Pagina A40 Capitolo A: Codifica dell’informazione In particolare, il valore da cercare lo abbiamo inserito nelle caselle gialle; la tabella dei valori si trova nelle celle J1:K16 e l'informazione che ci serve si trova nella seconda colonna della nostra tabella. Nella cella A5, quindi, proviamo ad inserire la funzione: =CERCA.VERT(A4;$J$1:$K$16;2) e trascinatela fino alla cella F5. Nella cella A8 scrivere la formula =A7^A6 e trascinare fino alla cella F8 Nella cella A9 scrivere la formula =A8*A5 e trascinare fino alla cella F9 Nella cella H4 scrivere la formula = A8+B8+C8+D8+E8+F8 e premere INVIO. Ora sappiamo che il numero in base esadecimale “14A” corrisponde al numero decimale “330”. CONVERSIONE DECIMALE → BINARIO Ora proviamo a fare il contrario. Conoscendo il valore in decimale vogliamo calcolare il corrispondente numero in binario. Visto che abbiamo già utilizzato il numero 29 nel primo esempio, proviamo a prendere in considerazione questo numero per effettuare una controprova. Impostare il foglio secondo la seguente figura: Book in Progress Pagina A41 Capitolo A: Codifica dell’informazione Nella cella A7 scriviamo =A4 Nella cella C7 scriviamo =A7/B7 Nella cella D7 scriviamo =INT(C7) Nella cella E7 scriviamo =RESTO(A7;B7) se avete fatto tutto bene, otterrete il risultato come in figura: Ora nella cella A8 scriviamo =D8 Nella cella C8 scriviamo =A8/B8 Nella cella D8 scriviamo =INT(C8) Nella cella E8 scriviamo =RESTO(A8;B8) Book in Progress Pagina A42 Capitolo A: Codifica dell’informazione Ripetiamo la stessa operazione fino a quando la cella che contiene la “Parte Intera” raggiungerà il valore “0”, come la seguente figura: Ora bisogna fare in modo che i resti delle varie divisioni vengano letti a partire dall'ultimo. Possiamo usare per esempio la funzione =CONCATENA() che permette di unire in un'unica cella informazioni che si trovano in più celle. Proviamo a scrivere nella cella C4 la seguente funzione =CONCATENA(E11;E10;E9;E8;E7). Otterremo la seguente figura: Abbiamo, in questo modo, verificato che effettivamente il numero decimale “29” corrisponde al numero binario “11101”. Book in Progress Pagina A43 Capitolo A: Codifica dell’informazione CONVERSIONE DECIMALE → OTTALE Per quanto riguarda l'impostazione del foglio per eseguire questa conversione procediamo come nell'esercizio precedente, solo che questa volta nella colonna DIVISORE dobbiamo digitare “8”. Otterrete il seguente risultato: CONVERSIONE DECIMALE → ESADECIMALE Anche in questo caso procedete sempre allo stesso modo, modificando semplicemente la colonna relativa a divisore, inserendo questa volta il valore “16”. Otterrete il seguente risultato: Book in Progress Pagina A44 Capitolo A: Codifica dell’informazione Per poter assegnare la lettera per i numeri maggiori di 9, bisogna utilizzare sempre il comando =CERCA.VERT() impostando a parte una tabella simile a quella utilizzata nell'esercizio di conversione da esadecimale a decimale. Nella cella C4 bisognerà utilizzare la funzione =CONCATENA(E7;G1:H16;2). Otterremo, in questo modo la seguente figura: Book in Progress Pagina A45 Capitolo B: Sistemi informativi BOOK IN PROGRESS I SISTEMI INFORMATIVI A cura del prof Giuseppe Cavallo adattamenti a cura di Salvatore Madaro Book in Progress Pagina B1 Capitolo B: Sistemi informativi INDICE DEI CONTENUTI I SISTEMI INFORMATIVI................................ 3 Sistema di reporting aziendale MIS......... 13 Il Ciclo di vita di un sistema informativo. 6 Sistema di supporto alle decisioni DSS. 13 Componenti del sistema informativo........ 8 Le tipologie di sistemi informativi............ 14 Centro del controllo ed attività critiche.... 9 Sistemi di gestione dei flussi di lavoro... 14 Storia................................................................. 9 Sistemi gestionali......................................... 14 Sistema Informativo Automatizzato......... 10 Sistemi per l’automazione d’ufficio.......... 14 Il Sistema Informativo dal punto di vista Sistemi di comunicazione........................... 15 strategico.................................................. 11 Sistemi per il governo dell’azienda.......... 15 Evoluzione dei sistemi informativi........... 12 Sistemi statistici............................................ 15 Sistema di elaborazione dati EDP........... 13 Sistemi territoriali......................................... 15 Book in Progress Pagina B2 Capitolo B: Sistemi informativi I SISTEMI INFORMATIVI Definizione Un Sistema Informativo è un insieme di apparecchiature, procedure e persone che hanno il compito di: Raccogliere Organizzare Selezionare Archiviare Comunicare i dati riguardanti l’attività di un’organizzazione. Con l’obiettivo di : mettere a disposizione dei responsabili delle decisioni operative tutte le informazioni necessarie per effettuare le migliori scelte possibili. Il sistema informativo è una componente fondamentale di ogni organizzazione. La definizione del sistema informativo di una organizzazione richiede l’identificazione: della missione degli obiettivi delle risorse disponibili dei processi di gestione delle risorse. Il processo è considerato l’elemento chiave di un’organizzazione e rappresenta l’ insieme delle attività tra loro correlate e finalizzate alla realizzazione di un risultato definito misurabile, che coinvolge più risorse ed attraversa più ruoli e strutture. I sistemi informativi devono essere coerenti con i processi identificati nell’organizzazione. Book in Progress Pagina B3 Capitolo B: Sistemi informativi Nel seguente grafico è rappresentato l’insieme dei processi coinvolti nell’attuazione di un sistema informativo contabile che ha come obbiettivo la produzione dei cedolini paga dei dipendenti di una azienda. Secondo un’ottica tradizionale i processi si distinguono in : Processi operativi Processi di controllo Processi direzionali Di conseguenza anche i sistemi informativi che li supportano e realizzano risentono di questa classificazione, richiedono perciò diverse modalità di realizzazione. L’evoluzione dei sistemi informativi ha portato ad affrontare in ordine consecutivo : l’automazione dei processi operativi l’automazione delle attività di controllo l’automazione delle attività direzionali. Book in Progress Pagina B4 Capitolo B: Sistemi informativi Il percorso di evoluzione dei sistemi informativi ha comportato una loro graduale integrazione, corrispondentemente l’informatica si è evoluta da tecnologia di produzione, con obiettivi principalmente di efficienza , a strumento di governo delle aziende. In un sistema informativo è necessario stabilire quali tipologie di dati e di attività devono essere trattati: la loro identificazione guida alla scelta delle opportune tecnologie e metodologie da impiegare per lo sviluppo. Realtà da Rappresentare INFORMAZIONI Sistema Informativo Rilevazione QUANTITATIVE Tecnologie Modalità QUALITATIVE Strumenti Book in Progress Pagina B5 Capitolo B: Sistemi informativi Il Ciclo di vita di un sistema informativo Le fasi di realizzazione di un sistema informativo sono generalmente le seguenti: nascita dell'esigenza Data una specifica realtà si tende a migliorare la situazione esistente tramite il perseguimento di determinati obiettivi. studio di fattibilità serve a definire in maniera per quanto possibile precisa: quali potrebbero essere i vari componenti del sistema ; i costi di realizzazione le varie alternative possibili, l’analisi costi/benefici per singola alternativa stabilire le priorità della realizzazione delle varie componenti del sistema. raccolta e analisi dei requisiti: consiste: nell'individuazione e nello studio delle proprietà e delle funzionalità che il sistema informativo dovrà avere; nel coinvolgimento di tutti coloro coloro che dovranno utilizzarlo effettivamente al termine della realizzazione; nel produrre una descrizione completa ma generalmente informale di tutti i dati coinvolti e delle operazioni su di essi; nella descrizione , in maniera il più possibile precisa , degli input da fornire al sistema e degli output attesi; nel definire i requisiti software e hardware del sistema informativo. progettazione: riguarda : la progettazione dei dati : definizione delle strutture dati che conterranno in seguito le informazioni elementari la progettazione delle applicazioni: le caratteristiche dei progetti applicativi la progettazione dell'architettura tecnica di sistema : rappresenta l'infrastruttura individuandone le caratteristiche in termini di sistemi (server), connettività, sicurezza fisica e logica. Book in Progress Pagina B6 Capitolo B: Sistemi informativi sviluppo: consiste: nella realizzazione del sistema informativo secondo la struttura e le caratteristiche definite nella fase di progettazione. nella creazione e caricamento di una base di dati nella produzione del codice dei programmi. validazione e collaudo: consiste : nella verifica del corretto funzionamento di tutte le applicazioni ( il sistema risponde correttamente a tutti i requisiti?) nella verifica della qualità del sistema informativo. nella attivazione di una fase sperimentale che possa coinvolgere tutte le condizioni operative anche in situazione di stress del sistema avviamento: consiste : nella messa in funzione del sistema nell’affiancamento per un periodo transitorio all’utente finale nell’individuazione di possibili affinamenti delle procedure e di possibili bug di analisi scaturiti dalla messa in funzione e dall’utilizzo delle nuove procedure nell’erogazione di corsi di formazione al personale addetto all’utilizzo del sistema nel recupero e travaso di dati strategici provenienti da applicazioni preesistenti nell’attivazione dei collegamenti tra tutte le procedure e le applicazioni nell’avvio della operatività reale. Book in Progress Pagina B7 Capitolo B: Sistemi informativi funzionamento: consiste nell’operatività a regime del sistema che svolge tutti i compiti per il quale e’ stato progettato. Se non si verificano malfunzionamenti o revisioni delle funzionalità del sistema, questa attività richiede solo operazioni di gestione e manutenzione manutenzione: consiste : nella manutenzione correttiva nella quale si consolida e si correggono eventuali anomalie non rilevate nella fase di collaudo e di avviamento nella manutenzione evolutiva dove il sistema cresce arricchendosi con altre funzionalità scaturite in un secondo momento dopo la fase di analisi e di sviluppo dovute all’insorgere di nuove esigenze applicative. Il processo su indicato non è detto che sia sempre strettamente sequenziale, in quanto spesso durante l'esecuzione di una attività citata bisogna rivedere decisioni prese nell'attività precedente. Quello che si ottiene è un ciclo di operazioni di tipo ripetitivo che termina con il corretto funzionamento del sistema. Molto spesso , in accordo con le disponibilità finanziarie , si aggiunge una ulteriore attività accessoria che prevede : realizzazione rapida di un prototipo semplificato del sistema mediante l’utilizzo di sistemi software sperimentazione delle funzionalità del sistema mediante il prototipo In genere tale fase di verifica porta, di conseguenza, un affinamento dei requisiti del progetto e quindi revisioni successive con l’inevitabile riprogrammazione di tutte le attività coinvolte. Componenti del sistema informativo. Il sistema informativo è da interpretarsi come un sistema aperto interagente con le altre parti costituenti l'azienda, nonché l'ambiente esterno all'azienda. Book in Progress Pagina B8 Capitolo B: Sistemi informativi Il sistema informativo si configura come un insieme ordinato di elementi , anche molto diversi tra loro, che raccolgono, elaborano, scambiano e archiviano dati con lo scopo di produrre e distribuire le informazioni alle persone che ne hanno bisogno, nel momento e nel luogo adatto. Il sistema informativo in una impresa deve quindi essere visto come quel complesso di elementi in grado di fornire le informazioni necessarie alle persone che lavorano a tutti i livelli della struttura. Storia Il primo tentativo di identificare il concetto di sistema informativo è stato fatto da Forrester intorno al 1960. La sua intuizione deriva dall’osservazione che i sistemi sociali, e quindi le aziende, presentano al loro interno attività che necessitano di un elevato grado di attenzione da parte di organi di controllo: si tratta di attività critiche per il conseguimento degli obiettivi del sistema. Centro del controllo ed attività critiche. Book in Progress Pagina B9 Capitolo B: Sistemi informativi INTERVENTI OBIETTIVI INFORMAZIONI RESPONSABILE DEL AZIONI CONTROLLO AZIONI ATTIVITA’ RISORSE CRITICHE RISULTATI RISORSE Il centro del controllo è un punto di decisione: interviene quando le informazioni sull’andamento delle attività dell’organizzazione indicano la necessità di azioni correttive. In questa ottica il sistema informativo può quindi essere visto come un sottosistema del sistema di controllo aziendale e deve svolgere un ruolo di standardizzazione nella rilevazione e misurazione dei fenomeni aziendali. Sistema informativo si può avvalere di un sistema informatico. Con la denominazione di Sistema Informativo Automatizzato si intende quella parte del sistema informativo che è realizzata con tecnologie informatiche. Le informazioni vengono : Book in Progress Pagina B10 Capitolo B: Sistemi informativi raccolte, elaborate, archiviate, scambiate mediante l’utilizzo delle tecnologie dell’informazione e della comunicazione. Nelle varie istituzioni , prima dell’introduzione delle macchine d’ufficio e degli elaboratori elettronici, le informazioni venivano gestite con metodi manuali. Si sono così instaurate complesse e lunghe procedure finalizzate a: registrare e gestire i dati su supporti cartacei archiviare i documenti ricercare negli schedari La manualità di queste operazioni comportavano una notevole lentezza nei riscontri nonché una elevata generazione di errori. Il tasso di errore elevato dovuto ai motivi su indicati costringe ad introdurre cicli di controllo delle informazioni: determinando la bassa efficienza del sistema. Queste procedure si basano sulla gestione di processi anche complessi attraverso meccanismi che richiedono attività non strettamente necessarie. Si pensi ad esempio al documento o fascicolo che arriva sulla scrivania di chi deve poi effettuare una lavorazione: l’oggetto sul quale si basa il funzionamento del processo è il documento cartaceo. Per il funzionamento del processo in questo caso è necessario: fotocopiare il documento in numero quantomeno pari alle lavorazioni in parallelo che deve subire! Le tecnologie informatiche e di comunicazione incidono proprio sull’esecuzione delle varie operazioni accelerando le funzioni di registrazione, elaborazione, archiviazione, ricerca dei dati. Il Sistema Informativo dal punto di vista strategico. Un caso molto particolare di risorsa su cui operano tutte le aziende è l'informazione. L'informazione è infatti una risorsa che implica tutte le altre risorse. I processi, per poter essere eseguiti, si basano sulla conoscenza delle risorse sulle quali agiscono, in altri termini hanno bisogno di informazioni: l'insieme delle informazioni gestite, - generate, utilizzate, elaborate dai processi costituisce il sistema informativo. Book in Progress Pagina B11 Capitolo B: Sistemi informativi Per esempio, i processi aziendali che riguardano la gestione del personale hanno bisogno di informazioni riguardanti : i dati sulla disponibilità, sul mercato del lavoro, di personale con specifiche caratteristiche professionali le informazioni relative alle persone contattate la modalità di valutazione del personale l’individuazione del tipo di formazione idoneo la raccolta dei dati relativi alle singole persone presenti nell’azienda in organico Quella parte del sistema informativo in cui le informazioni sono raccolte, elaborate, archiviate, scambiate mediante l’uso delle tecnologie della informazione e della comunicazione costituisce il Sistema Informatico. Evoluzione dei sistemi informativi: dal supporto all’operatività alle decisioni. Inizialmente le imprese sono partite dalle applicazioni di natura operativa. Gli investimenti richiesti dall'automazione erano giustificati dai volumi di dati trattati e dalla ripetitività delle procedure (tipicamente l'elaborazione di stipendi e fatture). Si tratta in sostanza delle applicazioni basilari che storicamente rappresentano il risultato tangibile e positivo dell'introduzione di calcolatori nelle aziende. L'insieme di queste applicazioni è stato denominato sistema di elaborazione dati, nella letteratura anglosassone EDP System (Electronic Data Processing System). In un secondo tempo sono stati costruiti sistemi informativi aventi lo scopo di supportare le attività di controllo. Il fine è rappresentato dal controllo costante sull'andamento delle attività operative. Sono applicazioni che forniscono alla direzione informazioni standardizzate in modo ciclico. Si tratta di applicazioni di controllo di gestione e reporting statistico sulle attività aziendali. L'insieme di queste applicazioni è stato denominato sistema per la produzione di informazioni per il controllo direzionale, nella letteratura anglosassone MIS (Management Information System). Infine troviamo i sistemi per il supporto alle attività strategiche. Si tratta di sistemi che supportano le attività direzionali non predefinite e poco strutturate. Book in Progress Pagina B12 Capitolo B: Sistemi informativi Sono stati denominati sistemi per il supporto alle decisioni, nella letteratura anglosassone DSS (Decision Support System). Questi tre aspetti del sistema informativo automatizzato si differenziano in modo sensibile, nella tabella che segue si presentano in sintesi le principali caratteristiche di questi tre aspetti. Sistema di elaborazione dati EDP (Electronic Data Processing System ) Sostituisce e integra le attività impiegatizie manuali È utilizzato passivamente Ha come obbiettivo l’efficienza nel risparmio del tempo e nella qualità Gestisce abilmente attività concorrenti effettuandone la sincronizzazione Punta sulla precisione e cura i risultati Utilizza standard per la produzione Rimane costante nel tempo Sistema di reporting aziendale MIS (Management Information System). Fornisce periodicamente dati di sintesi per favorire il controllo periodico aziendale Richiede una attenta analisi interpretativa dei dati da parte dell’utente È orientato all’efficacia e all’efficienza Mantiene il riferimento ai dati relativi a situazioni pregresse Usa modelli standard per la comunicazione delle informazioni Mette in risalto in maniera evidente le situazioni rilevate fuori norma Rimane costante nel tempo Sistema di supporto alle decisioni DSS (Decision Support System). E’ di supporto agli staff manageriali Book in Progress Pagina B13 Capitolo B: Sistemi informativi Deve essere utilizzato continuamente Punta all’efficacia Ipotizza , prevede possibili scenari futuri in base alla analisi delle situazioni passate già consolidate Accetta l’approssimazione se è attendibile e giustificata Estremamente flessibile Le tipologie di sistemi informativi. I sistemi informativi possono essere rappresentati in diverse categorie in dipendenza di diversi fattori: la natura delle informazioni trattate i domini applicativi interessati dal sistema il contesto organizzativo di riferimento la tecnologia utilizzata Si possono quindi distinguere sistemi informativi con diverse caratteristiche. Sistemi gestionali (o transazionali). Si tratta dei sistemi più tradizionali, perseguono l’obiettivo dell’informatizzazione delle attività strutturate e ripetitive. Riguardano prevalentemente i processi ed i settori operativi. Ad esempio si tratta di: sistema di bilancio, gestione degli stipendi, gestione di un’anagrafe comunale, magazzino , fatturazione ecc. Sistemi di gestione dei flussi di lavoro. Sono i sistemi che normalmente vanno ad integrazione di quelli gestionali. L’obiettivo che perseguono è la formalizzazione dei flussi di lavoro che coinvolgono più persone e settori, per consentirne la massima automazione. Sistemi per l’automazione d’ufficio. Book in Progress Pagina B14 Capitolo B: Sistemi informativi Sono i sistemi che si sono diffusi a seguito dell’introduzione dei personal computer e dei relativi software per lo svolgimento di attività tipiche d’ufficio (elaboratori di testo, gestione di tabelle, grafici e disegni). Lo sviluppo delle reti, in particolare di quelle locali, e l’integrazione con i sistemi di gestione dei flussi di lavoro ha portato all’evoluzione di questi sistemi dall’utilizzo individuale al lavoro di gruppo. Consentono quindi la condivisione di dati, funzioni e risorse tecnologiche (stampanti, scanner, ecc.). Sistemi di comunicazione. Sono quei sistemi che facilitano lo scambio di informazioni tra operatori coinvolti in diverse attività, consentono comunicazioni informali. La modalità più utilizzata è la posta elettronica. Sistemi statistici. L’obiettivo di questi sistemi è la rilevazione di dati dalle fonti di origine, la loro organizzazione, analisi, omogeneizzazione, aggregazione statistica, per fini conoscitivi e di pianificazione. Sistemi per il governo dell’azienda. Sono rivolti agli alti livelli aziendali per le decisioni di tipo gestionale ed operativo: DSS – Decision Support System, per la valutazione di ipotesi alternative di supporto a decisioni poco strutturate MIS – Management Information System, per il supporto all’analisi e valutazione di decisioni strutturate tipiche del livello di controllo dell’azienda EIS – Executive Information System, per prospettare al top management i dati di sintesi con elevata interattività ed alta flessibilità di presentazione (cruscotti aziendali) Sistemi territoriali. Sono i sistemi che trattano le informazioni in modo georeferenziato, tramite carte, mappe e sovrapposizione di dati tematici. Book in Progress Pagina B15 Capitolo C: Struttura di un elaboratore BOOK IN PROGRESS LA STRUTTURA DI UN ELABORATORE A cura del prof Giuseppe Cavallo Book in Progress Pagina C1 Capitolo C: Struttura di un elaboratore Competenze Abilità Conoscenze Utilizzare, con autonomia e Riconoscere le caratteristiche Architettura e componenti responsabilità, le reti e gli strumenti logico-funzionali di un computer e il di un computer informatici nelle attività di studio, ruolo strumentale svolto nei vari Interfacce e periferiche di ricerca e approfondimento ambiti. un computer disciplinare. INDICE DEGLI ARGOMENTI Schema funzionale di un calcolatore Pag 3 Schema concettuale di un calcolatore Pag 4 Le istruzioni Pag 5 Componenti strutturali di un calcolatore Pag 6 Macchina di Von Neumann Pag 8 Rappresentazione delle informazioni nella memoria centrale Pag 10 Architettura dei calcolatori elettronici Pag 14 Funzionamento dell’Unità di Elaborazione Pag 16 Book in Progress Pagina C2 Capitolo C: Struttura di un elaboratore La struttura di un calcolatore Schema Funzionale di un Calcolatore Ambiente Esterno Trasferimento Controllo Elaborazione Memorizzazione Book in Progress Pagina C3 Capitolo C: Struttura di un elaboratore Schema concettuale di un Calcolatore Elaborazione Archiviazione Comunicazione Interconnessione Il calcolatore è capace di: a) Contenere Informazioni b) Trasferire Informazioni ( da un punto all'altro al suo interno, da dentro a fuori e viceversa) c) Fare Calcoli con le informazioni che possiede b) e c) significa ELABORARE, MANIPOLARE Informazioni in modo "preciso" e veloce. Le istruzioni per eseguire queste manipolazioni sono scritte nei programmi. Ci chiediamo adesso che cosa sono le Informazioni: per comprendere ciò consideriamo un esempio di informazioni Quali dati sono coinvolti nel calcolo dell’area di un triangolo ? : a) il valore della base di un triangolo in cm. b) il valore della altezza in cm. c) il fatto che dobbiamo moltiplicare base per altezza. d) il valore 2. Book in Progress Pagina C4 Capitolo C: Struttura di un elaboratore e) il fatto che dividendo base x altezza per 2 si ottiene l'area del triangolo. DATI e ISTRUZIONI rappresentano quindi l'informazione che da ora in avanti indicheremo con il termine INFORMAZIONI. Il comportamento umano per la soluzione del su detto problema e’ il seguente : - sapere quanto è la base e scriverlo su un foglio di lavoro b=5 - sapere quanto è l' altezza e scriverlo su un foglio di lavoro h=6 - fare il prodotto b x h=30 scritto sempre sul foglio - dividere il prodotto ottenuto per 2, il risultato scritto sul foglio - dire che l'area del triangolo è uguale a 15. Il calcolatore lavora allo stesso modo , ma il foglio su cui normalmente appuntiamo le nostre operazioni coincide con la memoria centrale, che e’ rappresentabile come una matrice in cui le celle sono le locazioni dove sono memorizzate le informazioni. Esempio di locazioni di memoria centrale dove sono coinvolte le informazioni precedenti 5 6 2 30 15 Le Istruzioni calcolare bxh dividere per 2 stampare l'area Normalmente le istruzioni, cioè particolari tipi di informazioni, sono azioni che una macchina deve eseguire e sono memorizzate in locazioni di memoria consecutive Le informazioni nel nostro caso sono i passi del problema, cioè la base è da sapere, l'altezza è da sapere, la moltiplicazione, la divisione per 2, il problema trovare l'area del triangolo è da assegnare. Book in Progress Pagina C5 Capitolo C: Struttura di un elaboratore INPUT Input MEMORIA CPU Memoria OUTPUT Output Possiamo immaginare che nella memoria sia già contenuto il programma da far eseguire al calcolatore. Quello che avviene può essere schematizzato cosi': i dati vengono trasferiti dall'unita' di INPUT nella memoria; infatti c'e' bisogno di far transitare da "fuori" a "dentro" il calcolatore i dati che dovranno servire alla soluzione. Questi dati vengono memorizzati in due locazioni (quelle con 5 e 6), che chiameremo base e altezza. Eseguendo l'istruzione: "calcolare base per altezza", il calcolatore esegue 6x5 e memorizza il risultato in un'altra locazione che chiameremo prodotto. Eseguendo l'istruzione calcolare prodotto/2, il risultato viene memorizzato in una locazione che chiameremo area. Poi, eseguendo l'ultima istruzione, stampare area (cioe' il valore 15) viene trasferito all’esterno del calcolatore, verso l'unita' di OUTPUT. Componenti strutturali di un calcolatore Nel calcolatore possiamo riconoscere le seguenti componenti strutturali fondamentali: La MEMORIA è la parte del calcolatore per contenere le INFORMAZIONI. Per essere più precisi in un sistema di elaborazione la memoria ha lo scopo di memorizzare programmi, dati di ingresso, risultati parziali e finali. Book in Progress Pagina C6 Capitolo C: Struttura di un elaboratore La CPU è la parte che elabora INFORMAZIONI ed esegue calcoli e trasferimenti. Infatti noi possiamo pensare la CPU come costituita da due parti : la Unità Logico-Aritmetica (ALU) avente la funzione di eseguire calcoli logici ed aritmetici la Unità di Controllo (CU) che governa il funzionamento complessivo dell'elaboratore. L' INPUT è la parte ( Unità ) che è il canale attraverso cui le informazione vanno in memoria ( dall'esterno del calcolatore al suo interno ). L' OUTPUT è il canale di trasferimento delle informazioni dalla memoria all'esterno Quindi l' elaboratore esegue istruzioni di : Input (ingresso) Calcolo Trasferimento Output (uscita) controllate/eseguite dalla CPU (Central Processing Unit) cioè il processore del computer. Le unità di ingresso e di uscita Ci limitiamo a presentare solo alcune delle unità che sono attualmente in uso. UNITA' DI INPUT La tastiera, il mouse,lo joystick, il microfono, il telefono (modem), il touch screen, gli strumenti di misura digitali connessi con il calcolatore. UNITA' DI OUPUT Il video (monitor), la stampante, lo speaker, la cuffia, gli strumenti medici, plotter. Attraverso la tastiera l'utente invia al computer comandi e dati mentre attraverso il video l'utente riceve sia l' output dei programmi sia la visualizzazione delle informazioni da lui inserite. La memoria secondaria La memoria centrale che abbiamo visto è destinata ad archiviare istruzioni e dati che siano immediatamente disponibili per essere trattati dalla CPU. Se si vuole (e si deve) memorizzare le informazioni in modo permanente serve la memoria secondaria o ausiliaria chiamata anche memoria di massa. Queste informazioni vanno trasferite in memoria centrale ogni qualvolta vanno elaborate. La memoria secondaria (MS) è strutturalmente diversa dalla memoria centrale (MC) la Book in Progress Pagina C7 Capitolo C: Struttura di un elaboratore quale ha la caratteristica di cancellare tutte le informazioni ivi contenute ogni qualvolta non sia alimentata elettricamente; innanzitutto è molto più grande in termini sia fisici che di capacità di immagazzinamento di INFORMAZIONI, poi è più lenta nel senso che per prelevare qualsiasi informazione da essa l'elaboratore impiega un tempo maggiore per l’accesso ai dati. Esempi di memoria secondaria sono: i floppy disk, i cd-rom, l'hard disk, i nastri magnetici. L'hard disk può avere una dimensione da 100 a 1000 volte maggiore della MC, ma queste INFORMAZIONI contenute nello hard disk devono essere trasferite sempre in memoria centrale. Quanto detto fin qua coincide con l'Architettura di Von Neumann. Macchina di Von Neumann Lo scienziato John Von Neumann nel 1946 pubblicò un articolo sul progetto di una macchina per il calcolo automatico che introduceva il concetto di programma registrato in memoria. Il calcolatore digitale moderno nasce all'inizio degli anni '40 per merito di John von Neumann, J. Presper Eckert e John William Mauchly. Questi concettualizzarono l'idea di macchina ad accesso casuale (RAM Random Access Machine). Tale nomenclatura sta a indicare che il calcolatore ha una memoria organizzata come sequenza di celle di informazione, in cui il tempo per accedere a una cella non dipende dalla cella stessa (non si devono scorrere le celle sino a trovare quella cercata, la si accede immediatamente). Tale macchina è anche detta macchina di von Neumann. La caratteristica fondamentale della macchina di von Neumann è che la memoria contiene sia i programmi che i dati. Il programma è: la sequenza di istruzioni che devono essere eseguite i dati le informazioni che il programma elabora per produrre il risultato (queste informazioni includono: i dati di ingresso parte dei dati intermedi (che possono anche essere memorizzati nei registri interni della CPU per poi essere cancellati i risultati della computazione. Questa rappresenta la fondamentale differenza tra le macchine costruite o pensate sino a quel momento e i moderni calcolatori digitali: Book in Progress Pagina C8 Capitolo C: Struttura di un elaboratore il programma memorizzato nella stessa memoria dei dati e la possibilità che un programma modifichi un altro programma nel senso che possa scrivere nell’area di memoria dove risiede un altro programma. Schema della macchina von Neumann Gli elementi funzionali della Macchina sono quattro : Unita’ di elaborazione ( CPU , Central Processor Unit) Memoria centrale Periferiche Bus di sistema Interfaccia Interfaccia Interfaccia CPU Memoria periferica 1 periferica 2 periferica n L'Elaboratore Elettronico è una macchina costituita da vari organi, dette UNITÀ, che possono essere così suddivise: Unità centrale di Elaborazione (Microprocessore) composta dall'UNITÀ di CONTROLLO, che ha la funzione di governare tutte le attività di sistema, e dall'UNITÀ ARITMETICO-LOGICA (ALU), che realizza le operazioni di tipo aritmetico (addizioni, sottrazioni, moltiplicazioni, ecc.) e logico decis