La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

AA 2006/2007Analisi dei Ruoli1 ANALISI DEI RUOLI Visentini Diego mat.814702 De Martin Andrea mat. 810091 Laurea Specialistica in Informatica Analisi e.

Presentazioni simili


Presentazione sul tema: "AA 2006/2007Analisi dei Ruoli1 ANALISI DEI RUOLI Visentini Diego mat.814702 De Martin Andrea mat. 810091 Laurea Specialistica in Informatica Analisi e."— Transcript della presentazione:

1 AA 2006/2007Analisi dei Ruoli1 ANALISI DEI RUOLI Visentini Diego mat.814702 De Martin Andrea mat. 810091 Laurea Specialistica in Informatica Analisi e Verifica dei Programmi docente: prof. Cortesi Agostino

2 AA 2006/2007Analisi dei Ruoli2 OBIETTIVI Nuovo sistema di Ruoli Nuovo sistema di Ruoli Funzionalità dei ruoli Funzionalità dei ruoli Algoritmi che implementano varie analisi dei ruoli Algoritmi che implementano varie analisi dei ruoli

3 AA 2006/2007Analisi dei Ruoli3 EXCURSUS Introduzione generale Introduzione generale Definizione e Proprietà dei ruoli Definizione e Proprietà dei ruoli Modello di programmazione Modello di programmazione Analisi intraprocedurale Analisi intraprocedurale Analisi interprocedurale Analisi interprocedurale Estensioni del sistema di ruoli Estensioni del sistema di ruoli Lavoro correlato Lavoro correlato Conclusioni Conclusioni

4 AA 2006/2007Analisi dei Ruoli4 TIPO vs RUOLO Tipo di una variabile: int, bool, float, ecc… Tipo di una variabile: int, bool, float, ecc… Ruolo: estensione del concetto di tipo inteso come relazione di referenza tra oggetti; incrementa sia sicurezza che leggibilità del programma Ruolo: estensione del concetto di tipo inteso come relazione di referenza tra oggetti; incrementa sia sicurezza che leggibilità del programma Esempio ideologico, non basato su codice, che chiarisce la distinzione tra ruolo e tipo: Esempio ideologico, non basato su codice, che chiarisce la distinzione tra ruolo e tipo: Carta Postepay Carta Postepay Il tipo delloggetto è carta ricaricabile Il tipo delloggetto è carta ricaricabile Il ruolo dipende dallambito in cui viene usata: Il ruolo dipende dallambito in cui viene usata: carta di credito in operazioni di acquisto su internet con Paypal carta di credito in operazioni di acquisto su internet con Paypal Bancomat allo sportello delle poste Bancomat allo sportello delle poste

5 AA 2006/2007Analisi dei Ruoli5 INTRODUZIONE (1) Sistemi di ruoli tradizionali mantengono proprietà invarianti, finchè loggetto esiste Sistemi di ruoli tradizionali mantengono proprietà invarianti, finchè loggetto esiste Ruoli di un oggetto cambiano a seconda di come cambiano i valori memorizzati nei propri campi oppure mentre i programmi invocano operazioni su tale oggetto Ruoli di un oggetto cambiano a seconda di come cambiano i valori memorizzati nei propri campi oppure mentre i programmi invocano operazioni su tale oggetto Soluzione: integrazione tra cambiamento di stati e sistema di ruoli Soluzione: integrazione tra cambiamento di stati e sistema di ruoli

6 AA 2006/2007Analisi dei Ruoli6 INTRODUZIONE (2) Role Concept: lo stato di un oggetto dipende dalle sue relazioni di referenza con gli altri oggetti Role Concept: lo stato di un oggetto dipende dalle sue relazioni di referenza con gli altri oggetti Linguaggio per definire un ruolo: per esprimere invarianti e strutture dati Linguaggio per definire un ruolo: per esprimere invarianti e strutture dati Modello di Programmazione: set di regole che permettono o meno la violazione dei vincoli Modello di Programmazione: set di regole che permettono o meno la violazione dei vincoli Linguaggio delle specifiche per linterfaccia procedurale: contesto iniziale ed effetti su procedure Linguaggio delle specifiche per linterfaccia procedurale: contesto iniziale ed effetti su procedure Algoritmi di analisi dei ruoli: controllano se i vincoli vengono violati e in questo caso controllano se la regola applicata ne consentiva la violazione Algoritmi di analisi dei ruoli: controllano se i vincoli vengono violati e in questo caso controllano se la regola applicata ne consentiva la violazione

