:: LPS - Esercizi sulle macchine UML ::
Ho una macchina che fa da condizionatore oppure da pompa di calore. Passa da una modalità all'altra premendo il pulsante Inverno/Estate. Quando viene spenta, memorizza la modalità in cui si trova e al riavvio riparte da lì.
Quando viene avviata come pompa di calore, imposta la temperatura a 20°. Quando invece viene avviata come condizionatore, la temperatura è impostata a 24°. Quando si preme il tasto +, la temperatura viene incrementata, e viene decrementata quando si preme il tasto -.
Ecco alcune note salienti relative a questo esercizio:
Modellare un UML la carriera di uno studente. Egli può essere in corso, fuori corso, ritirato oppure laureato. Quando si iscrive è in corso; se sostiene gli esami rimane in corso; se non fa tutti gli esami che dovrebbe fare passa fuori corso; quando non si iscrive più si ritira; quando ha superato tutti gli esami si laurea.
La modellazione viene fatta ad alto livello.
Una ditta offre seminari, uno a settimana. C'è l'oggetto settimanaSeminario che rappresenta una settimana del calendario. La settimana può essere disponibile, prenotataProvvisoriamente oppure prenotataDefinitivamente. All'inizio, una settimana è disponibile. Se un cliente la prenota, diventa prenotata provvisoriamente. Se il cliente quando prenota versa un anticipo, allora diventa prenotata definitivamente.
Noi dobbiamo modellare l'oggetto settimanaSeminario.
Note:
Vogliamo modellare un sistema ISPDialer, che cerca di connettersi ad un ISP tramite un modem. Può trovarsi in 3 stati: connesso, disconnesso oppure tentando di connettersi.
Quando tenta di connettersi, accadono molte cose:
Se arriva un segnale cancel in qualsiasi istante del tentativo di connessione, va in disconnesso e mette il modem in hook.
note:
Si tratta dell'esercizio dell'applet Java in un browser, ma in salsa UML. Ecco le specifiche:
C'è un orologio digitale che segna l'ora come hh::mm. La variabile dh salva le ore, dm salva i minuti.
Quando è accesa, aspetta una bottiglia nella sede apposita. Un sensore la rileva, e comincia a riempirla. Un secondo sensore rileva che si è arrivati a livello, e provvede a farla tappare; a questo punto il sistema richiede la rimozione della bottiglia, e quando è stata rimossa (il sensore ce lo dice) la macchina torna in attesa.
Se si interrompe il riempimento in modo manuale, la bottiglia viene tappata e si entra in uno stato di allarme.
La macchina può essere spenta solo se si trova nello stato di attesa.
Quando è in idle, attende l'arrivo di un utente. Quando arriva l'utente:
Può anche trovarsi nello stato di manutenzione, in cui esegue due cose parallele:
Finita la manutenzione, torna in idle.
Modellare con una macchina di stato UML il comportamento di un ascensore. L’ ascensore ha un tasto (interno) per ogni piano da servire, un tasto per aprire le porte se l’ascensore è fermo, ed un tasto di emergenza che se pigiato causa il suono di una sirena e mette l’ascensore “fuori servizio”. Ogni piano (ad eccezione del piano terra e dell’ultimo piano che ne hanno uno solo) ha due tasti con le frecce (SU) e (GIU') per chiamare l’ascensore al piano.
Modellare con una macchina di stato UML il comportamento di un sistema d’irrigazione automatica. Il sistema è composto da un controllore e da un annaffiatoio. In modalità inverno il controllore invia il comando di erogazione dell’acqua ogni 12 ore e l’annaffiatoio eroga acqua per 15 minuti, dopo di che riceve il comando di interruzione di erogazione acqua. In modalità inverno l’erogazione dell’acqua è richiesta ogni 8 ore per la durata di 30 minuti. Il controllore è dotato di un sensore di umidità. Se il segnale che arriva da tale sensore è alto, l’erogazione dell’acqua, per il ciclo corrente, è sospesa; se il segnale è basso, l’acqua è erogata, nel ciclo corrente, per ulteriori 5 minuti.
Modellare con una macchina di stato composta UML la procedura di connessione di un utente ad un sito web che può riconoscere o no l’utente. La procedura di autenticazione dell’utente avviene tramite username e password (in passi sucessivi). L’utente ha al più 4 tentitivi per connettersi in caso di credenzialità errate. Ad ogni passo del processo di autenticazione, l’utente ha a disposizione due bottoni: OK per procedere e CANCEL per interrompere la procedura. Al termine della procedura di autenticazione l’utente potrà essere stato autenticato, aver fallito laprocedura di autenticazione o interrotto la procedura.