Sei sulla pagina 1di 50

Documento di analisi 

Gruppo Alpha 
Andrea Martelli 
Emanuele Mottola 
Roberto Paolillo 

Corso di laurea in Ingegneria Informatica Specialistica 
Anno Accademico 2007/2008

Indice
 1 Introduzione......................................................................................................................................2
 2 Casi d'uso e attività...........................................................................................................................3
 2.1 Introduzione..............................................................................................................................3
 2.2 Attori.........................................................................................................................................5
 2.2.1 Guest..................................................................................................................................5
 2.2.2 Utente base .......................................................................................................................5
 2.2.3 Amministratore ................................................................................................................5
 2.2.4 Utente avanzato.................................................................................................................5
 2.2.5 DB Conti­Portafogli .........................................................................................................6
 2.2.6 Fornitore dati di borsa ......................................................................................................6
 2.2.7 DB Titoli...........................................................................................................................6
 2.2.8 Demone di aggiornamento................................................................................................6
 2.3 Casi d'uso .................................................................................................................................7
 2.3.1 Login ................................................................................................................................7
 2.3.2 Aprire conto .....................................................................................................................8
 2.3.3 Visualizzare quotazione titolo/valuta ...............................................................................9
 2.3.4 Visualizzare listino .........................................................................................................11
 2.3.5 Visualizzare per indice ...................................................................................................12
 2.3.6 Visualizzare listino A­Z .................................................................................................12
 2.3.7 Cercare titolo ..................................................................................................................12
 2.3.8 Definire titoli per indice .................................................................................................14
 2.3.9 Aggiornare orari mercati ................................................................................................15
 2.3.10 Aggiornare elenco titoli ................................................................................................17
 2.3.11 Visualizzare saldo e movimenti conto ..........................................................................18
 2.3.12 Visualizzare portafoglio ................................................................................................19
 2.3.13 Inserire ordine di acquisto titolo/valuta ........................................................................21
 2.3.14 Inserire ordine di vendita titolo/valuta ..........................................................................23
 2.3.15 Cancellare ordine ..........................................................................................................24
 2.3.16 Visualizzare riepilogo ordini ........................................................................................25
 2.3.17 Ottenere quotazione ......................................................................................................26
 2.3.18 Aggiornare portafoglio .................................................................................................28
 2.3.19 Aggiornare conto ..........................................................................................................30
 2.3.20 Ottenere dati storici ......................................................................................................31

Documento di Analisi – Gruppo Alpha 1
 2.3.21 Gestire portafoglio virtuale ..........................................................................................32
 2.3.22 Visualizzare analisi tecnica ..........................................................................................34
 2.3.23 Aggregare dati storici ...................................................................................................35
 2.3.24 Aggiornare quotazioni ..................................................................................................36
 2.3.25 Eseguire ordini acquisto/vendita ..................................................................................37
 3 Classi..............................................................................................................................................39
 3.1 Introduzione............................................................................................................................39
 3.2 Dettaglio delle classi...............................................................................................................42
 3.2.1 Utente..............................................................................................................................42
 3.2.2 Ordine..............................................................................................................................42
 3.2.3 Movimento......................................................................................................................43
 3.2.4 Conto...............................................................................................................................43
 3.2.5 Portafoglio.......................................................................................................................44
 3.2.6 Titolo...............................................................................................................................44
 3.2.7 Quotazione......................................................................................................................44
 3.2.8 Compravendita................................................................................................................45
 3.2.9 Indice...............................................................................................................................45
 3.2.10 Mercato..........................................................................................................................45
 3.2.11 Segmento.......................................................................................................................46
 3.2.12 Calendario festivi...........................................................................................................46
 3.2.13 Andamento....................................................................................................................46
 3.2.14 Grafico...........................................................................................................................46
 3.2.15 Indicatore.......................................................................................................................47

 1  Introduzione

Il presente documento analizzerà in dettaglio il frutto  della fase di  analisi,  intesa  essenzialmente 


come modellazione del comportamento statico e dinamico del sistema nel suo insieme. Questa fase è stata 
condotta attraverso le tecniche già in parte esplicitate nel Piano di Progetto (SPMP), ovvero meeting e attività 
di   brainstorming,   analisi   dei   requisiti   e   collaborazione   online,   e   si   è   concretizzata   nella   produzione   del 
diagramma dei casi d'uso, ognuno corredato dal rispettivo diagramma di attività, del diagramma delle classi, 
e   di   tutta   la   necessaria   documentazione   connessa   ad   essi,   il   tutto   prendendo   le   mosse   dall'analisi   del 
dominio e dei requisiti.

Il  sistema fornirà  infatti  un’ampia  gamma  di  funzionalità,  quali analisi tecnica, gestione  dei conti, 


negoziazione   e   cambio   valuta,   che   interesseranno   il   mercato   borsistico   italiano   ed   internazionale.   Per 
ottenere un sistema flessibile dal punto di vista dell'usabilità da parte di diverse categorie di utenti, si sono 
individuati 3 attori e ad ognuno di essi sono state fornite funzionalità man mano crescenti. Per effettuare 
operazioni di trading online si dovrebbe aver un accesso reale ai sistemi informativi delle Borse prese in 
considerazione. Poiché questo non è possibile direttamente, ma si vogliono utilizzare quotazioni azionarie e 
tassi   di   cambio   reali,   è   necessario   prevedere   un   meccanismo   che   consenta   di   ottenere   le   informazioni 
necessarie tramite opportune richieste ai portali web che le forniscono pubblicamente. Le informazioni così 
ottenute saranno gestite mediante un DBMS e verranno inoltre periodicamente aggregate, per poter disporre 
non solo di dati di rilevanza giornaliera, ma anche di serie storiche sulle quali effettuare ulteriori analisi.

Documento di Analisi – Gruppo Alpha 2
 2  Casi d'uso e attività
 2.1  Introduzione

Di   seguito   è   riportata   la   vista   d'insieme   dei   casi   d'uso.   Gli   attori   che   interagiscono   col   sistema 
possono   essere   suddivisi   essenzialmente   in   due   categorie:   quelli   che   rappresentano   categorie   di   utenti 
umani,  interpretabili come  clients  del  sistema, quelli che  si occupano  della  gestione  dei dati (fornitore  e 
DBMS) e quelli che, in maniera del tutto autonoma, svolgono operazioni di routine utili al funzionamento del 
sistema.
Particolare   attenzione   è   stata   posta   sul   punto   di   vista   dell'utente,   che   in   base   al   suo   livello   di 
esperienza e dei privilegi d'accesso, potrà usufruire di funzionalità più o meno avanzate. La suddivisione di 
compiti tra  DB Titoli  e  DB Utenti  è meramente concettuale ed è stata utilizzata per rendere più chiaro e 
leggibile il diagramma.
Di seguito è riportata la vista d'insieme dei casi d'uso, come sintesi delle funzionalità e del 
comportamento dinamico del sistema. Inoltre per ogni caso d'uso sono forniti:

● descrizione testuale;

● diagramma delle attività;

Il diagramma illustra la sequenza di passi e condizioni che specificano tutti gli scenari e le possibili 
varianti del caso d'uso. Per ognuno, inoltre, vengono esplicitate le modalità concrete con cui gli utilizzatori o 
le parti del sistema interagiscono con esso.

Documento di Analisi – Gruppo Alpha 3
Documento di Analisi – Gruppo Alpha 4
 2.2  Attori

 2.2.1  Guest

Generalizza: Amministratore, Utente base
E' l'utente generico che si connette al sistema. Esso non ha effettuato il login e pertanto le azioni disponibili 
sono limitate alla visualizzazione o ricerca dei titoli azionari e delle valute. L'utente Guest può inoltre aprire 
un conto presso il sistema, ossia iscriversi ed acquisire le credenziali per il login. Se l'utente Guest non 
ancora loggato possiede un account presso il sistema, può effettuare il login ed accedere così al proprio 
portafoglio ed usufruire di ulteriori funzionalità. 

 2.2.2  Utente base 

Specializza: Guest
Rappresenta la categoria degli utenti più comuni del sistema di trading on line. Specializza l’utente Guest e 
individua, in particolare, un generico utente registrato al sistema che abbia effettuato l’operazione di login. 
Possiede   un   conto,   ed   oltre   alle   operazioni   di   consultazione,   tipiche   di   Guest,   è   pertanto   abilitato   alla 
contrattazione nei mercati azionati e nel mercato valutario. 
Le operazioni consentite a questa fascia di utenti sono l’inserimento e la cancellazione di ordini di acquisto e 
vendita   di   titoli   azionati   o   valute,   la   visualizzazione   di   report   riepilogativi   sugli   ordini   effettuati,   la 
visualizzazione del portafoglio personale e dello stato del conto, costituito dal saldo e dalla cronologia delle 
ultime transazioni. 

 2.2.3  Amministratore 

Specializza: Guest
L'amministratore specializza l'utente guest ed è unico. L'utente amministratore si occupa del mantenimento, 
miglioramento e dell'aggiornamento del sistema. Può intervenire quindi sulla struttura e contenuto dei vari 
DB. Le sue funzionalità principali sono di definire i titoli per indice, aggiornare gli orari dei mercati e l'elenco 
dei titoli. E' predisposto inoltre a ricevere eventuali errori sul malfunzionamento del sistema, in particolare 
quelli   riguardanti   il   demone   di   aggiornamento,   il   timer   e   la   connessione   con   il   Fornitore   dati   borsa. 
L'amministratore può eliminare degli account nel DB Conti­Portafogli. 

 2.2.4  Utente avanzato

Specializza: Utente base
Questo   attore   specializza   l'Utente   base.   Questa   distinzione   ricalca,   sia   pur   se   in   scala   assai   ridotta,   la 
valutazione del profilo di rischio effettata dagli operatori finanziari ai suoi clienti, così come definita dalla 
direttiva MIFID (Market in Financial Instruments Directive) che differenzia i clienti al dettaglio, professionali e 
le   controparti   qualificate.   Inoltre   una   simile   classificazione   è   prevista   anche   dalle   normative   italiane   di 
trasparenza bancaria (PattiChiari). In questo caso la valutazione è basata sulla esperienza finanziaria, sulla 
situazione finanziaria, sulla propensione al rischio e sugli obiettivi di investimento. All'interno del sistema, 
l'attribuzione dello status di utente avanzato avviene da parte dell'amministratore. Oltre alle funzioni previste 
per l'utente di base, un utente avanzato può utilizzare gli strumenti di analisi tecnica e di portafoglio virtuale 
effettuando operazioni di acquisto e vendite simulate. 

Documento di Analisi – Gruppo Alpha 5
 2.2.5  DB Conti­Portafogli 