7 AA 2006/2007Analisi dei Ruoli7 ESEMPIO Diagramma delle referenze dei ruoli per un process scheduler

8 AA 2006/2007Analisi dei Ruoli8 DEFINIZIONE DEI RUOLI (1) Esempio di definizione dei ruoli del grafo precedente scritto in pseudocodice Ruolo dei processi in esecuzione: notare il vincolo identities Ruolo dei processi in esecuzione: notare il vincolo acyclic

9 AA 2006/2007Analisi dei Ruoli9 DEFINIZIONE DEI RUOLI (2) Vincoli di identità Vincoli di identità Vincoli di aciclicità Vincoli di aciclicità Nellesempio: il vincolo di identità next.prev nel ruolo RunningProc specifica il vincolo della lista ciclica doppiamente linkata che segue il next, poi il campo prev riconduce sempre alloggetto iniziale. Il vincolo aciclico left e il right nel ruolo SleepingProc specifica che non ci sono cicli nello heap inglobando solo gli archi left e right. Dallaltro lato, la lista dei processi attivi deve essere ciclica, perché i suoi nodi non possono mai puntare a null Nellesempio: il vincolo di identità next.prev nel ruolo RunningProc specifica il vincolo della lista ciclica doppiamente linkata che segue il next, poi il campo prev riconduce sempre alloggetto iniziale. Il vincolo aciclico left e il right nel ruolo SleepingProc specifica che non ci sono cicli nello heap inglobando solo gli archi left e right. Dallaltro lato, la lista dei processi attivi deve essere ciclica, perché i suoi nodi non possono mai puntare a null

10 AA 2006/2007Analisi dei Ruoli10 PROPRIETA DEI RUOLI Proprietà di consistenza: i ruoli sono in grado di assicurare che il programma rispetti le proprietà di consistenza della struttura dati a livello applicazione. I ruoli nel nostro process scheduler, per esempio, assicurano che un processo non può essere contemporaneamente attivo e sleeping Proprietà di consistenza: i ruoli sono in grado di assicurare che il programma rispetti le proprietà di consistenza della struttura dati a livello applicazione. I ruoli nel nostro process scheduler, per esempio, assicurano che un processo non può essere contemporaneamente attivo e sleeping Modifiche dell interfaccia: linterfaccia cambia mentre cambiano le sue relazioni di referenza Modifiche dell interfaccia: linterfaccia cambia mentre cambiano le sue relazioni di referenza Relazioni correlate: gruppi di oggetti cooperano per implementare una parte di una funzionalità Relazioni correlate: gruppi di oggetti cooperano per implementare una parte di una funzionalità

11 AA 2006/2007Analisi dei Ruoli11 SINTASSI E SEMANTICA DEI RUOLI (1) Rappresentazione di uno Heap: Rappresentazione di uno Heap: grafo H C grafo H C oggetti nodes (H C ) oggetti nodes (H C ) archi (O 1, ƒ,O 2 ) є H C archi (O 1, ƒ,O 2 ) є H C

