Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

44
Progetto Architetture "Sistema di Rilevazione Transiti" Lorusso Giuseppe Samuele Di Donato Leonardo Tortelli Donato

Transcript of Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Page 1: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Progetto Architetture"Sistema di Rilevazione Transiti"

Lorusso Giuseppe SamueleDi Donato Leonardo

Tortelli Donato

Page 2: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

PARTE GENERALE

Page 3: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

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 all'ufficio centrale i veicoli che hanno commesso infrazioneL'ufficio centrale contatta, se c'è, una pattuglia per fermare il veicolo in infrazione ed invia le contravvenzioniL'ufficio centrale esegue inoltre delle analisi statistiche su dati di inquinamento rilevati dalla Base Dati Ambienti (BDA)

Page 4: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Assunzioni

Tutti i VRT sono situati su strade cittadineOgni VRT è collegato ad un nodo di elaborazione (NE)L'elaborazione delle immagini per l'estrazione di targa e colore del veicolo in infrazione avviene nel NEL'ufficio centrale comunica i dati del veicolo in infrazione alla pattuglia più vicina al VRTLe pattuglie non sono stabili (possono variare la loro posizione)Una pattuglia può riconoscere e quindi fermare un veicolo avendo come dati targa e coloreLe contravvenzioni inviate vengono memorizzate per un tempo di 5 anni

Page 5: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Use Case - CHIRilevamento Transiti

Nel momento in cui un veicolo transita da un varco, i sensori del VRT rilevano il transito del veicolo. Il nodo elaboratore calcola la velocità del transito, attiva la fotocamera e quindi elabora l'infrazione.

Page 6: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Use Case - CHIComunicazione dati Nodo Elaboratore - Ufficio Centrale

Il nodo elaborativo comunica i dati del transito all'Ufficio Centrale.

Page 7: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Use Case - CHIGestione Posizione Pattuglia

Il software GPS della pattuglia aggiorna la propria posizione all'ufficio centrale.

Page 8: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Use Case - CHIGestione Pattuglia - Infrazione

L'ufficio centrale assegna l'infrazione alla pattuglia più vicina al varco. Se la pattuglia ferma il veicolo invia in centrale i dati del conducente.

Page 9: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Use Case - CHIGestione Contravvenzioni

La gestione delle contravvenzioni viene eseguita dall'ufficio centrale dopo aver ricevuto i dati anagrafici dalla pattuglia o dal Pubblico Registro Automobilistico.

Page 10: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Use Case - CHIGestione Statistiche

L'ufficio centrale riceve ad intervalli regolari di tempo il numero di transiti relativi ad ogni varco, correlando tale dato con i tassi di inquinamento ottenuti da Base Dati Ambientale, al fine di eseguire analisi statistiche.

Page 11: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Class Diagram - Cosa

Page 12: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Activity Diagram - Come, Perchè, QuandoComunicazione Transiti a Ufficio Centrale

Rilevamento del transito da parte del VRT, calcolo della velocità del transito, elaborazione dell'immagine e invio dei dati (contatore transiti, informazioni veicolo, foto)

Page 13: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Activity Diagram - Come, Perchè, Quando Gestione Posizione Pattuglia

Aggiornamento della posizione della pattuglia e memorizzazione in sede cetrale.

Page 14: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Activity Diagram - Come, Perchè, QuandoRilevazione Pattuglia

Ogni qual volta l'ufficio centrale riceve un'infrazione, rileva la pattuglia più vicina al varco dove è avvenuta, e la contatta.

Page 15: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Activity Diagram - Come, Perchè, QuandoPosto di blocco

Se la pattuglia ferma il veicolo, notifica alla centrale l'avvenuto fermo e fornisce i dati del conducente.

Page 16: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Activity Diagram - Come, Perchè, QuandoGestione Contravvenzioni

Date le infrazioni ottenute nel corso della settimana, l'ufficio centrale genera le relative contravvenzioni. Se il conducente non è stato identificato, la contravvenzione verrà inviata al proprietario.

Page 17: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Activity Diagram - Come, Perché, QuandoElaborazione Statistiche

Ottenuti i dati del traffico stradale orario di ogni VRT e i livelli di inquinamento, vengono eseguite analisi statistiche.

Page 18: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

PARTE HW/SW

Page 19: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Architettura LogicaPartizionamento Multidimensionale

Page 20: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Architettura LogicaPartizionamento Multidimensionale

Page 21: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Dimensioni per il partizionamentoAbstractionLocations

<<multiplicity>>: il numero di istanze di ogni componente logico è pari alla cardinalità della rispettiva componente concreta. E' possibile raffinare il partizionamento operando la suddivisione logica in base ad una ulteriore dimensione: frequency.In tal caso il componente logico "Nodo Elaboratore" verrebbe suddiviso i 3 componenti logici: "Elaboratore Transiti", "Elaboratore Infrazioni", "Elaboratore Foto". Tuttavia si è scelto di non perseguire questa ulteriore suddivisione al fine di assicurare un alto grado di replicabilità in luogo di compattezza: ciò rende più semplice il deployment e la manutanzione della componente concreta di "Nodo Elaboratore".

