Nota: disponibile anche nel file con l'analisi dei requisiti.
Realizzare un sistema per il monitoraggio e il controllo integrato del traffico cittadino, composto dai seguenti sotto-sistemi che operano in modo distribuito:
-
Sistema centrale: incaricato di memorizzare tutte le informazioni di stato, inviare notifiche a sistemi esterni in caso di specifici eventi, mostrare lo stato dell'intero sistema e sottosistemi. Il sistema quindi include una interfaccia utente che consente di esplorare le varie informazioni attuali. Opzionale: è possibile decidere di mostrare i dati anche in un qualche tipo di forma grafica (diagrammi, mappe. ecc.).
-
Centraline stradali: incaricate di monitorare il flusso di traffico del segmento stradale in cui collocate e inviarlo al sistema centrale con periodicità proporzionale all'ammontare di traffico.
-
Centraline automobilistiche: incaricate di inviare con periodicità fissa il dato di velocità (e posizione) del veicolo su cui sono installate.
-
Applicazioni mobili: installate su telefono cellulare e incaricate di inviare al sistema centrale esplicite segnalazioni di traffico (coda, con posizione GPS) da parte degli utenti / guidatori. Le applicazioni inoltre ricevono notifiche dal sistema centrale per qualsiasi evento di traffico (coda, velocità lenta, traffico elevato) in un raggio fisso dalla posizione (ultima registrata) del telefono.
Specificare, progettare e implementare il sistema distribuito necessario, coprendo: sistema centrale, applicazione mobile, e una a scelta tra centralina stradale e centralina automobilistica. Definire esplicitamente tutti i formati dei dati scambiati e le modalità di scambio (protocollo).
È possibile raffinare i requisiti ed aggiungere ipotesi e assunzioni sul contesto, sensate e in linea con quanto indicato nei requisiti. Tali estensioni devono essere esplicitamente riportate nella documentazione di progetto (sezione specifica requisiti).
-
Consegna 1) Requisiti: Fattibilità + DataDictionary + Goal Diagram
- Fattibilità (1 pagina)
- Progetto i* con OpenOme
- Documento di progetto, con: testo del progetto (da questo documento), fattibilità, sintesi goal e data dictionary (non c’è un formato fisso, è a vostra discrezione)
-
Consegna 2) Design: UML
- Almeno 2 activity, 2 sequence e 2 state diagrams
- Almeno 1 diagramma per ogni restante tipo di diagramma
- File di progetto di tool UML
- Documento PDF riassuntivo dei diagrammi fatti, commentati
-
Consegna 3) Implementazione: Java
- Progetto Java completo e funzionante
- Casi di test Junit
- Documento PDF riassuntivo
-
Consegna 4) Completo
- Progetto e documento completo e funzionante (tutti i file)