Università degli Studi di Roma – Tor Vergata Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica Software e Linguaggi di programmazione Interattività Software SOFTWARE Software SOFTWARE elemento “morbido” E’ la componente che consente di sfruttare le risorse fisiche (hardware) disponibili Sono i programmi che permettono di elaborare le informazioni, controllare le periferiche e produrre i risultati. Classificazione del Software software Software di BASE E’ un complesso di programmi collegati tra loro che consente l’utilizzo minimo del sistema e la sua programmazione Software APPLICATIVO Comprende tutti i programmi destinati a risolvere specifici problemi non legati al funzionamento del sistema. SoftwareSoftware di base Fanno parte del software di base FIRMWARE (BIOS - Basic Inpot/Output System SISTEMA OPERATIVO O.S. o D.O.S. ROM) Costituito da un insieme di programmi progettati per svolgere funzioni di gestione, controllo e supervisione sulle operazioni dell’intero sistema Gestore file - Controllo sulle funzioni I/O Comandi di processo - Programmi di utilità Sviluppo del software Studio di fattibilità – Convenienza ed attuabilità del progetto Analisi – studio degli algoritmi soluzione informale Progettazione – descrizione delle procedure gerarchizzazione Programmazione – scrittura dei programmi soluzione formale Test – prove di congruità dei programmi Revisione – cambiamenti e migliorie Manutenzione – correzione di errori non evidenziati durante i test Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 6 of XX _ Processo di realizzazione del software Problema Soluzione informale Analisi Formalizzazione Linguaggi basso medio alto livello Sistema informativo: Strumenti di supporto evoluti Soluzione formale dell’ Algoritmo Sistema informativo: Ambiente di sviluppo Programmazione Esecutore del linguaggio ad alto livello Programma ad alto livello Traduzione Programma macchina Esecutore del linguaggio macchina (HW) Esecuzione Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 7 of XX _ Es. Scadenzario Farmaci Si vuole avere l’avvertimento ogni giorno su Farmaco da riordinare Farmaco la cui data di scadenza è oggi Farmaco scaduto Colonna 1 Farmaco Riga 1 Aspirina Rmax Cmax gg rio Conf1 Conf2 Conf3 Conf4 5 10/10/2012 15/02/2013 15/02/2013 13/12/2012 Tachipirina 10 13/12/2012 Sintron 3 15/02/2013 Efferalgan 8 13/12/2012 9/5/2013 Informatica - Ingegneria Medica -2012 - Franco Del Bolgia 22/05/2012 Slide 8 of XX _ Inizio ciclo R = 1 R = R max SI NO C = 3 Fine ciclo NO C = C max SI R = R + 1 F ( R, C ) ="" SI NO F(R , C) > oggi AND NO NO F(R , C) <= oggi + Grio SI F ( R, C ) = oggi SI F(R , C) < oggi SI Farmaco da riordinare Farmaco nel giorno di scadenza Farmaco SCADUTO C = C + 1 Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 9 of XX _ Linguaggi di programmazione Gli algoritmi ci permettono di inquadrare e risolvere logicamente il problema, è poi necessario formalizzare l’algoritmo con delle sequenze di istruzioni elementari in modo che un opportuno esecutore svolga le operazioni descritte nell’algoritmo. L’algoritmo deve quindi essere trascritto in un linguaggio comprensibile all’esecutore. Il calcolatore per come è costruito è capace di eseguire solo le istruzioni elementari in codice binario che costituiscono il suo set di istruzioni, linguaggio macchina composto da sequenze di bit opportunamente organizzate. Nel tempo sono stati creati circa 2500 linguaggi. http://it.wikipedia.org/wiki/Linguaggio_di_programmazione http://it.wikipedia.org/wiki/Elenco_cronologico_dei_linguaggi_di_programmazione Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 10 of XX _ Linguaggi di programmazione Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 11 of XX _ Linguaggi di programmazione La scrittura dell’algoritmo per un esecutore è quindi caratterizzato da una sintassi, regole che specificano come comporre l’istruzione ben formate una semantica, specifica il significato delle operazioni nell’esecuzione dell’istruzione Linguaggio macchina prima generazione Linguaggi di basso livello assemblativi seconda generazione Linguaggi di medio e alto livello Fortran, Cobol, Basic, Pascal, C++, Java Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 12 of XX _ Linguaggi di programmazione Linguaggi di prima generazione Il linguaggio macchina usa solo codice binario Fattori Negativi: Difficile da utilizzare in quanto utilizza solo numeri binari al più esadecimali Permette solo l’uso di indirizzi di memoria di tipo numerico Difficile da correggere e/o implementare ogni eliminazione o aggiunta di istruzioni comporta lo slittamento di tanti altri indirizzi che sono da verificare Positivi: Molto efficienti in quanto il programma può essere ottimizzato sulle potenzialità dell’hardware Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 13 of XX _ Linguaggi di programmazione Linguaggi assemblatori o di seconda generazione Sono l’evoluzione del linguaggio macchina e pur restando legati alla struttura del linguaggio macchina, le istruzioni a differenza del precedente hanno nomi simbolici ed il programmatore può assegnare nomi simbolici alle variabili che vengono gestite e riorganizzate dall’assemblatore stesso. Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 14 of XX _ Linguaggi ad alto livello Dato che l’esecutore elettronico ha come sua principale caratteristica quella di eseguire operazioni in tempi estremamente contenuti gli esseri umani hanno pensato di dare alla macchina il compito di tradurre, istruzioni semanticamente più vicine a noi nelle più semplici sequenze di linguaggio macchina. Sono stati così concepiti tre diversi livelli di traduzione: Traduzione a livello interpretato si parte dal codice sorgente che viene tradotto in linea Traduzione a livello compilato si parte dal codice sorgente che viene tradotto nel suo complesso e quindi si può eseguire il codice esecutivo Traduzione a livello emulativo È un tipo di traduttore utilizzato per far girare codice eseguibile prodotto per un dato processore su un processore diverso Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 15 of XX _ Interprete Il software interprete legge le istruzioni nel linguaggio ad alto livello le traduce e le manda in esecuzione. Fattori Positivi: se ci sono errori di sintassi questi vengono rilevati al momento dell’esecuzione corretti e si può rieseguire immediatamente il codice si possono monitorare le variabili ed identificare errori di implementazione dell’algoritmo, correggere in linea e rieseguire Negativi: Ogni volta che viene eseguito necessita della traduzione che rallenta l’esecuzione e prevede la presenza del dizionario anche se viene protetta la manipolazione del codice sorgente Se ci sono parti del software che non vengono testate o non vengono interessate nelle prove non si possono evidenziare errori di sintassi che saranno evidenziati solo più tardi Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 16 of XX _ Compilatore Il software compilato legge le istruzioni codice sorgente nel linguaggio ad alto livello le traduce effettuando tutti i possibili controlli di sintassi e congruità delle variabili. Fattori Positivi se ci sono errori di sintassi o congruità sulle variabili questi vengono rilevati tutti al momento della compilazione e possono essere corretti nella compilazione si possono assemblare più parti anche testate e compilate precedentemente per ottenere l’eseguibile completo. Negativi Per la correzione di eventuali errori di trascrizione del codice, questa può essere effettuata solo a posteriori durante le prove dell’eseguibile. Ogni correzione può essere fatta solo sul codice sorgente e comporta la ricompilazione del sorgente per ottenere un nuovo eseguibile Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 17 of XX _ Hardware Software per l’esecutore in codice binario Interfaccia Uomo - Macchina Linguaggio macchina Linguaggio assemblativo Linguaggi di basso livello Linguaggi di programmazione Interpreti – Compilatori - Emulatori Linguaggi a medio e alto livello Vari paradigmi di programmazione Imperativo- Procedurale Orientato agli oggetti Funzionale Dichiarativo Hardware dipendenti Linguaggi naturali Inglese Italiano Tedesco Indipendenti dall’hardware il legame con hardware avviene attraverso il compilatore Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 18 of XX _ Linguaggi Ogni linguaggio ad alto livello consente di esprimere gli algoritmi in programmi eseguibili su un esecutore automatico. Nel tempo e con il presentarsi di problematiche di vario genere, si sono così sviluppati linguaggi con istruzioni più aderenti allo stile ed alle necessità del problema da risolvere: I linguaggi possono così essere classificati nelle quattro seguenti categorie: Paradigma imperativo - procedurale Paradigma orientato agli oggetti Paradigma funzionale Paradigma dichiarativo Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 19 of XX _ Le istruzioni Un qualsiasi linguaggio deve avere: Istruzioni di ingresso / uscita permettono le comunicazioni con il mondo Istruzioni aritmetico / logiche permettono le elaborazioni sequenziali Istruzioni di controllo permettono di inserire punti di diramazione e costruire un albero delle decisioni Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 20 of XX _ Paradigma imperativo - procedurale Paradigma Imperativo – procedurale È attualmente ancora il più diffuso; si basa sull’utilizzo di simboli definibili dal programmatore ed istruzioni elementari vicine alla logica con cui ci esprimiamo o con cui è stato realizzato il diagramma di flusso, nel quale le operazioni sono sequenziate secondo uno schema molto preciso e definito (imperativo) Dati ed istruzioni sono definiti separatamente Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 21 of XX _ Paradigma imperativo - procedurale variabili y) w y) variabili dati y) v(x, SI memorizza stampa n , m, w, ne delle v(x, i, j, i i>n j su su sull'sull' delle w v(i, indice indice operazioni j) variabili NO operazioni operazioni operazioni operazioni sulleesecuzione delle v(x, m, i, j, w,one n, Dichiarazi m, leggi n, Assegnazio Inizio Fine Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 22 of XX _ Paradigma imperativo - procedurale ...... SI Condizione NO Blocco istruzioni main () { ……… if (condizione) { blocco di istruzioni se vero; } ……. } ...... …… if (condizione) then blocco di istruzioni se vero end if ……. Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 23 of XX _ Paradigma imperativo - procedurale ...... SI Condizione Blocco istruzioni NO Blocco istruzioni main () { ……… if (condizione) { istruzioni se vero } else {istruzioni se falso} ……. } ...... Informatica - Ingegneria Medica -2012 - Franco Del Bolgia …… if (condizione) then istruzioni se vero else istruzioni se falso end if ……. Slide 24 of XX _ Paradigma imperativo - procedurale ...... Blocco istruzioni Condizione SI main () { ……… while (condizione) { blocco di istruzioni finché vero; } ……. } NO ...... …… while condizione blocco di istruzioni finché vero wend ……. Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 25 of XX _ Paradigma imperativo - procedurale Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 26 of XX _ Paradigma imperativo - procedurale Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 27 of XX _ Dati Le variabili sono i dati che devono essere elaborati e necessitano di spazi in memoria, Questi spazi devono essere definiti sia dal punto di vista delle dimensioni che dal punto di vista dell’usabilità. Scrivere z = z + v(i) è ammissibile solo se z, i e v(i) sono numeri z è un numero reale i è un numero intero v() è un vettore di numeri reali oppure se le variabili sono tutti testi allora + può indicare concatena le parole / lettere per ottenere una frase Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 28 of XX _ Dati Così come se devo costruire una frase le parole devono essere concatenate opportunamente a formare la frase in questo caso & rappresenta la funzione concatenazione testo = “Pippo oggi deve andare “ & destinazione & “ per “ & azione testo è una stringa formata da due costanti la prima di 23 caratteri e la seconda di 5 caratteri e due variabili di lunghezza variabile destinazione è una stringa variabile azione è una stringa variabile Se destinazione e azione sono vuote il messaggio sarà “Pippo oggi deve andare per “ Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 29 of XX _ Dati Se destinazione = “al mercato” e azione = “fare la spesa” Il messaggio sarà “Pippo oggi deve andare al mercato per fare la spesa“ Se destinazione = “al cinema” e azione = “vedere il film appena uscito” Il messaggio sarà “Pippo oggi deve andare al cinema per vedere il film appena uscito “ Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 30 of XX _ Definizione delle variabili I dati possono essere definiti in vari modi in VBA Boolean (booleano) 2 byte (Falso, Vero) Integer (intero) 2 byte (-32,768: 32,767) Long (intero lungo) 4 byte (-2,147,483,648:2,147,483,647) Single (singola precisione) 4 byte Floating-Point (numeri reali) Double (doppia precisione) 8 byte Floating-Point (numeri reali) Date (rappresenta una data) 8 bytes FP dal 1/1/1900 al 31/12/9999 parte intera giorni dal riferimento parte decimale, hh.mm.sec, contatore dalla mezzanotte Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 31 of XX _ Definizione delle variabili Currency (valutario, monetario) 8 byte Fixed-point (virgola fissa) dove è importante l’accuratezza nei calcoli valori -922,337,203,685,477.5808 a 922,337,203,685,477.5807. String (testo di lunghezza variabile) 1 byte per carattere – L byte lunghezza della stringa String * length (testo di lunghezza fissa) length byte Variant è la lunghezza definita dall’utilizzatore (assume la definizione data dal valore attuale) boolean, integer, long, single, double, date, currency, string Object (riferimento – indirizzo ad un oggetto di office) 4 byte Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 32 of XX _ Definizione delle variabili I dati possono essere definiti in vari modi in Java boolean (Vero, Falso) non hanno valore numerico occupa 1 byte char (contiene caratteri tipo unicode a 2 byte + address) Numerici interi byte (1 byte, 8 bit - valori da -128 a 127) short (2 byte, 16 bit - valori da -32768 a 32767) int (4 byte, 32 bit - valori da -2,147,483,648 a 2,147,483,647) long (8 byte, 64 bit – valori da -9223372036854775808 a 9223372036854775807) Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 33 of XX _ Definizione delle variabili float (4 byte, 32 bit – numeri reali valori da +/- 140129846432481707*10^-45 a +/- 340282346638528860*10^38 ) long (8 byte, 64 bit – – numeri reali valori da +/- 494065645841246544 * 10^-324 a +/- 179769313486231570 * 10^308 ) Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 34 of XX _ Dati strutturati Dati strutturati o definiti dall’utente per la gestione Database struct paziente { long ID char nome [Dimensione] char cognome [Dimensione] date data_nascita date data_evento boolean vac_Antipolio boolean vac_Antitetanica boolean vac_Antrabbica int altezza int peso } Type paziente ID as long nome as string * [Dimensione] cognome as string * [Dimensione] data_nascita as Date data_evento as Date vac_Antipolio as Boolen vac_Antitetanica as Boolen vac_Antrabbica as Boolen altezza as Integer peso as Integer End Type Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 35 of XX _ Matrici matri(n,m) dove n numero di righe ed m numero di colonne matri(10,8) 10 (n) righe ed 8 (m) colonne elem(1,1) elem(1,2) elem(1,3) elem(1,4) …… elem(1,8) elem(2,1) elem(2,2) elem(2,3) elem(2,4) …… elem(2,8) elem(3,1) elem(3,2) elem(3,3) elem(3,4) …… elem(3,8) elem(4,1) elem(4,2) elem(4,3) elem(4,4) …… elem(4,8) elem(5,1) elem(5,2) elem(5,3) elem(5,4) …… elem(5,8) …… …… …… …… …… …… …… …… …… …… …… …… lem(10,1) elem(10,2)elem(10,3)elem(10,4) Informatica - Ingegneria Medica -2012 - Franco Del Bolgia elem(10,8) Slide 36 of XX _ Paradigma orientato agli oggetti Si basa fondamentalmente sulle possibilità grafiche e prevede la presenza di strutture di interazione come nel mondo reale, oggetti come pulsanti, manopole, cursori, etc., metafora del desktop, i quali attivano determinate funzioni. Le istruzioni sono rappresentate dai metodi ed i dati dalle proprietà Gli oggetti / dati possono essere strutturati in classi Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 37 of XX _ Paradigma orientato agli oggetti Oggetto pulsante Oggetto casella testo Oggetto casella etichetta Oggetto casella testo multi linea Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 38 of XX _ Paradigma orientato agli oggetti – proprietà oggetti Oggetto pulsante Oggetto casella testo Oggetto casella etichetta Oggetto casella testo multi linea Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 39 of XX _ Attività svolta dagli oggetti Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 40 of XX _ Dati e Oggetti Bicicletta Ruota Anteriore Mozzo Cerchione Class Bicicletta { String Dati Bicicletta Telaio telaio; RuotaA Ruota anteriore RuotaP Ruota posteriore } Ruota posteiore Telaio Mozzo Class Dati Bicicletta { String Marca String Numero di serie } Class RuotaA { String tipo Mozzo mozzo Cerchione cerchine } Cerchione Class Telaio { String tipo Numero di serie } Class RuotaP { String tipo Mozzo mozzo Cerchione cerchine } Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 41 of XX _ Dati e oggetti Bicicletta Ruota Anteriore Mozzo Telaio Cerchione Ruota posteiore Mozzo Cerchione ØControlla (bicicletta) richiede ØControlla (telaio) prodotto elementare ØControlla (ruota anteriore) richiede ØControlla (mozzo) prodotto elementare ØControlla (cerchione) prodotto elementare ØControlla (ruota posteriore) richiede ØControlla (mozzo) prodotto elementare ØControlla (cerchione) prodotto elementare Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 42 of XX _ Paradigma funzionale Paradigma funzionale Generalmente utilizzati nei simulatori, in questo caso il problema viene inquadrato dal punto di vista della sua risoluzione matematica con blocchi funzionali che effettuano sui dati di ingresso una operazione specifica I dati e le istruzioni tendono ad essere un tutt’uno. Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 43 of XX _ Paradigma funzionale d dx2 dx1 u (t ) = + − x1 dt dt dt x1 d dt dx1 dt generatore + - u grafica + x2 generatore d dt dx2 dt Informatica - Ingegneria Medica -2012 - Franco Del Bolgia d dt d 2 x2 dt 2 Slide 44 of XX _ Paradigma funzionale d dx2 dx1 u (t ) = A +B − x1 dt dt dt x1 dx1 dt d dt B * ei' generatore + - u grafica + x2 generatore d dt dx2 dt d dt Informatica - Ingegneria Medica -2012 - Franco Del Bolgia 2 d x2 dt 2 A * ei'' Slide 45 of XX _ Paradigma dichiarativo Questo tipo di organizzazione è orientata ai dati e alle loro relazioni In genere nella soluzione di un problema si stabilisce cosa si vuole ottenere nella prima fase dell’analisi e quindi con la programmazione il come ciò che si vuole possa essere raggiunto. Nella programmazione dichiarativa invece viene descritta nella base di dati l’asserzione che lega degli argomenti e le relazioni che legano le varie asserzioni. Le richieste sono solo il cosa si vuole ed è compito del traduttore cercare il modo con cui risolvere il problema e farlo eseguire al processore. Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 46 of XX _ Paradigma dichiarativo La realtà può essere considerata come composta da Fatto : (asserzione) <predicato> (argomento, argomento, argomento,…) Regola : (clausole) relazioni condizionate fra oggetti predicato argomenti Luca è padre di Giovanni padre (Luca, Giovanni) asserzione Giovanni è figlio di Luca Marco possiede la moto Marco possiede il computer possiede (Marco, moto) possiede (Marco, computer) Struttura Dichiarazione dei fatti (database) Definizione delle regole tra i vari predicati Porre domande sui fatti [ ? possiede (Luca,moto) = falso ] [ ? possiede (Marco,moto) = vero ] [ ? possiede (marco,y) y = moto, y = computer ] Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 47 of XX _ Paradigma dichiarativo Ad esempio plus (a,b,c) dichiara una somma tra a e b con risultato su c plus (10,5,c) plus (10,b,15) plus (a,5,15) riempirà c con 15 riempirà b con 5 riempirà a con 10 ma dato l’asserto di base c=a+b allora b = c – a oppure a = c – b Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 48 of XX _ Paradigma dichiarativo Le funzioni dichiarative costituiscono la base di dati : padre (padre,figlio) madre(madre,figlio) DataBase e relazione padre (Osvaldo,Pietro) padre (Giulio,Giuseppe) padre (Pietro,Francesca) padre (Pietro,Carlo) padre (Guiscardo,Pietro) padre (Giulio,Aldo) padre (Pietro,Adelaide) padre (Ernesto,Osvaldo) madre (Monica,Carlotta) madre (Carlotta,Elvira) madre (Monica,Giuseppe) madre (Eva,Milena) madre (Elvira,Carlo) madre (Francesca,Milena) madre (Eva,Giuseppe) Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 49 of XX _ Paradigma dichiarativo genitore(X,Y) :- padre(X,Y). genitore(X,Y) :- madre(X,Y). antenato(X,Y) :- genitore(X,Y). antenato(X,Y) :- genitore(X,Z), antenato(Z,Y). antenato(X,Y) :- genitore(X,Z), antenato(Z,W), antenato(W,Y) fratello_sorella(X,Y) :padre(Z,X), padre(Z,Y), madre(W,X), madre(W,Y), X \= Y. ? madre (x,Milena) x=Eva, x=Francesca ? padre (Pietro,y) y=Francesca, y=Carlo, y=Adelaide Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 50 of XX _ Paradigma dichiarativo Le funzioni dichiarative costituiscono la base di dati : genitore (genitore,figlio) padre (Osvaldo,Pietro) padre (Giulio,Giuseppe) padre (Pietro,Francesca) padre (Pietro,Carlo) padre (Guiscardo,Pietro) padre (Giulio,Aldo) padre (Pietro,Adelaide) padre (Ernesto,Osvaldo) ? padre (Pietro,y) y=Francesca y=Carlo y=Adelaide madre (Monica,Carlotta) madre (Carlotta,Elvira) madre (Monica,Giuseppe) madre (Eva,Milena) madre (Elvira,Carlo) madre (Francesca,Milena) madre (Eva,Giuseppe) ? madre (x,Milena) x=Eva x=Francesca Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 51 of XX _ Paradigma dichiarativo ? genitore (x,Giuseppe) x=Giulio, x=Monica, x=Eva ? antenato (x,Carlo) x=Pietro, x=Osvaldo, x=Ernesto, x= Guiscardo, x=Elvira, x=Carlotta, x=Monica padre (Pietro,Carlo), padre (Osvaldo,Pietro), padre (Ernesto,Osvaldo) padre (Guiscardo,Pietro) madre (Elvira,Carlo), madre (Carlotta,Elvira), madre (Monica,Carlotta) Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 52 of XX _ Paradigma dichiarativo Le funzioni dichiarative costituiscono la base di dati : genitore (genitore,figlio) padre (Osvaldo,Pietro) padre (Giulio,Giuseppe) padre (Pietro,Francesca) padre (Pietro,Carlo) padre (Guiscardo,Pietro) padre (Giulio,Aldo) padre (Pietro,Adelaide) padre (Ernesto,Osvaldo) madre (Monica,Carlotta) madre (Carlotta,Elvira) madre (Monica,Giuseppe) madre (Eva,Milena) madre (Elvira,Carlo) madre (Francesca,Milena) madre (Eva,Giuseppe) ? genitore (x,Giuseppe) x=Giulio x=Monica x=Eva Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 53 of XX _ Paradigma dichiarativo Le funzioni dichiarative costituiscono la base di dati : genitore (genitore,figlio) padre (Osvaldo,Pietro) padre (Giulio,Giuseppe) padre (Pietro,Francesca) padre (Pietro,Carlo) padre (Guiscardo,Pietro) padre (Giulio,Aldo) padre (Pietro,Adelaide) padre (Ernesto,Osvaldo) madre (Monica,Carlotta) madre (Carlotta,Elvira) madre (Monica,Giuseppe) madre (Eva,Milena) madre (Elvira,Carlo) madre (Francesca,Milena) madre (Eva,Giuseppe) Informatica - Ingegneria Medica -2012 - Franco Del Bolgia ? antenato (x,Carlo) x=Pietro x=Elvira x=Osvaldo x= Guiscardo x=Carlotta x=Ernesto x=Monica Slide 54 of XX _ Linguaggi per la manipolazione dei dati In molti casi non sono le operazioni matematiche ad essere la principale applicazione ma la gestione di informazioni organizzate in tabelle relazionate tra loro con un gran numero di informazioni nei DBMS (Database Management System) Questa problematica estremamente comune ai grandi archivi ha portato allo sviluppo di linguaggi specifici per la gestione delle tabelle a modello relazionale chiamati SQL (Structured Query Language) che hanno funzioni di: Creazione, inserimento, aggiornamento, cancellazione, ricerca ed estrazione di dati tra loro correlati. Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 55 of XX _ DBMS Un database è normalmente formato da più tabelle ed ogni tabella e definita dal suo schema che sono l’insieme dei campi da cui essa è formata e che rappresenta anche la tipologia ed eventuali limitazioni sui dati definiti nei campi. I dati presenti nei campi sono gli item successivi definiti nello schema. Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 56 of XX _ Tutti gli item dello schema costituiscono il record. Tanti record costituiscono la tabella. Tante tabelle correlate costituiscono un database. Nei DataBase sono anche inserite le eventuali relazioni tra le tabelle al fine di non dover duplicare dati presenti nelle tabelle di competenza (caratteristiche degli item della tabella) Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 57 of XX _ DBMS DataBase Tabella 1 Tabella 2 Tabella 3 Tabella 4 Record 1 Record 2 ………… Record n Record 1 Record 2 ………… Record m Record 1 Record 2 ………… Record h Record 1 Record 2 ………… Record k Record: key Item 1 Item 2 …… Item g Record: key Item 1 Item 2 …… Item f Record: key Item 1 Item 2 …… Item p Record: key Item 1 Item 2 …… Item q Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 58 of XX _ DBMS Ospedaliero DB Medici DB Infermi DB Pazienti DB Reparti Record 1 Record 2 ………… Record m Record 1 Record 2 ………… Record n Record 1 Record 2 ………… Record p Record 1 Record 2 ………… Record q Record: Id Cognome Nome Specializzazione Reparto Id Cognome Nome Specializzazione Reparto Id Cognome Nome Dt Nascita Dt Ricovero Reparto Medico Record: Id Nome Reparto Letti Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 59 of XX _ DBMS Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 60 of XX _ DBMS Tabella Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 61 of XX _ Relazioni Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 62 of XX _ DBMS La funzione principale dei data base è quella di selezionare i dati e fornirli aggregati in secondo le richieste dell’utente Select Pazienti.Cognome From DB_Pazienti Where DB_Pazienti.Rep1=“Urologia” And ( Med_Rif =“Lorenzetti” Or Med_Sost = “Galli” ) Order by Cognome Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 63 of XX _ Linguaggi ipertestuali HTML Hanno avuto un notevole impulso con l’avvento di INTERNET in quanto: Logica di tipo reticolare nella lettura e acquisizione dell’informazione La logica lineare con cui sono scritti i testi spesso non è in accordo con quella del lettore. Il lettore mentre legge può avere la necessità, curiosità di chiarire, approfondire parti del discorso , oppure chi ha scritto la pagina può avere la necessità di indirizzare il lettore verso altri siti HTML (HyperText Markup Language) URL (Uniform Resource Locators) Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 64 of XX _ HTML (Hypertext Markup Language) Il formato HTML prevede la presenza dei solo testo e comandi (denominati markup o tag) che rappresentano i comandi che il software browser interpreterà per realizzare la pagina da visualizzare Questi comandi sono inseriti con due simboli delimitatori di inizio e fine <nome_del_tag> seguiti da testo o comandi più complessi </nome_del_tag> Es. <U> sottolineato </U> <I> italico </I> <EM> enfatizzato </EM> <BR> ritorno a capo <P> ritorno a capo con linea vuota <BODY> corpo del testo </BODY> <UL> lista non numerato </UL> <LI> elemento di lista </LI> <A HREF=“path\...\indirizzo”>Partite 2011-2012</A> anchor point <IMG SRC=“path\...\nome immagine”> Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 65 of XX _ Linguaggi ipertestuali HTML Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 66 of XX _ HTML (Hypertext Markup Language) Utilizzando la logica della definizione si possono costruire degli elenchi <UL> <LI> D. Sciuto, G. Buonanno, L. Mari, W. Fornaciari <EM>Introduzione ai sistemi Informatici</EM> McGraw-Hill Italia 2008 <LI><U><I>autori <EM> Informatica </EM> Editore </I></U> </UL> Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 67 of XX _ XML ( Xtensible Markup Language) <LIBRO> <AUTORE> D. Sciuto</AUTORE> <AUTORE> G. Buonanno </AUTORE> <AUTORE> L. Mari </AUTORE> <AUTORE> W. Fornaciari </AUTORE> <TITOLO> EM>Introduzione ai sistemi Informatici </TITOLO> <EDITORE> McGraw-Hill Italia </EDITORE> <EM>Introduzione ai sistemi Informatici</EM> McGraw-Hill Italia 2008 </LIBRO> UL LI EM lista non numerata eleneto di lista enfatizzato Il simbolo / indica file della funzione Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 68 of XX _ DTD (Document Type Definition) <!------- Bibliografia ----> <BIB> <LIBRO nome=“info”> <AUTORE id = “dony”> D. Sciuto</AUTORE> <AUTORE id = “jack”> G. Buonanno </AUTORE> <AUTORE id = “luca”> L. Mari </AUTORE> <AUTORE id = “mau”> W. Fornaciari </AUTORE> <TITOLO> EM>Introduzione ai sistemi Informatici </TITOLO> <EDITORE> McGraw-Hill Italia </EDITORE> <ANNO> 2008 </LIBRO> <LIBRO nome=“DataBase”> < AUTORE idref = “luca” <TITOLO> Accesso a database via web</TITOLO> <EDITORE> Apogeo </EDITORE> <ANNO> 2001</ANNO> </LIBRO> </BIB> Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 69 of XX _ Esempio di dati per il DB medico scientifico PubMed Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 70 of XX _ Università degli Studi di Roma – Tor Vergata Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica