Bibliografia. Studio di caso: Bancomat Automated Teller Machine. uso dei diagrammi: use case, classi, collaborazione, stato



Documenti analoghi
Studio di caso: Bancomat Automated Teller Machine

Esempio 1: CarMatch. Direzione centrale Sedi centrali per ogni paese Concessionarie locali di franchising UML 2

Ingegneria del Software T

Progetto di Ingegneria del Software matricola MODELLAZIONE UML DI UN TERMINALE ATM. di Cavenaghi Mattia 03/04/2008 1/24

Activity Diagrams. Ing. Orazio Tomarchio

Unified Modeling Language

Elementi di UML (2) Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico

Ingegneria del Software 11. Esercizi riassuntivi. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Sequence Diagram e Collaboration Diagram

Ingegneria del Software 5. Esercizi sui casi d uso. Dipartimento di Informatica Università di Pisa A.A. 2014/15

UML - Unified Modeling Language

Gestione Automatizzata di una Lista Nozze

Gestione del workflow

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Il diagramma dei casi d uso

Sequenza alternativa degli eventi: Variazione di prezzo superiore al 20% per almeno un articolo.

Soluzione dell esercizio del 2 Febbraio 2004

object oriented analysis

Informatica Industriale Modello funzionale Casi d uso

Sistemi Informativi I Caso di studio con applicazione di UML

Progetto di Applicazioni Software

Caso d Uso: AcquistoAbbonamentoStudentiSettimanaleGiornaliero Breve descrizione. Procedura per la registrazione al servizio CicloPi.

Esempio ordini 08UMLEX1.1

ANALISI FUNZIONALE E DIAGRAMMI DI FLUSSO DEI DATI DFD 1

Progettazione del Software A.A.2008/09

Modellazione dei dati in UML

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

Manuale del Docente - Scienze Politiche

Studio di fattibilità (2) Identificazione ed analisi dei requisiti

Un modello è ragionevole quando contiene queste tre caratteristiche.

Obiettivo della lezione. Casi d uso. Casi d uso (use cases) Scenari d interazione

Basi di Dati. Programmazione e gestione di sistemi telematici

Esercizi di Ingegneria del Software

Ingegneria del Software UML - Unified Modeling Language

Requisiti. Stakeholder. Cliente Utente Investitore Azionista Production manager. Acquirente Progettista Collaudatore Relatore della documentazione...

db contocarta. Guida all uso. Come utilizzare la tua nuova carta prepagata ricaricabile.

Volumi di riferimento

BASI DI DATI I. Progettazione di un DBMS per un negozio di materiale elettrico. Progetto realizzato da: Iero Demetrio Matricola:

CitySoftware PROTOCOLLO. Info-Mark srl

Esercizi di Ingegneria del Software

Progetto PC versione del 11 luglio 2007

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

INI0506. Progetti InI0506 DISP-URM2 UML - Introduzione 1

Una metodologia per la specifica di software basato su componenti

DTW DECODER. Per la gestione del servizio SMS, bisogna agire tramite il pannello di controllo posto a bordo delle macchine di ispezione:

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

UniRoma2 - Ingegneria del Software 1 1

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Progettazione di Applicazioni Web

LEZIONE 7 - STATE MACHINE DIAGRAM

monitoraggio dei locomotori via Internet

Claudia Raibulet

Concetti di base di ingegneria del software

CONNETTORE MAILUP PER MICROSOFT DYNAMICS CRM

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Sistema Informativo di Teleraccolta EMITTENTI

Guida alla gestione dei Verbali d esame online

Modellazione di sistema

Basi di dati 9 febbraio 2010 Compito A

Con un bonifico da qualsiasi banca o Banco Posta utilizzando le seguenti coordinate:

Progettazione orientata agli oggetti Introduzione a UML

PORTALE CLIENTI Manuale utente

Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA

1. GESTIONE DEL PASS OE FUNZIONI DEL CRUSCOTTO

Procedura SMS. Manuale Utente

AI DIRETTORI REGIONALI AI DIRETTORI PROVINCIALI e SUBPROVINCIALI AI DIRETTORI DELLE AGENZIE

Una metodologia di progettazione di applicazioni web centrate sui dati

Basi di dati I. Esercitazione proposta

Il problema. ! Si chiede di sviluppare un applicazione per la