Page 22: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Footprint

Page 23: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

FootprintSoluzione 2

Page 24: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Architettura ConcretaInterazione fra componenti

1. 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 dell'informazione basato su meccanismo sincrono di comunicazione. 3. GPS Pattuglia → Ufficio Centrale (aggiornamento posizione) trasferimento push di informazione basato su meccanismo asincrono di comunicazione.

Page 25: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Architettura ConcretaInterazione fra componenti

4. 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 su meccanismo asincrono di comunicazione 6. Nodo Elaboratore → Ufficio Centrale trasferimento push di informazione basato su meccanismo sincrono; l'Ufficio Centrale deve notificare (con un evento) al Nodo Elaboratore l'avvenuta ricezione e memorizzazione delle informazioni, in modo che le informazioni site nel N.E. possano essere rimosse.

Page 26: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Deployment Diagram

Page 27: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Rappresentazione - SRT

Page 28: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Scelte Tecnologiche - VRTVRT è composto da 2 fotocellule laser a riflessione o a sbarramento, parallele a distanza 1mt. 1 fotocamera per veicoli in movimento di tipo giorno-notte, wide dynamic range (WDR)Possibili scelte: Nikon D3S (prezzo=4.500 €, 12,1 Mpx, tempo di posa 1/8000 sec, 10 foto/s) utilizzata negli USA;Nikon D3100 (prezzo=500 €, 14 Mpx, tempo di posa 1/4000 sec, 5 foto/s) scelta più plausibile.

Page 29: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Le fotocellule e la fotocamera possono distare da 14 mt minimo a 20 mt massimo tra loro.

Scelte Tecnologiche - VRT

Page 30: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Nodo Elaborativo: S.O. Linux Processore con un minimo di 2 Gh 2 GB RAM Hardisk 50 GB Modem può essere privo di monitor

Scelte Tecnologiche

Ufficio Centrale: E' un server centrale S.O. Linux Processore Multicore con 2.2 Gh 4 GB RAM Memoria di massa 5 TB Modem Router

Page 31: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Scelte Tecnologiche - Pattuglia

Ogni Pattuglia ha un dispositivo PDA con connettività telefonica UMTS (3G), con funzione di navigatore satellitare (GPS) che consente di risparmiare cifre consistenti che si spenderebbero per un sistema equivalente integrato nell'auto. - 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 modello poichè queste caratteristiche si trovano su svariati modelli a basso costo.

Page 32: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

PARTE ARCHITETTURE DATI

Page 33: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Integrazione tra SRT e PRA

L’architettura di integrazione che può essere utilizzata tra SRT e PRA, è di tipo EAI ossia di Enterprise Application Integration, infatti una soluzione sarebbe quella di prevedere l’utilizzo di un framework dedicato al prelievo dei dati necessari 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.

Page 34: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Schema Concettuale SRT

Page 35: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Schemi Logici SRT e BDA

Page 36: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Schema Concettuale BDAReverse Engineering

Page 37: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

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.

Page 38: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

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 l'ora6 - Questa eterogeneità viene risolta utilizzando come chiave primaria, nella nuova entità, data e ora, le quali identificano univocamente una statistica

Page 39: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

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

Page 40: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Schema Concettuale Globale

Page 41: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Mapping tra Schema Globale e Schemi LocaliGlobal As View

CREATE VIEW Contravvenzione AS

SELECT *

FROM SRT.Contravvenzione

CREATE VIEW Infrazione AS

SELECT *

FROM SRT.Infrazione

CREATE VIEW Guidatore AS

SELECT *

FROM SRT.Guidatore

CREATE VIEW Pattuglia

AS

SELECT *FROM SRT.Pattuglia

CREATE VIEW Nodo AS

SELECT *

FROM SRT.Nodo

CREATE VIEW Sede AS

SELECT *

FROM BDA.Sede

CREATE VIEW Centralina AS

SELECT *FROM BDA.Centralina

CREATE VIEW Riparazione AS

SELECT *

FROM BDA.Riparazione

CREATE VIEW Tecnico AS

SELECT *FROM BDA.Tecnico

Page 42: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Mapping tra Schema Globale e Schemi LocaliGlobal As View

CREATE VIEW Statistica(Data, Ora, Nodo, Centralina, NumTransiti, TassoInquinamento, Rapporto) AS SELECT 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;

Page 43: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

Interrogazione al Mediatore

Trovare l’id del varco che provoca il maggior tasso di inquinamento 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))

Page 44: Sistema Rilevamento Transiti (SRT) - Software Analysis and Design

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))