Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

822 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
822
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

  1. 1. Progetto Architetture"Sistema di Rilevazione Transiti" Lorusso Giuseppe Samuele Di Donato Leonardo Tortelli Donato
  2. 2. PARTE GENERALE
  3. 3. Contesto - Sistema di rilevazione transiti (SRT) SRT è composto da decine di varchi di rilevazione transiti (VRT) i quali rilevano i veicoli che superano il limite di velocità Ogni VRT è composto da 2 fotocellule distanti 1 mt tra loro e da una fotocamera che fotografa frontalmente il veicolo in infrazione Ogni VRT segnala allufficio centrale i veicoli che hanno commesso infrazione Lufficio centrale contatta, se cè, una pattuglia per fermare il veicolo in infrazione ed invia le contravvenzioni Lufficio centrale esegue inoltre delle analisi statistiche su dati di inquinamento rilevati dalla Base Dati Ambienti (BDA)
  4. 4. AssunzioniTutti i VRT sono situati su strade cittadineOgni VRT è collegato ad un nodo di elaborazione (NE)Lelaborazione delle immagini per lestrazione di targa e coloredel veicolo in infrazione avviene nel NELufficio centrale comunica i dati del veicolo in infrazione allapattuglia più vicina al VRTLe pattuglie non sono stabili (possono variare la loro posizione)Una pattuglia può riconoscere e quindi fermare un veicoloavendo come dati targa e coloreLe contravvenzioni inviate vengono memorizzate per un tempodi 5 anni
  5. 5. Use Case - CHI Rilevamento TransitiNel momento in cui un veicolo transita da un varco, i sensori delVRT rilevano il transito del veicolo. Il nodo elaboratore calcola lavelocità del transito, attiva la fotocamera e quindi elaboralinfrazione.
  6. 6. Use Case - CHI Comunicazione dati Nodo Elaboratore - Ufficio CentraleIl nodo elaborativo comunica i dati del transito allUfficio Centrale.
  7. 7. Use Case - CHI Gestione Posizione PattugliaIl software GPS della pattuglia aggiorna la propria posizioneallufficio centrale.
  8. 8. Use Case - CHI Gestione Pattuglia - InfrazioneLufficio centrale assegna linfrazione alla pattuglia più vicina alvarco. Se la pattuglia ferma il veicolo invia in centrale i dati delconducente.
  9. 9. Use Case - CHI Gestione ContravvenzioniLa gestione delle contravvenzioni viene eseguita dallufficio centraledopo aver ricevuto i dati anagrafici dalla pattuglia o dal PubblicoRegistro Automobilistico.
  10. 10. Use Case - CHI Gestione StatisticheLufficio centrale riceve ad intervalli regolari di tempo il numero ditransiti relativi ad ogni varco, correlando tale dato con i tassi diinquinamento ottenuti da Base Dati Ambientale, al fine di eseguireanalisi statistiche.
  11. 11. Class Diagram - Cosa
  12. 12. Activity Diagram - Come, Perchè, Quando Comunicazione Transiti a Ufficio CentraleRilevamento del transito da parte del VRT, calcolo della velocità deltransito, elaborazione dellimmagine e invio dei dati (contatore transiti,informazioni veicolo, foto)
  13. 13. Activity Diagram - Come, Perchè, Quando Gestione Posizione PattugliaAggiornamento della posizione della pattuglia e memorizzazione insede cetrale.
  14. 14. Activity Diagram - Come, Perchè, Quando Rilevazione PattugliaOgni qual volta lufficio centrale riceve uninfrazione, rileva lapattuglia più vicina al varco dove è avvenuta, e la contatta.
  15. 15. Activity Diagram - Come, Perchè, Quando Posto di bloccoSe la pattuglia ferma il veicolo, notifica alla centrale lavvenuto fermoe fornisce i dati del conducente.
  16. 16. Activity Diagram - Come, Perchè, Quando Gestione Contravvenzioni Date le infrazioni ottenute nel corso della settimana, lufficio centrale genera le relative contravvenzioni. Se il conducente non è stato identificato, la contravvenzione verrà inviata al proprietario.
  17. 17. Activity Diagram - Come, Perché, Quando Elaborazione Statistiche Ottenuti i dati del traffico stradale orario di ogni VRT e i livelli di inquinamento, vengono eseguite analisi statistiche.
  18. 18. PARTE HW/SW
  19. 19. Architettura LogicaPartizionamento Multidimensionale
  20. 20. Architettura LogicaPartizionamento Multidimensionale
  21. 21. Dimensioni per il partizionamento Abstraction Locations<<multiplicity>>: il numero di istanze di ogni componente logico èpari alla cardinalità della rispettiva componente concreta.E possibile raffinare il partizionamento operando la suddivisionelogica in base ad una ulteriore dimensione: frequency.In tal caso il componente logico "Nodo Elaboratore" verrebbesuddiviso i 3 componenti logici: "Elaboratore Transiti", "ElaboratoreInfrazioni", "Elaboratore Foto". Tuttavia si è scelto di non perseguirequesta ulteriore suddivisione al fine di assicurare un alto grado direplicabilità in luogo di compattezza: ciò rende più semplice ildeployment e la manutanzione della componente concreta di "NodoElaboratore".
  22. 22. Footprint
  23. 23. FootprintSoluzione 2
  24. 24. Architettura Concreta Interazione fra componenti1. VRT → Nodo Elaboratore (rilevamento segnali) stile di interazione asincrono; nessun trasferimento di informazione: - il VRT invia segnali (elettrici) - il Nodo Elaboratore, al fine di minimizzare il ritardo, ha un timer con funzione di trigger impostato a 5 ms.2. Nodo Elaboratore → VRT (attivazione fotocamera) trasferimento pull dellinformazione basato su meccanismo sincrono di comunicazione.3. GPS Pattuglia → Ufficio Centrale (aggiornamento posizione) trasferimento push di informazione basato su meccanismo asincrono di comunicazione.
  25. 25. Architettura Concreta Interazione fra componenti4. Ufficio Centrale → Pattuglia (rilevamento pattuglia) trasferimento push di informazione basato su meccanismo asincrono di comunicazione.5. Pattuglia → Ufficio Centrale (comunicazione guidatore) trasferimento push di informazione basato sumeccanismo asincrono di comunicazione6. Nodo Elaboratore → Ufficio Centrale trasferimento push di informazione basato su meccanismo sincrono; lUfficio Centrale deve notificare (con un evento) al Nodo Elaboratore lavvenuta ricezione e memorizzazione delle informazioni, in modo che le informazioni site nel N.E. possano
  26. 26. Deployment Diagram
  27. 27. Rappresentazione - SRT
  28. 28. Scelte Tecnologiche - VRTVRT è composto da 2 fotocellule laser a riflessione o a sbarramento,parallele a distanza 1mt.1 fotocamera per veicoli in movimento di tipogiorno-notte, wide dynamic range (WDR)Possibili scelte:Nikon D3S (prezzo=4.500 €, 12,1 Mpx, tempo diposa 1/8000 sec, 10 foto/s) utilizzata negli USA;Nikon D3100 (prezzo=500 €, 14 Mpx, tempo diposa 1/4000 sec, 5 foto/s) scelta più plausibile.
  29. 29. Scelte Tecnologiche - VRTLe fotocellule e la fotocamera possono distare da 14 mt minimo a20 mt massimo tra loro.
  30. 30. Scelte TecnologicheNodo Elaborativo: S.O. Linux Processore con un minimo di 2 Gh 2 GB RAM Hardisk 50 GB Modem può essere privo di monitorUfficio Centrale: E un server centrale S.O. Linux Processore Multicore con 2.2 Gh 4 GB RAM Memoria di massa 5 TB Modem Router
  31. 31. Scelte Tecnologiche - PattugliaOgni Pattuglia ha un dispositivo PDA con connettivitàtelefonica UMTS (3G), con funzione di navigatoresatellitare (GPS) che consente di risparmiare cifreconsistenti che si spenderebbero per un sistema equivalenteintegrato nellauto.- S.O. Symbian: è un sistema operativo aperto per PDA.- Memoria 128 MB (non necessitiamo di grande memoria poichè non memorizziamo alcun dato)Non abbiamo valutato nessuna preferenza per un modellopoichè queste caratteristiche si trovano su svariatimodelli a basso costo.
  32. 32. PARTE ARCHITETTURE DATI
  33. 33. Integrazione tra SRT e PRAL’architettura di integrazione che può essere utilizzata tra SRT e PRA, è di tipoEAI ossia di Enterprise Application Integration, infatti una soluzione sarebbequella di prevedere l’utilizzo di un framework dedicato al prelievo dei datinecessari dalla banca dati PRA.I problemi di eterogeneità in questo caso sono risolti all’interno del framework,con opportuni moduli che trasformano: i dati necessari al PRA in base alle specifiche dei dati del PRA. es.: la data viene trasformata nel formato utilizzato dal PRA, eterogeneità di tipo attributo. i dati restituiti dal PRA in dati con strutture idonee per il DB del sistema SRT. es.: il nome del proprietario che il PRA ci restituisce con un char “Mario Rossi” viene tradotto dal nostro framework in un char “Mario” nel campo Nome e in un char “Rossi” nel campo Cognome, eterogeneità semantica di tipo attributo.
  34. 34. Schema Concettuale SRT
  35. 35. Schemi Logici SRT e BDA
  36. 36. Schema Concettuale BDA Reverse Engineering
  37. 37. Tipi di Eterogeneità1 - Viene risolta inglobando i concetti Transiti ed Inquinamento in un unica entità, che chiameremo statistiche.2/3 - Vengono risolte utilizzando sia per data che per ora il nome presente nello schema di SRT in quanto più semplice.
  38. 38. Tipi di Eterogeneità4/5- Queste eterogeneità sugli attributi data e ora vengono risolte utilizzando le strutture dati utilizzate in SRT, ossia "date" per la data e "time" per lora6 - Questa eterogeneità viene risolta utilizzando come chiave primaria, nella nuova entità, data e ora, le quali identificano univocamente una statistica
  39. 39. Tipi di Eterogeneità7/12 - Queste eterogeneità si verificano nel caso in cui la rappresentazione di latitudine e longitudine in BDA sia diversa da quella in SRT. In questo caso si procede con una conversione dei dati, nel caso in cui siano rappresentati in DMS (degree minutes seconds), vengono convertiti con un opportuna funzione in DD (degree decimal), che è la rappresentazione che viene utilizzata in SRT
  40. 40. Schema Concettuale Globale
  41. 41. Mapping tra Schema Globale e Schemi Locali Global As View CREATE VIEW Pattuglia CREATE VIEW Centralina ASCREATE VIEW Contravvenzione AS AS SELECT *SELECT * SELECT * FROM BDA.CentralinaFROM SRT.Contravvenzione FROM SRT.Pattuglia CREATE VIEW Riparazione ASCREATE VIEW Infrazione AS CREATE VIEW Nodo AS SELECT *SELECT * SELECT * FROM BDA.RiparazioneFROM SRT.Infrazione FROM SRT.Nodo CREATE VIEW Tecnico ASCREATE VIEW Guidatore AS CREATE VIEW Sede AS SELECT *SELECT * SELECT * FROM BDA.TecnicoFROM SRT.Guidatore FROM BDA.Sede
  42. 42. Mapping tra Schema Globale e Schemi Locali Global As ViewCREATE VIEW Statistica(Data, Ora, Nodo, Centralina, NumTransiti,TassoInquinamento, Rapporto) ASSELECT SRT.Transiti.data, SRT.Transiti.ora, SRT.Transiti.id_nodo, BDA.Inquinamento.idCentralina, SRT.Transiti.num_transiti, BDA.Inquinamento.tasso, (BDA.Inquinamento.tasso/STR.Transiti.num_transiti) FROM SRT.Transiti, STR.Nodo, BDA.Inquinamento, BDA.Centralina WHERE (SRT.Transiti.data=BDA.Inquinamento.dataRilevazione) AND (SRT.Transiti.ora=BDA.Inquinamento.oraRilevazione) AND (SRT.Transiti.id_nodo, BDA.Inquinamento.idCentralina) IN ( SELECT (SRT.Nodo.id_nodo, BDA.Centralina.idCentralina) FROM SRT.Nodo, BDA.Centralina WHERE (6374892.5 * ACOS(SIN(RADIANS(SRT.Nodo.latitudine)) * SIN(RADIANS(BDA.Centralina.lat_deg + ((BDA.Centralina.lat_sec/60) + BDA.Centralina.lat_min)/60)) + COS(RADIANS(SRT.Nodo.latitudine)) * COS(RADIANS(BDA.Centralina.lat_deg + (BDA.Centralina.lat_sec/60) + BDA.Centralina.lat_min)/60)) * COS(RADIANS(BDA.Centralina.lng_deg+((BDA.Centralina.lng_sec/60) + BDA.Centralina.lng_min)/60 ) - RADIANS( SRT.Nodo.longitudine)))) < 200) ) ORDER BY Data, Ora;
  43. 43. Interrogazione al MediatoreTrovare l’id del varco che provoca il maggior tasso diinquinamento nelle ore centrali della giornata (12.00 -18.00)SELECT Nodo FROM (SELECT Nodo, AVG(Tasso) AS Tasso FROM Statistiche WHERE ora>12.00 AND ora <18.00 GROUP BY Nodo HAVING MAX(Tasso))
  44. 44. UnfoldingSELECT Nodo FROM (SELECT Nodo, AVG(Tasso) AS Tasso FROM (SELECT SRT.Transiti.data, SRT.Transiti.ora, SRT.Transiti.id_nodo, BDA.Inquinamento.idCentralina, SRT.Transiti.num_transiti, BDA.Inquinamento.tasso, SRT.Transiti.id_nodo/BDA.Inquinamento.tasso FROM SRT.Transiti, STR.Nodo, BDA.Inquinamento, BDA.Centralina WHERE (SRT.Transiti.data=BDA.Inquinamento.dataRilevazione) AND (SRT.Transiti.ora=BDA.Inquinamento.oraRilevazione) AND (SRT.Transiti.id_nodo, BDA.Inquinamento.idCentralina) IN ( SELECT (SRT.Nodo.id_nodo, BDA.Centralina.idCentralina) FROM SRT.Nodo, BDA.Centralina WHERE (6374892.5 * ACOS(SIN(RADIANS(SRT.Nodo.latitudine)) * SIN(RADIANS(BDA.Centralina.lat_deg + ((BDA.Centralina.lat_sec/60) + BDA.Centralina.lat_min)/60)) + COS(RADIANS(SRT.Nodo.latitudine)) * COS(RADIANS(BDA.Centralina.lat_deg + (BDA.Centralina.lat_sec/60) + BDA.Centralina.lat_min)/60)) * COS(RADIANS(BDA.Centralina.lng_deg+((BDA.Centralina.lng_sec/60) + BDA.Centralina.lng_min)/60 ) - RADIANS( SRT.Nodo.longitudine)))) < 200) )) WHERE ora>12.00 AND ora <18.00 GROUP BY Nodo HAVING MAX(Tasso))

×