E' una parte del database che contiene: 
● l'elenco degli utenti, con rispettivi dati personali, password e privilegi d'accesso, stabiliti in fase di 
registrazione. Questi dati sono in buona parte modificabili anche dopo la registrazione;
● i portafogli degli utenti, ovvero la lista dei titoli posseduti da ciascuno, e degli ordini;
● i "portafogli virtuali", ovvero un elenco di titoli sotto osservazione. Questa funzionalità è disponibile 
solo per gli utenti avanzati;
● i conti degli utenti.
Molte   delle   operazioni  riguardanti  questa   sezione   del  database   hanno   carattere   transazionale,   ma   sono 
eseguite con frequenza minore rispetto a quelle che interessano la sezione "titoli" del DB. Le transazioni più 
frequenti saranno la verifica della soddisfacibilità degli ordini e gli eventuali conseguenti aggiornamenti di 
portafogli e conti.

 2.2.6  Fornitore dati di borsa 

E' un servizio WEB in grado di restituire le quotazioni aggiornate relative a un determinato titolo (azione o 
valuta). Molti di questi servizi forniscono un flusso di dati continuo ma ritardato rispetto allo svolgimento reale 
delle operazioni nei mercati di un certo numero di minuti. Questo implica che è necessario tenere conto di 
questa componente di ritardo, ad esempio memorizzando sia dell'orario di ricezione del dato che dell'orario a 
cui il dato fa riferimento. 
Il   meccanismo   utilizzato   per   l'ottenimento   dei  dati  è   di  tipo   PULL.   Essi   vengono   restituiti   dal  fornitore   a 
seguito di una specifica richiesta correttamente costruita (well­formed). 

 2.2.7  DB Titoli
 
E' una parte del database che contiene: 
● l'elenco dei mercati e dei segmenti, nonché i loro orari di apertura. La modifica di questi dati avviene 
manualmente da parte dell'amministratore;
● l'elenco dei titoli con il codice identificativo, utile per l'identificazione da parte del fornitore dei dati di 
borsa;
● le quotazioni intra­day, inserite  durante l'aggiornamento  delle quotazioni  periodiche innescate dal 
demone di aggiornamento;
● le   quotazioni   aggregate,   che   si   formano   attraverso   l'aggregazione   dei   dati   storici   eseguita 
periodicamente dal demone di aggiornamento;
Su   di   essa   vengono   effettuate   moltissime   operazioni   di   lettura   e   scrittura,   raramente   a   carattere 
transazionale.   Deve   essere   dunque   ottimizzato   per   gestire   una   gran   mole   di   dati   e   processare   un   alto 
numero di richieste. 

 2.2.8  Demone di aggiornamento

Il demone di aggiornamento gestisce una serie di timer che controllano l'esecuzione periodica ad intervalli 
regolari di una serie di attività del sistema. Prima tra tutte e l'attività di aggiornamento delle quotazioni, che si 
collega al fornitore dati di borsa, richiede le quotazioni aggiornate per tutti i titoli, le interpreta attraverso un 
parser e le inserisce nel DB Titoli. Altra attività fondamentale conseguente all'aggiornamento è quella di 
esecuzione degli ordini di acquisto e vendita, effettuata nel momento in cui le quotazioni sono inferiori o 
superiori al prezzo impostato al momento dell'inserimento dell'ordine. Effettua inoltre un controllo periodico 
sulla presenza di ordini inevasi scaduti, cancellandoli dal sistema. Al livello pratico è un modulo software in 
esecuzione   continua   con   riavvio   automatico   in   caso   di   crash,   logging   e   reporting   degli   errori 
all'amministratore. 

Documento di Analisi – Gruppo Alpha 6
 2.3  Casi d'uso 

 2.3.1  Login 

Descrizione: inserimento delle proprie credenziali per accedere al proprio conto. 
Pre­condizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet. 
Post­condizioni per il successo: le credenziali inserite sono corrette, si raggiunge la pagina iniziale relativa 
all'utente 
Post­condizioni per il fallimento: viene restituito un messaggio di errore. 
Evento innescante: Un utente non ancora loggato sceglie di effettuare il login dalla pagina iniziale del 
sistema 
Attore primario: Guest 

Scenario di base ­ Login 
1. L'utente si connette col browser al sistema tramite l'indirizzo del sito 
2. Il sistema fornisce la pagina iniziale 
3. L'utente sceglie di effettuare il login 
4. Il sistema, se non già presente, instaura la connessione al DB Conti­Portafogli 
5. Il sistema fornisce i form da riempire 
6. L'utente inserisce le proprie credenziali 
7. Il sistema interroga il DB, individua l'utente e verifica i dati immessi 
8. Il sistema fornisce la pagina iniziale dell'utente 
Scenario alternativo 1 – Utente non esistente e/o password sbagliata 
7. Il sistema non trova un utente corrispondente ai dati immessi 
8. Viene restituito un messaggio di errore. 
Scenario alternativo 2 ­ Errore nella connessione al database DB Conti­portafogli 
4. Il sistema ritenta la connessione al DB un numero prestabilito di volte 
5. Se non ha successo, viene restituito un messaggio di errore invitando a riprovare più tardi 
Scenario alternativo 3 ­ Errore nell'interrogazione del database DB Conti­portafogli 
7. Si verifica un errore nel prelievo dei dati dal DB 
8. Viene restituito un messaggio di errore, invitando a riprovare più tardi 

Priorità di sviluppo: medio­bassa 
Frequenza prevista di esecuzione: >50 al giorno

Diagramma di attività:

Documento di Analisi – Gruppo Alpha 7
 2.3.2  Aprire conto 

Descrizione: connettersi al sito, registrare un nuovo account 
Pre­condizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet 
Post­condizioni per il successo: l'utente crea un nuovo account e può effettuare il primo login. 
Post­condizioni per il fallimento: viene restituito un messaggio di errore. 
Evento innescante: L'utente non loggato decide di registrarsi presso il sistema. 
Attore primario: Guest 

Scenario di base ­ Aprire conto 
1. L'utente si connette al sistema tramite l'indirizzo del sito 
2. Il sistema fornisce la pagina iniziale 
3. L'utente sceglie di effettuare la registrazione 
4. Il sistema, se non già presente, instaura la connessione al DB Conti­Portafogli 
5. Il sistema fornisce i form da riempire 
6. L'utente inserisce nome utente, password e altre informazioni sul conto con cui intende accedere 
    al sistema 
7. Il sistema registra il nuovo utente nel database e dà conferma dell'avvenuta registrazione 
Scenario alternativo 1– Dati immessi non validi 
7. Viene restituito un messaggio di errore 
8. Il sistema ripropone l'inserimento dei dati 
Scenario alternativo 2­ Errore nella connessione al DB Conti­portafogli 

Documento di Analisi – Gruppo Alpha 8
4. Il sistema ritenta la connessione al DB un numero prestabilito di volte 
5. Se non ha successo, viene restituito un messaggio di errore invitando a riprovare più tardi 
Scenario alternativo 3­ Errore nella scrittura del DB Conti­portafogli 
7. Si verifica un errore nella scrittura dei dati nel DB 
8. Viene restituito un messaggio di errore, invitando a riprovare più tardi 

Priorità di sviluppo: bassa 
Frequenza prevista di esecuzione: <10 volte al giorno 

Diagramma di attività:

 2.3.3  Visualizzare quotazione titolo/valuta 

Descrizione: visualizzare un titolo azionario o la quotazione di una valuta scegliendo tra quelli disponibili per 
indice o per borsa 
Pre­condizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet 
Post­condizioni per il successo: vengono visualizzate le informazioni richieste. 
Post­condizioni per il fallimento: viene restituito un messaggio di errore. 

Documento di Analisi – Gruppo Alpha 9
Evento innescante: l'utente chiede di visualizzare la quotazione di un titolo o di una valuta. 
Attore primario: Guest 
Include il caso d'uso: Ottenere quotazione 
Esteso da: Visualizzare listino (extension point: richiesta listino) 

Scenario di base ­ Visualizzare quotazione titolo/valuta 
1. L'utente sceglie un titolo o una valuta da visualizzare 
2. <<include>> Ottenere quotazione 
3. Il sistema fornisce l'ultima quotazione disponibile del titolo o della valuta 
Scenario alternativo ­ Errore in Ottenere quotazione 
3. Se Ottenere quotazione fallisce, viene restituito un messaggio di errore invitando a riprovare più 
    tardi 

Priorità di sviluppo: medio­alta 
Frequenza prevista di esecuzione: >1000 volte al giorno 

Diagramma di attività:

Documento di Analisi – Gruppo Alpha 10
 2.3.4  Visualizzare listino 

Descrizione: visualizzare il listino dei titoli azionari. 
Pre­condizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet. 
Post­condizioni per il successo: vengono visualizzate le informazioni richieste. 
Post­condizioni per il fallimento: viene restituito un messaggio di errore. 
Evento innescante: l'utente chiede di visualizzare il listino dei titoli azionari o il riepilogo dei principali tassi di 
cambio. 
Attore primario: Guest 
Estende il caso d'uso: Visualizzare quotazione/titolo valuta 

Scenario di base ­ Visualizzare listino 
1. L'utente sceglie di visualizzare il listino dei titoli azionari 
2. <<include>> Ottenere quotazione: per ogni quotazione del listino, viene recuperata l'ultima 
    quotazione disponibile 
3. Il sistema fornisce il listino dei titolo 
Scenario alternativo ­ Errore in Ottenere quotazione 
3. Se Ottenere quotazione fallisce, viene restituito un messaggio di errore invitando a riprovare più 
    tardi 

Priorità di sviluppo: medio­alta 
Frequenza prevista di esecuzione: >500 volte al giorno

Diagramma di attività:

Documento di Analisi – Gruppo Alpha 11
 2.3.5  Visualizzare per indice 
 
Descrizione: visualizzare il listino dei titoli azionari in base all'indice di riferimento 
Pre­condizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet. 
Post­condizioni per il successo: vengono visualizzate le informazioni richieste. 
Post­condizioni per il fallimento: viene restituito un messaggio di errore. 
Evento innescante: l'utente chiede di visualizzare il listino dei titoli azionari afferenti a un dato indice 
Attore primario: Guest 
Specializza il caso d'uso: Visualizzare listino 

Scenario di base ­ Visualizzare per indice 
1. L'utente sceglie di visualizzare il listino dei titoli azionari in base all'indice di riferimento 
2. Il sistema fornisce l'elenco degli indici 
3. L'utente seleziona l'indice di riferimento 
4. <<include>> Ottenere quotazione: ultima quotazione per ogni titolo appartentente all'indice scelto 
5. Il sistema presenta il listino richiesto all'utente 
Scenario alternativo ­ Errore in Ottenere quotazione 
4. Se Ottenere quotazione fallisce, viene restituito un messaggio di errore invitando a riprovare più 
    tardi 