12 AA 2006/2007Analisi dei Ruoli12 SINTASSI E SEMANTICA DEI RUOLI (2) R set usati nelle definizioni di ruoli R set usati nelle definizioni di ruoli null R, null c, R 0 =R U{null R } null R, null c, R 0 =R U{null R } Ogni ruolo è rappresentato come la congiunzione di 4 vincoli: Ogni ruolo è rappresentato come la congiunzione di 4 vincoli: Campi:per ogni campo c è associata una funzione field ƒ (): R 2 R 0 Campi:per ogni campo c è associata una funzione field ƒ (): R 2 R 0 Slots: slotno(r): un oggetto di ruolo r può avere un numero di alias pari a slot(r) Slots: slotno(r): un oggetto di ruolo r può avere un numero di alias pari a slot(r) Identità: identities(r) C ƒ є F. Le identità sono coppie di campi (ƒ,g) dove ogni referenza ƒ su un oggetto o poi ritorna su referenze g che portano nuovamente ad o Identità: identities(r) C ƒ є F. Le identità sono coppie di campi (ƒ,g) dove ogni referenza ƒ su un oggetto o poi ritorna su referenze g che portano nuovamente ad o Aciclicità:setAcyclic(r) C ƒ di campi lungo la quale i cicli sono proibiti Aciclicità:setAcyclic(r) C ƒ di campi lungo la quale i cicli sono proibiti

13 AA 2006/2007Analisi dei Ruoli13 SINTASSI E SEMANTICA DEI RUOLI (3) REFERENCE ROLE DIAGRAM REFERENCE ROLE DIAGRAM DEFINIZIONE FORMALE: DEFINIZIONE FORMALE: RRD={(r,ƒ, r) | r є field ƒ (r) e эi (r,ƒ) є slot i (r )} U {(r,ƒ, null R )\ null R є field ƒ (r) } Come si può notare, cattura alcuni ma non tutti i tipi di vincoli definiti in precedenza Come si può notare, cattura alcuni ma non tutti i tipi di vincoli definiti in precedenza

14 AA 2006/2007Analisi dei Ruoli14 MODELLO DI PROGRAMMAZIONE (1) Scopo di questa tecnica: violare temporaneamente i vincoli durante la modifica di strutture dati Scopo di questa tecnica: violare temporaneamente i vincoli durante la modifica di strutture dati Linguaggio imperativo (ogni programma è un insieme di procedure proc ) con allocazione di oggetti dinamica Linguaggio imperativo (ogni programma è un insieme di procedure proc ) con allocazione di oggetti dinamica Oggetti onstage e offstage nello heap Oggetti onstage e offstage nello heap 1. onstage(Hc) : referenziato da una variabile locale o da un parametro di qualche attivazione di record 2. offstage(Hc) : mai referenziati da variabili locali o parametri

15 AA 2006/2007Analisi dei Ruoli15 MODELLO DI PROGRAMMAZIONE (2) Consistenza locale Consistenza locale Consistenza dei nodi offstage e onstage Consistenza dei nodi offstage e onstage Consistenza rimozione referenze Consistenza rimozione referenze Consistenza chiamate a procedura Consistenza chiamate a procedura

16 AA 2006/2007Analisi dei Ruoli16 ANALISI INTRAPROCEDURALE DEI RUOLI Rappresentazione grafica (Heap,nodi, archi) Rappresentazione grafica (Heap,nodi, archi) Algoritmo: generare casualmente più nodi offstage Algoritmo: generare casualmente più nodi offstage Scopo: Verificare che oggetti che hanno lo stesso ruolo ma sono rappresentati da nodi offstage diversi, hanno diversa raggiungibilità Scopo: Verificare che oggetti che hanno lo stesso ruolo ma sono rappresentati da nodi offstage diversi, hanno diversa raggiungibilità Verifica globale tramite verifica progressiva di nodi che passano a offstage Verifica globale tramite verifica progressiva di nodi che passano a offstage

17 AA 2006/2007Analisi dei Ruoli17 ANALISI INTERPROCEDURALE DEI RUOLI Approssimiamo la funzione di trasferimento nelle semantiche concrete con interfacce procedurali consistenti in: 1. un contesto iniziale 2. un insieme di effetti Assumiamo che queste interfacce procedurali siano concepite: 1. verificando che approssimino in modo sommario il comportamento della procedura 2. istanziando le interfacce di procedura ai call sites

