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 ContiPortafogli .........................................................................................................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 AZ .................................................................................................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 ContiPortafogli.
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 ContiPortafogli 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 (wellformed).
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 intraday, 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. Precondizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet. Postcondizioni per il successo: le credenziali inserite sono corrette, si raggiunge la pagina iniziale relativa all'utente Postcondizioni 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 ContiPortafogli 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 Contiportafogli 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 Contiportafogli 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: mediobassa 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 Precondizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet Postcondizioni per il successo: l'utente crea un nuovo account e può effettuare il primo login. Postcondizioni 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 ContiPortafogli 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 Contiportafogli 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 Contiportafogli 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 Precondizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet Postcondizioni per il successo: vengono visualizzate le informazioni richieste. Postcondizioni 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: medioalta 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. Precondizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet. Postcondizioni per il successo: vengono visualizzate le informazioni richieste. Postcondizioni 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: medioalta 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 Precondizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet. Postcondizioni per il successo: vengono visualizzate le informazioni richieste. Postcondizioni 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 AZ Descrizione: visualizzare il listino dei titoli azionari di un determinato mercato in ordine alfabetico Precondizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet. Postcondizioni per il successo: vengono visualizzate le informazioni richieste. Postcondizioni 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 AZ 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 Precondizioni: connessione internet funzionante, sito web attivo e raggiungibile via internet Documento di Analisi – Gruppo Alpha
12
Postcondizioni per il successo: viene visualizzato l'elenco dei titoli che contengono la stringa cercata. Postcondizioni 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. Precondizioni: l'utente ha effettuato con successo il login come amministratore. Postcondizioni per il successo: viene modificato l'elenco dei titoli che appartengono all'indice in considerazione. Postcondizioni 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. Precondizioni: l'utente ha effettuato con successo il login come amministratore. Postcondizioni per il successo: viene modificato l'orario di apertura/chiusura dei mercati. Postcondizioni 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 Precondizioni: l'utente ha effettuato con successo il login come amministratore. Postcondizioni per il successo: viene modificato l'elenco dei titoli Postcondizioni 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 Precondizioni: l’utente ha effettuato correttamente il login al sistema, ed appartiene pertanto agli utenti registrati Postcondizioni per successo: i dati del conto e gli ultimi movimenti vengono mostrati all’utente Postcondizioni 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: mediobassa 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. Precondizioni: l’utente deve aver effettuato correttamente il login. Postcondizioni per successo: il portafoglio viene mostrato all’utente. Postcondizioni 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. Precondizioni: l’utente deve aver effettuato il login; il titolo o la valuta richieste devono essere tra quelli presenti in listino. Postcondizioni per successo: l’ordine di acquisto è stato inserito nel sistema. Postcondizioni 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: medioalta 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. Precondizioni: 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. Postcondizioni per successo: l’ordine di vendita è stato inserito nel sistema. Postcondizioni 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: medioalta 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. Precondizioni: l'utente deve aver effettuato il login, il portafoglio dell'utente contiene almeno un ordine non ancora eseguito. Postcondizioni per successo: l'ordine viene cancellato. Postcondizioni 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: mediobassa 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à. Precondizioni: l'utente deve aver effettuato il login. Documento di Analisi – Gruppo Alpha
25
Postcondizioni per successo: l'utente visualizza il report riassuntivo dello stato dei suoi ordini. Postcondizioni 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: mediobassa 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. Precondizioni: il sistema di trading è in funzione. Postcondizioni per successo: i dati richiesti vengono ottenuti e restituiti al caso d'uso chiamante. Documento di Analisi – Gruppo Alpha
26
Postcondizioni 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. Precondizioni: 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. Postcondizioni 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. Postcondizioni 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 ContiPortafogli 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. Precondizioni: il conto corrisponde ad un utente registrato del sistema; l'utente corrispondente ha inserito in precedenza almeno un ordine; Postcondizioni per successo: il conto dell'utente risulta aggiornato Postcondizioni 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 ContiPortafogli 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: medioalta, 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. Precondizioni: l'intervallo temporale specificato deve essere valido Postcondizioni per il successo: i dati richiesti vengono correttamente ottenuti e restituiti. Postcondizioni 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. Precondizioni: l'utente deve essere di livello avanzato e deve avere effettuato correttamente il login Postcondizioni 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 Postcondizioni 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 ContiPortafogli 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 ContiPortafogli, 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 ContiPortafogli, 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) Precondizioni: l'utente deve essere di livello avanzato e deve avere effettuato correttamente il login Postcondizioni per il successo: i grafici e gli indicatori sono correttamente presentati all'utente Postcondizioni 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: mediobassa 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 Precondizioni: 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 Postcondizioni 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. Postcondizioni 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. Precondizioni: 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 Postcondizioni per il successo: un nuovo record per ogni titolo deve essere aggiunto nella tabella delle quotazioni intraday Postcondizioni 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 intraday, 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. Precondizioni: 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
Postcondizioni per il successo: gli ordini vengono evasi, rimossi o rimangono in attesa Postcondizioni 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: medioalta 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 (stoporder)
●
Vendita al meglio
●
Vendita a guadagno minimo (takeprofit)
●
Vendita a perdita massima (stoploss)
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 moltiamolti, 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