La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

IL SOFTWARE Marco Maiocchi 1 1 1.

Presentazioni simili


Presentazione sul tema: "IL SOFTWARE Marco Maiocchi 1 1 1."— Transcript della presentazione:

1 IL SOFTWARE Marco Maiocchi 1 1 1

2 Problemi e Soluzioni Problema: ho fame. Soluzione: mangio un panino
Problema: come ottengo un panino ? Soluzione1: preparo un panino; Soluzione2: lo compro al bar sotto casa;

3 La Programmazione La programmazione è l’attività di:
1 Analizzare un dato problema, completamente e correttamente; 2 Scomporlo in sottoproblemi; 2 Individuare, per ogni sottoproblema, le possibili soluzioni; 3 Individuare, per ogni sottoproblema, il metodo per arrivare alle soluzioni (algoritmo); 4 Scegliere il metodo che arriva alla soluzione con la maggior efficienza; 5 Descrivere il metodo scelto in uno specifico linguaggio;

4 L’hardware serve per far funzionare il software
Una definizione empirica quello che si tocca è hardware, il resto è software L’hardware serve per far funzionare il software Il software serve per far fare all’hardware tutto quello che vogliamo Il software è organizzato in programmi

5 ISTRUZIONI, OPERAZIONI, ESECUTORI
UOVA AL BURRO Far sciogliere 20 g di burro in un tegamino. Quando il burro è ben dorato, rompere il guscio dell’uovo e far scivolare tuorlo e albume delicatamente nel tegamino. Cuocere fino a che l’albume non si sarà completamente rappreso. Salare. Servire nel tegamino. PROCEDIMENTO Input Output Esecutore Un calcolatore è semplicemente una macchina capace di eseguire operazioni per cui è stata progettata. Tali operazioni, eseguite nel corretto ordine, sono in grado di operare trasformazioni, portando un “sistema” da uno stato iniziale a un altro. Quando l’elaborazione è puramente simbolica, è facile vedere i dati d’ingresso (es. addendi), un procedimento di trasformazione (es, addizione) ei risultati finali (es. somma); l’esempio riportato mostra che un tale modello è riduttivo. Va da sé che è importante che l’esecutore conosca le operazioni elementari che gli vengono richieste, e anche il linguaggio con cui tali rihieste gli vengono comunicate Le istruzioni, comprensibili all’esecutore, permettono l’effettuazione delle operazioni per passare dalle condizioni d’entrata a quelle d’uscita.

6 L’ESECUZIONE DA PARTE DI UN COMPUTER
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Seleziona la cella indicata dal Contatore Esegui l’istruzione Se 00 preleva il contenuto della cella indicata e mettilo in A Se 01 memorizza il contenuto di A nella cella indicata Se 10 somma ad A il contenuto della cella indicata Se 11 fermati Incrementa il Contatore Torna da capo. MEMORIA IL linguaggio che un calcolatore conosce è molto elementare: sequenze di 0 e 1. Una cella di memoria contiene una tale sequenza, che può essere interpretata come dato (es. un valore binario) o come istruzione (secondo opportune convenzioni che dipendono da come il calcolatore è stato costruito). Non è possibile a èpriori capire su il contenuto di una cella è un dato o un’istruzione, ma se disponiamo di un “contatore” che specifica la posizione di memoria in cui c’è un’istruzione, questa è la chiave per capire come interpretare l’informazione. In generale circuiti ad hoc fuori dalla memoria sono dedicati a fare operazioni aritmentiche, e un’istruzione opera tipicamente tra memoria e tale circuito (A in figura) Un’istruzione è tipicamente costituita da una parte che identifica il tipo di operazione da svolgere e la posizione in memoria in cui si trova l’operando. , CONTATORE A

7 LA FORMA MNEMONICA 0 0 0 0 1 0 1 0 LOAD VAL1 1 0 0 0 1 0 1 1 ADD VAL2
STORE TOT STOP VAL1 1 VAL2 3 VAL3 2 VAL4 5 TOT - Va da sè che per l’uomo è molto più comodo disporre di una forma mnemonica delle istruzioni e dell’allocazione dei dati

8 PROGRAMMI E LINGUAGGI LA CPU riconosce ed esegue delle istruzioni elementari somme, moltiplicazioni, lettura e scrittura da uno o più byte della memoria, etc si chiama: linguaggio macchina, LM, (o assembler) È troppo complicato scrivere un programma così Sono stati inventati dei nuovilinguaggi un’istruzione del linguaggio = tante istruzioni di LM Serve un programma che faccia la traduzione tradurre una volta, eseguire tante volte: compilatore tradurre durante l’esecuzione: interprete

9 IL TRADUTTORE (COMPILATORE)
LOAD VAL1 ADD VAL2 ADD VAL3 ADD VAL4 STORE TOT STOP - VAL1 1 VAL2 3 VAL3 2 VAL4 5 TOT - Conta le istruz. e assegna una posizione Traduci comando: Se LOAD 00 Se ADD 10 Se STORE 01 Se STOP 11 Se numero, valore Inserisci la posizione che corrisponde al nome Tale forma mnemonica non è comprensibile a una macchina, ma si possono mettere a punto meccanismi di traduzione. Va da sé che il modo migliore per predisporre un tale meccanismo sia quello di costruire un programma, che a sua volta tradurà tutti i programmi da forma mnemonica a forma finale.

10 I LINGUAGGI EVOLUTI VAL1 = 1 VAL2 = 3 VAL3 = 2 VAL4 = 5
VAL1 = 1 VAL2 = 3 VAL3 = 2 VAL4 = 5 TOT = VAL1+VAL2+VAL3+VAL4 STOP TRADUTTORE Ma perché non andare oltre, e inventare nuovi linguaggi ancora più vicini al linguaggio del nostro problema?

11 INTERPRETI LOAD VAL1 ADD VAL2 ADD VAL3 ADD VAL4 STORE TOT STOP -
Seleziona la prima istruzione Se LOAD, cerca l’operando e caricane il valore in A Se STORE, cerca l’operando e caricacene il valore di A Se ADD, cerca loperando e sommane il valore ad A Se STOP fermati Passa alla prossima istruzione Ripeti Un’alternativa alla traduzione è quella della costruzione di un interprete, ovvero di un programma che ha come operandi non le celle di memoria del computer, ma delle entità astratte (che poi saranno fatte corrispondere a celle di memoria), e che, leggendo le istruzioni, simula su tali entità astratte le operazioni richieste.

12 COMPILATORI E INTERPRETI
COMPILATORE Programma che traduce da un linguaggio a un altro; in genere da un linguaggio di “alto livello” a uno eseguibile dall’hardware INTERPRETE Programma che, simulando il comportamento di un hardware, esegue un programma L’hardware è l’interprete fisico del suo linguaggio nativo Ogni programma può essere pensato come un “traduttore” dai dati di entrata ai risultati di uscita Alcune definizioni e alcune considerazioni