Priorità di sviluppo: media 
Frequenza prevista di esecuzione: >250 volte al giorno 

 2.3.6  Visualizzare listino A­Z 

Descrizione: visualizzare il listino dei titoli azionari di un determinato mercato in ordine alfabetico 
Pre­condizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet. 
Post­condizioni per il successo: vengono visualizzate le informazioni richieste. 
Post­condizioni per il fallimento: viene restituito un messaggio di errore. 
Evento innescante: l'utente chiede di visualizzare il listino dei titoli azionari in ordine alfabetico 
Attore primario: Guest 
Specializza il caso d'uso: Visualizzare listino 

Scenario di base ­ Visualizzare listino A­Z 
1. L'utente sceglie di visualizzare il listino dei titoli azionari in ordine alfabetico 
2. Il sistema fornisce l'elenco dei mercati disponibili 
3. L'utente sceglie il mercato di interesse 
4. <<include>> Ottenere quotazione: vengono ottenute le ultime quotazioni di ogni titolo          
    appartenente al mercato scelto e ordinate alfabeticamente 
5. Il sistema presenta il listino all'utente 
Scenario alternativo ­ Errore in Ottenere quotazione 
4. Se Ottenere quotazione fallisce, viene restituito un messaggio di errore invitando a riprovare più 
    tardi 

Priorità di sviluppo: media 
Frequenza prevista di esecuzione: >250 volte al giorno 

 2.3.7  Cercare titolo 

Descrizione: cercare un titolo azionario tra quelli disponibili 
Pre­condizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet 

Documento di Analisi – Gruppo Alpha 12
Post­condizioni per il successo: viene visualizzato l'elenco dei titoli che contengono la stringa cercata. 
Post­condizioni per il fallimento: viene restituito un messaggio di nessun titolo trovato. 
Evento innescante: l'utente chiede di cercare un titolo azionario nel DB. 
Attore primario: Guest 

Scenario di base ­ Cercare titolo 
1. L'utente sceglie di cercare un titolo azionario ed immette la stringa di ricerca 
2. Il sistema, se non già presente, instaura la connessione al DB Titoli 
3. Il sistema interroga il DB e fornisce i titoli che contengono la data stringa 
Scenario alternativo 1 ­ Nessun titolo trovato 
3. Il sistema non trova nessun titolo corrispondente alla stringa cercata 
4. Viene mostrato un opportuno messaggio invitando a cambiare la stringa di ricerca 
Scenario alternativo 2 ­ Errore nella connessione al DB Titoli 
3. Il sistema ritenta la connessione al DB un numero prestabilito di volte 
4. Se non ha successo, viene restituito un messaggio di errore invitando a riprovare più tardi 

Priorità di sviluppo: media 
Frequenza prevista di esecuzione: >50 volte al giorno

Diagramma di attività:

Documento di Analisi – Gruppo Alpha 13
 2.3.8  Definire titoli per indice 

Descrizione:  L'amministratore definisce quali tra i titoli presenti nel DB, appartengono ad un determinato 
indice. 
Pre­condizioni: l'utente ha effettuato con successo il login come amministratore. 
Post­condizioni per il successo: viene modificato l'elenco dei titoli che appartengono all'indice in 
considerazione. 
Post­condizioni per il fallimento: viene restituito un messaggio di errore, il DB rimane invariato. 
Evento innescante: l'utente amministratore sceglie di definire i titoli che appartengono ad un indice. 
Attore primario: Amministratore 

Scenario di base ­ Definire titoli per indice 
1. L'amministratore sceglie la funzione di modifica dei titoli per indice 
2. Il sistema, se non già presente, instaura la connessione al DB Titoli 
3. Il sistema interroga il DB e fornisce l'elenco dei titoli disponibili 
4. L'amministratore, a partire dall'elenco di tutti i titoli, seleziona titolo per titolo a quale indice    
    associarli 
5. Il sistema aggiorna il DB 
Scenario alternativo 1 ­ Errore nella connessione al DB Titoli 
3. Il sistema ritenta la connessione al DB un numero prestabilito di volte 
4. Se non ha successo, viene restituito un messaggio di errore invitando a riprovare più tardi 
Scenario alternativo 2 ­ Errore nella scrittura del DB Titoli 
5. Si verifica un errore nella scrittura dei dati nel DB 
6. Viene restituito un messaggio di errore, invitando a riprovare più tardi 

Priorità di sviluppo: bassa 
Frequenza prevista di esecuzione: <5 volte al giorno

Diagramma di attività:

Documento di Analisi – Gruppo Alpha 14
 2.3.9  Aggiornare orari mercati 

Descrizione: L'amministratore aggiorna gli orari di apertura e chiusura dei mercati. 
Pre­condizioni: l'utente ha effettuato con successo il login come amministratore. 
Post­condizioni per il successo: viene modificato l'orario di apertura/chiusura dei mercati. 
Post­condizioni per il fallimento: viene restituito un messaggio di errore, non vengono modificati gli orari. 
Evento innescante: l'utente amministratore sceglie di aggiornare gli orari di apertura e chiusura dei mercati. 
Attore primario: Amministratore 

Scenario di base ­ Aggiornare orari mercati 
1. L'amministratore sceglie la funzione di aggiornamento degli orari dei mercati 

Documento di Analisi – Gruppo Alpha 15
2. Il sistema, se non già presente, instaura la connessione al DB Titoli 
3. Il sistema interroga il DB e fornisce l'elenco dei mercati 
4. L'amministratore seleziona il mercato da aggiornare 
5. Il sistema interroga il DB e fornisce gli orari di apertura e chiusura del mercato selezionato e il 
    form per la loro modifica 
6. L'amministratore inserisce i nuovi orari 
7. Il sistema aggiorna il DB 
Scenario alternativo 1 ­ Errore nella connessione al DB Titoli 
3. Il sistema ritenta la connessione al DB un numero prestabilito di volte 
4. Se non ha successo, viene restituito un messaggio di errore invitando a riprovare più tardi 
Scenario alternativo 2 ­ Errore nella scrittura del DB Titoli 
7. Si verifica un errore nella scrittura dei dati nel DB 
8. Non viene modificata la configurazione del demone di aggiornamento 
9. Viene restituito un messaggio di errore invitando a riprovare più tardi 

Priorità di sviluppo: bassa 
Frequenza prevista di esecuzione: <5 volte al giorno

Diagramma di attivià:

Documento di Analisi – Gruppo Alpha 16
 2.3.10  Aggiornare elenco titoli 

Descrizione: L'amministratore aggiorna i titoli presenti nel DB Titoli 
Pre­condizioni: l'utente ha effettuato con successo il login come amministratore. 
Post­condizioni per il successo: viene modificato l'elenco dei titoli 
Post­condizioni per il fallimento: viene restituito un messaggio di errore, il DB rimane invariato 
Evento innescante: l'utente amministratore sceglie aggiornare l'elenco dei titoli 
Attore primario: Amministratore 

Scenario di base ­ Aggiornare elenco titoli 
1. L'amministratore sceglie la funzione di aggiornamento dei titoli 
2. Il sistema, se non già presente, instaura la connessione al DB Titoli 
3. Il sistema interroga il DB e fornisce l'elenco dei titoli 
4. L'amministratore seleziona il titolo da aggiornare 
5. Il sistema interroga il DB e fornisce il dettaglio del titolo selezionato 
6. L'amministratore aggiorna il titolo o inserisce i dati del nuovo titolo 
7. Il sistema aggiorna il DB 

Variante ­ Inserire un nuovo titolo 
1a. L'amministratore sceglie la funzione di inserire di un nuovo titolo 
2a. Il sistema, se non già presente, instaura la connessione al DB Titoli 
3a. Il sistema propone i form per l'inserimento di un nuovo titolo 
4a. L'amministratore inserisce i dati del nuovo titolo 
5a. Il sistema aggiorna il DB e da conferma dell'avvenuto inserimento 

Scenario alternativo 1 ­ Errore nella connessione al DB Titoli 
3. Il sistema ritenta la connessione al DB un numero prestabilito di volte 
4. Se non ha successo, viene restituito un messaggio di errore invitando a riprovare più tardi 
Scenario alternativo 2 ­ Errore nella scrittura del DB Titoli 
7. Si verifica un errore nella scrittura dei dati nel DB 
8. Viene restituito un messaggio di errore, invitando a riprovare più tardi 
Scenario alternativo 3 – Dati immessi non validi 
7. Viene restituito un messaggio di errore 
8. Il sistema ripropone l'inserimento dei dati 
Scenario alternativo 4 – Nuovo titolo non valido 
5a. Viene restituito un messaggio di errore 
6a. Il sistema ripropone l'inserimento dei dati 

Priorità di sviluppo: bassa 
Frequenza prevista di esecuzione: <5 volte al giorno 

Diagramma di attivià:

Documento di Analisi – Gruppo Alpha 17
 2.3.11  Visualizzare saldo e movimenti conto 
 
Descrizione: visualizzazione del saldo attuale di un utente registrato e della cronologia dei movimenti da lui 
effettuati, intesi come acquisti o cessioni di titoli e valute, o eventuali depositi e prelievi 
Pre­condizioni: l’utente ha effettuato correttamente il login al sistema, ed appartiene pertanto agli utenti 
registrati 
Post­condizioni per successo: i dati del conto e gli ultimi movimenti vengono mostrati all’utente 
Post­condizioni per fallimento: l’utente visualizza un’opportuna pagina di errore 
Evento innescante: richiesta da parte dell’utente del saldo e/o della cronologia dei movimenti. 

Documento di Analisi – Gruppo Alpha 18
Attore primario: Utente base 

Scenario base 
1. L’utente richiede di visualizzare la pagina riepilogativa del suo conto 
2. Il sistema instaura la connessione con il database degli utenti 
3. Il sistema preleva i dati relativi al conto dell’utente dal database 
4. Il report riepilogativo viene creato e mostrato all’utente 
Scenario alternativo I – errore nella connessione al database 
2. Il sistema non è in grado di effettuare la connessione al database 
3. L’utente riceve notifica dell’avvenuto errore e viene invitato a riprovare più tardi 
Scenario alternativo II – errore nell’interrogazione del database 
3. Si verifica un errore in fase di ottenimento dati dal database (il conto non risulta più valido,   
    esistente, o la richiesta è malformata) 
4. L’utente riceve notifica del problema e viene invitato a riprovare più tardi 

Priorità di sviluppo: medio­bassa 
Frequenza prevista di esecuzione: circa 2 volte al giorno per ogni utente

