Questo documento fa parte del materiale impacchettato nel file es06.jar
che si trova sul
sito di
Fondamenti di Informatica LB
L'ospedale S. Orsola di Bologna commissiona alla software house ACME la realizzazione di un sistema per il monitoraggio dello stato di salute dei pazienti. Il monitoraggio avviene attraverso sensori in grado di rilevare il valore di grandezze caratteristiche dello stato di saluto del paziente: il sistema deve essere in grado di reagire con opportune azioni all'occorrenza di determinati eventi, che concernono la dinamica di tali grandezze.
Nel sistema dovranno essere ben definiti e distinti 3 classi di 'componenti' (entità):
sensori
controllori
visualizzatori
Un sensore genera eventi relativi al cambiamento del valore della propria grandezza caratteristica (ad esempio: 'il valore è cambiato'). Nel sistema ci sono due tipi di sensori:
un sensore di pressione
un sensore di temperatura
Siccome al momento non disponiamo dell'harware necessario, i componenti che fungono da sensori possono essere simulati da opportuni elementi Swing di input, che permettano di specificare (quindi cambiare) il valore della grandezza. Esempi sommari di possibili realizzazione (non necessariamente da seguire, sono solo a scopo illustrativo):
Il controllore controlla/verifica, a partire dagli eventi generati dai sensori (dei quali è in ascolto), l'occorrenza degli eventi significativi per il sistema:
valore della temperatura > temperatura soglia
valore della pressione > pressione soglia
Il valore delle soglie deve poter essere modificabile dinamicamente da parte dell'utente. Esempio di una possibile interfaccia di ingresso per il controllore:
Il visualizzatore 'ascolta' e visualizza gli eventi significativi per il sistema generati dal controllore,
che riguardano il superamento delle soglie.
La informazioni visualizzate sono : Data, Ora, e il tipo di evento occorso. Ad esempio:
'Mercoledi' 4 Giugno 2002 - 16:58:31 - il valore della pressione massima ha superato il valore soglia (120): 200'.
Esempio di un possibile visualizzatore:
Sviluppo del sistema ACME Patient Monitoring, con le funzionalità richieste.
sviluppare l'applicazione nel package es06
(quindi i sorgenti andranno nella directory
src/es06
e le classi compilate in es06/build
;
al solito per tutti gli aspetti (requisiti, comportamenti,...) non specificati, fare delle scelte e motivarle;
il package java.util
e classe java.lang.System
contiene elementi utili per gestire
date e tempo corrente java.util.Date, java.util.Calendar, java.util.GregorianCalendar
.
Vedere la classe java.swing.JScrollPane
per (eventualmente) gestire lo scorrimento dell'area di testo del visualizzatore degli eventi
Classe java.swing.JScrollBar
nel caso si voglia realizzare un sensore con una barra scorrimento
in questa esercitazione non è fornito alcun materiale aggiuntivo (sorgenti, classi compilate, documentazione),
quindi le directory src/es06
, build
e docs/apidocs
sono vuote.
Composizione di eventi: vogliamo monitorare (e visualizzare con il Visualizzaziore) anche l'evento logico dato dal superamento del prodotto Pressione*Temperatura della relativa soglia (che quindi deve essere aggiunta).
Estendere il sistema in modo che gli eventi significativi non siano solo visualizzati, ma opportunamente resi persistenti su file (...da un ulteriore componente ascoltatore...).