13 I DIAGRAMMI A T L1 L2 TRADUTTORE DA L1 A L2 SCRITTO IN L L
INTERPRETE DI L1 SCRITTO IN L MACCHINA IN GRADO DI ESEGUIRE L L1 L Un compilatore è quindi un programma che traduce da un linguaggio L1 a uno L2, e che è a sua volta scritto in un certo linguaggio L. Un interprete invece non traduce: esegue direttamente i programmi scritti in un linguaggio L1, ed è esso stesso scritto in un linguaggio L. Una macchina è un interprete che esegue un linguaggo L senza ricorrere a nessun linguaggio sottostante:è la sua costuzione che definisce L. I tre oggetti sono rappresentati come in figura. L

14 Proviamo a programmare: Istruzioni e Parametri
10 PROGRAMMA :CUCINA_TOAST 20 PRENDI(PANCARRÉ) 30 FETTAPANE1 = TAGLIA(PANCARRÈ, 1) 40 FETTAPANE2 = TAGLIA PANCARRÉ,1) 50 PRENDI(FORMAGGIO) 60 FETTAFORM1 = TAGLIA(FORMAGGIO, 0.3) 70 FETTAFORM2 = TAGLIA(FORMAGGIO, 0.3) 80 PRENDI(PROSCIUTTOCOTTO) 90 FETTAPROSC1 = TAGLIA(PROSCIUTTOCOTTO, 0.3) 100 FETTAPROSC2 = TAGLIA(PROSCIUTTOCOTTO, 0.3) 110 TOAST = SOVRAPPONI(FETTAFORM1, FETTAPANE1) 120 TOAST = SOVRAPPONI(FETTAPROSC1, FETTAFORM1) 120 TOAST = SOVRAPPONI(FETTAPROSC2, FETTAPROSC1) 120 TOAST = SOVRAPPONI(FETTAFORM2, FETTAPROSC2) 120 TOAST = SOVRAPPONI(FETTAPANE2, FETTAFORM2) 130 SCALDA(TOAST, 3) 140 FINEPROGRAMMA

15 Proviamo a programmare: Loop (1)
10 PROGRAMMA :CUCINA_TOAST 20 PRENDI(PANCARRÉ) 30 FETTAPANE1 = TAGLIA(PANCARRÈ, 1) 40 FETTAPANE2 = TAGLIA PANCARRÉ,1) 50 FETTAPANE3 = TAGLIA PANCARRÉ,1) 60 FETTAPANE4 = TAGLIA PANCARRÉ,1) 70 FETTAPANE5 = TAGLIA PANCARRÉ,1) etc...

16 Proviamo a programmare: Loop (2)
10 PROGRAMMA :CUCINA_TOAST 20 PRENDI(PANCARRÉ) 30 NUMEROFETTA = 1 40 RIPETI 50 FETTAPANE(NUMEROFETTA) = TAGLIA(PANCARRÈ, 1) 60 NUMEROFETTA = NUMEROFETTA +1 70 FINCHÈ NUMEROFETTA=100 ...

17 Proviamo a programmare: Subroutine (1)
10 PROGRAMMA :CUCINA_TOAST 30 NUMEROTOAST = 1 40 RIPETI 50 TOAST(NUMEROTOAST) = PREPARATOAST 60 NUMEROTOAST = NUMEROTOAST +1 70 FINCHÈ NUMEROTOAST =50 80 FINEPRORAMMA 100 SUBROUTINE: PREPARATOAST 110 PRENDI(PANCARRÉ) 120 FETTAPANE1 = TAGLIA(PANCARRÈ, 1) 140 FETTAPANE2 = TAGLIA PANCARRÉ,1) 150 PRENDI(FORMAGGIO) 160 FETTAFORM1 = TAGLIA(FORMAGGIO, 0.3) 170 FETTAFORM2 = TAGLIA(FORMAGGIO, 0.3) 180 PRENDI(PROSCIUTTOCOTTO) 190 FETTAPROSC1 = TAGLIA(PROSCIUTTOCOTTO, 0.3) 200 FETTAPROSC2 = TAGLIA(PROSCIUTTOCOTTO, 0.3) 210 TOAST = SOVRAPPONI(FETTAFORM1, FETTAPANE1) 220 TOAST = SOVRAPPONI(FETTAPROSC1, FETTAFORM1) 220 TOAST = SOVRAPPONI(FETTAPROSC2, FETTAPROSC1) 220 TOAST = SOVRAPPONI(FETTAFORM2, FETTAPROSC2) 220 TOAST = SOVRAPPONI(FETTAPANE2, FETTAFORM2) 230 SCALDA(TOAST, 3) 240 FINESUBROUTINE

18 Proviamo a programmare: Condizioni
10 PROGRAMMA :CUCINA_TOAST 30 NUMEROTOAST = 1 35 DORATURA = MEDIA 40 RIPETI 50 TOAST(NUMEROTOAST) = PREPARATOAST 60 NUMEROTOAST = NUMEROTOAST +1 70 FINCHÈ NUMEROTOAST =50 80 FINEPRORAMMA 100 SUBROUTINE: PREPARATOAST 230 SE DORATURA = LEGGERA ALLORA SCALDA(TOAST, 3) 250 ALTRIMENTI SE DORATURA = MEDIA ALLORA SCALDA(TOAST, 4) 270 ALTRIMENTI SE DORATURA = ROBUSTA ALLORA SCALDA(TOAST, 5) 290 FINESUBROUTINE

19 L’EVOLUZIONE DEI LINGUAGGI DI PROGRAMMAZIONE
LINGUAGGI NON PROCEDURALI LINGUAGGI A OGGETTI APPLICAZIONI PARAMETRICHE LINGUAGGI LOGICI LINGUAGGI PROCEDURALI COBOL, FORTRAN. BASIC, ... Dal codice macchina, via compilatori, è possibile costruire linguaggi elementari ma mnemonici (detti genericamente assembler, che vanno bene per un solo tipo di calcolatore), e via via linguaggi più orientati allo specifico problema (che sono standardizzati e mediante traduttori diversi possono essere eseguiti su qualunque macchina). Ormai i linguaggi di programmazione sono migliaia, con classificazioni tra le più svariate;ad esempio procedurali: se dicono passo per passo cosa si deve fare (es. somma x e y, poi sottrai z, poi ….) non procedurali: se dichiarano non i passi ma l’obiettivo (es. calcola il numero che elevato al quadrato dia x) logici: che sfruttano proposizioni della logica matematica a oggetti: che identificano “agenti” dedicati a eseguire operazioni, e poi li agganciano a programmi che li invocano Anche un’applicazione parametrica può essere pensata come un linguaggio di programmazione di altissimo livello, estremamente specializzato. LINGUAGGI ASSEMBLER CODICE MACCHINA

