Alloy. Intestazione (1) Al modello descritto è stato dato il nome di azienda_compravendita_materieprime come espresso dalla traccia, tale modello è volto.

Slides:



Advertisements
Presentazioni simili
I VETTORI.
Advertisements

Le rette.
Definitezza Vogliamo poter richiedere la “definitezza” delle funzioni
8) GLI INTERVALLI DI CONFIDENZA
SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0 Gianna Reggio
Il linguaggio della Matematica: Insiemi e operazioni
IL MODELLO ENTITÀ-RELAZIONE Gli altri costruttori
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Algebra parziale con predicati
Specifiche Algebriche Modello Iniziale Versione 1.0 Gianna Reggio
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
4 – Progettazione – Introduzione e Modello E-R
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
Lez. 31 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Lez. 131 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Rappresentazione.
Il ragionamento classico
TW Analisi dei documenti n Classificazione dei componenti n Selezione dei componenti, costruzione della gerarchia, dei blocchi informativi e degli elementi.
1 HTML - I Frame Laboratorio di Applicazioni Informatiche II mod. A.
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Iterazione enumerativa (for)
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Macchine non completamente specificate
TEORIA RAPPRESENTAZIONALE DELLA MISURA
Computational Learning Theory and PAC learning
Analisi e Sintesi di circuiti sequenziali
Dip. Economia Politica e Statistica
PROGETTI DI SISTEMI INFORMATIVI DIREZIONALI
Corso di Informatica (Basi di Dati)
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Algoritmi e Strutture Dati (Mod. B)
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
Semantica denotazionale algebrica di LW Idea intuitiva: i valori che vogliamo denotare sono: gli statements sono funzioni di trasformazioni di stato (interno)
Algoritmi.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Basi di dati 2002 EER Vogliamo aumentare lespressività degli Entity Model EER: Entity Model Esteso.
Programmazione logica
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Modello E-R Generalizzazioni
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello E-R Generalizzazioni
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
PROBLEMI RISOLUBILI E COMPUTABILITÀ
Basi di dati Claudia Raibulet
IL GIOCO DELLA LOGICA.
corso DI GEOMETRIA DESCRITTIVA
Derivate Parziali di una Funzione di più Variabili
Elementi di Informatica di base
Il modello ER Proposto da Peter Chen nel 1976 rappresenta uno standard per la progettazione concettuale (in particolare per le basi di dati) Ha una rappresentazione.
Corso di introduzione all’archeologia
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
1/11/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo –
La scomposizione col metodo di Ruffini
CORSO Di WEB DESIGN prof. Leonardo Moriello
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Diagramma delle Classi
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Logica F. orilia. Lezz Lunedì 4 Novembre 2013.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Tag FRAMESET. I frame sono un particolare tipo di struttura HTML, che consente di suddividere la finestra del browser in diversi riquadri distinti. Un'insieme.
“o piccolo” Siano f e g entrambi infiniti o infinitesimi per
“o piccolo” Siano f e g entrambi infiniti o infinitesimi per
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Istituto Comprensivo Rignano-Incisa Tirocinante TFA: G. Giuliani
Descrizione del modello EA con uno schema (parziale) EA Compito 1 di laboratorio: Progetto e realizzazione di una base dati per gestire la documentazione.
Forma normale delle equazioni di 2° grado Definizione. Un'equazione di secondo grado è in forma normale se si presenta nella forma Dove sono numeri.
Ontologia analitica Lezz Lezione 13 7/3/16.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
INSIEMI E LOGICA PARTE QUARTA.
Transcript della presentazione:

Alloy

Intestazione (1) Al modello descritto è stato dato il nome di azienda_compravendita_materieprime come espresso dalla traccia, tale modello è volto a rappresentare le aziende che si occupano di compravendita di materie prime in quanto documento Alloy, la specifica si presenta come ununità in codice sorgente (cfr. source code) e contiene: - signatures: definiscono tipi e relazioni tra tipi - predicati: determinano espressioni riutilizzabili poi nei fatti o nelle asserzioni

