software e linguaggi di programmazione - uniroma2.it · facoltà di ingegneria – corso di laurea...
TRANSCRIPT
Università degli Studi di Roma – Tor VergataFacoltà di Ingegneria – Corso di Laurea in Ingegneria Medica
SoftwareSoftwareee
Linguaggi di programmazioneLinguaggi di programmazione
InterattivitàSoftware
SOFTWARE
SOFTWARE elemento “morbido”E’ la componente che consente di sfruttare le risorse fisiche (hardware) disponibiliSono i programmi che permettono di elaborare le informazioni, controllare le periferiche e produrre i risultati.
Software
Classificazione del software
Software di BASEE’ un complesso di programmi collegati tra loro che consente l’utilizzo minimo del sistema e la sua programmazione
Software APPLICATIVOComprende tutti i programmi destinati a risolvere specifici problemi non legati al funzionamento del sistema.
Software
Software di base
Fanno parte del software di baseFIRMWARE (BIOS - Basic Inpot/Output System - ROM)
SISTEMA OPERATIVO O.S. o D.O.S.Costituito da un insieme di programmi progettati per svolgere funzioni di gestione, controllo e supervisione sulle operazioni dell’intero sistemaGestore file - Controllo sulle funzioni I/OComandi di processo - Programmi di utilità
Software
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 6 of XX _
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 7 of XX _
Processo di realizzazione del software
Analisi
Problema
Programmazione
Soluzione informale
Soluzione formale dell’
Algoritmo
Esecuzione
Programma macchina
Formalizzazione
Programma ad alto livello
Traduzione
Sistema informativo:Strumenti di supporto evoluti
Sistema informativo:Ambiente di sviluppo
Esecutoredel linguaggio
macchina (HW)
Esecutoredel linguaggioad alto livello
Linguaggibassomedio
alto livello
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 8 of XX _
Es. Scadenzario Farmaci
9/5/201313/12/20128Efferalgan
15/02/20133Sintron
22/05/201213/12/201210Tachipirina
13/12/201215/02/201315/02/201310/10/20125Aspirina
Conf4Conf3Conf2Conf1gg rioFarmaco
Si vuole avere l’avvertimento ogni giorno su Farmaco da riordinareFarmaco la cui data di scadenza è oggiFarmaco scaduto
Colonna 1
Riga 1
Rmax
Cmax
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 9 of XX _
1+= CC
Farmaco dariordinare
NO
""),( =CRF
GriooggiC)F(RAND
oggiC)F(R
+<=
>
,
,
oggiCRF =),(
oggiC)F(R <,
maxCC =
maxRR =
Farmaco nelgiorno di scadenza
FarmacoSCADUTO
NO
NO
NO
NO
SI
SI
SI
SI
SI
Inizio ciclo
Fine ciclo
SI
1=R
3=C
1+= RR
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 10 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 suoset 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_programmazionehttp://it.wikipedia.org/wiki/Elenco_cronologico_dei_linguaggi_di_programmazione
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 11 of XX _
Linguaggi di programmazione
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 12 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 generazioneLinguaggi di basso livello assemblativi seconda generazioneLinguaggi di medio e alto livello
Fortran, Cobol, Basic, Pascal, C++, Java
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 13 of XX _
Linguaggi di programmazione
Linguaggi di prima generazioneIl linguaggio macchina usa solo codice binario FattoriNegativi:Difficile da utilizzare in quanto utilizza solo numeri binari al piùesadecimaliPermette solo l’uso di indirizzi di memoria di tipo numericoDifficile 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 14 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 15 of XX _
Linguaggi ad alto livelloDato 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 interpretatosi parte dal codice sorgente che viene tradotto in linea
Traduzione a livello compilatosi 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 16 of XX _
InterpreteIl software interprete legge le istruzioni nel linguaggio ad alto livello le traduce e le manda in esecuzione.FattoriPositivi:se ci sono errori di sintassi questi vengono rilevati al momentodell’esecuzione corretti e si può rieseguire immediatamente il codicesi 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 sorgenteSe 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 17 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.FattoriPositivise ci sono errori di sintassi o congruità sulle variabili questi vengono rilevati tutti al momento della compilazione e possono essere correttinella compilazione si possono assemblare più parti anche testate e compilate precedentemente per ottenere l’eseguibile completo.
NegativiPer 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 18 of XX _
Linguaggiomacchina
Linguaggioassemblativo
Linguaggi di programmazione Linguaggi
naturali
Linguaggi di basso livello
Hardwaredipendenti
Linguaggi a medio e alto livello
il legame con hardware avviene attraverso il compilatore
IngleseItalianoTedesco
Indipendentidall’hardware
Vari paradigmi di programmazioneImperativo- ProceduraleOrientato agli oggettiFunzionaleDichiarativo
Interpreti – Compilatori - Emulatori
Interfaccia Uomo - Macchina
HardwareSoftware per l’esecutore
in codice binario
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 19 of XX _
LinguaggiOgni 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 - proceduraleParadigma orientato agli oggettiParadigma funzionaleParadigma dichiarativo
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 20 of XX _
Le istruzioni
Un qualsiasi linguaggio deve avere:
Istruzioni di ingresso / uscitapermettono le comunicazioni con il mondo
Istruzioni aritmetico / logichepermettono le elaborazioni sequenziali
Istruzioni di controllopermettono di inserire punti di diramazione
e costruire un albero delle decisioni
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 21 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 22 of XX _
Paradigma imperativo - proceduraleInizio
Fine
wm,
, n legg
i
NO SIni >
y)v(x,
stam
pa dati
mem
oriz
za
y)v(x,
w,
j, i, m,
n,
varia
bili
delle
one
Dic
hiar
azi
y)v(x,
w,
j, i, m,
n,
varia
bili
delle
neAsse
gnaz
io
wsu oper
azio
ni
j)v(i,
su oper
azio
ni
j indi
ce
sull'
oper
azio
ni
i indi
ce
sull'
oper
azio
ni
varia
bili
sulle op
eraz
ioni
delle
esec
uzio
ne
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 23 of XX _
Paradigma imperativo - procedurale
Bloccoistruzioni
NO
SI
......
Condizione
......
main () { ………
if (condizione) { blocco di istruzioni se vero;
} …….}
……if (condizione) then
blocco di istruzionise vero
end if…….
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 24 of XX _
Paradigma imperativo - procedurale
Bloccoistruzioni
......
NOSI Condizione
......
Bloccoistruzioni
main () { ………
if (condizione) { istruzioni se vero } else {istruzioni se falso}
…….}
……if (condizione) then
istruzioni se vero else
istruzioni se falso end if
…….
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 25 of XX _
NO
SI
Bloccoistruzioni
......
Condizione
......
Paradigma imperativo - proceduralemain ()
{ ………while (condizione) {
blocco di istruzioni finché vero; } …….}
……while condizione
blocco di istruzioni finché verowend
…….
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 _
Paradigma imperativo - procedurale
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 28 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 realei è un numero interov() è 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 29 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 concatenazionetesto = “Pippo oggi deve andare “ & destinazione & “ per “ & azionetesto è una stringa formata da due costanti la prima di 23 caratteri e la seconda di 5 caratteri e due variabili di lunghezza variabiledestinazione è una stringa variabileazione è una stringa variabileSe destinazione e azione sono vuote il messaggio sarà“Pippo oggi deve andare per “
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 30 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 31 of XX _
Definizione delle variabiliI dati possono essere definiti in vari modi in VBABoolean (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/9999parte intera giorni dal riferimentoparte decimale, hh.mm.sec, contatore dalla mezzanotte
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 32 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 è la lunghezza definita dall’utilizzatore
Variant (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 33 of XX _
Definizione delle variabiliI 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 34 of XX _
Definizione delle variabili
float(4 byte, 32 bit – numeri realivalori da +/- 140129846432481707*10^-45 a
+/- 340282346638528860*10^38 )
long(8 byte, 64 bit – – numeri realivalori da +/- 494065645841246544 * 10^-324 a
+/- 179769313486231570 * 10^308 )
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 35 of XX _
Dati strutturati
Dati strutturati o definiti dall’utente per la gestione Database
struct paziente { long IDchar nome [Dimensione]char cognome [Dimensione]date data_nascitadate data_eventoboolean vac_Antipolioboolean vac_Antitetanicaboolean vac_Antrabbicaint altezzaint peso
}
Type paziente ID as longnome as string * [Dimensione]cognome as string * [Dimensione] data_nascita as Datedata_evento as Datevac_Antipolio as Boolenvac_Antitetanica as Boolenvac_Antrabbica as Boolenaltezza as Integerpeso as Integer
End Type
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 36 of XX _
Matrici
matri(n,m)dove n numero di righe ed m numero di colonnematri(10,8) 10 (n) righe ed 8 (m) colonne
elem(5,8)……elem(5,4)elem(5,3)elem(5,2)elem(5,1)
………………………………
………………………………
elem(10,4)
elem(4,4)
elem(3,4)
elem(2,4)
elem(1,4)
……
……
……
……
elem(10,8)elem(10,3)elem(10,2)lem(10,1)
elem(4,8)elem(4,3)elem(4,2)elem(4,1)
elem(3,8)elem(3,3)elem(3,2)elem(3,1)
elem(2,8)elem(2,3)elem(2,2)elem(2,1)
elem(1,8)elem(1,3)elem(1,2)elem(1,1)
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 37 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 38 of XX _
Paradigma orientato agli oggetti
Oggetto pulsante
Oggetto casellatesto
Oggetto casellaetichetta
Oggetto casellatesto multi linea
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 39 of XX _
Paradigma orientato agli oggetti – proprietà oggetti
Oggetto pulsante
Oggetto casellatesto
Oggetto casellaetichetta
Oggetto casellatesto multi linea
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 40 of XX _
Attività svolta dagli oggetti
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 41 of XX _
Dati e OggettiBicicletta
Mozzo
Ruota posteioreRuota Anteriore
Cerchione
Telaio
Mozzo Cerchione
Class Bicicletta {String Dati BiciclettaTelaio telaio;RuotaA Ruota anteriore RuotaP Ruota posteriore}
Class Telaio {String tipoNumero di serie}
Class Dati Bicicletta {String MarcaString Numero di serie}
Class RuotaA {String tipoMozzo mozzoCerchione cerchine}
Class RuotaP {String tipoMozzo mozzoCerchione cerchine}
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 42 of XX _
Dati e oggettiBicicletta
Mozzo
Ruota posteioreRuota Anteriore
Cerchione
Telaio
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 43 of XX _
Paradigma funzionale
Paradigma funzionaleGeneralmente 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 specificaI dati e le istruzioni tendono ad essere un tutt’uno.
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 44 of XX _
Paradigma funzionale
112)( x
dtdx
dtdx
dtd
tu −+=
dtd
dtd
dtd
+
+-
u
2x
1x
22
2
dtxd
dtdx2
dtdx1
generatore
generatore
grafica
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 45 of XX _
Paradigma funzionale
112)( x
dtdx
Bdt
dxdtd
Atu −+=
dtd
dtd
dtd
+
+-
u
2x
1x
22
2
dtxd
dtdx2
dtdx1
'* ieB
''* ieA
generatore
grafica
generatore
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 46 of XX _
Paradigma dichiarativoQuesto 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 47 of XX _
Paradigma dichiarativo
La realtà può essere considerata come composta daFatto : (asserzione) <predicato> (argomento, argomento, argomento,…)Regola : (clausole) relazioni condizionate fra oggetti
Luca è padre di Giovanni padre (Luca, Giovanni)asserzione Giovanni è figlio di Luca
Marco possiede la moto possiede (Marco, moto)Marco possiede il computer 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 ]
predicato argomenti
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 48 of XX _
Paradigma dichiarativo
Ad esempioplus (a,b,c)
dichiara una somma tra a e b con risultato su c
plus (10,5,c) riempirà c con 15plus (10,b,15) riempirà b con 5 plus (a,5,15) 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 49 of XX _
Paradigma dichiarativoLe funzioni dichiarative costituiscono la base di dati :padre (padre,figlio) madre(madre,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)
DataBase e relazione
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 50 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 51 of XX _
Paradigma dichiarativoLe 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)
? padre (Pietro,y)y=Francescay=Carloy=Adelaide
? madre (x,Milena)x=Evax=Francesca
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 52 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 53 of XX _
Paradigma dichiarativoLe 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=Giuliox=Monicax=Eva
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 54 of XX _
Paradigma dichiarativoLe 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)
? antenato (x,Carlo)x=Pietrox=Elvira
x=Osvaldox= Guiscardox=Carlotta
x=Ernestox=Monica
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 55 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 56 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 57 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 58 of XX _
DBMSDataBase
Tabella 1
Record 1Record 2…………Record n
Record:key
Item 1Item 2……
Item g
Tabella 2
Record 1Record 2…………Record m
Record:key
Item 1Item 2……Item f
Tabella 3
Record 1Record 2…………Record h
Record:key
Item 1Item 2……
Item p
Tabella 4
Record 1Record 2…………Record k
Record:key
Item 1Item 2……
Item q
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 59 of XX _
DBMSOspedaliero
DB Medici
Record 1Record 2…………Record m
Record:Id
CognomeNome
SpecializzazioneReparto
DB Infermi
Record 1Record 2…………Record n
IdCognome
NomeSpecializzazione
Reparto
DB Pazienti
Record 1Record 2…………Record p
IdCognome
NomeDt Nascita
Dt RicoveroRepartoMedico
DB Reparti
Record 1Record 2…………Record q
Record:Id
Nome RepartoLetti
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 60 of XX _
DBMS
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 61 of XX _
DBMS Tabella
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 62 of XX _
Relazioni
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 63 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.CognomeFrom DB_PazientiWhere DB_Pazienti.Rep1=“Urologia”
And ( Med_Rif =“Lorenzetti”Or Med_Sost = “Galli” )
Order by Cognome
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 64 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’informazioneLa 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 sitiHTML (HyperText Markup Language)
URL (Uniform Resource Locators)
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 65 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 visualizzareQuesti 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 66 of XX _
Linguaggi ipertestuali HTML
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 67 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 68 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 lista non numerataLI eleneto di listaEM enfatizzato
Il simbolo / indica file della funzione
Informatica - Ingegneria Medica -2012 - Franco Del Bolgia Slide 69 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 70 of XX _
Esempio di dati per il DB medico scientifico PubMed