Capitolo 3: Workflow Analisi
3.1 Casi d'uso
3.1.1 Specifiche dei casi d'uso
In questo paragrafo viene presentata la descrizione dettagliata di ogni caso d’uso identificato specificando un nome, un identificatore, gli attori coinvolti, le precondizioni (affinché il caso d'uso si attivi), il flusso principale, eventuali flussi alternativi e d'errore e le post condizioni (effetti dell'applicazione del caso d'uso).
Use case: Richiedi Informazioni Use case ID: UC1
Actors:
Utente
Preconditions:
L’utente loggato nel sistema
Flow of events:
1. L'Utente avvia la ricerca
2. include (Definisci Parametri di Ricerca) 3. include (Carica SUM)
4. IF non c'è alcun sum scaricato
4.1Termina fornendo come risultato: "nessun elemento inerente alla ricerca trovato" 5. Il Sistema fornisce il risultato ottenuto
Alternative flows: -
Postconditions:
L’utente ottiene le informazioni che cercava
Use case: Definisci Parametri di Ricerca Use case ID: UC2
Actors:
Utente, Tempo
Preconditions:
L’utente è loggato nel sistema e ha precedentemente attivato il UC1, oppure Tempo ha attivato UC3
Flow of events:
1. Il Sistema chiede all'Utente di definire i parametri della ricerca da effettuare. 2. IF l'Utente immette i dati della ricerca.
ELSE per i parametri non specificati vengono usate le impostazioni di default del file di
configurazione XML “SearchParameters.xml”
Alternative flows:
DatiInseritiErrati
Postconditions:
I parametri di ricerca sono settati e salvati
Alternative Use case: DatiInseritiErrati
Preconditions:
L’utente è loggato nel sistema e ha precedentemente attivato il UC1
Alternative flow:
1. Il Sistema chiede all'Utente di definire i parametri della ricerca da effettuare. 2. IF l'Utente immette i dati della ricerca.
2.1 I dati immessi sono errati (formato data non valido o coordinate errate) 2.2 Il sistema comunica tramite apposito errore quale è il dato mancante/errato
Postconditions:
L'Utente riavvia il caso d'uso UC2
Use case: Monitorizza Use case ID: UC3 Actors:
Tempo
Preconditions:
Il Tempo attiva ogni t* secondi questo caso d'uso
Flow of events:
1. Il Tempo avvia il caso d'uso poiché sono passati i T secondi 2. include (Definisci Parametri di Ricerca)
3. include (Carica SUM)
4. IF il file contenente i SUM scaricati è vuoto
4.1 Termina fornendo come risultato: "nessun elemento inerente alla ricerca trovato" 5. Il sistema fornisce il risultato ottenuto
Alternative flows: -
Postconditions:
Il risultato delle operazioni richieste viene fornito
Note:
•t viene settato come parametro dall'Amministratore KDD. Ogni t secondi il caso d'uso viene attivato ciclicamente.
Use case: Carica SUM Use case ID: UC4
Actors:
Tempo, Utente
Preconditions:
L'Utente ha avviato una nuova ricerca e specificato i parametri di ricerca
Flow of events:
1. Il Sistema chiede se caricare i SUM da database o se scaricarli da social network. 2. L'Utente effettua la propria scelta
3. IF è stato selezionato database THEN vengono caricati i SUM da database ELSE viene effettuato lo scaricamento dei SUM dal social network, include(Salva SUM)
4. include(Elabora SUM) 5. include(Salva SUM)
Alternative flows: Limite di Traffico Superato Zero Resultati Trovati Connessione Fallita Postconditions:
I SUM relativi alla ricerca dell'Utente sono stati scaricati e salvati nel database assieme ai parametri con cui sono stati scaricati.
Alternative Use case: Limite di traffico superato
Preconditions:
L'Utente ha avviato una nuova ricerca e specificato i parametri di ricerca
Alternative flow:
1. Il Sistema chiede se caricare i SUM da database o se scaricarli da social network. 2. L'Utente effettua la propria scelta
3. IF è stato selezionato database THEN vengono caricati i SUM da database
ELSE Il Sistema prova a scaricare i SUM da social network ma tale operazione produce l'errore che il limite di traffico disponibile per l'applicazione è stato superato.
Postconditions:
La richiesta non viene servita.
Alternative Use case: Zero Resultati Trovati
Preconditions:
L'Utente ha avviato una nuova ricerca e specificato i parametri di ricerca
Alternative flow:
1. Il Sistema chiede se caricare i SUM da database o se scaricarli da social network. 2. L'Utente effettua la propria scelta
3. IF è stato selezionato database THEN vengono caricati i SUM da database
ELSE viene effettuato lo scaricamento dei SUM dal social network.
4. Il sistema si accorge che non è stato prodotto alcun risultato dallo scaricamento o dal caricamento da database
5. Il sistema comunica all'utente che nessun SUM corrispondente la ricerca è stato trovato
Postconditions:
Alternative Use case: Connessione Fallita
Preconditions:
L'Utente ha avviato una nuova ricerca e specificato i parametri di ricerca
Alternative flow:
1. Il Sistema chiede se caricare i SUM da database o se scaricarli da social network. 2. L'Utente effettua la propria scelta
3. IF è stato selezionato database THEN il sistema produce l'errore che la connessione al database è fallita
ELSE il sistema produce l'errore che la connessione al social network è fallita Postconditions:
L'utente viene informato che al momento c'è un problema di connessione al DB o al social network
Use case: Salva SUM Use case ID: UC5 Actors:
Tempo, Utente
Preconditions:
I SUM sono stati scaricati oppure è' stata eseguita una Elaborazione sui SUM
Flow of events:
1. Il Sistema ha appena eseguito un'operazione sull'elaborazione dei SUM 2. Il Sistema si connette al database.
3. IF l'operazione precedente era Traduci GeoCoordinate THEN il sistema salva il risultato nel database relativamente all'indirizzo corrispondente a latitudine/longitudine
4. IF l'operazione precedente era Rimuovi Metadati THEN il sistema salva il risultato nel database relativamente al testo del SUM
5. IF l'operazione precedente era Classifica THEN il Sistema salva il risultato nel database relativamente ai SUM e loro relativa classificazione.
6. IF l'operazione precedente era Carica SUM (Solo nel caso vengano scaricati nuovi SUM dal social network) THEN il Sistema salva il risultato nel database relativamente ai SUM e ai parametri con cui sono stati scaricati.
7. IF l'operazione precedente era Controlla Eventi THEN il Sistema salva il risultato nel database relativamente agli Eventi che sono stati trovati.
Alternative flows: -
Postconditions:
I risultati delle elaborazioni sono stati salvati nel database
Alternative Use case: Connessione al DataBase Fallita
Preconditions:
I SUM sono stati scaricati oppure è' stata eseguita una Elaborazione sui SUM
Alternative flow:
1. Il Sistema ha appena eseguito un'operazione sull'elaborazione dei SUM 2. Il sistema fallisce nel connettersi al DataBase
Postconditions:
Use case: Elabora SUM Use case ID: UC6 Actors:
Tempo, Utente
Preconditions:
I SUM sono stati caricati
Flow of events:
1. Il sistema prende in ingresso il file contenente i SUM trovati dalla ricerca 2. Il sistema chiede all'utente le operazioni che desidera effettuare
3. Il sistema offre all'utente le seguenti possibilità: "Traduci GeoCoordinate, Filtra SUM, Classifica
SUM, Controlla Eventi, Visualizza SUM"
3.1 While (L'utente esegue una delle operazioni)
3.1.1 IF la scelta è Traduci GeoCoordinate, extend(Traduci GeoCoordinate) 3.1.2 IF la scelta è Filtra SUM, extend(Filtra SUM)
3.1.3 IF la scelta è Classifica, extend(Classifica)
3.1.4 IF la scelta Controlla Eventi, extend(Controlla Eventi) 3.1.5 IF la scelta è Visualizza SUM, extend(Visualizza SUM)
3.1.6 include(Salva SUM) Alternative flows:
-
Postconditions:
Il risultato dell'operazione viene presentato all'utente
Use case: Traduci GeoCoordinate Use case ID: UC7
Actors:
Tempo, Utente
Preconditions:
L'utente ha selezionato Traduci GeoCoordinate all'interno della Elabora SUM
Flow of events:
1. Il sistema chiede l'Id del SUM su cui effettuare la traduzione delle GeoCoordinate.
2. Il sistema recupera il SUM su cui effettuare la traduzione delle GeoCoordinate ed esegue tale operazione.
3. Il sistema ritorna il risultato ottenuto.
Alternative flows: Id SUM Errato Errore GoogleAPI Postconditions:
L'indirizzo relativo al SUM è stato salvato nel database
Alternative Use case: Id SUM Errato
Preconditions:
L'utente ha selezionato Traduci GeoCoordinate all'interno della Elabora SUM Alternative flow:
1. Il sistema chiede l'Id del SUM su cui effettuare la traduzione delle GeoCoordinate. 2. Il sistema non trova il SUM relativo all'id inserito
3. Il sistema comunica l'errore.
Postconditions:
L'utente viene informato che l'id inserito è errato.
Alternative Use case: Errore GoogleAPI
Preconditions:
L'utente ha selezionato Traduci GeoCoordinate all'interno della Elabora SUM Alternative flow:
1. Il sistema chiede l'Id del SUM su cui effettuare la traduzione delle GeoCoordinate.
2. Il sistema trova il SUM relativo ma l'esecuzione dell'operazione riscontra qualche prolema dovuto alla GoogleMapsApi
3. Il sistema comunica l'errore della GoogleMapsApi.
Postconditions:
L'utente viene informato che c'è stato un problema durante l'esito dell'operazione.
Use case: Rimuovi Metadati Use case ID: UC8
Actors:
Tempo, Utente
Preconditions:
L'Utente ha selezionato Rimuovi Metadati all'interno della Elabora SUM
Flow of events:
1. Il sistema chiede l'Id del SUM su cui effettuare la rimozione dei Metadati.
2. Il sistema recupera i parametri per la rimozione dall'apposito file XML “RemoveMetadata.xml” 3. Il sistema effettua la rimozione dei meta dati
3. Il sistema ritorna il risultato ottenuto.
Alternative flows: Id SUM Errato Postconditions:
L'indirizzo relativo al SUM è stato salvato nel database
Alternative Use case: Id SUM Errato
Preconditions:
L'Utente ha selezionato Rimuovi Metadati all'interno della Elabora SUM Alternative flow:
1. Il sistema chiede l'Id del SUM su cui effettuare la rimozione dei meta dati 2. Il sistema non trova il SUM relativo all'id inserito.
3. Il sistema comunica l'errore.
Postconditions:
Non viene eseguita alcuna rimozione dei meta dati a causa dell'errore
Use case: Visualizza SUM Use case ID: UC9
Actors:
Tempo, Utente
Preconditions:
L'utente ha selezionato Visualizza SUM all'interno della Elabora SUM
Flow of events:
1. Il sistema chiede all'utente se vuol visualizzare un solo SUM o una collazione di SUM 2. L'utente effettua la propria scelta
3. IF un solo SUM THEN
3.1.Il sistema chiede all'utente di inserire l'id del SUM relativo 3.2.L'utente inserisce l'id
3.3.il sistema trova il SUM relativo ELSE
3.1Il sistema chiede all'utente di inserire l'id della collezione relativa 3.2L'utente inserisce l'id
3.3il sistema trova la collezione di SUM e estrai tutti i SUM contenuti in essa. 4. Il sistema presenta all'utente il risultato
Alternative flows:
Id SUM o Collezione SUM Errato Postconditions:
Il SUM o la collezione di SUM viene visualizzata dall'utente
Alternative Use case: Id SUM o Collezione SUM Errato
Preconditions:
L'utente ha selezionato Visualizza SUM all'interno della Elabora SUM Alternative flow:
1. Il sistema chiede all'utente se vuol visualizzare un solo SUM o una collazione di SUM 2. L'utente effettua la propria scelta
3. IF un solo SUM THEN
3.1Il sistema chiede all'utente di inserire l'id del SUM relativo 3.2 L'utente inserisce l'id del SUM
3.3 il sistema non trova il SUM relativo all'id inserito dall'utente ELSE
3.2L'utente inserisce l'id della Collezione
3.3il sistema non trova la collezione di SUM all'interno del database. 4. Il sistema presenta all'utente il risultato
Postconditions:
L'utente viene informato che l'id del SUM inserito o quello della collezione di SUM è errato.
Use case: Controlla Eventi Use case ID: UC10 Actors:
Tempo, Utente
Preconditions:
L'utente ha selezionato Controlla Eventi all'interno della Elabora SUM dopo aver effettuato una
Classifica sulla collezione di SUM ottenuti dalla Carica SUM Flow of events:
1. Il sistema verifica nel database le classificazioni ottenute per ciascun SUM appartenente alla collezione
2. WHILE (Ci sono modelli di classificazione nel sistema ancora non controllati) 2.1 FOR (Ogni SUM appartenente alla collezione di SUM)
2.1.1 IF (dato un determinato evento X, relativo al modello X' con cui
sono stati classificati i SUM questo è presente con valore true relativamente al SUM in esame.)
THEN incremento il valore di una variabile count contenente il numero di SUM in cui si è verificato l'evento;
2.2IF count > della soglia stabilita tramite la politica di verifica dell'evento*
THEN Il sistema salva all'interno del database che l'evento per la collezione di SUM in esame si è verificato in coordinate c**.
3. Il sistema torna la lista degli eventi classificati (Se non presente alcun evento torna vuoto).
Alternative flows: -
Postconditions:
è stato verificato la lista degli eventi che si sono verificati.
Note:
•* La politica di verifica dell'evento è una formula matematica stabilita dal' amministratore modulo classificazione relativamente alla percentuale di classificazione a true (ovvero Evento individuato) dei SUM in esame. Si dice che l'evento si è verificato se il numero dei SUM classificati a true supera tale soglia (es. Almeno il 20% dei SUM classificati rendano valore true rispetto al totale dei SUM presenti nella collezione di SUM).
•** c è un coppia di coordinate latitudine-longitudine in cui l'evento si è verificato. Il valore di c viene stabilito tramite politiche di gestione dal' amministratore modulo classificazione (c ad esempio può essere le coordinate della ricerca tramite le quali è estratta la collezione di SUM, oppure può essere le coordinate di un SUM che ha la geo-localizzazione attiva ottenuto ad esempio come centro del cluster
“evento verificato” dopo un'operazione di clustering su tutti i SUM in esame, ecc)
Use case: Classifica Use case ID: UC11 Actors:
Tempo, Utente, Sistema
Preconditions:
L'utente o il sistema attiva la Classificazione.
Flow of events:
1. Il sistema prende in ingresso tutti i SUM da classificare
2. Il sistema costruisce il dataset da passare a Weka con i SUM in esame. include(Prepara DataSet) 3. WHILE (Vi sono modelli di classificazione disponibili non ancora utilizzati per classificare il dataset creato)
3.1include(Carica Modello di Classificazione)
3.2Il modello viene applicato sul dataset creato in precedenza 3.3il sistema effettua la classificazione
Alternative flows:
Nessun Modello Disponibile Errore di Classificazione Postconditions:
I SUM sono stati classificati e la loro classificazione è stata salvata nel database
Alternative Use case: Nessun Modello Disponibile
Preconditions:
L'utente ha selezionato Visualizza SUM all'interno della Elabora SUM Alternative flow:
1. Il sistema prende in ingresso tutti i SUM da classificare
2. Il sistema costruisce il dataset da passare a Weka con i SUM in esame. include(Prepara DataSet) 3. WHILE (Vi sono modelli di classificazione disponibili non ancora utilizzati per classificare il dataset creato)
3.1include(Carica Modello di Classificazione) 3.2Il modello non è stato trovato
3.3Il sistema termina
Postconditions:
Il sistema informa l'utente che si è verificato un errore inerente al caricamento del modello di classificazione
Alternative Use case: Errore di Classificazione
Preconditions:
L'utente ha selezionato Visualizza SUM all'interno della Elabora SUM Alternative flow:
1. Il sistema prende in ingresso tutti i SUM da classificare
2. Il sistema costruisce il dataset da passare a Weka con i SUM in esame. include(Prepara DataSet) 3. WHILE (Vi sono modelli di classificazione disponibili non ancora utilizzati per classificare il
dataset creato)
3.1include(Carica Modello di Classificazione)
3.2Il modello viene applicato sul dataset creato in precedenza
3.3Il sistema effettua la classificazione ma questa produce un errore generico e quindi termina.
Postconditions:
Il sistema informa l'utente che si è verificato un errore durante la classificazione
Use case: Carica Modello di Classificazione Use case ID: UC12
Actors:
Tempo, Utente, Sistema
Preconditions:
Il sistema chiede il caricamento del modello di classificazione durante la Classifica
Flow of events:
1. Il sistema si collega al database e ottiene il modello inerente tramite nome o path 2. Il sistema carica il modello di classificazione
Alternative flows:
Errore di Connessione al Database Postconditions:
Il modello è stato caricato
Alternative Use case: Errore di Connessione al Database
Preconditions:
Il sistema chiede il caricamento del modello di classificazione durante la Classifica Alternative flow:
1. Il sistema fallisce nel collegarsi al database
Postconditions:
Il sistema informa che non è stato possibile caricare il modello per un errore di connessione al database
Use case: Prepara DataSet Use case ID: UC13 Actors:
Tempo, Utente, Sistema, Amministratore Modulo Classificazione
Preconditions:
L'utente è loggato al sistema e ha chiesto la classificazione oppure l'amministratore del modulo di classificazione ha chiesto la preparazione del dataset
Flow of events:
1. Il sistema prende in ingresso i SUM che deve elaborare
2. Il sistema valuta le scelte impostate dall'amministratore del modulo di classificazione: 3. IF è “si” il parametro Rimuovi StopWords THEN extend( RimuoviStopWords)
4. IF è “si” il parametro Tokenizza Sum THEN extend( TokenizzaSUM)
5. IF è “si” il parametro Effettua Stemming dei SUM THEN extend(EffettuaStemming dei SUM) 6. IF è “si” il parametro Applica Lemmatizzazione THEN extend(ApplicaLemmatizzazione) 7. IF è “si” il parametro Applica DataTrasformationTHEN extend(Applica DataTrasformation)
8. IF è “si” il parametro Applica DataReduction THEN extend(Applica DataReduction) 9. IF è “si” il parametro Applica DataIntegration THEN extend(Applica DataIntegration) 10. IF è “si” il parametro Applica DataCleaning THEN extend(Applica DataCleaning) Alternative flows:
-
Postconditions:
Il DataSet è stato preparato
Use case: Rimuovi StopWords Use case ID: UC14
Actors:
Tempo, Utente, Sistema, Amministratore Modulo Classificazione
Preconditions:
E' “si” il parametro Rimuovi StopWords nella Prepara DataSet
Flow of events:
1. Il sistema prende in ingresso i SUM che deve elaborare
2. Il sistema prende in ingresso il file StopWords.txt contenente le stopwords da rimuovere 3. WHILE (ci sono SUM da elaborare)
WHILE (Il SUM ha ancora parola da testare)
IF la parola è presente nel file StopWords.txt THEN la parola viene rimossa
Alternative flows: -
Postconditions:
Le stopwords sono state rimosse dai SUM
Use case: Tokenizza SUM Use case ID: UC15 Actors:
Tempo, Utente, Sistema, Amministratore Modulo Classificazione
Preconditions:
E' “si” il parametro Tokenizza Sum nella Prepara DataSet
Flow of events:
1. Il sistema prende in ingresso i SUM che deve elaborare 3. WHILE (ci sono SUM da elaborare)
Il SUM viene Tokenizzato
Alternative flows: -
Postconditions:
I SUM sono statiTokenizzati
Use case: Effettua Stemming dei SUM Use case ID: UC16
Actors:
Preconditions:
E' “si” il parametro Effettua Stemming dei SUM nella Prepara DataSet
Flow of events:
1. Il sistema prende in ingresso i SUM che deve elaborare 3. WHILE (ci sono SUM da elaborare)
WHILE (Il SUM ha ancora parola da testare) La parola viene ridotta alla sua radice
Alternative flows: -
Postconditions:
Le parole nei SUM sono state ridotte alla loro radice
Use case: Applica Lemmatizzazione Use case ID: UC17
Actors:
Tempo, Utente, Sistema, Amministratore Modulo Classificazione
Preconditions:
E' “si” il parametro Applica Lemmatizzazione nella Prepara DataSet
Flow of events:
1. Il sistema prende in ingresso i SUM che deve elaborare 3. WHILE (ci sono SUM da elaborare)
WHILE (Il SUM ha ancora parola da testare) La parola viene lemmatizzata
Alternative flows: -
Postconditions:
Le parole nei SUM sono state lemmatizzate
Use case: Applica DataTrasformation Use case ID: UC18
Actors:
Tempo, Utente, Sistema, Amministratore Modulo Classificazione
Preconditions:
E' “si” il parametro Applica DataTrasformation nella Prepara DataSet
Flow of events:
1. Il sistema prende in ingresso i SUM che deve elaborare 3. WHILE (ci sono SUM da elaborare)
WHILE (Il SUM ha ancora parola da testare) La parola viene trasformata in numero
Alternative flows: -
Postconditions:
Use case: Applica DataReduction Use case ID: UC19
Actors:
Tempo, Utente, Sistema, Amministratore Modulo Classificazione
Preconditions:
E' “si” il parametro Applica DataReduction nella Prepara DataSet
Flow of events:
1. Il sistema prende in ingresso i SUM che deve elaborare 3. WHILE (ci sono SUM da elaborare)
WHILE (Il SUM ha ancora parola da testare)
Viene applicato un metodo di DataReduction a seconda di quale è stato impostato dall'amministratore del modulo di classificazione:
- Trasformata Wavelet
- PCA (Analisi Componenti Principali) - Selezione di un sottoinsieme di attributi
- Riduzione della numerosità con tecniche parametriche (regressione) - Riduzione della numerosità con campionamento
Alternative flows: -
Postconditions:
Ai SUM è stata applicata la DataReduction
Use case: Applica DataIntegration Use case ID: UC20
Actors:
Tempo, Utente, Sistema, Amministratore Modulo Classificazione
Preconditions:
E' “si” il parametro Applica DataIntegration nella Prepara DataSet
Flow of events:
1. Il sistema prende in ingresso i SUM che deve elaborare 3. WHILE (ci sono SUM da elaborare)
3.1Il Sistema applica l'operazione di individuazione e rimozione delle ridondanze nei dati 3.2Il Sistema va a risolvere i conflitti tra i valori presenti all'interno del dataset
3.3Il Sistema mostra i cambiamenti effettuati sul dataset
Alternative flows: -
Postconditions:
Ai SUM è stata applicata la DataIntegration
Use case: Applica DataCleaning Use case ID: UC21
Actors:
Tempo, Utente, Sistema, Amministratore Modulo Classificazione
Preconditions:
E' “si” il parametro Applica DataCleaning nella Prepara DataSet
Flow of events:
1. Il sistema prende in ingresso i SUM che deve elaborare 3. WHILE (ci sono SUM da elaborare)
3.4Il Sistema a seconda dei parametri impostati dall'amministratore datacleaning effettua in ordine: 3.4.1 Il Sistema applica l'operazione di definizione dei meta dati
3.4.2 Il Sistema applica l'operazione di rimozione del rumore
3.4.3 Il Sistema applica l'operazione di definizione del metodo per fronteggiare i "valori mancanti" nel dataset e lo applica
3.4.5 Il Sistema applica l'operazione di controllo delle regole di unicità, null e di consecutività per fronteggiare la discrepanza tra i dati
3.4.6 Il Sistema applica l'operazione di individuazione delle discrepanze tra i dati tramite tool commerciali come ETL tool con interfaccia grafica GUI e vengono mostrati all'utente i cambiamenti effettuati
Alternative flows: -
Postconditions:
Ai SUM è stata applicata la DataCleaning
Use case: Seleziona DataSet per l'Addestramento Use case ID: UC22
Actors:
Amministratore Modulo Classificazione
Preconditions:
L'amministratore del modulo classificazione è loggato al sistema
Flow of events:
1. Il sistema chiede in ingresso il path o il nome del dataset.arff di training
2. L'amministratore del modulo classificazione inserisce il nome del dataset di training 3. Il sistema carica il file
4. Il sistema chiede se il dataset di training deve essere “preparato”