Diagramma di attivià:

 2.3.12  Visualizzare portafoglio 

Descrizione:  visualizzazione del portafoglio titoli o del portafoglio valute di un utente registrato. All’utente 
viene presentato l’elenco dei titoli (o delle valute) in suo possesso, ciascuno con relativo prezzo di acquisto, 
valore attuale e variazione percentuale e assoluta tra i due. Inoltre viene visualizzato l’elenco degli ordini di 
acquisto o vendita “pendenti”, cioè non ancora effettuati dal sistema. 
Pre­condizioni: l’utente deve aver effettuato correttamente il login. 
Post­condizioni per successo: il portafoglio viene mostrato all’utente. 
Post­condizioni per fallimento: l’utente visualizza una pagina di notifica degli eventuali errori, oppure il 

Documento di Analisi – Gruppo Alpha 19
portafoglio viene visualizzato in maniera parziale. 
Evento innescante: un utente registrato richiede la visione del suo portafoglio. 
Attore primario: Utente base 
Include il caso d’uso: Ottieni quotazione 

Scenario base – portafoglio titoli 
1. L’utente chiede di visualizzare il suo portafoglio titoli 
2. Il sistema instaura la connessione col database 
3. Il DB restituisce i dati sui titoli posseduti dall’utente 
4. Il DB restituisce i dati sugli ordini ancora inevasi inseriti dall’utente 
5. <<include>> Ottieni quotazione: per ogni titolo, il sistema interroga il database delle quotazioni e 
    ne ottiene il valore attuale 
6. Il sistema calcola le variazioni tra valori d’acquisto e valori attuali 
7. I dati sono presentati all’utente in modo organico 
Variante – portafoglio valute 
1a. L’utente chiede di visualizzare il suo portafoglio valute 
3a. Il DB restituisce i dati sulle valute possedute dall’utente 
5a. <<include>> Ottieni quotazione: per ogni valuta, il sistema interroga il database delle quotazioni 
    e ne ottiene il tasso di cambio attuale rispetto alla valuta dell’utente 
Scenario alternativo I – errore nella connessione al database 
2. Il sistema non è in grado di instaurare la connessione col DB 
3. L’utente riceve notifica dell’avvenuto errore 
Scenario alternativo II – utente non riconosciuto correttamente 
3.Si verifica un problema nell’interrogazione del DB (errore del DBMS, richiesta non valida) 
4.L’utente riceve notifica dell’avvenuto errore 
Scenario alternativo III – impossibile ottenere valori attuali 
5. Non è possibile ottenere il valore attuale del titolo o della valuta 
6. L’utente visualizzerà nel portafoglio soltanto i valori di acquisto 
Scenario alternativo IV – titolo non più esistente 
5. Un titolo del portafoglio risulta non essere più esistente 
6. L’utente visualizza il valore di acquisto del titolo in questione e un avviso circa la sua cessata     
    disponibilità. In caso di vendita del titolo, questa avverrà a prezzo pari a zero 

Priorità di sviluppo: media 
Frequenza prevista di esecuzione: circa 10 volte al giorno per ogni utente

Diagramma di attivià:

Documento di Analisi – Gruppo Alpha 20
 2.3.13  Inserire ordine di acquisto titolo/valuta 

Descrizione: inserimento da parte dell’utente di un ordine di acquisto di un titolo azionario o di una valuta 
straniera. Nel caso dei titoli azionari l’utente può specificare, per un titolo presente in listino, la quantità da 
acquistare, il prezzo massimo a cui intende acquistare, ed eventualmente la scadenza dell’ordine. L’ordine 
viene quindi inserito nel portafoglio dell’utente come “pendente”, e preso in consegna dal gestore degli ordini. 
Nel caso di acquisto di valuta, invece, l’utente specifica solo la quantità, e l’ordine viene inserito nel sistema. 
Pre­condizioni: l’utente deve aver effettuato il login; il titolo o la valuta richieste devono essere tra quelli 
presenti in listino. 
Post­condizioni per successo: l’ordine di acquisto è stato inserito nel sistema. 
Post­condizioni per fallimento: l’ordine non viene inserito nel sistema e l’utente riceve una notifica di 
errore. 
Evento innescante: richiesta di inserimento dell'ordine di acquisto da parte dell'utente. 
Attore primario: Utente base 
Include il caso d’uso: Aggiornare portafoglio 

Scenario base – acquisto azione 
1.Selezionato un titolo azionario, l’utente chiede di inserire un ordine di acquisto 
2.L’utente inserisce i dati relativi all’ordine: 
a. Quantità 
b. Prezzo massimo 
c. Scadenza (può essere immediata) 

Documento di Analisi – Gruppo Alpha 21
3.L’utente conferma l’operazione 
4.<<include>> Aggiornare portafoglio: l’ordine viene inserito come “pendente” nel portafoglio     
   dell’utente 
5.L’utente riceve notifica dell’avvenuto inserimento dell’ordine
Variante – acquisto valuta 
1a. Selezionata una valuta straniera, l’utente chiede di inserire un ordine di acquisto 
2a. L’utente inserisce i dati relativi all’ordine: 
a. Quantità 
Scenario alternativo I ­ dati mancanti 
2.L’utente dimentica di inserire uno o più dati indispensabili sull’ordine. 
3.L’utente riceve notifica dell’errore e viene invitato a inserire i valori mancanti 
Scenario alternativo II ­ errore nell'aggiornamento 
4.Errore nell’aggiornamento del portafoglio 
5.L’utente riceve notifica dell’errore e l’ordine non viene inserito nel sistema 
Scenario alternativo III ­ annullamento dell'utente 
3.L'utente non conferma l'operazione 
4.L'operazione è annullata e l'utente visualizza la home page

Priorità di sviluppo: medio­alta 
Frequenza prevista di esecuzione: circa 10 volte al giorno per utenti base, molto di più per traders avanzati

Diagramma di attivià: 

Documento di Analisi – Gruppo Alpha 22
 2.3.14  Inserire ordine di vendita titolo/valuta 

Descrizione: inserimento da parte dell’utente di un ordine di vendita di un titolo azionario o di una valuta 
straniera. Nel caso dei titoli azionari l’utente può specificare, per un titolo presente in listino, la quantità da 
acquistare, il prezzo minimo a cui intende vendere, ed eventualmente la scadenza dell’ordine. L’ordine viene 
quindi inserito nel portafoglio dell’utente come “pendente”, e preso in consegna dal gestore degli ordini. Nel 
caso di vendita di valuta, invece, l’utente specifica solo la quantità, e l’ordine viene inserito nel sistema. 
Pre­condizioni: l’utente deve aver effettuato il login; il titolo o la valuta richieste devono essere tra quelli 
presenti nel portafoglio titoli/azioni dell'utente stesso. 
Post­condizioni per successo: l’ordine di vendita è stato inserito nel sistema. 
Post­condizioni per fallimento: l’ordine non viene inserito nel sistema e l’utente riceve una notifica di 
errore. 
Evento innescante: richiesta di inserimento dell'ordine di vendita da parte dell'utente. 
Attore primario: Utente base 
Include il caso d’uso: Aggiornare portafoglio 

Scenario base – vendita azione 
1. Selezionato un titolo azionario presente nel portafoglio, l’utente chiede di inserire un ordine di   
    vendita 
2. L’utente inserisce i dati relativi all’ordine: 
a. Quantità 
b. Prezzo minimo 
c. Scadenza (può essere immediata) 
3. L’utente conferma l’operazione 
4. <<include>> Aggiornare portafoglio: l’ordine viene inserito come “pendente” nel portafoglio   
    dell’utente 
5. L’utente riceve notifica dell’avvenuto inserimento dell’ordine 

Variante – vendita valuta 
1a. Selezionata una valuta presente nel suo portafoglio, l’utente chiede di inserire un ordine di   
      vendita. 
2a. L’utente inserisce i dati relativi all’ordine: 
a. Quantità 
Scenario alternativo I ­ dati mancanti 
2. L’utente dimentica di inserire uno o più dati indispensabili sull’ordine. 
3. L’utente riceve notifica dell’errore e viene invitato a inserire i valori mancanti 
Scenario alternativo II ­ errore nell'aggiornamento 
4.Errore nell’aggiornamento del portafoglio 
5.L’utente riceve notifica dell’errore e l’ordine non viene inserito nel sistema 
Scenario alternativo III ­ annullamento dell'utente 
3.L'utente non conferma l'operazione 
4.L'operazione è annullata e l'utente visualizza la home page 

Priorità di sviluppo: medio­alta 
Frequenza prevista di esecuzione: circa 10 volte al giorno per utenti base, molto di più per traders avanzati

Diagramma di attivià:

Documento di Analisi – Gruppo Alpha 23
 2.3.15  Cancellare ordine 

Descrizione:  cancellazione   di  un  ordine  precedentemente  inserito  dall'utente  e  non  ancora   eseguito  dal 
gestore degli ordini per il mancato verificarsi delle condizioni di soddisfacibilità o per la scadenza del termine 
temporale massimo.
Pre­condizioni: l'utente deve aver effettuato il login, il portafoglio dell'utente contiene almeno un ordine non 
ancora eseguito.
Post­condizioni per successo: l'ordine viene cancellato.
Post­condizioni per fallimento: nessun ordine viene cancellato 
Evento innescante: Richiesta di cancellazione di un ordine pendente da parte dell'utente 
Attore primario: Utente base 
Include il caso d’uso: Aggiornare portafoglio 

Scenario base 
1. L'utente seleziona uno degli ordini pendenti presenti nel suo portafoglio e ne richiede la 
    cancellazione 
2. Se non presente, si instaura la connessione col database 
3. L'utente conferma l'operazione 

Documento di Analisi – Gruppo Alpha 24
4. <<include>> Aggiornare portafoglio: l'ordine viene cancellato dal portafoglio 
5. L'utente riceve notifica della corretta esecuzione dell'operazione 
Scenario alternativo I ­ non è possibile effettuare la connessione al database 
2. Si riprova per un determinato numero di volte 
3. Se i tentativi falliscono, si avvisa l'utente con un appropriato messaggio d'errore 
Scenario alternativo II ­ l'utente annulla l'operazione 
3. L'operazione non viene effettuata 
4. L'utente visualizza nuovamente il suo portafoglio con la lista degli ordini pendenti 
Scenario alternativo III ­ errore nell'aggiornamento del portafoglio 
4. Si verifica un problema nell'aggiornamento del portafoglio utente 
5. L'operazione viene annullata e viene restituito un appropriato messaggio d'errore 

Priorità di sviluppo: medio­bassa 
Frequenza prevista di esecuzione: poche volte al giorno per utenti avanzati, presumibilmente molto 
raramente per utenti base.

