/  15
 
 
Copyright 2003
R. Turco
1
Risoluzione problemi con UML
Ing. R. Turco
 
 
Copyright 2003
R. Turco
2
Introduzione
Gli esempi che esamineremo saranno organizzati nel seguente modo:
 
Titolo del sistema
 
Descrizione del problema
 
Requirements Model
Il
Requirements Model 
descrive
che cosa
fa il sistema. I requisiti funzionali vengonoespressi attraverso gli
use case e gli attori
. Possono essere espressi anche i requisitinon funzionali. Con gli
use case si ha una vista comportamentale
, mentre con le
relazioni tra use case si ha una vista strutturale
.
o
 
Use case
o
 
Descrizione testuale degli use case
La descrizione testuale è efficace quando sono molti i dettagli in gioco in un usecase. La scrittura testuale di uno use case con molti dettagli permette unariduzione del rischio di incomprensione o di omissione di informazioni. Può essereomessa solo nel caso di problemi semplici. La descrizione testuale di uno use
case aiuta a capire ed organizzare bene lo scenario d’uso.
 
 
Analysis Model
L’ 
 Analysis Model 
tende a
comprendere il sistema,
identifica gli oggetti del dominio, leinformazioni passate
.
o
 
Static Modeling
 
Diagramma delle classiIl Diagramma delle classi può essere studiato usando una miscela dimetodi diversi:
 
Use Case Driven;
 
Schede CRC;
 
Metodo del linguaggio verbale, individuando nomi concreti, nomi
astratti, verbi, specializzazioni (“E’ un”), contenimenti oaggregazioni (“Ha un” etc);
 
 
Metodo dei colori di Coad;
o
 
Object StrutturingDetermina gli oggetti in ogni use case e la loro organizzazione strutturale(package e dipendenze);
L’Object Structuring identifica e categorizza gli oggetti software.
 
L’ 
identificazione
avviene da use case e dal modello delle classi; mentre lacategorizzazione si basa su:
 
Oggetti d’interfaccia o di confine
(boundary): device, user, system;
 
Entità Object:
oggetti che memorizzano informazioni;
 
Control Object:
oggetti che fanno coordinamento (coordinatori, timer,state-dependent);
 
Application logic objects:
oggetti algoritmici, busines logic object.
o
 
Dynamic modeling:Gli use case sono raffinati per mostrare
l’interazione tra oggetti per ogni use
case (diagramma delle sequenze, diagramma delle attività, diagramma deglistati).
o
 
Customizing, Collapsing, Design Refactoring, Riuso
Strategia per il modeling
Se il problema è semplice, oltre al Requirements Modeling e allo Static Modeling, nonnecessariamente occorre usare anche gli altri modelli. Vanno utilizzati tutti quei modelli chepermettono una vista chiarificatrice alla soluzione del problema.
In ogni caso, grazie all’astrazione, dal modello del dominio de
l problema di partenza si arriva almodello del dominio della soluzione.
 
 
Copyright 2003
R. Turco
3
Se gli use case sono molti una strategia è quella di riportarli su più “fogli”, cercando di mettere
sullo stesso foglio gli use case e gli attori correlati da <<include>> ed <<extend>>. Questastrategia permette anche una parallelizzazione di analisi con più persone.Inoltre per gli use case testuali il consiglio è di compilare i template degli use case e di quelliche da cui i primi hanno una dipendenza dovuta agli <<include>> e <<extend>>.La suddivisione del lavoro per il modello delle classi, i diagrammi delle attività, i diagrammidegli stati e delle sequenze segue la strategia adottata per gli use case: ogni persona modellala parte che gli discende dagli use case fatti.
Sistema bancomat
Esaminiamo il problema di gestione di un sistema ATM (bancomat) di una banca.
Descrizione del problema
 
Una banca ha diversi sportelli ATM (bancomat).
 
Gli ATM sono connessi via WAN ad un server.
 
Il generico ATM ha un reader, un display/tastiera, una stampante.
 
L’uso dell’ATM permette: prelevare soldi da un account, chiedere l’estratto conto,
trasferire fondi.
 
La carta bancomat è caratterizzata da: card#, data di start, data di scadenza.
Sistema
:
 
Valida la carta bancomat: controlla se scaduto, controlla il PIN, controlla se la cartaè stata persa o rubata
 
Permette tre tentativi d’inserimento PIN: al terzo fallimento ritira la carta
 
 
Per semplicità si suppone che presenta un menù solo tre scelte: prelievo, estrattoconto, trasferimento fondi.Prelievo:
 
Controlla se esistono sufficienti fondi sul conto, se esistono contanti nell’ATM
 
 
Controlla se esiste sufficiente contante nell’ATM
 
 
Controlla se esiste carta per la stampa delle ricevute
 
Termina fornendo i soldi, la carta e la ricevuta della situazion
e dell’account
 Trasferimento fondi:
 
Verifica se nel primo account esistono sufficienti fondi
 
Controlla se esiste sufficiente contante nell’ATM
 
 
Controlla se esiste carta per la stampa delle ricevute
 
Effettua il trasferimento dei fondi
 
Fornisce la ricevuta della situazione del primo account
 
Restituisce la carta bancomatEstratto conto:
 
Controlla se esiste carta per la stampa delle ricevute;
 
Stampa il bilancio dell’account richiesto
 
 
Fornisce la ricevuta della situazione dell’account
 
 
Restituisce la carta bancomat
Cliente
:
 
Cancella una transazione per volta;
 
La transazione termina e ritira la carta
 
Il cliente ha un account (conto deposito) su cui ha dei soldi;
Server 
:
 
dati cliente, dati account, registrazione addebito sulla carta
Operatore ATM 
:

Share & Embed

More from this user

Add a Comment

Characters: ...