1 / 14

Progetto Alloy

Progetto Alloy. Gestione di aziende di compravendita Prof. Di Nitto Elisabetta Stud. Russo Emanuela Rosalia Ingegneria del software 2 Matricola : 680441. Organizzazione dell’azienda 1/2. Verifica. Direttore. set. set. Azienda. set. set. Ritiro.

dorjan
Download Presentation

Progetto Alloy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Progetto Alloy Gestione di aziende di compravendita Prof. Di Nitto Elisabetta Stud. Russo Emanuela Rosalia Ingegneria del software 2 Matricola : 680441

  2. Organizzazione dell’azienda 1/2 Verifica Direttore set set Azienda set set Ritiro Spedizione L’azienda è costituita da tre settori: Ritiro, Verifica e Spedizione, e da dei direttori che non appartengono a nessun settore in particolare ma sono comunque dipendenti dell’azienda, per questa ragione ho deciso di includerli nella signature Azienda

  3. Organizzazione dell’azienda 2/2 Ipotizzo che Ritiro Verifica e Spedizione siamo distinti e che ogni azienda li abbia tutti e tre fact Generale { no(ritiro&verifica) no(verifica&spedizione) no(spedizione&ritiro) all a:Azienda | a.verifica in Settore&&a.ritiro in Settore && a.spedizione in Settore }

  4. Organizzazione dei settori Settore set one Fattorino Manager set Impiegato Ad ogni settore appartengono tre categorie di persone: Manager, Impiegato, Fattorino che possono instaurare rapporti di amicizia o meno. Persona Amico set

  5. Gerarchia aziendale E’ IMPORTANTE CONOSCERE LE RELAZIONI DI AMICIZIA CHE INTERCORRONO TRA UN LAVORATORE E UN SUO DIRETTO SUPERIORE PER EVITARE CHE UN SUCCESSIVO AVANZAMENTO DI LIVELLO SIA DA RICONDURRE ALLA SUDDETTA AMICIZIA. pred AmiciziaPred(p:Persona, q:Persona) { p in q.amico => q in p.amico } MANAGER DIRETTORE IMPIEGATO FATTORINO

  6. Sistema informativo aziendale • Il sistema informativo aziendale è fatto in modo che nel momento in cui l’azienda decide che un lavoratore può avanzare al livello immediatamente successivo della gerarchia aziendale, si deve verificare che non abbia alcun tipo di amicizia con un suo diretto superiore. Solo in questo caso l’avanzamento di livello è consentito. • Per evitare situazioni in cui l’avanzamento è dovuto non ai meriti personali ma ai rapporti inter-personali di amicizia che si possono instaurare ho specificato tre predicati che mi dicono rispettivamente: • non ci può essere amicizia tra un impiegato e un fattorino • dello stesso settore; • non ci può essere amicizia tra un impiegato e un direttore dell’azienda • non ci può essere amicizia tra direttore dell’azienda e un manager di un settore

  7. 1. impiegati - fattorini pred NOIF(s:Settore,p,p':Persona) { s.impiegato=p s.fattorino=p' p!=p'=>not AmiciziaPred(p,p') }

  8. 2. Impiegati direttori pred NOID(s:Settore, a:Azienda,p,p':Persona) { s.impiegato=p a.direttore=p' p!=p'=>not AmiciziaPred(p,p') }

  9. 3. direttori-manager pred NODM(s:Settore,a:Azienda,p,p':Persona) { s.manager=p a.direttore=p' p!=p'=>not AmiciziaPred(p,p') }

  10. Ho supposto che ci possano essere due tipi di avanzamento di livello: • Da fattorino a impiegato • Da impiegato a direttore • Non ho previsto il caso di passaggio da direttore a manager in quanto • nell’azienda ho supposto ci sia un solo manager quindi finché non va in • pensione nessun passaggio può essere effettuato. • Dapprima ho specificato due predicati che mi dicono rispettivamente: • passaggio tra fattorino e impiegato di uno stesso settore senza verificare • eventuale rapporto di amicizia • Passaggio tra impiegato di un settore e direttore dell’azienda senza verificare eventuale rapporto di amicizia • Successivamente ho specificato altri due predicati i quali specificano che: • il passaggio 3 può avvenire solo se è anche verificata la non amicizia tra • fattorino e impiegato; • Il passaggio 4 può avvenire solo se è anche verificata la non amicizia tra • impiegato e direttore

  11. 1. Passaggio da Fattorino a Impiegato pred DaFaI(s,s':Settore,a,a':Azienda,i,f:Persona) { f in s.fattorino a'.verifica=a.verifica a'.ritiro=a.ritiro a'.spedizione =a.spedizione s'.impiegato=s.impiegato+f s'.fattorino=s.fattorino-f a'.direttore=a.direttore s'.manager=s.manager } Come si può vedere dalla simulazione effettuata con alloy è avvenuto la promozione dei fattorini a impiegati

  12. 2. Passaggio da impiegato a fattorino pred DaIaD(s,s':Settore,a,a':Azienda,imp,d:Persona) { imp in s.impiegato a'.verifica=a.verifica a'.ritiro=a.ritiro a'.spedizione =a.spedizione a'.direttore=a.direttore+imp s'.impiegato=s.impiegato-imp s'.fattorino=s.fattorino s'.manager=s.manager } Come si può vedere dalla simulazione effettuata con alloy si è verificata la promozione degli impiegati a direttori

  13. pred PrimoPassaggio(s,s':Settore,a,a':Azienda,i,fatt:Persona) { fatt in s.fattorino (fatt!=i =>not AmiciziaPred(i,fatt))&&DaFaI(s,s',a,a',i,fatt) }

  14. pred SecondoPassaggio(s,s':Settore,a,a':Azienda,i,d:Persona) { i in s.impiegato (i!=d=>not AmiciziaPred(i,d))&&DaIaD(s,s',a,a',i,d) }

More Related