20 QUANTO COSTA SVILUPPARE SOFTWARE?
200 istruzioni per mese persona 2200 istruzioni per anno persona 60 milioni retribuzione annue 100 milioni di costo annuo 180 milioni di costo complessivo annuo Con pochi conti si vede che fare del software costa tantissimo! Ovviamente, si tratta di un esempio, non è generalizzabile. 2.200 =

21 I SISTEMI OPERATIVI

22 I SISTEMI OPERATIVI LA CPU E’ IN ATTESA PER IL 99,999 % ! …… Leggi A
Leggi B C = A+B Stampa C …... È arrivato il dato? Se no, ripeti Se sì, usa il dato 1 milionesimo di secondo o meno Se è un tasto, 0,1 secondi La tecnologia è stata, soprattutto nel passato, costosa: la velocità dei circuiti elettronici è sempre stata elevata rispetto alle operazioni meccaniche di interazione con l’esterno (tastiere, stampanti, ecc.) Poiché per usare un calcolatore dobbiamo fornire dati in ingresso e ottenere risultati, tale interazione è essenziale, ma fa sì che la CPU sia praticamente sempre in attesa! Che spreco! LA CPU E’ IN ATTESA PER IL 99,999 % !

23 I SISTEMI BATCH Scrittura di nastri magnetici GRANDE Stampa COMPUTER
Velocità di trasferimento: 300 K crt/sec Una strada è stata quella di usare strumenti di comunicazione più veloci, come i nastri magnetici; la preparazione di lotti (batch) di lavorazione ha quindi migliorato molto la situazione, ma ancora con grandi margini. Velocità di trasferimento: 300 K crt/sec Rispetto all’esempio precedente, non 1 milionesimo /1 decimo di secondo, ma 1 milionesimo/ 3 milionesimi di secondo: CPU in attesa per il 67% del tempo

24 COSA E’ CAMBIATO ……... Cosa fare Lavori di Y Fine X Cosa fare
Però la necessità di preparare un lotto, e quindi di distinguere l’utente per capire chi ha consumato e quanto, ha introdotto la necessità di aggiungere sui nastri non solo le richieste di lavoro, ma anche dati di tipo amministrativo. Lavori di X Poiché c’è un’unica esecuzione, è necessario sapere quali sono i consumi e di chi, per addebitare i costi

25 COSA E’ CAMBIATO ALL’INTERNO:
MEMORIA SUPERVISORE PROGRAMMA DA ESEGUIRE Do leggi chi è il richiedente prendi il tempo leggi cosa vuole fare ripeti esegui quanto richiesto fino a che non trovi “fine” attribuisci il tempo intercorso all’utente Ripeti In pratica, un programma di supervisione, sempre presente, verifica chi chiede cosa e calcola in consumi. Cedi la CPU al programma richiesto e attendi che questo finisca

26 QUINDI All’interno del computer ci sono sempre due programmi contemporaneamente: 1. Il supervisore 2. Il programma dell’utente. I due programmi sono in esecuzione uno per volta, e, mentre il primo è sempre presente, il secondo è presente solo per quanto è necessario. Quindi nella memoria del calcolatore non c’è un solo programma, ma sono due, di cui il supervisore sempre presente.

27 LA MULTIPROGRAMMAZIONE
MEMORIA Can. OUT Can. IN UNA POSSIBILE STORIA SUPERVISORE SPV A B C IN OUT SPV in esecuz. SPV cede ad A A in esecuz. A chiede IN SPV invoca IN SPV valuta SPV cede a C C in esecuz C chiede OUT SPV invoca OUT SPC cede a B IN finisce ….. Progr. A Progr. B A questo punto posso mettere insieme più programmi: quando uno ha bisogno di un dato dall’esterno, facciamo fare tale richiesta dal supervisore, che provvede poi a mandare in esecuzione un altro programma, in attesa dell’arrivo del dato richiesto. La CPU viene così occupata molto di più. Si arriva anche oltre il 99%, ma una parte di tale tempo è spesa dal supervisore nella sua gestione. Progr. C

28 GLI EFFETTI DELLA MULTIPROGRAMMAZIONE
CI SONO SEMPRE MOLTI PROGRAMMI CONTEMPORANEAMENTE ATTIVI, E UNO SOLO IN ESECUZIONE: i tempi di processing e di I/O sono sovrapposti nessun programma gestisce direttamente l’I/O il supervisore introduce una “overhead” di consumi la CPU è sfruttata “al meglio” si possono introdurre criteri di priorità nella selezione del prossimo programma da mandare in esecuzione Se un programma non in esecuzione occupa memoria centrale inutilmente, viene temporaneamente “scaricato” su disco, per fare spazio ad altri; la sua immagine verrà ricaricata al momento della sua esecuzione. Si parla di SWAPPING su disco.

29 LE REGOLE DELLA MULTIPROGRAMMAZIONE
Il SPV prende il controllo quando: un programma chiede I/O un programma è in errore un programma termina arriva un segnale di Interrupt Un programma può essere in stato di: “run” se è in esecuzione “wait” se deve attendere dati dall’esterno “idle” se, pur potendo essere eseguito, non è in esecuzione Il SPV cede il controllo a quel programma, tra tutti quelli “idle”, che ha maggior priorità

30 COSA E’ UN PROGRAMMA ATTIVO
Un programma IDLE o RUNNING è caratterizzato da: il programma stesso il puntatore all’istruzione in esecuzione nel momento lo stato della memoria (variabili, dati, ecc.) lo stato di registri interni che indicano il risultato di confronti, eventuali condizioni d’errore, ecc. TUTTO CIO’ DEVE VENIRE SALVATO NELLE OPERAZIONI DI SWAPPING

31 MISURE DI SERVIZIO DI SISTEMI OPERATIVI
Throughput: misura la quantità di lavoro fatta nell’unità di tempo, ovvero il tempo di impegno della CPU Turn-around-time misura il tempo di risposta per l’utente dal momento di richiesta delle informazioni a quello di ottenimento dei risultati Obiettivo di un Sistema Operativo è di massimizzare il primo e minimizzare il secondo. La multiprogrammazione è un buon passo avanti, ma che succede se un programma che deve fare solo calcolo interno prende il controllo? Nessuno degli altri programmi potrà accedere alla CPU, peggiorando il secondo parametro. QUINDI...

32 TIME SHARING A ogni programma è assegnata una “TIME SLICE”
Il SPV prende il controllo quando: un programma chiede I/O un programma è in errore un programma termina arriva un segnale di Interrupt è finita la time slice del programma in esecuzione Il SPV cede il controllo a quel programma, tra tutti quelli “idle”, che ha maggior priorità, rispettando l’ordine di coda rispetto al consumo delle time slice

