![Page 1: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/1.jpg)
Università degli studi dell’Aquila
Laurea magistrale in Ingegneria Informatica-Automatica
Ingegneria del software – A.A. 2011/2012
Docente Studenti
Prof. Serafino Cicerone Stefano Dell’Osa
Daniele Leombruni
Luca Finocchio
Vittoriano Muttillo
Progettazione e realizzazione di un
sistema software per il Time-Logging
![Page 2: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/2.jpg)
Indice
Introduzione
Strumenti e tecnologie utilizzati
Progettazione mediante Visual Paradigm
Scelte progettuali e Problematiche affrontate
Diagrammi e modelli (Dominio, casi d’uso, Deployment, Package)
Invocazione oggetti remoti
Persistenza dei dati
Configurazione del sistema
Regole di dominio
Gestione dei Task
Calcolo dello stipendio
Sviluppi futuri
![Page 3: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/3.jpg)
Introduzione
Si vuole realizzare un’applicazione software per la gestione
integrata dei progetti e del lavoro svolto dai dipendenti su tali
progetti. In particolare si vuole memorizzare il numero delle
ore spese da ciascun dipendente nell’adempimento del
proprio lavoro.
L’applicazione rientra nella categoria di applicazioni
cosiddette time tracking software
![Page 4: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/4.jpg)
Strumenti e tecnologie utilizzati
Repositories on-line
XP-Dev.com – Codice sorgente e progetto Visual Paradigm
Dropbox – Documentazione di progetto
Strumenti di progettazione
Visual Paradigm for UML 10
Strumenti di sviluppo
Eclipse Kepler
Plugin per Eclipse SVN
ICE
![Page 5: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/5.jpg)
Progettazione mediante VP
La progettazione e realizzazione del software è avvenuta
seguendo il modello UP
Visual Paradigm ha avuto un ruolo fondamentale:
Nella progettazione, fornendo strumenti a supporto della
produzione dei diagrammi e relativa documentazione
Nella costruzione del codice (Java round-trip engineering)
Nella progettazione e realizzazione del database, con
relativo mapping tramite ORM (Hibernate)
![Page 6: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/6.jpg)
Modello di dominio
![Page 7: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/7.jpg)
Diagramma dei casi d’uso
Ideazione /
Elaborazione 1°
iterazione
Elaborazione 2°
iterazione
Elaborazione 3°
iterazione
Elaborazione 4°
iterazione
![Page 8: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/8.jpg)
Scelte architetturali
![Page 9: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/9.jpg)
Diagramma di Deployment
![Page 10: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/10.jpg)
Diagramma dei Package
Server Client
![Page 11: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/11.jpg)
Invocazione di oggetti remoti
Tecnologia software utilizzata per la realizzazione
dell’architettura distribuita: ICE
Ice si basa sul concetto di SLICE:
Slice (Specification Language for Ice) is the fundamental abstraction
mechanism for separating object interfaces from their implementations.
Slice establishes a contract between client and server that describes the
types and object interfaces used by an application.
Integrazione con Eclipse:
Ogni slice viene mappato sul client come classi Proxy e sul Server come
classi Skeleton, il tutto in maniera automatizzata grazie all’utilizzo
dell’apposito plugin per Eclipse.
![Page 12: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/12.jpg)
Invocazione di oggetti remoti (2)
PROBLEMA: Evitare che le classi dello strato di interfaccia si trovino ad
assolvere compiti che vanno oltre la loro funzionalità specifica e che quindi
si facciano carico di altre problematiche relative alla comunicazione client-
server.
SOLUZIONE: Applicazione del design pattern Simple Factory.
Alta coesione
![Page 13: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/13.jpg)
Persistenza dei dati
PROBLEMI:
Individuare l’oggetto responsabile della persistenza
dei dati
Disaccoppiare la logica applicativa dallo strato di
interfaccia utilizzata verso il database
SOLUZIONE: utilizzo del pattern Pure Fabrication
![Page 14: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/14.jpg)
Persistenza dei dati (2)
Pure Fabrication
L’introduzione della
classe FTask fornisce
un’interfaccia al
model, rendendolo
indipendente dallo
strato sottostante di
collegamento al DB
Alta coesione
Protezione dalle variazioni
![Page 15: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/15.jpg)
Configurazione del sistema
PROBLEMA: Permettere al sistema di cambiare il suo
comportamento in fase di esecuzione a seconda dei dati
con cui si trova a lavorare
SOLUZIONE: Parametrizzazione delle configurazioni di
sistema su file xml e costruzione di un parser xml
![Page 16: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/16.jpg)
Configurazione del sistema (2)
Client
Server
![Page 17: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/17.jpg)
Assegnazione delle responsabilità
PROBLEMA: Individuare un principio base per l’assegnazione delle responsabilità agli oggetti
SOLUZIONE:
Utilizzo del pattern Information Expert
Utilizzo del pattern Creator
Basso accoppiamento
Alta coesione
![Page 18: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/18.jpg)
Assegnazione delle responsabilità (2)
PROBLEMA: Individuare l’oggetto oltre lo strato UI il
cui compito è quello di ricevere e coordinare le
operazioni di sistema
SOLUZIONE: Utilizzo del pattern Controller
![Page 19: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/19.jpg)
Garantire la coesione
PROBLEMA: Come evitare che la classe Azienda si
faccia carico di troppe responsabilità ( bassa
coesione )
SOLUZIONE: Utilizzo del pattern Pure Fabrication
Alta coesione
![Page 20: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/20.jpg)
Garantire la coesione (2)
Pure Fabrication
La gestione dei
Dipendenti è
scorporata da
Azienda e
demandata ad
una nuova classe
«EDirezione»
La gestione
degli stipendi è
demandata ad
una nuova classe
«EMarketing»
![Page 21: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/21.jpg)
Regole di dominio
Regole che l’Azienda ha interesse a stabilire per permettere una gestione dinamica dei propri dipendenti e dei progetti ai quali lavora.
Esempio:
Aggiunta/rimozione di nuove figure professionali
Differenziazione degli stipendi
Cambiamenti a livello strutturale/organizzativo dei progetti
![Page 22: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/22.jpg)
Regole di Dominio
PROBLEMA: Necessità di avere un sistema di
gestione delle regole di dominio flessibile e che
garantisca un’elevata estensibilità
Regole per la gestione dei Task
Regole per il calcolo dello stipendio
![Page 23: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/23.jpg)
Regole per la gestione dei Task
Regole per la gestione del ciclo di vita del Task
Regole per la diversificazione dei privilegi associati
ai singoli utenti relativi alla gestione dei Task
![Page 24: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/24.jpg)
Gestione delle alternative
PROBLEMA: Gestire alternative basate sul tipo,
ovvero come gestire situazioni in cui le alternative o
i comportamenti correlati variano con il tipo (Es.
Ogni Dipendente assolverà compiti differenti
all’interno della struttura aziendale).
SOLUZIONE: Utilizzo del pattern Polymorfism
![Page 25: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/25.jpg)
Gestione delle alternative (2)
Polymorfism
Ogni Dipendente
ha un compito
differente
L’aggiunta di nuovi
dipendenti può
avvenire in
maniera flessibile,
senza impattare
significativamente
sul sistema
![Page 26: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/26.jpg)
Gestione delle alternative UI
PROBLEMA: Visualizzare diverse interfacce grafiche
a seconda dell'utente che si trova ad utilizzare il
software in un determinato momento (Es. Azienda,
Manager oppure Consulente).
SOLUZIONE: Utilizzo del pattern Abstract Factory
![Page 27: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/27.jpg)
Gestione delle alternative UI (2)
Abstract Factory
La UI varia a seconda della tipologia di utenza
![Page 28: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/28.jpg)
Regole per il calcolo dello stipendio
PROBLEMA : Creare regole per il calcolo dello
stipendio flessibili
Supporto a diversi metodi di calcolo
Differenziazione del calcolo dello stipendio per ogni
categoria di Dipendenti ipotizzata
SOLUZIONE: Utilizzo dei pattern Strategy,
Composite e Simple Factory
![Page 29: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/29.jpg)
Regole per il calcolo dello stipendio (2)
PROBLEMA: Definire gli algoritmi per le regole di
calcolo dello stipendio, incapsularli e renderli
intercambiabili fra di loro in maniera trasparente
all’utilizzatore finale
SOLUZIONE: Utilizzo del pattern Strategy
![Page 30: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/30.jpg)
Regole per il calcolo dello stipendio (3)
PROBLEMA: Identificare chi si fa carico della
creazione delle strategie/algoritmi per il calcolo
dello stipendio
SOLUZIONE: Utilizzo del pattern Simple Factory
![Page 31: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/31.jpg)
Regole per il calcolo dello stipendio (4)
PROBLEMA: Comporre le varie regole per il calcolo
dello stipendio in modo da ignorare la differenza
fra le singole regole e quelle composte
SOLUZIONE: Utilizzo del pattern Composite
![Page 32: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/32.jpg)
Regole per il calcolo dello stipendio (5)
![Page 33: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/33.jpg)
Separazione delle responsabilità
PROBLEMA: Gestione delle azioni da compiere al
verificarsi di un evento associato ad un determinato
oggetto o componente dell’interfaccia.
SOLUZIONE: Utilizzo del pattern Command
Alta coesione
Facile estendibilità
![Page 34: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/34.jpg)
Separazione delle responsabilità (2)
… …
![Page 35: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/35.jpg)
Sviluppi futuri
Problematiche da affrontare:
Calcolo della fattura
Gestione dei progetti
Visualizzazione dei report
![Page 36: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/36.jpg)
Conclusioni
L’utilizzo di una tecnica consolidata di progettazione (UP) ha:
Consentito un approccio iterativo ed incrementale di risoluzione del problema
Portato notevoli benefici al lavoro in Team, consentendo un’efficiente organizzazione e pianificazione dei passi da svolgere
Consentito, insieme all’utilizzo dei pattern noti in letteratura, di avere un software agile e flessibile rispetto ai cambiamenti
![Page 37: Progettazione e realizzazione di un sistema software per il time logging](https://reader033.vdocuments.site/reader033/viewer/2022042907/588896471a28ab3e658b7ca3/html5/thumbnails/37.jpg)
GRAZIE PER L’ATTENZIONE