Traccia di soluzione dell esercizio del 25/1/2005

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Registratori di Cassa

I Servizi self-service: procedura per la compilazione del modello 730

LOCAZIONI WEB. Guida operativa

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Ministero del Lavoro e della Previdenza Sociale

PROGETTAZIONE DEL SOFTWARE

Analisi dei Requisiti

IOS E ANDROID MANUALE APP PREPAGATE PREPAGATE

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

MyTicketStore.it. Parking. 1 di 11

2. Simulazione discreta: approcci alla simulazione

Università degli Studi di Napoli Federico II. FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM. Progetto di un applicazione Android

Iscrizione agli esami via web. - Area docente

Use Case Driven Object Modeling: ICONIX

Gestione Risorse Umane Web

Messaggi volatili. Matteo Zignani. 10 gennaio 2015

UNIVERSITÀ DEGLI STUDI DELL INSUBRIA SETTORE PERSONALE TECNICO/AMMINISTRATIVO

Diagrammi di Interazione

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Object Oriented Programming

db contocarta. Guida all uso. Come utilizzare la tua nuova carta prepagata ricaricabile.

La Metodologia adottata nel Corso

PROGETTO - Ingegneria del Software. Università degli Studi di Milano Polo di Crema. Corso di laurea in Scienze Matematiche, Fisiche e Naturali

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Transcript:

,6 PRG % &RUVR GL,QJHJQHULD GHO 6RIWZDUH 80/ Bibliografia Studio di caso: Bancomat Automated Teller Machine uso dei diagrammi: use case, classi, collaborazione, stato - Hassan Gomaa: Designing concurrent distributed and real time applications with UML, Addison Wesley 2000 - I.Jacobson, G.Booch, J.Rumbaugh: The Unified Software Development Process, Addison Wesley 1999 - Reference manual UML 1.4 Renato Conte - UML: Studio di caso - 1 - Renato Conte - UML: Studio di caso - 2 - Riferimenti nel Web Use case sistema bancomat (ATM) - alto livello - UML 1.4 RTF: www.celigent.com/omg/umlrtf TrasferimentoFondi Validazione PIN OMG UML Tutorials: www.celigent.com/omg/umlrtf/tutorials.htm UML 2.0 Working Group: www.celigent.com/omg/adptf/wgs/uml2wg.htm ATM ListaMovimenti o Saldo Startup OMG UML Resources: www.omg.org/uml/ PrelievoContanti Shutdown operatore ATM ATM Banking system Aggiungi Contante Renato Conte - UML: Studio di caso - 3 - Renato Conte - UML: Studio di caso - 4 -

USE CASE raccomandazioni Gli identificatori degli use case devono utilizzare il nome di un verbo e un processo Le funzionalita del sistema devono essere tracciabili all interno degli use case Gli use case devono essere tracciabili all interno del codice implementato I limiti di un sistema: Limiti delle componenti HW e/o SW; Limiti dell organizzazione in cui opera Limiti del dipartimento in cui opera ATM Operatore ATM ATM: Use case sottosistemi Client / Server ATM Client Subsystem Client Validazione PIN Client PrelievoContanti Client TrasferimentoFondi Client ListaMovimenti Aggiungi Contante ATM Server Subsystem Server Validazione PIN Server TrasferimentoFondi Server ListaMovimenti Server PrelievoContanti Startup Shutdown Renato Conte - UML: Studio di caso - 5 - Renato Conte - UML: Studio di caso - 6 - Tipi di Use case USE CASE in descrizione narrativa Use case ad alto livello Brevita Genericita Dettagli Specificita Use Case espansi Documento testuale che descrive la sequenza di eventi di un attore che utilizza il sistema. Servono a migliorare la comprensione dei requisiti Use case essenziali Astrazione tecnologica e/o implementativa Dettagli tecnologici e/o implementativi Use Case reali Passo preliminare per descrivere i requisiti del sistema Renato Conte - UML: Studio di caso - 7 - Renato Conte - UML: Studio di caso - 8 -