18 AA 2006/2007Analisi dei Ruoli18 INTERFACCE DI PROCEDURA (1) CONTESTO INIZIALE Il grafo di tipo iniziale assegna: un insieme di heaps concreti ai campi della procedura un insieme di heaps concreti ai campi della procedura i nomi per gli insiemi di oggetti in questi heaps i nomi per gli insiemi di oggetti in questi heaps Denotiamo il grafo di ruolo iniziale come Denotiamo il grafo di ruolo iniziale come Il grafo di tipo iniziale potrebbe contenere due tipi di archi: arco di parametro p pn è interpretato come H IC arco di parametro p pn è interpretato come H IC arco di albero n - f m denota un arco H IC arco di albero n - f m denota un arco H IC Chiamiamo i nodi dellRRD (contenuto nel grafo di ruolo iniziale) nodi anonimi ARCHI DI PARAMETRO ARCHI DI ALBERO NODO DICHIARATO NODO ANONIMO

19 AA 2006/2007Analisi dei Ruoli19 INTERFACCE DI PROCEDURA(2) EFFETTI DI PROCEDURA Gli effetti di procedura: approssimano conservativamente la zona dellheap dove accede la procedura approssimano conservativamente la zona dellheap dove accede la procedura indicano cambiamenti alle relazioni di riferimento allinterno di questa zona indicano cambiamenti alle relazioni di riferimento allinterno di questa zona Ci sono due tipi di effetti: quelli di lettura: specificano un set read ( proc ) di nodi del grafo di ruolo iniziale a cui ha accesso la procedura; sono usati per assicurare che la condizione di accessibilità sia soddisfatta quelli di lettura: specificano un set read ( proc ) di nodi del grafo di ruolo iniziale a cui ha accesso la procedura; sono usati per assicurare che la condizione di accessibilità sia soddisfatta quelli di scrittura: nella forma e 1.f=e2 raccoglie leffetto di operazioni store allinterno della chiamata; e1 denota gli oggetti scritti, f il campo scritto e e2 gli oggetti i cui riferimenti sono scritti nel campo quelli di scrittura: nella forma e 1.f=e2 raccoglie leffetto di operazioni store allinterno della chiamata; e1 denota gli oggetti scritti, f il campo scritto e e2 gli oggetti i cui riferimenti sono scritti nel campo

20 AA 2006/2007Analisi dei Ruoli20 VERIFICA DELLE INTERFACCE DI PROCEDURA(1) Per verificare gli effetti ampliamo la rappresentazione dellanalisi. H è lheap astratto che rappresenta gli oggetti H è lheap astratto che rappresenta gli oggetti ρ è un assegnamento di ruolo astratto ρ è un assegnamento di ruolo astratto K indica il tipo di ogni nodo K indica il tipo di ogni nodo Un grafo di tipo non-error e ora una tupla dove: : nodes (H) nodes 0 (H IC ) e una trasformazione di contesto iniziale che assegna un grafo di tipo iniziale (n) nodes (H IC ) per ogni nodo n rappresentante un oggetto che esiste a priori verso la chiamata di procedura. Esso assegna anche NEW ad ogni nodo rappresentante un oggetto creato durante lesecuzione della procedura : nodes (H) nodes 0 (H IC ) e una trasformazione di contesto iniziale che assegna un grafo di tipo iniziale (n) nodes (H IC ) per ogni nodo n rappresentante un oggetto che esiste a priori verso la chiamata di procedura. Esso assegna anche NEW ad ogni nodo rappresentante un oggetto creato durante lesecuzione della procedura E U i mustWr i ( proc ) e una lista di effetti must write che la procedura ha performato finora E U i mustWr i ( proc ) e una lista di effetti must write che la procedura ha performato finora

