Sistemi Web per il Turismo/ PGST/ 2014-2015 Mario Verdicchio/ Appunti dalla lezione 1/ Per inquadrare il contesto del corso, iniziamo ad analizzare i termini che ne costituiscono il titolo. Il concetto di “sistema” non è facile da spiegare in termini più semplici, in quanto è un concetto primitivo, come “insieme” oppure “oggetto”, che indica le idee più fondamentali con cui ci esprimiamo e costruiamo concetti più complessi. Possiamo comunque fare un tentativo. Sistema: un’entità che distinguiamo dall’ambiente circostante, da cui riceve un flusso di qualunque genere (chiamato input), che viene trasformato e restituito all’ambiente (sotto forma di output). Questa definizione è talmente generale da poter essere applicata a quasi qualunque entità: di fatto quasi ogni oggetto esistente (noi compresi) può essere visto come ricevere un input dall’ambiente circostante (nel nostro caso: aria, cibo, stimoli visivi, udtivi, tattili, etc.) e restituire un output (sempre nel nostro caso: aria espirata, movimento, espressioni vocali, etc.) Prendiamo un esempio più vicino al contesto del turismo: un aeroplano. Quali sono l’input di un aeroplano? Quali sono gli output corrispondenti? Da un punto di vista strettamente materiale, potremmo vedere l’aeroplano come una macchina che riceve carburante in input ed emette gas esausti in output. Inoltre, persone e valigie entrano nel sistema in un luogo (ad es. l’aeroporto di Orio al Serio) ed escono da esso in un luogo diverso (ad es. l’aeroporto di Praga). Dal momento che le persone che sono volate a Praga hanno acquistato un biglietto per usufruire di questo servizio, possiamo vedere l’aeroplano come un sistema che riceve denaro in input e fornisce un servizio di trasporto in output. E’ ovvio che stiamo operando da una prospettiva diversa da quella del carburante e dei gas esausti: l’aereo non “riceve” denaro allo stesso modo in cui riceve carburante. Questo semplice esempio ci fa capire che un sistema può essere analizzato su diversi livelli di astrazione, dove per livello basso di astrazione intendiamo una prospettiva in cui si prendono in considerazione i componenti più concreti e materiali di un sistema (come ad es. il carburante per un aeroplano) e per livello alto di astrazione intendiamo il punto di vista di un’analisi che verte su concetti, appunto, più astratti (come ad es. il denaro o i servizi di trasporto). Alcuni sistemi si comportano in maniera talmente regolare che la trasformazione che applicano all’input per ottenere l’output può essere vista come una funzione. Ricordiamo la definizione del concetto di funzione. Funzione: corrispondenza tra due insiemi che fa corrispondere a ogni elemento del primo insieme (chiamato dominio) uno e un solo elemento del secondo insieme (chiamatao codominio). Da questo punto di vista, potremmo vedere l’insieme di tutti i possibili input come dominio e l’insieme di tutti i possibili output come codominio di una funzione che descrive il comportamento di un sistema. Dal momento che nel contesto di questo corso siamo interessati ai sistemi Web, ci chiediamo quale tipo di funzione descrive il comportamento di tali sistemi. Un sistema si dice automatico quando funziona senza l’intervento umano. Un sistema si dice informativo quando i suoi input e output consistono di dati e informazioni. I sistemi Web sono sia automatici, sia informativi, ovvero sono sistemi informatici, rientrano nel contesto della disciplina dell’informatica. Il termine “informatica” deriva dalla fusione di due parole: • informazione, e • automatica. Nel contesto di questa disciplina per “informazione” non intendiamo l’insieme di notizie che otteniamo per mezzo dei cosidetti “organi di informazione” (come agenzie giornalistiche, uffici stampa, giornali, telegiornali, etc.), ma qualcosa di molto più semplice: per “informazione” intendiamo un insieme di dati, dove un “dato” è un insieme di simboli organizzati in maniera strutturata. Ad esempio, la prima riga di questo documento riporta un dato. Attenzione: un dato esiste indipendentemente dal significato che gli attribuiamo. Il fatto che “Sistemi” abbia un certo significato per chi legge non è determinante per il dato costituito dalla sequenza di simboli “S”, “i”, “s”, “t”,…e così via, Possiamo definire l’informatica allora come segue: Informatica: la disciplina che si occupa dell’elaborazione automatica dell’informazione, intesa come insieme di dati (sequenze strutturate di simboli). Un sistema informatico è, quindi, un sistema che riceve dati in input, li elabora, e li restituisce in output ed è in grado in operare in maniera automatica, senza l’intervento umano. Naturalmente l’intervento umano è comunque necessario per costruire il sistema e impostarne il funzionamento. Inoltre, i dati elaborati dal sistema non hanno alcun significato se non quello attribuito loro dagli essere umani che li interpretano. Vedremo più avanti come il Web si inserisca nel contesto più generale dell’informatica. Per il momento concentriamoci su quale tipo di servizio può essere offerto da un sistema informatico. Iniziamo da qualche definizione fondamentale: Problema: un ostacolo, un impedimento, una mancanza che si desidera eliminare. Soluzione: l’insieme delle operazioni che permette l’eliminazione di un problema. Lavorare nel contesto dell’informatica vuol dire cercare soluzioni fornite come output di un sistema informatico. Date le caratteristiche particolari dei sistemi informatici, non tutti i problemi sono risolvibili da loro, ma un sottoinsieme speciale: dobbiamo escludere tutti quei problemi che richiedono risorse non compaibili col funzionamento di un sistema informatico, come il buon senso, la comprensione del significato delle parole, l’intuito, l’istinto, le scelte a caso, i colpi di fortuna (tutte caratteristiche tipiche delle azioni umane). Dal momento che un sistema informatico elabora dati, dobbiamo escludere anche tutti quei problemi che includono input di natura diversa: ad esempio un sistema informatico non può risolvere il problema di trasformare gli ingredienti di una pizza in una pizza – dobbiamo limitarci a problemi di elaborazione di dati. Inoltre, dal momento che un sistema informatico è un sistema automatico, tutte le operazioni da eseguire devono essere specificate prima dell’inizio dell’esecuzione: poiché l’intervento umano in corso di esecuzione è escluso e improvvisazioni e scelte non sono possibili, tutto quello che deve essere eseguito deve essere pre-determinato. Il massimo di “indeterminatezza” che possiamo ammettere è che il sistema informatico a un certo punto dell’esecuzione controlli delle particolari condizioni al suo interno e, a seconda del risultato di tale controllo, esegua una certa operazione piuttosto che un’altra (tutte le possibililtà devono essere comunque pre-determinate: il sistema non può affrontare degli imprevisti). Considerate tutte queste restrizioni, date dalla natura stessa dei sistemi informatici, possiamo definire il tipo di soluzione che un sistema informatico è in grado di fornire: l’algoritmo. Algoritmo: soluzione che è dotata delle seguenti caratteristiche • consta di una sequenza finita di operazioni (finitezza), • che sono ben definite (chiarezza), • e eseguibili dal sistema (eseguibilità) • in maniera predeterminata, senza scelte umane o interventi del caso (determinismo). Di fatto, i problemi risolvibili con un sistema informatico sono proprio quelli che si possono risovere mendiante un algoritmo. L’esempio concreto più comune di sistema informatico è il computer, ma qualunque dispositivo che elabori dati in maniera automatica rientra nella categoria: uno smartphone, un tablet, un navigatore satellitare, un orologio digitale, etc. Tutti i sistemi informatici attuali hanno una caratteristica in comune: sono costituiti da circuiti elettronici che, stimolati da impulsi elettrici, rispondono con altri impulsi elettrici, in funzione dell’input. Riprendendo il discorso dei livelli di astrazione, ciò che a basso livello (quello dei fenomeni naturali) è un impulso elettrico può essere interpretato a un livello di astrazione superiore come dato. In particolare, tale intepretazione si basa su un concetto fondamentale in informatica: quello di codifica. Codifica: corrispondenza biunivoca tra un insieme qualisiasi di elementi e un sottoinsieme dei numeri naturali. Per fare un esempio che riguarda il lettore, gli stessi studenti di UniBG sono stati oggetto di una codifica all’atto dell’iscrizione per mezzo della matricola che è stata loro assegnata: ogni studente ha una sola matricola e nessun altro studente ha la sua stessa matricola. Che cosa c’entrano le codifiche con gli impulsi elettrici all’interno dei circuiti elettronici dei sistemi informatici? La codifica su cui si basano i sistemi informatici costituiti da circuiti elettronici è la seguente: • i circuiti elettronici non sono costruiti per ricevere impulsi elettrici a caso: perché funzionino correttamente, essi devono ricevere in input impulsi che variano tra due specifici valori di tensione: uno basso e uno alto (per i sistemi attuali tali valori sono 0 Volt e 5 Volt rispettivamente, ma questo è un dettaglio tecnologico che potrebbe cambiare in futuro senza modificare il funzionamento di questi sistemi) • i circuiti elettronici restituiscono in output gli impulsi elettrici che si ottengono applicando agli impulsi in input le trasformazioni necessarie, per le quali i circuiti sono stati costruiti; anche gli impulsi elettrici in output sono compresi tra i valori basso e alto di tensione • la codifica vera e propria, ossia la corrispondenza coi numeri naturali, è questa: al valore di tensione bassa corrisponde il numero 0 e al valore di tensione alta corrisponde il numero 1 Se teniamo in mente questa corrispondenza, allora possiamo interpretare il funzionamento del circuito elettronico in maniera più interessante per l’informatica: non stiamo più osservando impulsi elettrici che entrano in un sistema e vengono trasformati in altri impulsi che vengono mandati in output, bensì una sequenza di 0 e 1 (a seconda dei valori di tensione presenti) che viene trasformata in un’altra sequenza di 0 e 1 in uscita dal sistema. Nasce spontanea una domanda: “I sistemi informatici sono sistemi che elaborano esclusivamente sequenze di 0 e 1?” La risposta è sì, ma sarebbe semplicistico fermarsi qui. Tramite la cosiddetta “codifica binaria”, le sequenze di 0 e 1 possono essere trasformate in sequenze di cifre da 0 a 9, ossia in numeri nel sistema decimale come siamo abituati ad usarli, e viceversa. Nel seguente modo. Un sistema numerico è un sistema con cui fare riferimento, per mezzo di cifre, a determinate quantità. Ogni sistema numerico ha una base: la base del sistema numerico che siamo abituati ad utilizzare è il 10, e infatti tutte le quantità che esprimiamo con le cifre che vanno da 0 a 9 sono basate sulle potenze di dieci (unità, decine, centinaia, migliaia, etc…) Ad esempio: quando scriviamo 253 (duecentocinquantatré) intendiamo appunto due centinaia, cinque decine e tre unità 253 = 2 x 102 + 5 x 101 + 3 x 100 Un sistema numerico con base diversa, ad esempio 2, funziona allo stesso modo, solo che le potenze hanno, appunto, una base diversa. La cifra 10111 in base 2 vuole dire 10111 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 Se fate la somma delle potenze di 2 capite che 10111 (in base 2) indica quella quantità che noi siamo soliti indicare con 23 (in base 10). Da notare che se un sistema numerico ha base n, si usano le cifre da 0 a n-1: il sistema in base 10 ha 10 cifre (da 0 a 9) e quello in base 2 ha 2 cifre (0 e 1). Per non lasciare ambiguità possiamo usare un pedice per indicare la base del sistema numerico usato: 101112, 25310. In questo modo 101112 è un numero del sistema binario (quello con base 2) che indica la quantità che siamo soliti chiamare ventitré, ben distinto da 1011110, che è diecimilacentoundici. Con la trasformazione sopradescritta possiamo interpretare ogni sequenza binaria come un numero del sistema decimale a cui siamo più abituati, quindi un circuito elettronico che applica trasformazioni a sequenze di 0 e 1 può essere visto come un circuito elettronico che applica trasformazioni a numeri per ottenere risultati numerici. Questo è il punto fondamentale dei sistemi informatici costruiti sotto forma di circuiti elettronici. I circuiti elettronici che costituiscono i sistemi informatici sono costruiti in modo che le trasformazioni che applicano sulle sequenze binarie in input corrispondono all’esecuzione di operazioni aritmetiche, cosicché l’output corrisponde al risultato di tali operazioni. In altre parole, i sistemi informatici non sono altro che versioni molto sofisticate e versatili di calcolatrici. Non a caso, un computer si chiama in questo modo: è un calcolatore – uno strumento per eseguire calcoli.
© Copyright 2024 ExpyDoc