USE CASE Validazione PIN (1) In glossario Use case: validazione PIN (Personal Identification Number) Sommario: il sistema controlla e valida il PIN del cliente Attore: cliente ATM Precondizioni: il sistema è in attesa e mostra sul display un messaggio di benvenuto. In glossario Descrizione (funzionalità): 1) Il cliente inserisce l ATM Card (bancomat / carta di credito); 2) Il sistema riconosce l ATM Card e ne legge il numero; 3) Il sistema chiede il PIN; 4) Il cliente inserisce il PIN; 5) Il sistema controlla la data di scadenza e se la Card risulta in stato di smarrita o rubata; 6) Se la Card è valida, il sistema controlla se il PIN è corretto (PIN mantenuto dal sistema); USE CASE Validazione PIN (2) Descrizione (cont.): 7) Se il PIN è corretto, il sistema controlla quali conti correnti sono accessibili con quella Card; 8) Il sistema mostra al cliente le possibili tansazioni (menu): prelievo, saldo, lista movimenti o trasferimento; Alternative: 1) Il sistema non riconosce l ATM Card, la Card viene espulsa; 2) Il sistema determina che la Card è scaduta: la Card viene confiscata; 3) Il sistema determina che la Card risulta smarrita o rubata: la Card viene confiscata; 4) Il cliente digita un PIN non corretto 5) Postcondizioni: Il PIN e stato validato. Renato Conte - UML: Studio di caso - 9 - Renato Conte - UML: Studio di caso - 10 - USE CASE Prelievo contanti Use case: Prelievo contanti Sommario: il cliente preleva una determinata quantità di denaro da un valido conto corrente. Attore: cliente ATM. Dipendenze: include lo use case Validazione del PIN. Precondizioni: l ATM è in attesa mostrando un messaggio. Descrizione: a) il cliente seleziona dal menu l opzione prelievo, inserisce l ammontare da prelevare, ; b) il sistema controlla...; Alternative: il sistema non ha sufficienti contanti... Postcondizioni: il prelievo e stato fatto. Modello statico del sistema diagramma delle classi Renato Conte - UML: Studio di caso - 11 - Renato Conte - UML: Studio di caso - 12 -

diagramma delle classi diagramma degli oggetti primav: Valutazione cognome nome Studente 2..50 1..4 Corso nomecorso x: Studente nome = Pippo voto = 30 : Valutazione mostracurriculum( ) Valutazione y : Studente : Valutazione programmazione: Corso nome = Paperino cognome nome Studente mostracurriculum( ) 1..4 voto data Valutazione 2..50 Corso nomecorso : Studente : Valutazione : Valutazione : Corso : Studente : Valutazione Renato Conte - UML: Studio di caso - 13 - Renato Conte - UML: Studio di caso - 14 - Modello statico concettuale: classi fisiche Modello statico del contesto: classi external, system Bank gestisce ATM «external I/O dev.» ATM adibitoa Operator «external Output dev.» «system» Banking System legge Distrib.contanti distribuisce Contanti Ricevuta stampa ATM «external Output dev.» Distrib.contanti Renato Conte - UML: Studio di caso - 15 - Renato Conte - UML: Studio di caso - 16 -

gestisce Modello statico: Banking System Bank gestisce ATM info Dettagli per la classe (attributi) 0..* possiede * accede a ha possiede Conto corrente identifica * Transazione * 1,2 modifica cardid: String PIN: String dataemissione: date scadenza: date limiteprelievo: integer stato: statov {attiva, smarrita,...} Validaz.PIN Prelievo Estratto conto Trasfer. conto Renato Conte - UML: Studio di caso - 17 - Renato Conte - UML: Studio di caso - 18 - Banking system: applicazione client/server ATM client «external»atm ATM client ATM Distributore contanti «system» Banking System ATM client ATM server Distrib. contanti Transazione ATMControl Bank server Renato Conte - UML: Studio di caso - 19 - Renato Conte - UML: Studio di caso - 20 -

ATM client ATM client per memorizzare le informazioni lette dalla ATM Card ATM client ATM client per la gestione della sequenza delle azioni Transazione Transazione Distrib. contanti Bank server Distrib. contanti Bank server ATMControl ATMControl Renato Conte - UML: Studio di caso - 20 - Renato Conte - UML: Studio di caso - 20 - ATM client ATM client per l interazione col cliente, e per la gestione del PIN Livelli Architetturali Architettura multi-layer (multi-tier) Transazione Presentazione Logica Applicativa Memorizzazione Dati Distrib. contanti Bank server GUI Oggetti del dominio del problema Oggetti dei servizi per l accesso ai dati Database ATMControl Renato Conte - UML: Studio di caso - 20 - Renato Conte - UML: Studio di caso - 21 -