Intestazione (2) - fatti: specificano vincoli cui il modello deve sottostare - asserzioni: rappresentano quelle particolari proprietà del sistema che è necessario controllare (check) il modello è stato sviluppato sotto lipotesi principale che un lavoratore mantenga le proprie amicizie nonostante i cambiamenti di ruolo; in particolare, questo si riscontra nelle scelte fatte nella costruzione del metodo di verifica del sistema informativo introdotto nellazienda

Signature (1) Le signatures utilizzate nel modello sono: - sig Settore{ }: identifica il settore dappartenenza dei lavoratori dellazienda - sig Direttore{ amici: set Lavoratore }: rappresenta lentità direttore allinterno dellazienda e lo rapporta ad un gruppo di lavoratori tramite la relazione binaria amici

Signature (2) - sig Lavoratore{ settore: Settore, friendBook: set Lavoratore } : identifica i lavoratori dellazienda e li caratterizza* con il proprio settore dappartenenza e la propria lista damici (costituita da un insieme di altri lavoratori) * le field definitions sappiamo essere parti di una signature dedicate alla definizione di relazioni; poichè sappiamo anche che un atomo in sè è completamente featureless, usiamo delle relazioni per rappresentarne proprietà

Signature (3) - sig Schedario{ manager: set Lavoratore, impiegati: set Lavoratore, fattorini: set Lavoratore } : ha il compito di suddividere i ruoli tra i lavoratori dellazienda; li classifica come manager, impiegati o fattorini

Predicati (1) I predicati espressi per lazienda sono: - pred essereAmici(x: Lavoratore, y:Lavoratore){ one (x.friendBook & y) }: i lavoratori x e y sono amici quando cè unintersezione (&) tra la lista di amici di x e y, ovvero quando y compare tra gli amici di x - pred AmiciDir (x: Direttore, y: Lavoratore) { some (x.amici & y) }: un lavoratore y è amico di un direttore x quando cè intersezione tra gli amici di x e y, ovvero quando y compare tra gli amici di x

Predicati (2) - pred stessoSettore(x: Lavoratore, y: Lavoratore){ one (x.settore & y.settore) }: due lavoratori appartengono allo stesso settore quando hanno lo stesso valore dell attributo/relazione settore - pred amiciNelloStessoSettore(x: Lavoratore, y:Lavoratore){ essereAmici(x,y) && stessoSettore(x,y) }: i lavoratori x e y sono amici e lavorano nello stesso settore quando rispondono al predicato essereAmici e condividono lo stesso settore

Predicati (3) - pred superiore(x: Lavoratore, y: Lavoratore, z: Schedario){ one (y & z.manager) && one (x & z.fattorini) || one (y & z.manager) && one (x & z.impiegati) || one (y & z.impiegati) && one (x & z.fattorini) }: un lavoratore y è superiore di un lavoratore x quando, dato lo schedario z, y risulta manager e x fattorino o impiegato oppure quando y risulta impiegato e x fattorino

Predicati (4) - pred amiciDiUnSuperioreNelloStessoSettore(x: Lavoratore, y: Lavoratore, z: Schedario){ superiore(y,x,z) && amiciNelloStessoSettore (x,y) }: il lavoratore y è amico di x, che è un suo superiore allinterno dello stesso settore, se x e y rispondono ai predicati superiore e amiciNelloStessoSettore

Predicati (5) - pred piuRuoli(x: Lavoratore, z: Schedario){ ( one (z.manager & x) && one (z.impiegati & x)) || ( one (z.impiegati & x) && one (z.fattorini & x)) || ( one(z.fattorini & x) && one (z.manager & x)) }: uno stesso lavoratore ricopre più ruoli quando è contemporaneamente manager e impiegato o fattorino oppure impiegato e fattorino

Fatti (1) I vincoli espressi per il modello sono essenzialmente due il primo è relativo alla cardinalità dellentità Settore e dellentità Schedario; il secondo racchiude tutte le costrizioni che si è ritenuto opportuno esprimere sul sistema azienda e che riguardano principalmente i lavoratori e il loro cambiamento di ruolo dovuto ad una promozione o eventualmente ad una retrocessione

