Software e Linguaggi di programmazione

annuncio pubblicitario
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
Scarica