Diagrammi dinamici Modellazione dinamica Dynamic Modeling Interazioni tra oggetti che partecipano in ciascun use case Sequenza di messaggi intra-oggetti Diagrammi di sequenza e/o di collaborazione e di stato ( sequence, collaboration, statechart diagrams ) Renato Conte - UML: Studio di caso - 22 - Renato Conte - UML: Studio di caso - 23 - Diagramma di collaborazione Collaboration Diagrams Un diagramma che illustra le interazioni tra oggetti organizzandole attorno agli oggetti e ai link tra questi oggetti. A differenza di un diagramma di sequenza, evidenzia le relazioni tra gli oggetti. Diagramma di collaborazione: use case Validazione PIN «external» : : : :Bank server :ATM control : :Transazione Renato Conte - UML: Studio di caso - 24 - Renato Conte - UML: Studio di caso - 25 -

Diagramma di collaborazione: use case Validazione PIN Diagramma di collaborazione: use case Validazione PIN 1: Card Reader Input :Bank server :Bank server «external» :r : 1.1: Card Input Data 1.2: Card Inserita «external» : : 2.5: ValidatePIN ( Inform) 2.6 [Valid]: ValidPIN : :ATM control : 2.4: PIN Entered ( Inform) :ATM control 1.4: PIN prompt : 1.3: Get PIN :Transazione 2.8: Selection Menu 2: input PIN 2.2:Dati Card : 2.1: Card Request 2.7a: Display Menu 2.3: Info. :Transazione 2.7b: Aggiorna mento Renato Conte - UML: Studio di caso - 25 - Renato Conte - UML: Studio di caso - 25 - Diagramma di collaborazione: arrow label Diagramma di collaborazione: arrow label Predecessor / sequence-expression: return-value := message-name (argument-list) Pred. / seq.exp: retval := mess(arg.-list) 2.1 a, 2.2 b / 3.1 a : res := getlocation ( fig ) 3.1.2 [ Z >0 ] : res := sadf ( 1,2,3 ) Progressione dei messaggi (livello di annidamento della procedura). Sequenza di interi separati dal punto: numerazione decimale di Dewey. Lettere dell'alfabeto: nome thread. Lista di numeri di sequenze di altri messaggi Clausola opzionale. Indica che il messaggio non sarà attivato fino a che tutti i messaggi indicati nella lista non avranno terminato le loro azioni (sincronizzazioni). 3.7.4: move (5, 7) Opzionale. La clausola condizionale è normalmente espressa in pseudo codice ed esprime quali condizioni devono verificarsi per la attivazione del messaggio. 1.2.5 [ free memory ] : createcopy ( ) Renato Conte - UML: Studio di caso - 26 - Renato Conte - UML: Studio di caso - 27 -

Diagramma di collaborazione: arrow label Esempio di diagramma di collaborazione Pred. / seq.exp: retval := mess(arg.-list) 3.1.2 *[ i:= 1..N ] : drawsegment ( i ) Opzionale. La clausola iterativa è normalmente espressa in pseudo codice ed esprime una esecuzione iterativa. Renato Conte - UML: Studio di caso - 28 - Renato Conte - UML: Studio di caso - 29 - Descrizione dei messaggi: use case Validazione PIN (1) Descrizione dei messaggi: use case Validazione PIN (2) 1: Card Reader Input --- il ATM inserisce la Card: la CardReader legge i dati. 1.1: Card Input Data --- la CardReader manda i dati della Card (ID, scadenza, ) all oggetto ATMCard che li memorizza. 1.2: Card Inserita --- la CardReader invia l evento Card Inserita all ATM control. Come risultato vedremo che nel diagramma di stato relativo all ATM control, un cambiamento di stato da Idle (inattivo) ad Attesa PIN. L evento associato all uscita è Get PIN. 1.3: Get PIN --- l ATM control manda l evento Get PIN all oggetto interfaccia. 1.4: PIN prompt --- l interfaccia manda la richiesta di inserimento PIN (PIN Prompt) all attore ATM. 2: input PIN --- il ATM manda il PIN all oggetto interfaccia. 2.1: Card Request --- 2.2:Dati Card --- 2.3: Info. --- 2.4: PIN Entered (Inform) --- 2.5: ValidatePIN (Inform) --- 2.6 [Valid]: Valid PIN --- Il Bank Server valida il PIN e manda il segnale validpin all ATM control. Come risultato di questo evento l ATM control passa allo stato di Attesa scelta operazione 2.7a: Display Menu --- 2.7b: Aggiornamento --- 2.8: Selection Menu ---...alternative... Renato Conte - UML: Studio di caso - 30 - Renato Conte - UML: Studio di caso - 31 -