33 MULTIPROCESSING VALE TUTTO QUANTO DETTO, MA TRA LE RISORSE DISPONIBILI NON CI SONO SOLO I/O MEMORIA ….. MA ANCHE PIU’ CPU PIU’ PROGRAMMI CONTEMPORANEAMENTE, INCLUSO IL SPV, POSSONO ESSERE ESEGUITI

34 MULTITASKING UN SISTEMA OPERATIVO, PUR CON UN UNICO UTENTE, PUO’ AVERE SITUAZIONI COME QUELLE DESCRITTE: Nell’uso di un comune PC col Sistema Operativo Windows molti “TASK” sono attivi contemporaneamente: un processo che “ascolta” tastiera e mouse un processo che si occupa della visualizzazione sullo schermo un antivirus che controlla tutti i file che entrano in esecuzione più programmi, visualizzati su più finestre, che vengono eseguiti, uno alla volta pur essendo attivi, controllati dall’utente il supervisore che provvede all’armonizzazione di tutte le esecuzioni.

35 MEMORY MANAGEMENT La memoria centrale è una risorsa limitata.
Il numero di applicazioni in funzione nello stesso istante all’interno di un computer è molto alto. Il Sistema di Memory Management provvede a virtualizzare la memoria centrale con immagini sui dischi, in modo da far apparire all’utente una memoria molto più ampia, potenzialmente illimitata. Parte di queste attività sono già state indicate con il termine SWAPPING. Con sistemi di gestione della memoria si possono eseguire più programmi e rossi anche con poca memoria centrale; si paga ciò con rallentamenti per continue copie e ricaricamenti via disco rigido.

36 FILE MANAGEMENT Sistema che si occupa di:
creazione, copia, eliminazione, sostituzione di file allocazione dei file sui supporti fisici gestione degli spazi su supporto fisico rispetto alla struttura logica dei file Criteri di indirizzamento: alfa.doc file reperibile sullo stesso disco del SO c:alfa.doc file reperibile sul disco C c:dir1/alfa.doc file reperibile su C, ma all’interno della directory dir1 d:dir1/dir2/…./alfa.doc file reperibile su D, all’interno di dir1, e poi di dir2, ecc. L’obiettivo è quello di avere dei criteri di organizzazione dei dati e un sistema uniforme di indirizzamento degli stessi.

37 CARATTERISTICHE DEI FILE
I file sono tipizzati rispetto alle possibilità di accesso: SEQUENZIALE accesso dalla prima all’ultima unità di registrazione (record), nell’ordine, come su un registratore a nastro RANDOM accesso in qualunque punto del fiel, specificando la posizione fisica, come la selezione del brano di un CD per numero INDEXED accesso in un punto del file, sulla base di un indice, come ad esempio, a partire dalla lettera D di un elenco telefonico INDEXED SEQUENTIAL come il precedente, ma con la possibilità di proseguire poi sequenzialmente Il tipo di file da usare è funzione del problema: un libro è letto in forma sequenziale, il portiere d’albergo dà le chiavi con accesso random, la ricerca sull’elenco telefonico è indexed, ecc.

38 DBMS - Data Base Management System
Sistema che si occupa di organizzare informazioni su file che contengono, oltre che i dati, le relazioni tra gli stessi: si tratta di un’evoluzione del file system. Nell’esempio riportato, è pensabile di chiedere operazioni come: Selezionare tutti i record che hanno come sede “Milano” e come fatturato un valore >” ”, e che non hanno emesso ordini dopo l’ Rag.Sociale Indirizzo Città Fatturato Settore ……. …………….. Rossi&Rossi via … Roma Metallurgia Rossini via … Milano Moda ………………... Fatt.n Data Importo Stato Pagato Pendente . Un DBMS gestisce quindi modelli di dati e di relazioni tra gli stessi: ad esempio, un’azienda ha tanti clienti, tanti ordini, tanti venditori, tante fatture; in genere a ogni cliente è associato un solo venditore, ma un venditore ha associati tanti clienti; a un ordine è associato un solo cliente e un solo venditore, ma possono essere associate molte fatture. Linguaggi ad hoc permettono di formalizzare e modellare basi di dati, specificando tutte le entità in gioco e il tipo di relazione che intercorre tra esse. Si parla di modelli Enntità/Relazioni.

39 QUANTO E’ “PERICOLOSO” IL SOFTWARE

40 LE CATASTROFI "La Società è sempre piu dipendente dal software e ne diviene vulnerabile per MALFUNZlONI e per USO ERRATO" "Il SOFTWARE manipola dati: sempre più importanti e critici; ma può diventare INSICURO" "II SOFTWARE pervade la nostra vita: sempre di più e in ogni settore; ma può diventare INAFFIDABILE" "II SOFTWARE una creazione dell'uomo: sempre più complessa; ma può diventare INGESTIBILE" Un po’ di relax e di autoironia, se ne siamo capaci! Da qui un certo insieme di informazioni su potenziali “catastrofi“ causabili o causate dal software. Un esempio potenziale per comprendere il rischio: se una setta terroristica facesse esplodere una piccola atomica a 100 km di altezza sopra la Manica, non ci sarebbe onda d’urto meccanica, né onda termica, né radioattività significative da creare pericolo, ma la variazione improvvisa del campo elettrico potrebbe indurre tensioni di qualche decina di Volt nei circuiti di alimentazione dei calcolatori, distruggendo tutte le macchine dell’Inghilterra, del nord della Francia, del Benelux. Cosa succede se la Banca d’Inghilterra non è più in grado di provvedere a pagamenti? E le la Borsa di Londra non funziona più? E se le centrali telefoniche si arrestano? Tutto il sistema economico e produttivo mondiale ne risentirebbe, facendoci precipitare in un medioevo a ui non siamo più assuefatti: milioni di morti! Meno male che non è facile procurarsi del plutonio!

41 CATASTROFI "Se per 24 ore tutto il SOFTWARE (i calcolatori) del mondo si fermasse, riprendendo il suo corretto funzionamento nell'istante successivo, questo causerebbe diversi milioni di morti1 e miliardi di dollari di perdite economiche2" 1 stima: tra 1 e 5 milioni di morti 2 stima: tra 1 miliardo e 5000 miliardi di $ (Fonte: Forester, Computer Ethics)

42 CATASTROFI: ESEMPI American Arbitration - Dispute su progetti per 31 M$ Allstate Insurance - Prev.: 8M$ Consunt.: 100M Bank of America - Prev.: 20M$ Consunt.: 60M$ NON funziona American Arbitration - Dispute su progetti 200M$ -190 per difetti Centrale Nucleare di Three Miles Island Chernobyl Challenger Space Shuttle Caduta inaugurale Airbus 320 (scala altimetro) Caduti altri 2 Airbus 320 (idem) Affondamento della HMS Sheffield nella guerra delle Faulkland Abbattimento Airbus iraniano da parte USS Vincennes -guerra Golfo Due Tornado cadono per passaggio vicino antenna TV Europa 2) Lauda Air alle Filippine