Diagramma di attivià:

 2.3.16  Visualizzare riepilogo ordini 

Descrizione:  visualizzazione   degli   ordini   precedentemente   inseriti   dall'utente,   e   quindi   presenti   nel 
portafoglio, ma non ancora eseguiti dal sistema per il mancato verificiarsi delle condizioni di soddisfacibilità. 
Pre­condizioni: l'utente deve aver effettuato il login.

Documento di Analisi – Gruppo Alpha 25
Post­condizioni per successo: l'utente visualizza il report riassuntivo dello stato dei suoi ordini. 
Post­condizioni per fallimento: l'utente visualizza un messaggio d'errore. 
Evento innescante: l'utente chiede di visualizzare l'elenco degli ordini non ancora evasi dal sistema 
Attore primario: Utente base 

Scenario base 
1. L'utente richiede il riepilogo degli ordini da lui inseriti 
2. Si instaura, se assente, la connessione al database 
3. Il sistema mostra all'utente l'elenco degli ordini (di acquisto/vendita di titoli/valute) che il sistema ha 
    preso in carico ma non ha ancora eseguito 
Scenario alternativo I ­ non è possibile effettuare la connessione al database 
2. Si riprova per un determinato numero di volte 
3. Se i tentativi falliscono, si avvisa l'utente con un appropriato messaggio d'errore 
Scenario alternativo II ­ problema dell'interrogazione del database 
3. Il sistema non trova i dati dell'utente 
4. L'utente viene avvisato dell'errore e invitato a riprovare più tardi 

Priorità di sviluppo: medio­bassa 
Frequenza prevista di esecuzione: poche volte al giorno per ogni utente

Diagramma di attivià:

 2.3.17  Ottenere quotazione 

Descrizione: costituisce le funzionalità di interfaccia tra il database delle quotazioni ed il resto del sistema. 
Restituisce l'ultima quotazione disponibile relativa ad un determinato titolo o valuta, di cui è disponibile il 
codice identificativo. Eventualmente possono essere restituiti altri dati, come il volume scambiato o l'orario a 
cui si riferisce l'ultima quotazione. 
Pre­condizioni: il sistema di trading è in funzione. 
Post­condizioni per successo: i dati richiesti vengono ottenuti e restituiti al caso d'uso chiamante. 

Documento di Analisi – Gruppo Alpha 26
Post­condizioni per fallimento: viene restituito un codice d'errore con relative informazioni. 
Evento innescante: richiesta da parte di un altro caso d'uso in cui è incluso. Gli utenti, anche per ragioni di 
sicurezza,   non   possono   accedere   direttamente   a   questa   funzionalità,   che   non   restituisce   un   output 
visualizzabile. 
Attore primario: DB Titoli. 
Esteso da: Ottenere dati storici (punto di estensione: viene richiesto un set di quotazioni in un intervallo 
temporale specificato, piuttosto che l'ultima disponibile) 
Incluso da: Visualizzare portafoglio, Gestisci portafoglio virtuale, Visualizzare quotazione titolo/valuta 

Scenario base ­ ottenere quotazione istantanea azione 
1. Viene ricevuta la richiesta per un titolo azionario 
2. Se non presente, si instaura la connessione con il database 
3. Si verifica l'esistenza del codice fornito e il mercato a cui appartiene 
4. Si ottengono gli orari di apertura del mercato 
5. Si verifica che l'orario attuale è all'interno dell'orario di apertura del mercato 
6. Si verifica che la differenza tra orario attuale e orario dell'ultima quotazione è inferiore ad un limite 
    stabilito, che garantisce che il dato sia aggiornato e che dunque il demone di aggiornamento sta 
    funzionando 
7. Si restituiscono la quotazione ed altri dati, qualora richiesti 

Variante ­ ottenere quotazione istantanea valuta 
1. Viene ricevuta la richiesta per un tasso di cambio tra due valute 
2. Se non presente, si instaura la connessione con il database 
3. Si verifica l'esistenza del codice identificativo fornito 
4. Si restituiscono il tasso di cambio e altri dati aggiuntivi, qualora richiesti 
Scenario alternativo I ­ orario attuale al di fuori dall'orario di apertura del mercato 
7a. Si restituiscono il prezzo di riferimento (di fine giornata) e altri dati, se richiesti 
Scenario alternativo II ­ quotazione non aggiornata 
7. Viene avvertito l'amministratore del possibile malfunzionamento del demone di aggiornamento 
8. Viene restituito un codice d'errore opportuno 
Scenario alternativo III ­ non è possibile effettuare la connessione al database 
2. La connessione viene ritentata un numero prestabilito di volte 
3. Se non ha successo, si restituisce un codice d'errore opportuno 
Scenario alternativo IV ­ codice non trovato o errore nell'interrogazione 
3. Errore nell'interrogazione del database: la richiesta è malformata o il titolo non più esistente 
4. La richiesta non può essere soddisfatta e viene restituito un messaggio d'errore 

Priorità di sviluppo: alta 
Frequenza prevista di esecuzione: centinaia per ogni ciclo di aggiornamento del database delle quotazioni 
Note: massima ottimizzazione richiesta

Diagramma di attivià:

Documento di Analisi – Gruppo Alpha 27
 2.3.18  Aggiornare portafoglio 

Descrizione: Il portafoglio consiste essenzialmente in un elenco di titoli con associato il valore di acquisto ed 
altre informazioni, suddivisi in "posseduti" e "ordini" (quelli per cui è stata ordinata la vendita o l'acquisto). La 
procedura riceve in input le informazioni sul titolo (o valuta) da trattare e sull'azione da compiere, e si occupa 
di   aggiungerlo   o   eliminarlo   dall'elenco   dei   titoli   posseduti   o   in   attesa.   Quando   un   titolo   entra   o   esce 
dall'elenco di quelli posseduti, viene aggiornato il conto dell'utente, calcolando guadagni o perdite. 
Pre­condizioni: lo stato del portafoglio di un utente è cambiato in seguito all'inserimento, alla cancellazione 
o all'esecuzione di ordini; il titolo/valuta in questione appartiene a quelli contrattabili dall'utente. 
Post­condizioni per successo: il portafoglio dell'utente è stato aggiornato conformemente alle sue richieste 
o allo stato di esecuzione degli ordini. Se necessario, anche il conto corrispondente è stato aggiornato. 
Post­condizioni per fallimento: viene restituito un opportuno codice d'errore con relative informazioni o, a 
seconda dei casi, il problema viene notificato all'amministratore. 
Evento innescante: richiesto da un altro caso d'uso da cui è incluso 
Attore primario: DB Conti­Portafogli 
Incluso da: Inserire ordine acquisto titoli/valute, Inserire ordine vendita titoli/valute, Cancellare ordine 

Documento di Analisi – Gruppo Alpha 28
Include: Aggiornare conto 

Variante I ­ aggiunta ordine 
1.Vengono ricevuti gli estremi dell'ordine (tipo: acquisto/vendita, titolo, prezzo, scadenza) 
2.Se non presente, si instaura la connessione al database 
3.Le informazioni sul titolo/valuta in questione vengono inserite nella lista degli ordini in sospeso 

Variante II ­ cancellazione ordine 
1. Viene ricevuto il codice identificativo dell'ordine da rimuovere 
2. Se non presente, si instaura la connessione al database 
3. L'ordine corrispondente viene rimosso dal portafoglio 
Scenario alternativo ­ cancellazione ordine 
1. Il codice dell'ordine è errato / ordine non trovato 
2. Viene resituito un codice d'errore 

Variante III ­ aggiornamento esecuzione ordine d'acquisto 
1. Vengono ricevuti dal gestore degli ordini i dati sull'ordine appena eseguito (identificativo ordine, 
    quantità, prezzo) 
2. Se non presente, si instaura la connessione al database 
3. <<include>> Aggiornare conto: il conto dell'utente viene aggiornato sottraendo un valore pari a 
    (q.tà acquistata)*(prezzo d'acquisto) 
4. L'ordine d'acquisto pendente viene aggiornato sottraendo la quantità acquistata alla quantità totale 
    richiesta 
5. Se le due quantità coincidono, l'ordine pendente, ora completamente evaso, viene cancellato 
6. Il titolo, con la quantità acquistata e il prezzo, viene aggiunto alla lista dei titoli posseduti 
Variante IV ­ aggiornamento esecuzione ordine di vendita 
1. Vengono ricevuti dal gestore degli ordini i dati sull'ordine appena eseguito (identificativo ordine, 
    quantità, prezzo) 
2. Se non presente, si instaura la connessione al database 
3. <<include>> Aggiornare conto: il conto dell'utente viene aggiornato aggiungendo un valore pari a 
    (q.tà ceduta)*(prezzo di vendita) 
4. L'ordine di vendita pendente viene aggiornato sottraendo la quantità venduta alla quantità totale 
    da vendere 
5. Se le due quantità coincidono, l'ordine pendente, ora completamente evaso, viene cancellato 
6. La quantità posseduta del titolo corrispondente viene aggiornata 
7. Se questa quantità è pari a quella totale, il titolo viene cancellato dal portafoglio 
Scenario alternativo I ­ errore nella connessione al database 
2. La connessione viene ritentata un numero prestabilito di volte 
3. Se non ha successo, viene restituito un messaggio d'errore 
Scenario alternativo II ­ parametri della richiesta non riconosciuti 
1. Viene restituito un codice d'errore con relative informazioni 
Scenario alternativo III ­ errore nell'aggiornamento del conto 
3. L'operazione viene annullata e il portafoglio non viene modificato 
4. Viene restituito un codice d'errore con relative informazioni 

Priorità di sviluppo: alta 
Frequenza prevista di esecuzione: molto alta, fino a decine di volte al giorno per utente

Diagramma di attivià:

Documento di Analisi – Gruppo Alpha 29
 2.3.19  Aggiornare conto 

Descrizione:  il caso d'uso viene attivato in seguito all'esecuzione di un ordine da parte del gestore degli 
ordini, che ne ha già verificato la sua fattibilità economica. In seguito a questo evento, viene aggiornato il 
portafoglio   e   conseguentemente   il   conto   dell'utente,   accreditando   o  addebitando   i  guadagni  o   le   perdite 
dovute alle varie transazioni. 
Pre­condizioni: il conto corrisponde ad un utente registrato del sistema; l'utente corrispondente ha inserito 
in precedenza almeno un ordine; 
Post­condizioni per successo: il conto dell'utente risulta aggiornato 
Post­condizioni per fallimento: viene restituito un messaggio d'errore e il conto rimane nel suo stato 
precedente 
Evento innescante: realizzazione di una transazione economica per un utente (acquisto o vendita 
titoli/valute, depositi, prelievi) 
Attore primario: DB Conti­Portafogli 
Incluso da: Aggiornare portafoglio 

Scenario base 
1.Vengono ricevuti gli estremi dell'conto e l'importo (positivo o negativo) da considerare 
2.Se non presente, si instaura la connessione con il database 
3.L'importo viene sommato (o sottratto) al saldo dell'utente e vengono aggiornate eventuali      
   informazioni ausiliarie (log delle transazioni, ecc..) 
Scenario alternativo I ­ impossibile collegarsi al database 

Documento di Analisi – Gruppo Alpha 30
2. Si ritenta la connessione per un numero predefinito di volte 
3. Se non ha successo, viene restituito un messaggio d'errore 
Scenario alternativo II ­ errore nell'aggiornamento del database 
3. Viene restituito un opportuno codice d'errore e viene annullata la transazione 

Priorità di sviluppo: media 
Frequenza prevista di esecuzione: medio­alta, fino a decine di volte al giorno per utente

Diagramma di attivià:

 2.3.20  Ottenere dati storici 

Descrizione: ottenere dal database e restituire le quotazioni giornaliere relative all'andamento di un titolo (di 
cui è disponibile il codice identificativo) in uno specificato intervallo temporale. Una quotazione giornaliera 
comprende   i   dati:   prezzo   di   apertura   (open),   prezzo   massimo   (high)   ,   prezzo   minimo   (low),   prezzo   di 
chiusura (close) e volume. 
Pre­condizioni: l'intervallo temporale specificato deve essere valido 
Post­condizioni per il successo: i dati richiesti vengono correttamente ottenuti e restituiti. 
Post­condizioni per il fallimento: viene restituito un codice di errore con relative informazioni. 
Evento innescante: è attivato, quando necessario, dal caso d'uso "Analisi tecnica" al fine di disegnare i 
grafici necessari ed effettuare elaborazioni numeriche su serie storiche. 
Attore primario: DB Titoli 
Estende: Ottenere quotazione 
Incluso da: Visualizzare analisi tecnica 

