Alphatrading - Analysis & Modelling Document

  • Uploaded by: Emanuele Mottola
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Alphatrading - Analysis & Modelling Document as PDF for free.

More details

  • Words: 11,087
  • Pages: 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. <> 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. <> 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. <> 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. <> 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. <> 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. <> 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.<> 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. <> 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. <> 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. <> 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. <> 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. <> 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. <> 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. <> 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

Related Documents


More Documents from ""