21 AA 2006/2007Analisi dei Ruoli21 VERIFICA DELLE INTERFACCE DI PROCEDURA(2) GRAFI DI RUOLO ALLE ENTRY DI PROCEDURA La nostra analisi dei ruoli: crea linsieme dei grafi di ruolo alle entry di procedura dal grafo di ruolo iniziale context ( proc ). crea linsieme dei grafi di ruolo alle entry di procedura dal grafo di ruolo iniziale context ( proc ). istanzia quindi i nodi nel grafo di ruolo iniziale per creare un set di grafici di ruolo ( La figura qui sotto descrive questo processo ) istanzia quindi i nodi nel grafo di ruolo iniziale per creare un set di grafici di ruolo ( La figura qui sotto descrive questo processo ) Lanalisi: prima seleziona un parametro arco per ogni parametro prima seleziona un parametro arco per ogni parametro poi usa il parametro di espansione di relazione per istanziare e dividere il nodo referenziato poi usa il parametro di espansione di relazione per istanziare e dividere il nodo referenziato

22 AA 2006/2007Analisi dei Ruoli22 VERIFICA DELLE INTERFACCE DI PROCEDURA(3) VERIFICA DELLE ASSERZIONI BASE Per assicurare che una procedura sia conforme alla sua interfaccia, lanalisi usa la mappa per assegnare ogni asserzione di Load e Store ad un effetto dichiarato Lesecuzione simbolica di una clausola di Load x=y.f rende certo che il Load e registrato in qualche effetto letto rende certo che il Load e registrato in qualche effetto letto se il caso non e questo, viene riportato un errore se il caso non e questo, viene riportato un errore Lesecuzione simbolica della clausola di Store x.f=y prima reperisce i nodi (nx) e (ny) del grafo di ruolo iniziale che corrispondono ai nodi nx e ny nel grafo di ruolo corrente prima reperisce i nodi (nx) e (ny) del grafo di ruolo iniziale che corrispondono ai nodi nx e ny nel grafo di ruolo corrente se leffetto e dichiarato come un effetto di possibile scrittura, lesecuzione procede come al solito se leffetto e dichiarato come un effetto di possibile scrittura, lesecuzione procede come al solito altrimenti, leffetto e usato per aggiornare la lista E degli effetti must-write altrimenti, leffetto e usato per aggiornare la lista E degli effetti must-write

23 AA 2006/2007Analisi dei Ruoli23 VERIFICA DELLE INTERFACCE DI PROCEDURA(4) VERIFICA DELLE POSTCONDIZIONI DI PROCEDURA Alla fine della procedura, lanalisi: attua una verifica di nodo su tutti i nodi in stato usando il predicato nodeCheck (n,, nodes (H)) per tutti i nodi n onstage (H). attua una verifica di nodo su tutti i nodi in stato usando il predicato nodeCheck (n,, nodes (H)) per tutti i nodi n onstage (H). verifica anche che ogni effetto apportato in E può essere attribuito ad un esatto must-effect dichiarato. verifica anche che ogni effetto apportato in E può essere attribuito ad un esatto must-effect dichiarato.

24 AA 2006/2007Analisi dei Ruoli24 ANALISI DEI CALL SITES(1) Lanalisi aggiorna linsieme dei grafi di ruolo dei siti alla chiamata di procedura basati sulle interfacce del chiamato e considera una procedura proc come un call site nella forma proc (x 1,……,x p ) La computazione della funzione di trasferimento per un call sites ha le seguenti fasi: Parameter check Parameter check Context Matching ( matchContext ) Context Matching ( matchContext ) Effect Instantiation (FX ) Effect Instantiation (FX ) Role Reconstruction(RR ) Role Reconstruction(RR )