Scenario di base ­ ottenere dati storici 
1. se non già presente, si instaura la connessione al database 
2. si interroga il DB Titoli per verificare l'esistenza del codice fornito e il mercato a cui appartiene 
3. si verifica la validità dell'intervallo temporale 
4. si interroga il DB Titoli sulle quotazioni del titolo nel periodo specificato, ordinate cronologicamente 
5. si restituiscono i dati ottenuti strutturati in modo adeguato 

Documento di Analisi – Gruppo Alpha 31
Variante ­ non sono disponibili quotazioni per l'intero periodo 
5a. si restituiscono i dati disponibili e il periodo temporale effettivo a cui fanno riferimento 

Scenario alternativo – intervallo temporale non valido 
1. viene restituito un codice d'errore opportuno. Il caso d'uso che include questo è responsabile per 
    la visualizzazione del messaggio d'errore all'utente e per la richiesta di inserire un intervallo 
    temporale corretto. 
Scenario alternativo ­ non è possibile effettuare connessione al database 
1. la connessione viene ritentata un numero prestabilito di volte 
2. se non ha successo, si restituisce un codice di errore opportuno 
Scenario alternativo ­ il titolo relativo al codice fornito non è stato trovato 
1. si restituisce un codice di errore opportuno 

Priorità di sviluppo: media 
Frequenza prevista di esecuzione: > 20 volte al giorno. Funzionalità richiesta da utenti avanzati

Diagramma di attivià:

 2.3.21  Gestire portafoglio virtuale 

Descrizione: aggiunta e cancellazione di un titolo all'interno di un portafoglio virtuale, utile sia allo scopo di 
tenere sotto osservazione un insieme di titoli "preferiti" sia di simulare operazioni di acquisto e vendita per 
valutare l'efficacia delle proprie previsioni senza acquistare realmente i titoli e quindi senza movimentare il 
proprio conto corrente. All'utente  viene presentata  una  tabella  riassuntiva molto simile  a  quella del  caso 
d'uso   "Visualizzare   portafoglio".   L'acquisto   e   la   vendita   simulate   sono   gestite   in   modo   elementari:   sono 
possibili solo operazioni sull'intera quantità posseduta e "al meglio", ovvero senza poter definire un prezzo 
massimo d'acquisto / minimo di vendita. 
Pre­condizioni: l'utente deve essere di livello avanzato e deve avere effettuato correttamente il login 
Post­condizioni per il successo: il portafoglio virtuale viene mostrato all'utente / l'ordine di acquisto o 

Documento di Analisi – Gruppo Alpha 32
vendita simulato viene correttamente eseguito 
Post­condizioni per il fallimento: nessuna 
Evento innescante: richiesta da parte dell'utente avanzato 
Attore primario: Utente avanzato 
Include: Ottienere quotazione 

Scenario di base ­ visualizzare portafoglio virtuale 
1. se non già presente, si instaura la connessione al database 
2. si interroga il DB Conti­Portafogli relativamente ai titoli presenti nel portafoglio virtuale 
3. <<include>> Ottieni quotazione: per ogni titolo, il sistema interroga il DB Titoli sull'ultima     
    quotazione disponibile 
4. il sistema calcola le variazioni tra valori d’acquisto e valori attuali 
Scenario alternativo ­ acquisto simulato 
1. l'utente seleziona il titolo da acquistare e ne inserisce la quantità 
2. il DB Titoli verifica l'esistenza del titolo 
3. il titolo viene aggiunto nel DB Conti­Portafogli, associato al portafoglio virtuale dell'utente 

Variante ­ il titolo non è stato trovato o non esistono quotazioni ad esso relative 
3a. viene restituito un opportuno codice di errore 
Scenario alternativo ­ vendita simulata 
1. l'utente seleziona il titolo da vendere 
2. il DB Titoli verifica faccia parte del portafoglio virtuale dell'utente 
3. il titolo viene rimosso dal DB Conti­Portafogli, associato al portafoglio virtuale dell'utente 

Variante ­ il titolo non fa parte del portafoglio virtuale dell'utente 
3a. viene restituito un opportuno codice di errore 
Scenario alternativo ­ non è possibile effettuare connessione al database 
1. la connessione viene ritentata un numero prestabilito di volte 
2. se non ha successo, si restituisce un codice di errore opportuno 

Priorità di sviluppo: bassa 
Frequenza prevista di esecuzione: < 10 volte al giorno

Diagramma di attivià:

Documento di Analisi – Gruppo Alpha 33
 2.3.22  Visualizzare analisi tecnica 

Descrizione: l'utente seleziona un titolo e un intervallo temporale. Il sistema ottiene così dal DB Titoli i dati 
storici e ne effettua una serie di elaborazioni, visualizzando informazioni grafiche e numeriche quali: 
grafici lineari, candlestick e a barre 
rappresentazione di indicatori di trend come trendlines, supporti e resistenze 
medie mobili semplici (MMS), esponenziali (MME) e ponderate (MMP) 
indicatori quali piste cicliche, bande di Bollinger, Difference of Average (DOA) 
Pre­condizioni: l'utente deve essere di livello avanzato e deve avere effettuato correttamente il login 
Post­condizioni per il successo: i grafici e gli indicatori sono correttamente presentati all'utente 
Post­condizioni per il fallimento: viene visualizzato un messaggio di errore 
Evento innescante: richiesta da parte di un utente 
Attore primario: Utente avanzato 
Include: Ottieni dati storici 

Scenario di base ­ visualizzare analisi tecnica 
1. se non già presente, si instaura la connessione al database 
2. si interroga il DB Titoli e si verifica l'esistenza del titolo selezionato 
3. <<include>> Ottieni dati storici: per ogni titolo, il sistema interroga il DB Titoli e ottiene le 
    quotazioni     per il periodo selezionato 
4. viene visualizzato il grafico predefinito (lineare) 
5. l'utente sceglie il tipo di analisi da effettuare 
6. viene visualizzato il risultato dell'elaborazione 

Variante ­ il tipo di analisi non è possibile per il periodo selezionato 
6a. viene visualizzato un messaggio d'errore e invitato l'utente a modificare il periodo con un    
      opportuno suggerimento 

Variante ­ il titolo non è stato trovato o non esistono quotazioni ad esso relative 

Documento di Analisi – Gruppo Alpha 34
3a. viene restituito un opportuno codice di errore 
Scenario alternativo ­ non è possibile effettuare connessione al database 
1. la connessione viene ritentata un numero prestabilito di volte 
2. se non ha successo, si restituisce un codice di errore opportuno 

Priorità di sviluppo: medio­bassa 
Frequenza prevista di esecuzione: > 20 volte al giorno

Diagramma di attivià:

 2.3.23  Aggregare dati storici 

Descrizione: al fine di ottimizzare le risorse del database, fortemente sollecitate dalla quantità di quotazioni 
inserite   periodicamente   nel   sistema,   i   dati   relativi   ad   esse   vengono   aggregati   a   fine   giornata   borsistica 
secondo le seguenti regole: 
le quotazioni intraday vengono eliminate, e sostituite dai prezzi di apertura, chiusura (riferimento), minimo e 
massimo della giornata, ottenuti dal fornitore di dati borsa 
le   quotazioni   giornaliere   vengono   aggregate   settimanalmente   in   quotazioni   mensili,   mediante   media 
ponderata sui volumi 
Pre­condizioni: il mercato borsistico per cui s'effettua l'aggregazione deve essere chiuso, il fornitore dati 
borsa deve essere disponibile e deve poter resituire la quotazione di fine giornata per ogni titolo 
Post­condizioni per il successo: la tabella delle quotazioni intraday deve tornare giornalmente vuota, 
quella delle quotazioni giornaliere deve tornare vuota il primo giorno di ogni mese. 
Post­condizioni per il fallimento: le condizioni per il successo non si verificano 
Evento innescante: la funzionalità viene attivata periodicamente da due timer (a scadenza giornaliera e 
mensile) innescati e controllati dal demone di aggiornamento. 
Attore primario: DB Titoli 

Scenario di base ­ aggregare dati storici 
1. se non già presente, si instaura la connessione al database 
2. si ottengono gli orari di apertura del mercato 
3. si verifica che l'orario attuale non sia all'interno dell'orario di apertura del mercato 
4. si richiede al fornitore dati borsa la quotazione di fine giornata per ogni titolo 
5. si inserisce nella tabella delle quotazioni giornaliere 
6. si verifica se il giorno corrente è quello di fine mese. Se è così, per ogni titolo: 