Fatti (2) Il primo fatto è così espresso: fact cardinalità{ #Settore=3 #Schedario=1 } questo vincola il numero di settori dellazienda a tre, come espresso dalla traccia, e il numero di schedari a uno in effetti, il fatto che lo schedario fosse unico è stata una nostra ipotesi; abbiamo supposto che il sistema azienda tenesse memoria dei propri lavoratori in una sorta di catalogo unico aggiornabile periodicamente

Fatti (3) in alternativa, si poteva ipotizzare che lazienda avesse a disposizione più schedari identici tra loro anzicchè uno solo in tal caso, però, sarebbe stato necessario aggiungere il predicato pred sempreStessoRuoloInDueSchedariDiversi ( x: Lavoratore, z1: Schedario, z2: Schedario) { (one(z1.manager & x) && one(z2.manager & x)) || (one(z1. impiegati & x) && one(z2.impiegati & x)) || (one(z1. fattorini & x) && one(z2.fattorini & x)) }

Fatti (4) e il vincolo: all l:Lavoratore | all s1: Schedario |s2: Schedario | sempreStessoRuoloInDueSchedariDiversi(l, s1, s2)

Fatti (5) Il secondo fatto, invece, dice: fact{ all x: Lavoratore | some y: x.friendBook | x in y.friendBook no l: Lavoratore | l in l.friendBook no d: Direttore | some l: Lavoratore | AmiciDir (d,l) no l: Lavoratore | one s: Schedario | piuRuoli(l,s) no l: Lavoratore | all al: Lavoratore | one s: Schedario | amiciDiUnSuperioreNelloStessoSettore(l,al,s) }

Fatti (6) I vincoli che esprime riguardano il fatto che: - per ogni lavoratore, se x è amico di y allora y è amico di x - nessun lavoratore può essere amico di sè stesso - nessun direttore può essere amico di qualche lavoratore - nessun lavoratore può ricoprire più ruoli; - per nessun lavoratore deve valere che sia amico di un suo superiore allinterno dello stesso settore

Asserzioni (1) Lassert sviluppata esprime laspetto fondamentale su cui si basa il funzionamento del sistema informativo dellazienda infatti, con no l: Lavoratore | all al: Lavoratore | amiciNelloStessoSettore(l,al) si intende che nessun lavoratore può avere amici (nè dello stesso ruolo nè di ruolo diverso, naturalmente) allinterno del suo stesso settore perchè possa venir promosso; solo in questo modo si può garantire che, sia con un avanzamento di ruolo che con una retrocessione, egli non venga avvantaggiato da un suo amico nè lo avvantaggi

Asserzioni (2) In accordo con lipotesi iniziale, per cui i rapporti di amicizia restano invariati anche dopo un cambiamento di ruolo, è stato necessario asserire che un lavoratore, per essere promosso, non fosse amico di nessun altro lavoratore nel proprio settore in modo da evitare la situazione in cui un lavoratore con amici dello stesso ruolo nel proprio settore venga promosso, il che sarebbe una prova del fallimento del sistema informativo ad es. se un fattorino fosse amico di altri fattorini del proprio settore, al momento della promozione sarebbe un impiegato con amici fattorini, il che è illecito

Varianti del modello (1) È possibile risolvere il problema operando in maniera alternativa, cioè osservando la questione da un altro punto di vista nelle pagine precedenti abbiamo fornito al sistema le informazioni necessarie per rispondere correttamente alla specifica, compiendo un controllo a monte delloperazione di assegnamento la variante proposta, considera la situazione compiendo il controllo a posteriori; se si ammette la possibilità di relazioni di amicizia tra lavoratori dello stesso ruolo e si asserisce che un assegnamento è valido solo se non vi sono amici dello stesso settore e di ruoli differenti, in realtà si compie lo stesso controllo (nel secondo caso in maniera implicita)

Varianti del modello (2) In conclusione, lamicizia tra lavoratori dello stesso ruolo nello stesso settore o la si blocca tramite lasserzione o non la si consente a coloro che vengono promossi nella prima versione si afferma che lassegnamento è valido se un lavoratore non ha amici nel proprio settore, il che non porterà mai alla situazione in cui ci siano due amici che non siano nello stesso ruolo nella seconda si afferma che un lavoratore può avere amici nel proprio settore nel proprio ruolo, e che lassegnamento valido si ha solo se esso non crea la situazione in cui ci sia unamicizia tra due lavoratori nello stesso settore ma in ruoli diversi