43 CATASTROFI (cont.) Caduta 5 elicotteri UH-Blackhawk (immunità elettromagnetica) F/A 18: lancia missile e chiude sportello prima della sua partenza Mariner 18: fatto esplodere in volo per rischio caduta (DO 10 I=1.5) AUDI 5000: 250 incidenti per gest. iniezione in frenata -danni 150 M$ Terapia a microonde uccide portatore pace-maker per staratura Un robot prende alle spalle un operaio e lo uccide (Kawasaki- 1981) Pompa a insulina sbaglia il destrosio a un diabetico Terapia raggi X: e rad invece di e l986 Sistema esperto: intervento ambulat., somministr.-coma e morte 1986 Heathrow bloccato Borsa di Milano bloccata Borsa di Londra bloccata Fuoco (Tokio ) persi 23 mld di yen Acqua (Borsa di Milano ) Alimentazione (Borsa di Milano )

44 CATASTROFI (cont.) impiegato scontento cambia voci della Enciclopedia Britannica cavi tagliati: telefoni, centinaia di FAX, ATM, calcolatori, POS, ... sabotatore collaborò alla soluz. a pagamento (Sydney -1987) milioni di azioni non trattate per 82’ (Nat’l Assoc. Sec. Dealers ) studenti inglesi cambiano la quotazione della sterlina '1988) studenti inglesi leggono la posta elettronica della Casa Reale ( 1988) EFT da NY in Svizzera M$ EFT dalla VolksWagen M$ EFT da UK in Svizzera M$ ATM a NY $ EFT USA - 70 M$

45 CATASTROFI (cont.) 1987 - SWIFT da NY a Zurigo - 8.4 M$
SWIFT da NYa Zurigo M$ il secondo trasferimento fallisce; F. Noe (impieg.Lloyds Bank - NL) torna a controllare: scoperto arresti a NY modifica mem. tel. cellulari - 40 M$/mese danno USA; hackers usano codici rubati per telefonate - 20 M$ danno Ernst & Whinney dichiara danni di 4mld/anno ad Aziende USA da Comp. Crime (>40M£ in UIC; >500 MFF in F) EFT da UK in Svizzera - 54 M$ ATM a NewYork $ ATM in USA -14 M$ ATM in Nuova Zelanda - 1M$ Bancomat a Milano (Di Pietro) Trasfer. Roma/UK/Tokio Dov’è commesso crimine ? (Di Pietro)

46 Il COMPUTER CRIME paga:
CATASTROFI (ultimo) 89% dei casi NON perseguitati 82% dei casi perseguitati NON condannati Il COMPUTER CRIME paga: meno del 2% di condanne $ di resa media (3000 $ per rapina a mano armata)

47 LE TIPOLOGIE DI APPLICAZIONI

48 TIPOLOGIE DI APPLICAZIONI PER SETTORE D’IMPIEGO
GESTIONALE Amministrazione Contabilità Contabilità industriale Controllo produzione Sistemi integrati ERP …….. SCIENTIFICO/TECNICO Ricerca Scientifica Ingegneria Strutture CAD/CAM Controllo di processo ………….. TELECOMUNICAZIONI Telefonia fissa Telefonia mobile Trasmissione dati ……….. MEDICINA Gestione pazienti Controllo e monitoraggio Diagnostica …………….. GRAFICA E IMMAGINE Grafica 2D Grafica 3d Animazioni …………..

49 SETTORI E’ inutile cercare di classificare i settori di applicazione: conviene indicare TUTTI Forse è possibile indicare le tipologie di impiego o di interazione, o di vendita, indipendenti dal settore.

50 INTERAZIONE CON L’UOMO
PROGRAMMI PER GLI UTENTI vs EMBEDDED Un programma orientato all’utente deve essere usato da un essere umano, con tutte le conseguenze di localizzazione linguistica, culturale, ecc, di supporti di addestramento e di integrazione con le altre attività; es. contabilità, prenotazioni, applicazioni di sportello, ecc. Un programma “embedded” è nascosto all’interno di un altro sistema, non necessariamente con consapevolezza dell’utente, che non può interagire direttamente col software; es. il controllo dell’ABS, l’iniezione delle automobili, i controlli di volo di un aereo, le regolazioni di un frigorifero, ecc.

51 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Imitazione del dialogo PARRY: Non capisco le sue ragioni DOTTORE: Perché non capisce le mie ragioni ? PARRY: Non dovrei esserlo? DOTTORE: Perché dice questo proprio ora ? PARRY: Le cose stanno così DOTTORE: Supponga che stiano nel modo esattamente opposto PARRY: E allora? DOTTORE: Non sono sicuro di capirla del tutto PARRY: Insiste troppo sullo stesse domande DOTTORE: Cosa le suggerisce questa somiglianza? PARRY: Non la capisco DOTTORE: Lei desidera capire? PARRY: Finalmente comincia a mostrare interesse per i miei sentimenti! DOTTORE: Oh! Ho mostrato interesse per i suoi sentimenti? Test di Turing DOMANDA: Mi scriva, per favore, un sonetto sul tema "Forth Bridge" RISPOSTA: Non faccia affidamento su di me per questo. Non ho mai saputo scrivere poesie. DOMANDA: Sommi a 70764 Si noti che la risposta è sbagliata (34957 sommato a dà come risultato ). RISPOSTA: (pausa di circa 30 secondi e poi la risposta) DOMANDA: Gioca a scacchi? RISPOSTA: Sì DOMANDA: Ho il Re in e1 e nessun altro pezzo. Lei ha solo il Re in c3 e una Torre in h8. Tocca a lei. Che mossa giuoca? RISPOSTA: (dopo una pausa di quindici secondi) Torre in h1 matto. UN ELENCO NON ESAUSTIVO E NON ORDINATO Commercio elettronico B2B Commercio elettronico B2C Contabilità analitica Grafica 2D Grafica 3D Calcolo strutturale Calcolo scientifico CAD/CAM Animazione Simulazione Sistemi esperti Intelligenza artificiale Sistemi educazionali Giochi Software automotive Telecomunicazioni fisse Telecomunicazioni mobili Applicazioni medicali Computer art Algoritmi genetici Trasmissioni dati Reti di computer Edutainment Wordprocessing Calcolo matematico White goods Reti neuronali Riconoscimento vocale Applicazioni musicali Sistemi OCR Interpretazione del linguaggio naturale Robotica Domotica Intelligent building Critica letteraria Generazione artistica Cinema Scenografia Calcolo simbolico Traduzione automatica Applicazioni d’ufficio ……………………... Il tema è quello dell’intelligenza artificiale. Test di Turing: poniamo in due stanze separate accessibili da due sportelli un uomo e una macchina. Si interagisca con loro solo in modo scritto, con domande a cui si ottengono risposte. Se non sappiamo distinguere dove sta l’uomo, possiamo dire che la macchina ha un comportamento intelligente. Tra i vari comportamenti intelligenti, il dialogo. Un programma di Weizenbaum simulava un dialogo tra uno psicanalista (macchine) e un utente. Colby ne fa uno con comportamento paranoico. Il brano riportato è il dialogo tra le due macchine. I sistemi esperti sono programmi che raccolgono numerose informazioni e relazioni tra esse, tipo causa effetto, permettendo di dedurre fenomeni implicitamente noti ma non conosciuti (una sorta di applicazione del sillogismo)