Documento di Analisi – Gruppo Alpha 35
6.1 si calcola la media ponderata sui volumi 
6.2 si inserisce il dato aggregato nelle quotazioni mensili 
6.3 si svuota la tabella delle quotazioni giornaliere 
Scenario alternativo ­ il mercato è ancora aperto al momento dell'aggregazione 
3. il timer è mal configurato. Si informa l'amministratore del sistema dell'errore 
Scenario alternativo ­ non è possibile effettuare connessione al database 
1. la connessione viene ritentata un numero prestabilito di volte 
2. se non ha successo, si restituisce un codice di errore opportuno 

Priorità di sviluppo: media 
Frequenza prevista di esecuzione: 1 volta al giorno + 1 volta al mese

Diagramma di attivià:

 2.3.24  Aggiornare quotazioni 

Descrizione: le quotazioni dei titoli sono accessibili mediante il fornitore dati di borsa. Per garantire migliori 
prestazioni   ed   evitare   un   sovraccarico   di   richieste   a   questo   servizio,   si   utilizza   una   sorta   di   "cache" 
rappresentata dal DB Titoli che contiene le quotazioni di tutti i titoli trattati ottenuti dal fornitore con cadenza 
periodica, settata a livello di parametri del sistema e fissata a 15min come default. I dati vengono ottenuti 
mediante un parser dei messaggi di risposta ottenuti che funge da interfaccia tra il sistema e il fornitore. 
Pre­condizioni: il mercato borsistico per cui s'effettua l'aggregazione deve essere aperto, il fornitore dati 
borsa deve essere disponibile e deve poter restituire la quotazione istantanea per ogni titolo 
Post­condizioni per il successo: un nuovo record per ogni titolo deve essere aggiunto nella tabella delle 
quotazioni intraday 
Post­condizioni per il fallimento: nessun nuovo record inserito 
Evento innescante: la funzionalità viene attivata periodicamente da un timer innescato e controllato dal 
Demone di Aggiornamento. 

Documento di Analisi – Gruppo Alpha 36
Attore primario: Fornitore dati borsa 

Scenario di base ­ aggiornare quotazioni 
1. se non già presente, si instaura la connessione al database 
2. si richiede al fornitore dati borsa la quotazione istantanea per ogni titolo 
3. si inserisce la quotazione nella tabella delle quotazioni intraday 
Scenario alternativo ­ il mercato è chiuso al momento dell'aggiornamento 
1. il timer potrebbe essere mal configurato. Si informa l'amministratore del sistema del possibile   
    errore 
2. si ottiene e inserisce nel DB Titoli la quotazione giornaliera 
Scenario alternativo ­ non è possibile effettuare connessione al database 
1. la connessione viene ritentata un numero prestabilito di volte 
2. se non ha successo, si restituisce un codice di errore opportuno 
Scenario alternativo ­ non è possibile contattare il fornitore dati borsa o ottenere quotazioni 
aggiornate 
1. si informa l'amministratore del sistema dell'errore 

Priorità di sviluppo: molto alta 
Frequenza prevista di esecuzione: estremamente alta: > 4 volte ogni ora per ogni titolo. Massima 
ottimizzazione richiesta

Diagramma di attivià:

 2.3.25  Eseguire ordini acquisto/vendita 

Descrizione: a intervalli regolari, in linea di principio coincidenti con l'aggiornamento dati borsa e quindi con 
l'ottenimento di nuove quotazioni intra­day, viene verificato se è possibile soddisfare gli ordini pendenti di 
acquisto e vendita. Nell'eseguire gli ordini di acquisto, viene verificato se sul conto ci sono i fondi necessari a 
completare l'operazione. 
Oltre a verificare le condizioni di prezzo minimo e massimo, viene controllato che l'ordine pendente non sia 
giunto a scadenza. In quest'ultimo caso l'ordine viene rimosso. 
Pre­condizioni: l'utente deve aver effettuato correttamente il login, deve avere ordini pendenti e fondi 
sufficienti in caso di ordine di acquisto 

Documento di Analisi – Gruppo Alpha 37
Post­condizioni per il successo: gli ordini vengono evasi, rimossi o rimangono in attesa 
Post­condizioni per il fallimento: viene visualizzato un messaggio di errore 
Evento innescante: timer periodico del demone di aggiornamento. L'utente o altri casi d'uso non possono 
richiamare direttamente questa funzionalità 
Attore primario: Demone di aggiornamento 
Include: Aggiornare portafoglio 

Scenario di base ­ verificare ordini pendenti 
1. se non già presente, si instaura la connessione al database 
2. per ogni utente si ottiene l'elenco degli ordini pendenti 
3. se l'elenco non è vuoto, per ogni ordine: 
3.1 si verifica che l'ordine sia ancora valido (non scaduto) 
3.2 si verifica che le condizioni di acquisto/vendita siano rispettate 
3.3. <<include>> Aggiornare portafoglio ­ si effettua l'ordine 
3.4 si da conferma all'utente con una mail dell'avvenuta esecuzione dell'ordine 
Variante ­ eseguire ordine d'acquisto 
3.2a si verifica che il prezzo di acquisto stabilito sia minore o uguale alla quotazione corrente 
3.3a si calcola l'importo totale richiesto per l'operazione 
3.4a si verifica che l'importo sia disponibile sul conto corrente 

Variante ­ eseguire ordine di vendita 
3.2b si verifica che il prezzo di vendita stabilito sia maggiore o uguale alla quotazione 
         corrente 
Scenario alternativo ­ ordine corrente scaduto 
1. l'ordine viene cancellato 
2. si informa l'utente con una mail che non è stato possibile effettuare l'ordine d'acquisto nei tempi 
    previsti 
Scenario alternativo ­ disponibilità del conto non sufficiente ad effettuare operazione di acquisto 
1. l'ordine viene cancellato 
2. si informa l'utente con una mail che i fondi sul conto corrente sono esauriti 
Scenario alternativo ­ non è possibile effettuare connessione al database 
1. la connessione viene ritentata un numero prestabilito di volte 
2. se non ha successo, si restituisce un codice di errore opportuno 

Priorità di sviluppo: medio­alta 
Frequenza prevista di esecuzione: pari (o superiore) alla frequenza di aggiornamento titoli

Diagramma di attivià:

Documento di Analisi – Gruppo Alpha 38
Documento di Analisi – Gruppo Alpha 39
 3  Classi
 3.1  Introduzione

In   questa   sezione   del   documento   prendiamo   in   esame   una   vista   strutturale   statica   del   sistema, 
descritta   mediante   il   diagramma   delle   classi,   che   fornisce   una   rappresentazione   d'insieme   delle   entità 
principali, delle loro proprietà e delle relazioni che le collegano. 
Nello specifico, quindi, il seguente diagramma illustra le classi  entity, che compongono il  modello 
statico del sistema nel rispetto del pattern architetturale MVC (Model View Controller). La descrizione delle 
singole classi si limita all'elencazione dei loro principali attributi, mentre il dettaglio dei metodi (così come le 
classi boundary e control) viene rimandato alla fase di progettazione.
Di   seguito   sono   riportate   le   note   esplicative   per   una   più   agevole   comprensione   delle   classi   più 
importanti.

Documento di Analisi – Gruppo Alpha 40
Documento di Analisi – Gruppo Alpha 41
 3.2  Dettaglio delle classi

 3.2.1  Utente

 3.2.1.1  Attributo “Tipo”
Descrizione: contiene una informazione che individua la tipologia a cui appartiene l'utente.
Possibili valori: 
● Guest
● Amministratore
● Utente base
● Utente avanzato 
vedi casi d'uso per spiegazioni dettagliate.
Scelte   progettuali:   sì   è   deciso   di   evitare   la   generalizzazione   della   classe   Utente,   poiché   le 
differenze tra le classi figlie sono minime (almeno in questa fase, in cui è necessario definire i soli 
attributi).

 3.2.1.2  Associazioni con “Ordine”, “Conto” e “Portafoglio”.
Scelte progettuali: per tutte e tre le associazioni si realizzano delle relazioni parziali. Infatti per un 
utente (Guest ad esempio) non è detto che esista un Conto associato, così neanche un Ordine o 
un Portafoglio.

 3.2.2  Ordine

 3.2.2.1  Attributo “Tipo”
Descrizione: contiene una informazione che individua il tipo di ordine in questione

Documento di Analisi – Gruppo Alpha 42
Possibili valori:
● Acquisto al meglio
● Acquisto con prezzo massimo (stop­order)
● Vendita al meglio
● Vendita a guadagno minimo (take­profit)
● Vendita a perdita massima (stop­loss)

 3.2.2.2  Attributo “Stato”
Descrizione: contiene un dato che individua lo stato dell'ordine
Possibili valori:
● Da   concordare:  indica   che   l’ordine   è   stato   ricevuto   dal   sistema   e   che   deve   essere 
accordato per l’immissione sul mercato
● Immesso: indica che l’ordine è stato inviato con successo sul mercato. 
● Eseguito: quando il contratto (di acquisto o vendita) è stato concluso nel mercato. 
● Eseguito   parziale:  indica   che   l’ordine   è   stato   eseguito   solo   in   parte   e   che   sul   mercato 
rimane la parte rimanente in attesa di essere eseguita. 
● Rifiutato: l’ordine è stato rifiutato dal broker online, di solito perché non soddisfa i requisiti 
richiesti (quantità, disponibilità fondi). 
● Revocato: l’ordine è stato cancellato dall’utente. 
● Scaduto: l’ordine ha raggiunto il termine di validità senza essere stato eseguito e quindi è 
stato rimosso dal mercato.

 3.2.3  Movimento

 3.2.3.1  Attributo “Data Valuta”
Descrizione: giorno a partire dal quale l'importo di un operazione è effettivamente disponibile. Può 
essere differente dall'attributo data, che indica la data di contabilizzazione dell'operazione stessa. 
Questa discrepanza genera problemi per quanto riguarda il calcolo degli interessi e la valutazione 
di scoperto sul conto corrente. 

 3.2.3.2  Associazione con “Compravendita”
Descrizione:  una   compravendita   di   titoli   (azioni   o   valute)   deve   necessariamente   generare   un 
movimento finanziario sul conto corrente. Questa è tuttavia una associazione parziale, in quanto un 
movimento  può non essere associato ad una  compravendita  di  titoli,  ma ad una operazione di 

Documento di Analisi – Gruppo Alpha 43
diversa natura (prelevamento, versamento, addebito ritenute fiscali, bonifici ecc.)

 3.2.4  Conto

 3.2.4.1  Attributo “Regime fiscale”
