• Non ci sono risultati.

Passando con il mouse sopra ad un organo appare un men`u pi`u o meno esteso a seconda che si tratti di un organo autoritario/subordinato, di staff o dell’organo “radice”.

In figura 4.3 viene illustrato un esempio di men`u completo, ovvero con tutte le funzionalit`a.

Figura 4.3: esempio di men`u esteso

Vengono ora descritte le funzioni collegate ad ogni bottone del men`u.

4.3.1 Modifica informazioni

Cliccando il primo bottone del men`u appare una dialog simile a quella visibile in figura 4.4.

Figura 4.4: esempio di dialog per l’aggiunta delle informazioni

Da questa dialog `e possibile modificare le informazioni dell’ente selzionato, come ad esempio nome e cognome o il colore della casella dell’organo corrispondente. Al click del bottone “Conferma”, le informazioni inserite vengono memorizzate nel database e viene chiusa la dialog, tali informazioni

sono visibili nell’organigramma o nella dialog delle informazioni aggiuntive. Al click del bottone

“Annulla”, invece, viene chiusa la dialog e non viene fatto alcun tipo di salvataggio.

Questa funzionalit`a `e disponibile per tutti i tipi di organo.

4.3.2 Visualizzazione delle informazioni aggiuntive

Cliccando il secondo bottone appare una dialog simile a quella in figura 4.5.

Figura 4.5: esempio di dialog per la visualizzazione delle informazioni aggiuntive

Da questa dialog `e possibile visualizzare i valori dei campi passati nella Form Properties di Portal Studio; in questo caso quindi erano stati passati i campi nome, cognome, ruolo, e-mail, telefono e indirizzo.

Oltre a queste informazioni viene visualizzata un immagine rappresentante l’ente corrisponndente o, se essa non fosse presente, un immagine di default.

Questa funzionalit`a `e disponibile per tutti i tipi di organo.

4.3.3 Aggiungi subordinato

Cliccando il terzo bottone `e possibile aggiungere un organo subordinato a quello precedentemente selezionato. Dopo il click al bottone, appare la dialog per l’inserimento delle informazioni analoga a quella descritta nella sezione 4.3.1. Dopo aver inserito le informazioni e cliccato sul bottone

“Conferma”, viene inserito un nuovo record nel database e l’organo corrispondente viene disegnato nell’organigramma. Se invece l’utente clicca sul bottone “Annulla”, non viene memorizzato nessun nuovo record e il disegno dell’organigramma rimane invariato.

Questa funzionalit`a non `e disponibile per gli organi di staff.

4.3.4 Aggiungi staff

Cliccando il quarto bottone del men`u `e possibile aggiungere un organo di staff a quello precedente-mente selezionato. Questa funzionalit`a si comporta in modo analogo a quella descritta nella sezione 4.3.3: inizialmente appare la dialog per l’inserimento delle informazioni e dopo averle inserite e aver cliccato sul bottone “Conferma”, viene inserito un nuovo record nel database e l’organo corrispon-dente viene disegnato nell’organigramma. Se invece l’utente clicca sul bottone “Annulla”, non viene memorizzato nessun nuovo record e il disegno dell’organigramma rimane invariato.

Questa funzionalit`a non `e disponibile per gli organi di staff.

4.3.5 Compattamento

Il compattamento viene avviato al click del quinto bottone. Con questa funzionalit`a vengono nascosti tutti gli organi subordinati e di staff di quello precedentemente selezionato. Dopo l’operazione di compattamento viene resa disponibile la funzione inversa di scompattamento cliccando sempre nel quinto bottone; in questo modo `e possibile tornare alla visualizzazione originale dell’organigramma.

Per ricordare all’utente che `e stata fatta tale operazione viene disegnato un bollino rosso in alto a sinistra della casella dell’organo dal quale `e stato fatto il compattamento.

Nelle figure 4.6 e 4.7 `e possibile visualizzare lo stato dell’organigramma prima e dopo un operazione di compattamento.

Figura 4.6: organigramma visibile prima dell’operazione di compattamento

Figura 4.7: organigramma visibile dopo l’operazione di compattamento

Questa funzionalit`a non `e disponibile per gli organi di staff in quanto dopo l’operazione l’organi-gramma rimarrebbe invariato dato che essi non possono avere subordinati.

4.3.6 Ridisegnamento

Premendo il sesto bottone viene avviata la funzionalit`a di ridisegnamento considerando l’organo selezionato come massimo autoritario. Con questa operazione vengono quindi nascosti tutti gli organi che stanno ad un livello superiore di quello selezionato e quelli allo stesso livello o inferiore ma non collegati ad esso: restano quindi visibili solo i suoi organi subordinati e di staff e l’organo stesso. Dopo aver eseguito tale operazione diventa disponibile quella inversa; in questo modo `e possibile tornare alla visualizzazione originale dell’organigramma.

Per ricordare all’utente che `e stata fatta tale operazione viene disegnato un bollino nero in alto a destra della casella dell’organo dal quale `e stata fatta l’operazione.

Nelle figure 4.8 e 4.9 `e possibile visualizzare lo stato dell’organigramma prima e dopo un operazione di ridisegnamento.

Figura 4.8: organigramma visibile prima dell’operazione di ridisegnamento

Figura 4.9: organigramma visibile dopo l’operazione di ridisegnamento

Questa funzionalit`a non `e disponibile per l’organo “radice” in quanto dopo l’operazione l’organigram-ma ril’organigram-marrebbe invariato dato che tutti gli organi sono collegati ad essa. Inoltre non `e disponibile per gli organi di staff in quanto dopo l’operazione si visualizzarebbe solo l’organo di staff selezionato.

4.3.7 Eliminazione

