Prova scritta del 04/02/2019 Parte 1 Si consideri il seguente scenario: Un organizzazione di promozione delle attività escursionistiche in montagna, per migliorare la sicurezza, ha deciso di sviluppare un sistema informativo che permetta di tenere traccia delle escursioni e di rilevare incidenti e fornire informazioni ai soccorritori. Il sistema gestisce una serie di percorsi escursionistici predefiniti, i quali sono identificati da un etichetta descrittiva, e riportano informazioni sul punto di partenza ed eventualmente quello di ritorno (se diverso), la descrizione del percorso, la traccia GPS del percorso, il livello di difficoltà, e l intervallo di possibile durata (min, max). Come punti di partenza si è deciso di sfruttare la rete dei rifugi alpini. Ogni rifugio ha un codice univoco, un nome e delle coordinate geografiche, email e numero di cellulare. Inoltre, considerato che spesso, per tragitti brevi, gli escursionisti partono e tornano da parcheggi (senza transitare da rifugi), è possibile considerare anche essi come punti di partenza ed arrivo. Gli escursionisti che vogliono usufruire di questo servizio devono essere registrati. Il sistema mantiene come informazioni i dati anagrafici, l indirizzo di email ed il numero di telefono. Prima di intraprendere un escursione, tramite una App per smartphone, l utente deve registrarla selezionando il percorso ed indicando il numero di persone. Se il punto di partenza è un parcheggio l escursionista deve specificare anche la targa del proprio veicolo. Durante l escursione (ove la copertura della rete cellulare lo renda possibile), l escursionista potrà segnalare eventuali ritardi rispetto alla tabella di marcia. Alla fine del percorso l escursionista dovrà segnalare la fine dell escursione. Se l escursionista non segnala la fine dell escursione entro il tempo massimo previsto (compresi i ritardi dichiarati), il sistema prima provvede a mandare una notifica sull App dell escursionista che (nel caso in cui si fosse dimenticato) può confermare la fine dell escursione. In assenza di risposta da parte dell escursionista, se il punto di arrivo è un rifugio viene inviato un messaggio al gestore il quale può verificare se l escursionista è arrivato e quindi segnalare la fine positiva dell escursione al posto dell escursionista, oppure segnalare il mancato arrivo. Se il punto di arrivo è un parcheggio, il sistema invia una notifica sulla App degli altri escursionisti in arrivo allo stesso parcheggio in prossimità dell orario di arrivo previsto del ritardatario, segnalando la targa del veicolo. Se qualche altro escursionista segnala che l auto non è più al parcheggio, l escursione viene considerata conclusa positivamente. Se l escursione non è considerata conclusa positivamente il sistema provvede a lanciare una segnalazione d allarme. Nel contesto dello scenario delineato sopra, si definisca: 1. Il modello informativo concettuale (diagramma delle classi UML). 2. Il modello del processo (diagramma delle attività UML). 3. Il diagramma dei casi d uso a livello user-goal. 4. La narrativa del caso d uso relativa alla partenza dell escursione. NB: è necessario modellare esclusivamente gli aspetti direttamente rilevanti per il sistema informativo.
02CIXPG - Sistemi Informativi Aziendali Il modello informativo concettuale (diagramma delle classi UML). Escursionista - nome : string - cognome : string - nascita : date - cf : string - email : string - cell : string 1 esegue 0..* Escursione - persone : int - targa : string - partenza : time - ritardo : time - finita : boolean 0..* segue 1 Percorso - etichetta : string - descrizione : string - difficolta : string - filetraccia : string - duratamin : int - duratamax : int * * da a Parcheggio - codice : string 1 0..1 PartArr Rifugio - codice : string - nome : string - lat : double - lon : double - email : string - cell : string
Il modello del processo (diagramma delle attività UML). act Verifica escursionista rifugio act Attende riscontro parcheggio Gestore token: escursione <<signal receipt>> Riscontro parcheggio t_attesa Verifica rientro t_attesa
02CIXPG - Sistemi Informativi Aziendali La struttura più corretta (rispetto alla semplificazione mostrata nel diagramma principale) per l attesa prima di inviare la segnalazione all escursionista è la seguente: Attenzione: il seguente tipo di soluzione costituisce un errore particolarmente grave perché indica una mancata comprensione del funzionamento del costrutto di scelta/condizione. act Errore tipico Questo tipo di condizione è errata per due motivi: Avvia escursione [in ritardo] - il sistema non può sapere se l'escursionista è in ritardo o meno: è una conoscenza che riguarda solo l'escursionista - la valutazione della condizione viene effettuata automaticamente dal sistema immediatamente dopo l'avvio dell'escursione, momento in cui (a maggior ragione) l'escursionista non è in ritardo (e non può sapere se lo sarà e di quanto) [altrimenti] Segnala ritardo
Il seguente frammento di processo costituisce un altro errore che indica una mancata comprensione di come sono gestiti i segnali (automaticamente dal sistema)
02CIXPG - Sistemi Informativi Aziendali Il diagramma dei casi d uso a livello user-goal. Avvia escursione Escursionista Completa escursione Verifica rientro Gestore Segnala ritardo Verifica parcheggio
La narrativa del caso d uso relativa alla partenza dell escursione. Caso d uso Avvia escursione Contesto Livello Intenzione Attore primario Sistema gestione escursioni App Escursionista User-goal Avviare un escursione selezionando il percorso da seguire Escursionista Attori secondari - Interessi Escursionista: segnalare percorso da seguire e partenza Soccorsi: avere informazioni precise sul percorso seguito dall escursionista Garanzie minime Garanzie di successo Precondizioni L avvio dell escursione viene registrato nel sistema Esistono dei percorsi disponibili Trigger - L escursionista ha completato il proprio profilo Scenario principale di successo Estensioni 1. L escursionista chiede di avviare un escursione 2. Il sistema fornisce l elenco dei percorsi e chiede di selezionarne una 3. L escursionista seleziona il percorso 4. Il sistema registra l escursione, chiede di inserire il numero di partecipanti 5. L escursionista inserisce il numero di partecipanti 6. Il sistema registra l avvio dell escursione ed avvia il controllo 4.a. Il percorso selezionato parte e arriva in un parcheggio: 4.a.1. Il sistema chiede di inserire le informazioni sull auto lasciata al parcheggio 4.a.2. L escursionista inserire le informazioni sull auto Il caso d uso prosegue al passo 4.