52 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Contabilità Finanza Trading Commercio elettronico B2B Commercio elettronico B2C Contabilità analitica Controllo della produzione Magazzino Gestione vendite Marketing Grafica 2D Grafica 3D Calcolo strutturale Calcolo scientifico CAD/CAM Animazione Simulazione Controllo impianti Controllo numerico Controllo di processo Sistemi esperti Sistemi educazionali Giochi Software automotive Telecomunicazioni fisse Telecomunicazioni mobili Applicazioni medicali Computer art Algoritmi genetici Trasmissioni dati Reti di computer Edutainment Wordprocessing Calcolo matematico White goods Reti neuronali Riconoscimento vocale Applicazioni musicali Sistemi OCR Interpretazione del linguaggio naturale Robotica Domotica Intelligent building Critica letteraria Generazione artistica Cinema Scenografia Calcolo simbolico Traduzione automatica Applicazioni d’ufficio ……………………... L’elaborazione musicale è arrivata a un punto tale che nessun serio compositore, classico o leggero, ne può fare a meno. Ci sono programmi che permettono di costruire partiture e lavorarci sopra esattamente come uno scrittore fa con un wordprocessor. Ci sono programmi che permettono di operare sulla registrazione del suono, lavorando proprio slle caratteristiche dello spettro acustico. Ci sono programmi per la riproduzione. Oggi un disco viene suonato, almeno parzialmente, in modo digitale, registrato in modo digitale, masterizzato in modo digitale, elaborato in modo digitale, fruito in modo digitale.

53 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Contabilità Finanza Trading Commercio elettronico B2B Commercio elettronico B2C Contabilità analitica Controllo della produzione Magazzino Gestione vendite Marketing Grafica 2D Grafica 3D Calcolo strutturale Calcolo scientifico CAD/CAM Animazione Simulazione Controllo impianti Controllo numerico Controllo di processo Sistemi esperti Sistemi educazionali Giochi Software automotive Telecomunicazioni fisse Telecomunicazioni mobili Applicazioni medicali Computer art Algoritmi genetici Trasmissioni dati Reti di computer Edutainment Wordprocessing Calcolo matematico White goods Reti neuronali Riconoscimento vocale Applicazioni musicali Sistemi OCR Interpretazione del linguaggio naturale Robotica Domotica Intelligent building Critica letteraria Generazione artistica Cinema Scenografia Calcolo simbolico Traduzione automatica Applicazioni d’ufficio ……………………... Così come la musica e la fotografia, il cinema, attraverso la digitalizzazione delle immagini, sta attraversando il suo momento “da computer”. Molti film sono puramente digitali e realizzati mediante calcolatori. Ma anche per quelli più tradizionali, montaggio, colonne sonore, editing si avvalgono di strumenti computerizzati.

54 UN ELENCO NON ESAUSTIVO E NON ORDINATO
La Decima sinfonia di Beethoven Analisi della Divina Commedia (Padre Busa) ………….. Generazione automatica di fiabe popolari russe Dopo avere attaccato e ingannato il mago del regno, il ciclope Cecyl rubò la pozione magica. Subito dopo la disgrazia, furono inviati degli araldi per informare i regni vicini del fatto, chiamando a raccolta valenti cavalieri.Il palafreniere Huliev, dopo aver udito le lamentele della corte, decise autonomamente di partire per porre rimedio alla disgrazia.Il mago Basil chiese a Huliev di spartire tutte le riserve di farina con i poveri del regno, per combattere la fame, promettendo il suo aiuto.Basil e Huliev, insieme, decisero di spartire gli oggetti secondo le loro necessità, e il mago preparò una pozione magica per Huliev, cuocendo cortecce di alberi vecchi di secoli.Vicino al fiume Huliev trovò una piccola barca, vi salì sopra e, molto rapidamente, arrivò alla sua destinazione. Huliev, confidente nelle sue capacità e possibilità, invitò il ciclope nell'arena, dove avrebbero dovuto correre tra i leoni, affrettandosi senza essere mangiati. Chi fosse sopravvissuto più a lungo sarebbe stato il vincitore. La corsa fu difficile e pericolosa, e alcuni tronchi sul percorso aggiungevano difficoltà, ma Huliev arrivò alla meta per primo.Mentre il ciclope andò a nascondersi nelle segrete del castello, Huliev lo seguì e lo imprigionò fino alla fine dei suoi giorni. Dopo aver camminato per giorni e giorni, la strega Daphne arrivò finalmente al ……….. Grammelot ue fellegno, e vai, e cora, iasciolle, io adde la belletto, stelli hai forca marti schi menti sermutamentra era cominanzi mala a me sommo lo sgrida che tir che l’altro o la e rendo rauna mor discerne tanto bene è leggia ché mali, duolo lordar lor sì così che lodo com’olte fioco strati. infiati, che, sì contro:”tostese, di questro car, come la mi via e piena; e piancorse UN ELENCO NON ESAUSTIVO E NON ORDINATO Commercio elettronico B2B Commercio elettronico B2C Grafica 2D Grafica 3D Calcolo strutturale Calcolo scientifico CAD/CAM Animazione Simulazione Sistemi educazionali Giochi Software automotive Telecomunicazioni fisse Telecomunicazioni mobili Applicazioni medicali Algoritmi genetici Trasmissioni dati Reti di computer Edutainment Wordprocessing Calcolo matematico White goods Reti neuronali Riconoscimento vocale Sistemi OCR Computer art Critica letteraria Generazione artistica Scenografia Calcolo simbolico Traduzione automatica Applicazioni d’ufficio ……………………... Il calcolatore è sempre più di supporto alla creatività. A fianco a chi lo usa come materiale artistico da modellare, c’è chi lo usa come strumento intelligente per esaminare , modellare, generare. Così, costruendo adeguati modelli, è possibile creare letteratura, piuttosto che non assonanze stilistiche a un autore, o addirittura opere pittoriche sullo stile di … o musicali sullo stile di …. L’esempio illustrato mostra una generazione per flauto dolce prodotta con lo stesso metodo con cui sono state generate le sonorità dantesche del “grammelot” (per chi ne ha sentito parlare, catene markoviane)