Cliccando il settimo bottone si elimina l’organo selezionato e tutti i suoi subordinati e organi di staff. Dopo questa operazione vengono eliminati dal database tutti i record corrispondenti agli organi cancellati.

Questa funzionalit`a non `e disponibile per l’organo “radice”, eliminandola infatti verrebbe cancellato l’intero organigramma.

4.3.8 Spostamento

Cliccando l’ultimo bottone `e possibile spostare l’organo selezionato e tutti i suoi subordinati ed organi di staff in una nuova posizione, se possibile. Dopo aver cliccato tale bottone `e necessario cliccare sull’organo che diventer`a il nuovo “padre” di quello che si vuole spostare. A questo punto si presentano tre casi possibili:

1. il nuovo padre `e un organo di staff: in questo caso non avviene lo spostamento in quanto gli organi di staff non possono avere subordinati;

2. il nuovo padre `e un subordinato dell’organo da spostare: in questo caso non avviene lo spostamento in quanto si creerebbe un ciclo e si otterrebbe una situazione inconsistente;

3. se non si sono verificate le due situazioni precedenti avviene lo spostamento e la nuova posizione viene memorizzata nel database (viene aggiornato il campo id padre).

Questa funzionalit`a non `e disponibile per la “radice” in quanto non si otterrebbe mai una situazione consistente visto che tutti gli organi sono ad un livello inferiore.

4.3.9 Trova organo

Per cercare un ente in modo veloce `e possibile selezionarne il nome dalla select box presente in basso a sinistra della pagina; in questo modo viene evidenziato l’organo corrispondente della struttura grafica.

Nella figura 4.10 `e possibile visualizzare come viene evidenziato l’organo che si sta cercando (quello colorato di giallo `e quello corrispondente al nome selezionato nella select box).

Figura 4.10: organigramma visibile dopo l’operazione di ridisegnamento

Questa funzionalit`a `e disponibile per tutti gli organi.

Capitolo 5

Test effettuati

5.1 Metodi di verifica utilizzati

5.1.1 Test

L’analisi dinamica `e una forma di analisi che richiede l’esecuzione del codice e viene utilizzata sia per la verifica che per la validazione del software. Questo tipo di analisi viene effetuato tramite prove, dette test, su singole unit`a, su unit`a integrate tra loro o sull’intero sistema.

Durante l’attivit`a di stage sono state effettuati due tipi di test:

Test di sistema:

vengono applicati al sistema software completo e integrato. L’obiettivo di un test di sistema

`e quello di verificare che il sistema aderisca a tutti i requisiti specificati. Principalmente questo tipo di test sono test funzionali, ovvero vengono controllate le differenze tra il sistema e i requisiti funzionali e i test case vengono presi dai casi d’uso. Con i test di sistema si controllano quindi le differenze tra i casi d’uso e il comportamento osservato;

Test di unit`a:

vengono applicati ai singoli moduli o componenti software e mirano a verificare la presenza di failure, error e fault. Il piano di test di unit`a, ovvero la batteria dei test da eseguire, pu`o essere pianificato solamente al termine della progettazione di dettaglio del sistema. I test di unit`a che saranno eseguiti mireranno ad avere sia copertura statement (eseguire almeno una volta tutte le righe di comando del software) sia copertura branch (eseguire ogni ramo della logica del flusso di controllo almeno una volta). I test di unit`a si dividono in:

Test funzionali (Black Box):

tecnica fondata sull’analisi dell’output generato dal sistema in risposta a specifici input senza preoccuparsi del codice. Una strategia per la definizione dei casi di test `e basata sulla suddivisione degli input in classi di equivalenza. Se l’input valido `e un range si creano tre classi di equivalenza corrispondenti ai valori sotto, sopra e dentro al range. Se invece l’input valido `e un insieme discreto di valori allora si creano due classi di equivalenza corrispondenti ai valori dentro e fuori all’insieme. Si intende che il comportamento del sistema sia equivalente per input appartenenti alla stessa classe di equivalenza;

Test strutturali (White Box):

tecnica fondata sulla individuazione di specifici input definiti sulla conoscenza della

strut-5.1.2 Metriche

Una metrica `e lo standard per la misura di alcune propriet`a del software e viene generalmente utilizzata per stimare la qualit`a del software stesso.

Le metriche prese in considerazione durante l’attivit`a di stage si dividono in metriche dimensionali e di complessit`a.

Metriche dimensionali

Linee di codice sorgente:

SLOC (Source Line of Code): misurazione della dimensione del software. Tale metrica si basa sul numero di codice sorgente scritte.

Esistono due tipi di metriche SLOC:

• Phisical SLOC: si contano tutte le righe del codice sorgente incluse le righe vuote e i commenti;

• Logical SLOC: si contano solo gli statements, ovvero le istruzioni effettive.

Percentuale di commenti:

CP (Comment Percentage): percentuale delle linee di commento rispetto a tutte le linee di codice. `E usata per valutare la comprensibilit`a, il riuso e la manutenzione. Il CP ideale `e di circa il 30%.

Metriche di complessit` a

Complessit`a Ciclomatica:

CC (Ciclomatic Complexity): rappresenta il numero di test necessari per testare il codice in modo completo. La complessit`a ciclomatica viene usata per valutare la complessit`a di un algoritmo di un metodo e si basa sulla struttura del grafo che lo rappresenta. In un grafo G fortemente connesso, il numero ciclomatico v(G) `e uguale al numero di percorsi linearmente indipendenti. Se sono presenti molte espressioni booleane ci saranno tante scelte che generano percorsi multipli, ad ognuno dei quali `e associato un caso di test; minore `e il valore della complessit`a ciclomatica e minore `e la difficolt`a di esecuzione dei test.

Documenti correlati