Descrizione: valore che individua se il regime fiscale con cui opera il conto corrente, secondo la 
normativa vigente sulla tassazione delle rendite finanziarie del 1998 (la cosiddetta "Riforma sul 
Capital  Gain").   La  scelta,   effettuata  dall'utente  in  fase   di  apertura  del  conto  corrente,  implica  il 
calcolo e l'applicazione o meno della ritenuta fiscale del 12,50% sulle rendite da compravendita di 
azioni e valuta.
Possibili valori:
● Regime   ordinario   (dichiarativo):   il   sistema   non   applicherà   nessuna   ritenuta.   L'utente 
provvederà autonomamente a inserire la rendita nella propria dichiarazione dei redditi.
● Regime amministrato: il sistema applicherà la ritenuta fiscale del 12,50%

 3.2.4.2  Attributo “Valuta di riferimento”
Descrizione: indica la valuta in cui è tenuto il conto corrente. Influenza su valori visualizzati in tutti i 
movimenti, nonché il controvalore corrispondente ad una certa quotazione di una valuta.

 3.2.4.3  Attributi derivati
Il saldo è un attributo derivato che si ottiene mediante somma di tutti gli importi dei movimenti in 
dare e differenza con la somma di tutti gli importi in avere.

 3.2.4.4  Associazione con “Movimento”
Scelte progettuali:  si suppone la relazione di tipo completa, ovvero ad ogni conto corrisponde 
almeno uno (o più) movimenti. Questo perché la costituzione del conto avviene con un versamento 
iniziale e dunque c'è sempre almeno un movimento.

 3.2.5  Portafoglio

Nota:  la   classe   portafoglio   e   le   sue   classi   derivate   non   hanno   attributi   specifici.   Tuttavia   la 

Documento di Analisi – Gruppo Alpha 44
generalizzazione   è   giustificata   dal   numero   di   metodi   che   verranno   ad   essa   associati   e 
opportunamente ridefiniti nelle classi figlie.

 3.2.5.1  Associazione con “Utente”
Descrizione:  l'associazione è di tipo parziale. Non necessariamente un utente avrà associati dei 
portafogli (ad esempio per l'utente guest) così come non necessariamente ne avrà associati 3 (ad 
esempio l'utente base non può utilizzare il portafoglio virtuale).Dunque possono essere associati 
ad ogni utente da 0 a 3 portafogli.

 3.2.6  Titolo

Descrizione: è la classe centrale di tutto il sistema. Contiene informazioni descrittive su un titolo 
(azione o valuta) come il nome e il codice di riferimento. Inoltre, attraverso le sue associazioni, 
contiene   dei   riferimenti   al   segmento   (e   quindi   al   mercato)   a   cui   appartiene   nonché   all'ultima 
quotazione per esso disponibile.

 3.2.6.1  Aggregazione di “Quotazione”
Scelte progettuali: si è scelto di definire l'associazione tra classe Titolo e quella Quotazione come 
una   aggregazione   mediante   il   ruolo   “è   la   più   recente   disponibile”.   Dunque   in   Titolo   a   livello 
implementativo sarà riportato un attributo di nome UltimaQuotazione, di tipo Quotazione. Si è posta 
in   essere   questa   scelta   poiché   le   quotazioni   più   vecchie,   non   associate   al   titolo   come 
UltimaQuotazione, continuano ad esistere come quotazioni storiche.

 3.2.7  Quotazione

Documento di Analisi – Gruppo Alpha 45
Descrizione: rappresenta il prezzo di un titolo (azione o valuta) ottenuta attraverso il fornitore dati 
borsa e archiviata nel DB Titoli (vedi casi d'uso)
Scelte progettuali: si è scelto di effettuare le seguenti generalizzazioni:
● Quotazione → Quotazione Azione / Quotazione Valuta
in quanto la quotazione di una azione contiene un numero assai superiore di attributi,  
irrilevanti per la quotazione di una valuta (espressa dal solo tasso di cambio, equivalente 
del prezzo di una azione)
● Quotazione Azione → Quotazione di fine giornata
in quanto rispetto alle quotazioni intraday per quelle di fine giornata si aggiungono due  
attributi, prezzo di apertura e prezzo di chiusura. Questa generalizzazione è utile durante 
l'elaborazione di certi andamenti (grafici o indicatori) che non possono essere calcolati in 
intraday   ma   richiedono   necessariamente   le   quotazioni   di   fine   giornata   (un   grafico  
candlestick ad esempio)

 3.2.7.1  Attributi di “Quotazione Azione”
Prezzo il prezzo di riferimento (intraday o di fine giornata) a cui una azione viene negoziata. A fine 
giornata diventa “prezzo ufficiale” ovvero media ponderata dei prezzi registrati durante  
una  seduta borsistica tenuto conto dei rispettivi volumi di negoziazione.
DenaroLivello di prezzo a cui i compratori di un titolo sono disposti ad acquistare dai venditori. In 
inglese bid.
Lettera Livello di prezzo a cui i venditori di un titolo sono disposti a vendere ai compratori. In  
inglese  ask.
Min Il più basso livello di prezzo registrato nell'intervallo.
Max Il più alto livello di prezzo registrato nell'intervallo.
Volumi Numero di negoziazioni effettuate espresso in quantità di titoli nell'intervallo.

 3.2.7.2  Attributi di “Quotazione di fine giornata”
Apertura Prezzo unico stabilito al termine della fase d’asta iniziale che apre le contrattazioni 
quotidiane in Borsa.
Chiusura Ultimo prezzo di giornata. In inglese “Closing Sale”.
Riferimento  Prezzo di tendenza della seduta borsistica, è in media ponderata dell’ultimo 10% di 
contrattazioni in termini di volumi.

 3.2.8  Compravendita

Descrizione: è una classe associativa tra Titolo e Descrizione. Contiene informazioni sull'avvenuto 
acquisto   o   vendita   di   un   titolo   (azione   o   valuta)   come   data,   ora,   importo   (totale)   e   quantità 
acquistata.

Documento di Analisi – Gruppo Alpha 46
 3.2.8.1  Associazione con “Quotazione valuta”
Descrizione:  durante   l'acquisto   di   un   titolo   quotato   in   un   mercato   avente   valuta   di   riferimento 
differente da quella associata al conto, è necessario memorizzare il tasso di cambio in vigore al 
momento dell'acquisto, in modo da poter calcolare i profitti realizzati al netto delle variazioni del 
tasso di cambio.
Scelte   progettuali:  l'associazione   è   di   tipo   parziale,   in   quanto   ad   una   quotazione   valuta   non 
corrisponde necessariamente una compravendita (mentre è vero il contrario).

 3.2.9  Indice

Descrizione: rappresenta un insieme di titoli su cui è applicata una certa formula per ricavare un 
indicatore di riferimento.
Scelte progettuali:  è una relazione di tipo parziale, in quanto non necessariamente un titolo fa 
parte di un indice. Tuttavia è di tipo molti­a­molti, visto che un titolo può far parte di più indici e, 
ovviamente, un indice è composto da più titoli.

 3.2.9.1  Attributi derivati
Il valore di riferimento dell'indice, espresso in forma percentuale o assoluta, è un attibuto derivato 
ottenuto attraverso  un  metodo che  sarà dettagliato  in  fase  di  progetto e che  applica  una  certa 
formula all'elenco dei titoli facenti parte dell'indice.

 3.2.10  Mercato

Descrizione: rappresenta una sottodivisione di una sede borsisitica nel mondo. Ad esempio l'MTA 
di Piazza Affari di Milano, lo Small Cap Market del NASDAQ di New York ecc.

 3.2.10.1  Composizione di “Segmento”
Ogni mercato è solitamente composto da più segmenti in cui i titoli vengono raggruppati a seconda 
di   determinati   criteri   (quasi  sempre   la   capitalizzazione   delle   imprese).   Ad   esempio,   per   quanto 
riguarda  l'MTA   di  Piazza  Affari,  ci  sono   i  segmenti  Blue   Chip,  Star  e  Standard  (classe  1  e  2). 
Questa suddivisione è necessaria perché ogni mercato ha degli orari di contrattazione e di after­
hour differenti.

Documento di Analisi – Gruppo Alpha 47
 3.2.11  Segmento

Descrizione: ciascuna delle parti da cui è composto un mercato. Solitamente la suddivisione dei 
titoli in segmenti è dettata dalla dimensione (in termini di capitalizzazione) delle imprese.

 3.2.11.1  Attributo “Calendario Standard”
Descrizione: è una struttura che mantiene informazioni relative agli orari di apertura del segmento 
nei vari  giorni  della   settimana.   Per  alcuni  giorni  particolari,   ad   esempio   le  fesitività,   potrebbero 
essere   previste   delle   chiusure   straordinarie.   La   rappresentazione   di   queste   eccezioni   viene 
derogata alla classe “Calendario festivi”.

 3.2.12  Calendario festivi

Descrizione: è una struttura che mantiene informazioni sui giorni di chiusura di un certo segmento.

 3.2.12.1  Attributi “ora inizio” e “ora fine”
Descrizione:   talvolta   la   chiusura   della   borsa   interessa   solo   una   certa   parte   della   giornata.   Per 
questo motivo i due orari specificano esattamente da che ora a che ora il segmento rimarrà chiuso.

 3.2.13  Andamento

Descrizione:  rappresenta un raggruppamento di quotazioni, in un certo periodo temporale, che 
costituiscono l'insieme di dati su cui si basa il calcolo di un indicatore o la visualizzazione di un 
grafico.

Documento di Analisi – Gruppo Alpha 48
 3.2.14  Grafico

Descrizione: è la visualizzazione grafica di un andamento, ovvero di una serie di quotazioni riferite 
ad un certo periodo.

 3.2.14.1  Associazione ricorsiva
Scelte progettuali:  la visualizzazione grafica dell'andamento di un titolo può essere confrontata 
con  il grafico  di un altro  titolo.  Per questo  motivo viene  prevista una  associazione  ricorsive  tra 
grafici mostrati contemporaneamente in una stessa visualizzazione.

 3.2.14.2  Attributo “tipo”
Descrizione: indica il tipo di grafico visualizzato tra i tipi possibili implementati.
Possibili valori: in prima battuta si prevede saranno implementati grafici di tipo:
● lineare
● candlestick 
● a barre

 3.2.15  Indicatore

Descrizione:  è   un   valore   numerico,   o   una   serie   di   valori   numerici,   calcolati   matematicamente 


mediante delle formule, che visualizzano un certo aspetto dell'analisi tecnica di un titolo.

 3.2.15.1  Attributo “tipo”
Descrizione: indica il tipo di indicatore calcolato ed eventuualmente visualizzato.
Possibili valori: in prima battuta si prevede saranno implementati indicatori di tipo:
● trendlines
● supporti e resistenze 

Documento di Analisi – Gruppo Alpha 49
● medie mobili semplici (MMS), esponenziali (MME) e ponderate (MMP) 
● piste cicliche
● bande di Bollinger
● Difference of Average (DOA) 

Documento di Analisi – Gruppo Alpha 50