55 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Contabilità Finanza Trading Commercio elettronico B2B Commercio elettronico B2C Contabilità analitica Controllo della produzione Magazzino Gestione vendite Marketing Grafica 2D Grafica 3D Calcolo strutturale Calcolo scientifico CAD/CAM Animazione Simulazione Controllo impianti Controllo numerico Controllo di processo Sistemi esperti Sistemi educazionali Giochi Software automotive Telecomunicazioni fisse Telecomunicazioni mobili Applicazioni medicali Computer art Algoritmi genetici Trasmissioni dati Reti di computer Edutainment Wordprocessing Calcolo matematico White goods Reti neuronali Riconoscimento vocale Applicazioni musicali Sistemi OCR Interpretazione del linguaggio naturale Robotica Domotica Intelligent building Critica letteraria Generazione artistica Cinema Scenografia Calcolo simbolico Traduzione automatica Applicazioni d’ufficio ……………………... Molte applicazioni sono diffuse per le attività tipiche di ufficio. Accanto al wordprocessing già visto, l’uso di agende (condivise in rete). Di spreadsheet (fogli di calcolo), di strumenti come calcolatrici “virtuali” (scientifiche o finanziarie), di strumenti di “publishing” (con modelli interessantissimi di business: il costruttore è a pagamento e il fruitore è gratuito). Anche queste immagini sono state costruite con uno di tali strumenti.

56 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Da Altavista President Clinton says the emergency Mideast summit "cannot afford to fail" as Prime Minister Ehud Barak and Yasser Arafat meet for talks amid fresh violence. Il presidente Clinton dichiara che la sommità di Mideast di emergenza " non può permettersi di venire a mancare " come raduno del primo ministro Ehud Barak e di Yasser Arafat per i colloqui in mezzo della violenza fresca. Commercio elettronico B2B Commercio elettronico B2C Grafica 2D Grafica 3D Calcolo strutturale Calcolo scientifico CAD/CAM Animazione Simulazione Sistemi educazionali Giochi Software automotive Telecomunicazioni fisse Telecomunicazioni mobili Applicazioni medicali Algoritmi genetici Trasmissioni dati Reti di computer Edutainment Calcolo matematico White goods Reti neuronali Riconoscimento vocale Sistemi OCR Interpretazione del linguaggio naturale Robotica Domotica Intelligent building Scenografia Calcolo simbolico Traduzione automatica Il problema della traduzione automatica ha fatto passi da giganti, ma ancora siamo lontani da un utilizzo diverso da quello di una comprensione limitata. E’ nota la traduzione automatica in russo di “Lo spirito è forte ma la carne è debole” in qualcosa che suonava “La vodka è ottima ma la bistecca è cattiva” Si pensi alla differenza tra “La donna buona sposò l’uomo povero” e “La buona donna sposò il pover’uomo”.

57 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Applicazioni musicali Sistemi OCR Sistemi esperti Sistemi educazionali Giochi Software automotive Telecomunicazioni fisse Telecomunicazioni Algoritmi genetici Trasmissioni dati Reti di computer Edutainment UN ELENCO NON ESAUSTIVO E NON ORDINATO Contabilità Finanza Trading Commercio elettronico B2B Commercio elettronico B2C Contabilità analitica Controllo della produzione Magazzino Gestione vendite Marketing Grafica 2D Grafica 3D Calcolo strutturale Calcolo scientifico CAD/CAM Animazione Simulazione Controllo impianti Controllo Wordprocessing Calcolo matematico Giochi di tutti i tipi: dal tipico videogioco basato sul caso (poker o roulette) al solitario cinese (mahjong), agli scacchi (che richiede molta capacità strategica, ma ormai il computer comincia a vincere l’umano), al videogioco interattivo di simulazione in rete (spariamoci!).

58 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Trading Commercio elettronico B2B Commercio elettronico B2C Grafica, 2D,3D Multimedia Scenografia Animazione Calcolo strutturale Calcolo scientifico CAD/CAM Simulazione Controllo impianti Controllo numerico Controllo di processo Sistemi esperti Sistemi educazionali Software automotive Telecomunicazioni fisse Telecomunicazioni mobili Applicazioni medicali Computer art Algoritmi genetici Trasmissioni dati Reti di computer Edutainment Calcolo matematico White goods Reti neuronali Riconoscimento vocale Applicazioni musicali Sistemi OCR Interpretazione del linguaggio naturale Robotica Domotica Intelligent building Critica letteraria Generazione artistica Cinema Scenografia Calcolo simbolico Traduzione automatica Applicazioni d’ufficio ……………………... La grafica non può più fare a meno del computer. Accanto alle elaborazioni grafiche si presentano -modelli 2D -modelli 3D -rendering -ombre e illuminazioni -applicazioni per scenografia -animazioni ecc.

59 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Calcolo strutturale Calcolo scientifico CAD/CAM Simulazione Sistemi educazionali Software automotive Telecomunicazioni fisse Telecomunicazioni mobili Applicazioni medicali Algoritmi genetici Trasmissioni dati Reti di computer Edutainment Calcolo matematico White goods Reti neuronali Riconoscimento vocale Sistemi OCR Robotica Domotica Intelligent building Calcolo simbolico La comunicazione telefonica avviene solo attraverso calcolatori che provvedono a tutto, dalla gestione delle installazioni, alla conduzione dell’instradamento delle telefoniate, alla bollettazione. Molto sta cambiando, e la progressiva digitalizzazione delle informazioni sta producendo quello che viene chiamata convergenza digitale. Il telefono, la televisione e il computer stanno convergendo verso un’unica struttura di comunicazione, fruizione, elaborazione.

60 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Calcolo strutturale Calcolo scientifico CAD/CAM Simulazione Sistemi educazionali Software automotive Applicazioni medicali Algoritmi genetici Edutainment Calcolo matematico White goods Reti neuronali Riconoscimento vocale Sistemi OCR Robotica Domotica Intelligent building Calcolo simbolico Ormai compaiono sempre più libri sull’informatica nascosta. Mai dimenticare che i freni di un’auto sono spesso governati da un calcolatore. Non c’è F1 senza calcolatori. Lavatrici e frigoriferi shanno a bordo calcolatori. Presto usciremo di casa, saliremo in auto e partirà da questa un dialogo tipo: “ La moquette mi ha detto che sei stato su un prato: se hai problemi di allergia provvedo a ordinare al farmacista antistaminici, perché l’armadietto delle medicine mi ha detto che non ce ne sono più. Anche il frigo mi ha detto che è finito il latte. Se vuoi a tre km a est c’è una latteria aperta che ha quella marca. O preferisci che mandi un messaggio di posta elettronica?” Non prendiamo sul ridere questo: tutto è già possibile, ma non c’è ancora la necessità. Ma alla prossima alluvione, non sarà meglio disporre di reti di informazioni invece che andare a tentoni a cercare aiuto?b