Use case Diagrammi di sequenza (o sequenziali) Sequence Diagrams Interazione attore sistema Genera eventi che richiedono operazioni da parte del sistema per un dato use case il diagramma sequenziale e uno schema che rappresenta: gli eventi generati dagli attori l ordine degli eventi generati gli eventi che intercorrono tra i sistemi la sequenza degli eventi segue il corso del use case (incluse le alternative possibili) gli eventi possono includere dei parametri Diagramma di sequenza: use case Validazione PIN 1: Card Reader Input 1.4: PIN prompt 2: input PIN 2.8: Selection Menu «external» : 1.1: Card Input Data : 1.2: Card Inserita :ATM control 2.1: Card Request 2.2:Dati Card 1.3: Get PIN 2.4: PIN Entered (Inform) : 2.7a: Display Menu 2.7b: Aggiornamento :Transazione 2.3: Info. 2.5: ValidatePIN (Inform) 2.6 [Valid]: Valid PIN :Bank server Renato Conte - UML: Studio di caso - 32 - Renato Conte - UML: Studio di caso - 33 - Diagramma di stato Statechart Diagram Diagramma di stato: transizione Transition Specifica il ciclo di vita degli oggetti di una classe, definendo le regole che lo governano. Quando un oggetto si trova in un certo stato può essere interessato da determinati eventi Come risultato di un evento l oggetto può passare ad un nuovo stato (transizione) Utilizzato in situazioni dove le transizioni di stato sono provocate da eventi asincroni. Ready stop / ctr := 0 Trigger Done Action stop Una transizione collega tra loro due stati L uscita da uno stato definisce la risposta dell oggetto all occorrenza di un evento (Trigger ) Una transizione è associata a un evento, una condizione (opzionale), un azione (opzionale), e uno stato di arrivo. Sintassi: evento [condizione] / azione Renato Conte - UML: Studio di caso - 34 - Renato Conte - UML: Studio di caso - 35 -

ATM control : diagramma di stato del use case Validazione PIN ATM control: diagramma di stato generale (top level) Disattivato Attesa PIN 1.2: Card Inserita / 1.3: Get PIN 2.4: PIN Entered (Inform) / 2.5: ValidatePIN (Inform) Idle 1.2: Card Inserita / 1.3: Get PIN Idle Entry/ msg. benvenuto Start Stop Tempo scaduto / restit. card Terzo tentativo, Rubata/ confisca Card Entry/ msg. System down Contante insuff./ restituzione card Validazione PIN Processa Input Cancella op./ restit. Card Termina la transazione 2.6: Valid PIN / 2.7a: Display Menu, 2.7b: Aggiornamento x.y: evento / k.z: azione Sel. trasfer./ ric. trasferim. Errori / restit. card Attesa scelta operazione Sel. movimenti/ ric. movimenti Selez. prelievo/ richiesta prelievo Processa la transazione Trasfer.OK/ stampa ric. Movim.OK/ stampa ric. Prelievo OK/ dispens. contante Renato Conte - UML: Studio di caso - 36 - Renato Conte - UML: Studio di caso - 37 - ATM control: diagramma di stato Processa Input Processa Input 1.2: Card Inserita /1.3: Get PIN Idle Entry/ msg. benvenuto 2.4, 2.6a2: PIN Entered / 2.5, 2.6a3: ValidatePIN Attesa PIN Validazione PIN cnt: integer 2.6a: PIN Err [cnt <3] / cnt:= cnt+1 2.6a.1: messaggio PIN errato PIN Err [cnt =3], / card confiscata Cancella / restit. Card Smarrita, Rubata / card confiscata 2.6: Valid PIN / 2.7a: Display Menu, 2.7b: Aggiornamento Attesa scelta operazione Sel. movimenti/ ric. movimenti Sel. trasfer./ ric. trasferim. Selez. prelievo/ richiesta prelievo Entry / cnt:= 1 Renato Conte - UML: Studio di caso - 38 -