25 AA 2006/2007Analisi dei Ruoli25 ANALISI DEI CALL SITES(2) PARAMETER CHECK assicura che i ruoli dei parametri siano conformi ai ruoli attesi dalla chiamata proc richiedendo nodeCheck (n i, G, offstage (H {n j } j ) per ogni nodo di parametro n i CONTEXT MATCHING assicura che i grafi di ruolo chiamati rappresentino un sottoinsieme dellalbero concreto rappresentato da derivando un mapping dal grafo di ruolo chiamato ai nodi (H IC ).

26 AA 2006/2007Analisi dei Ruoli26 ANALISI DEI CALL SITES(3) EFFECT INSTANTIATION usa mayWr ( proc ) e mustWr i ( proc ) per approssimare tutti i cambiamenti al grafo di ruolo che proc può effettuare ROLE RECONSTRUCTION usa ruoli finali per i nodi di parametro, postR i ( proc ), combinata con le definizioni di ruolo globali, per ricostruire i ruoli di ogni nodo nella parte del grafo di ruolo che rappresenta la regione modifica dellheap

27 AA 2006/2007Analisi dei Ruoli27 ESTENSIONI DEL SISTEMA DI RUOLO BASE(1) CAMBIAMENTI DI RUOLO A CASCATA Noi usiamo la clausola setRoleCascade (x 1 :r 1,……..,x n :r n ) per effettuare un cambiamento di ruolo a cascata su di un insieme di oggetti Dato un grafo di ruolo, un cambio di ruolo a cascata: trova un nuovo valido assegnamento di ruolo ρ nel quale loggetto in stato ha i ruoli desiderati trova un nuovo valido assegnamento di ruolo ρ nel quale loggetto in stato ha i ruoli desiderati i ruoli degli oggetti fuori stato sono aggiustati in modo appropriato i ruoli degli oggetti fuori stato sono aggiustati in modo appropriato Ogni soluzione che soddisfa le costrizioni deve rispettare la semantica originale

28 AA 2006/2007Analisi dei Ruoli28 ESTENSIONI DEL SISTEMA DI RUOLO BASE(2) RUOLI SIMULTANEI Questa definizione di albero specifica che una struttura dati è un albero con costrizioni sui campi left e right Similarmente, la definizione di una lista linkata specifica costrizioni solo per il campo next

29 AA 2006/2007Analisi dei Ruoli29 ESTENSIONI DEL SISTEMA DI RUOLO BASE(3) Possiamo combinare lalbero ed i tipi di lista per ottenere un tipo ad albero threaded: Definizioni di ruolo per ruoli simultanei possono usare precedenti definizioni di ruolo tramite la parola chiave extends Definizioni di ruolo per ruoli simultanei possono usare precedenti definizioni di ruolo tramite la parola chiave extends Le relazioni extends sono date dallinsieme di ruoli subroles (r) per ogni ruolo r Le relazioni extends sono date dallinsieme di ruoli subroles (r) per ogni ruolo r

30 AA 2006/2007Analisi dei Ruoli30 LAVORO CORRELATO Approcci typestate proposti recentemente usano ruoli lineari per collegamenti ad heap per supportare i cambi di stato degli oggetti allocati dinamicamente. I ricercatori hanno: sviluppato approcci typestate per verificare le proprietà di salvaguardia di programmi di linguaggio assembly sviluppato approcci typestate per verificare le proprietà di salvaguardia di programmi di linguaggio assembly sviluppato sistemi che usano estensioni di ruoli lineari che evitino la pseudonimia generale e conti sul design del linguaggio per evitare linferenza di tipo non locale sviluppato sistemi che usano estensioni di ruoli lineari che evitino la pseudonimia generale e conti sul design del linguaggio per evitare linferenza di tipo non locale adottato un approccio constraint-based che caratterizza le strutture dati in termini delle costrizioni che devono essere soddisfatte adottato un approccio constraint-based che caratterizza le strutture dati in termini delle costrizioni che devono essere soddisfatte

31 AA 2006/2007Analisi dei Ruoli31 CONFRONTO La nostra analisi: ha un approccio constraint-based che caratterizza le strutture dati in termini delle costrizioni che devono essere soddisfatte ha un approccio constraint-based che caratterizza le strutture dati in termini delle costrizioni che devono essere soddisfatte è incentrata sullaspetto globale come ad esempio la partecipazione di oggetti in strutture dati multipli è incentrata sullaspetto globale come ad esempio la partecipazione di oggetti in strutture dati multipli usa un meno preciso ma più scalabile trattamento di procedure usa un meno preciso ma più scalabile trattamento di procedure usa un approccio composizionale che analizza ogni procedura da sola per verificare che sia conforme alla sua interfaccia usa un approccio composizionale che analizza ogni procedura da sola per verificare che sia conforme alla sua interfaccia traccia molte più informazioni dettagliate riguardo lheap traccia molte più informazioni dettagliate riguardo lheap

32 AA 2006/2007Analisi dei Ruoli32 CONCLUSIONI Questa analisi dei ruoli propone 2 idee chiave: le relazioni di aliasing potrebbero determinare, in parte, il ruolo di ogni oggetto le relazioni di aliasing potrebbero determinare, in parte, il ruolo di ogni oggetto il sistema di ruolo dovrebbe usare loggetto risultante come sua astrazione fondamentale per descrivere le interfacce di procedura e le relazioni di riferimento degli oggetti il sistema di ruolo dovrebbe usare loggetto risultante come sua astrazione fondamentale per descrivere le interfacce di procedura e le relazioni di riferimento degli oggetti ed un algoritmo di analisi che può verificare che il programma rispetti correttamente i vincoli di ruolo I programmatori possono usare i ruoli per una varietà di utilizzi: per assicurare la correttezza dellinterfaccia di procedura estesa che prende i ruoli dei parametri negli account per assicurare la correttezza dellinterfaccia di procedura estesa che prende i ruoli dei parametri negli account per verificare importanti proprietà della consistenza delle strutture dati per verificare importanti proprietà della consistenza delle strutture dati per esprimere come le procedure muovono oggetti tra strutture dati per esprimere come le procedure muovono oggetti tra strutture dati per controllare che il programma implementi correttamente le relazioni correlate tra gli stati di oggetti multipli per controllare che il programma implementi correttamente le relazioni correlate tra gli stati di oggetti multipli Ci aspettiamo perciò che i ruoli migliorino l'affidabilità del programma e la sua trasparenza a sviluppatori e manutentori.

33 AA 2006/2007Analisi dei Ruoli33 RIFERIMENTI(1) [1] A. Albano, R. Bergamini, G. Ghelli and R. Orsini. An introduction to database programming language Fibonacci. The VLDB journal, 4(3), 1995 [2] Craig Chambers. Predicate Classes. In proceedings of the 7° European Conference on Object-Oriented Programming, pages 268-296, 1993 [3] S. Drossopoulou, F. Damiani, M. Dezani-Ciancaglini, and P. Giannini. Fickle: Dynamic objet re-classification. In proceedings of the 15° European Conference on Object-Oriented Programming, LNCS 2072, pages 130-149. Springer, 2001. [4] Rakesh Ghiya and Laurie J. Hendren. Connection analysis: A practical interprocedural heap analysis for C. In Proceedings of the 8° Workshop on Languages and Compilers for Parallel Computing, 1995. [5] Laurie J. Hendren, Josep Hummel, and Alexsandru Nicolau. A general data dependence test for dynamic, pointer-based data structures. In Proceedings of the SIGPLAN94 Conference on Programming Language Design and Implementation, 1994.

34 AA 2006/2007Analisi dei Ruoli34 RIFERIMENTI(2) [ 6] Jacob J. Jensen, Michael E. Joergensen, Nils Klarlund, and Michael I. Schwartzbach. Automatic verification of pointer programs using monadic second order logic. In Proceedings of the SIGPLAN94 Conference on Programming Language Design and Implementation, Las Vegas, NV, 1997. [7] Victor Kunkak. Designing an algorithm for role analysis. Masters thesis, Massachusetts Institute of Tecnology, 2001. [8] Trygve Reenskaug. Working with Objects. Prentice Hall, 1996. [9] Mooly Sagiv, Thomas Reps, and Reinhard Wilhelm. Parametric Shape Analysis via 3-valued logic. In Proceeding of the 26° Annual ACM Symposium on the Principles of Programming Languages, 1999. [10] Wolfgang Thomas. Languages, automata, and logic. In Handbook of Formal Languages Vol.3: Beyond Words. Springer-Verlag, 1997.


Scaricare ppt "AA 2006/2007Analisi dei Ruoli1 ANALISI DEI RUOLI Visentini Diego mat.814702 De Martin Andrea mat. 810091 Laurea Specialistica in Informatica Analisi e."

Presentazioni simili


Annunci Google