61 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Calcolo strutturale Calcolo scientifico CAD/CAM Simulazione Sistemi educazionali Applicazioni medicali Algoritmi genetici Edutainment Calcolo matematico Reti neuronali Riconoscimento vocale Sistemi OCR Robotica Domotica Intelligent building Calcolo simbolico La formazione è un grande problema sociale, e da tempo si usano computer e multimedialità come supporto. Da sistemi tradizionali di insegnamento (esposizione, verifica) che presuppongono sistemi “autore” (preparazione delle lezioni) e sistemi di fruizione (a uso degli studenti), a sistemi di supporto più avanzato, che vanno dalla simulazione (vedi in seguito), alla gestione in rete (Internet) di corsi. Ormai anche l’aspetto di divertimento si mescola con l’apprendimento (imparare giocando) diventa un business con il cosiddetto edutainment.

62 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Calcolo strutturale Calcolo scientifico CAD/CAM Simulazione Applicazioni medicali Algoritmi genetici Calcolo matematico Reti neuronali Riconoscimento vocale Sistemi OCR Robotica Domotica Intelligent building Calcolo simbolico Il problema del riconoscimento del linguaggio parlato è sempre stato un sogno: ora è possibile dare comandi a un computer a voce (previo addestramento alla voce del comandante); questo è solo un meccanismo più complesso e articolato della capacità diu riconoscere altri linguaggi simbolici, come lo scritto (dall’analisi grafica del carattere alla costruzione di un testo a caratteri scritti), o le partiture musicali. Una delle tecniche adottate è quella di usare programmi che simulato “reti” a modello delle reti cerebrali: da un insieme di percezioni (ad esempio bianco e nero con certe disposizioni su un reticolo) imparano a interpretare un significato differente, come il riconoscimento di una lettera.

63 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Calcolo strutturale Calcolo scientifico CAD/CAM Simulazione Applicazioni medicali Algoritmi genetici Calcolo matematico Robotica Domotica Intelligent building Calcolo simbolico Il calcolo sembrerebbe il campo chiave per un Calcolatore. Di fatto è un settore di nicchia, se pensiamo al calcolo in senso stretto. Al di là dei calcoli abituali che può fare un ingegnere, sono interessanti quelli simbolici (x+x fa 2x: è una forte astrazione), o quelli analitici (calcolo di integrali o di derivate, o di funzioni complesse). Ancora, il fatto che queste cose siano orientate alla costruzione di modelli orientati alla progettazione, alimentando calcoli architetturali, o addirittura modelli per pilotare macchine a controllo numerico. Le simulazioni sono poi veri e propri sistemi di realtà virtuale: come poter calcolare i movimenti di pianeti e stelle, se non impostando tutte le leggi di comportamenti degli stessi, e facendo evolvere il “mondo” a ritmi accelerato? Lo stesso si può fare sull’ultrapiccolo con rallentamenti, o su qualunque altro sistema (ecologia, economia, ecc)

64 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Applicazioni medicali Algoritmi genetici Robotica Domotica Intelligent building L’elettricità. Il telefono, il riscaldamento, la televisione ci arrivano attraverso fili. Quando ci arriveranno il controllo dell’intero edificio, degli ascensori, e la contabilità, il controllo dei frigoriferi, la gestione del pagamento delle tasse, la prenotazione delle vacanze, l’analisi dei problemi di manutenzione straordinaria, …...

65 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Applicazioni medicali Algoritmi genetici Robotica La cartella clinica La cartella del dentista L’interpretazione degli elettrocardiogrammi Il monitoraggio dei pazienti La telediagnosi Le proiezioni delle operazioni La robotica delle operazioni …………………...

66 UN ELENCO NON ESAbUSTIVO E NON ORDINATO
Naïve physics, la fisica ingenua: un ramo dell’intelligenza artificiale, che è a sua volta una particolare tecnica della computer science. Ad esempio, la fisica (classica, relativistica, quantistica, …) non è in grado di descrivere fenomeni come la persona che scivola sulle scale, l’acqua che bolle o il bicchiere d’acqua che si rovescia; in particolare riferendoci a quest’ultimo esempio, è possibile descrivere con la fisica ingenua il seguente fenomeno, non descrivibile dalla fisica in termini predittivi quantitativi: dato un bicchiere vuoto, versando in esso da una bottiglia un liquido, tale liquido riempie progressivamente il bicchiere fino all’orlo, dopodiché si rovescia. La fisica ingenua è in grado di simulare il fenomeno costruendo programmi che descrivono il comportamento delle gocce d’acqua, facendole poi agire e interagire con il bicchiere; una descrizione (estremamente grossolana) di una tale descrizione può essere: una goccia d’acqua “ama” stare in contatto con altre gocce d’acqua una goccia d’acqua vende a stare in una posizione che è la più “bassa” possibile una goccia d’acqua non penetra barriere di vetro. Sulla base di queste caratteristiche, si costruiscono programmi che presentano progressivamente schermate del riempimento e del rovesciamento del bicchiere come quelle (puramente esemplificative) che seguono: Tali tecniche hanno applicazioni, ad esempio, nella progettazione di robot che, dovendosi muovere in ambienti “ostili”, devono essere capaci di predire l’effetto delle loro interazioni con l’ambiente. La legge F=ma esprime le modalità di comportamento di un corpo soggetto a una forza, ove F è la forza, m è la massa e a è l’accelerazione; la sottolineatura fa riferimento al fatto che le grandezze in questione sono vettoriali, ovvero devono essere considerate in una dimensione spaziale, tipicamente caratterizzata da tre componenti altezza, larghezza, profondità. UN ELENCO NON ESAbUSTIVO E NON ORDINATO Algoritmi genetici Robotica I robot producono,servono, agiscono. Ma poi interpreteranno in modo sempre più intelligente, andranno (vanno già) nello spazio, ci ridurranno la quantità (di un certo tipo) di lavoro. ………..Discipline come la fisica ingenua si affiancano alla scienza tradizionale, per capire comportamenti che la scienza non spiegherebbe (inciampare? Sbrodolarsi? ……)

67 UN ELENCO NON ESAUSTIVO E NON ORDINATO
Algoritmi genetici Se l’evoluzione genetica funziona per tentativi e premi al successo, non possiamo simulare il meccanismo della mutazione per generare “casualmente” mutazioni a modelli e, accelerando la scala dei tempi, verificare quali nuove creature-modelli vengono suggerite?


Scaricare ppt "IL SOFTWARE Marco Maiocchi 1 1 1."

Presentazioni simili


Annunci Google