ingegneria del software 1 (20 punti - 45 minuti)

Transcript

ingegneria del software 1 (20 punti - 45 minuti)
Università di Firenze, Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica - Prof.E.Vicario
ingegneria del software
PROVA SCRITTA - prima parte – 6 Febbraio 2015
1 (20 punti - 45 minuti)
Si descriva la tecnica di method lookup applicata in Java nella risoluzione dei riferimenti a metodi
con override (5 punti).
Si illustri il problema della classe di base fragile e le misure attraverso cui esso può essere
prevenuto (5 punti).
Si produca il codice di un caso di subclassing con override, realizzato con o senza l'applicazione
delle misure (5 punti), e si produca un caso di test che illustra il diverso comportamento nei due
casi (5 punti).
2 (10 punti - 15 minuti)
Si illustrino le caratteristiche salienti del modello di sviluppo a V, identificando gli obiettivi delle
diverse fasi e identificando alcuni dei documenti prodotti per tracciarli nell'ambito dello standard
Mil498.
Si approfondisca in particolare la descrizione dei contenuti attesi nel documento Software
Requirements Specification (SRS).
Università di Firenze, Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica - Prof.E.Vicario
ingegneria del software
PROVA SCRITTA - seconda parte – 6 Febbraio 2015
3
(30 punti - 60 minuti)
Si consideri la seguente descrizione di una cartella clinica.
L'applicazione raccoglie informazione clinica acquisita nel corso di visite ambulatoriali.
La cartella serve le visite svolte presso una varietà di ambulatori, e in diversi giorni. Per ciascun
tipo di ambulatorio e ciascun giorno è definita un'agenda che identifica il medico e gli infermieri che
partecipano alla visita ed elenca i pazienti prenotati.
Un operatore del CUP inserisce le prenotazioni nelle diverse agende in base a richieste ricevute
per via telefonica.
Nel corso dell'attività di ambulatorio, un operatore amministrativo riceve i pazienti all'accettazione e
registra il loro arrivo e la ricevuta del ticket ove previsto.
Uno degli infermieri che operano nell'attività di ambulatorio ammette i pazienti alla visita,
selezionandoli fra quelli che hanno già completato l'accettazione.
Nel corso della visita il medico e gli infermieri riportano osservazioni sulla cartella. Ciascuna
osservazione ha un tipo (e.g. temperatura, pressione, ...), è acquisita attraverso un protocollo (e.g.
un segno misurato attraverso uno specifico strumento, un sintomo riportato dl paziente), è
associata al professionista (medico o infermiere) che la acquisisce, ha un intervallo temporale di
validità. Le osservazioni possono essere quantitative (e.g. temperatura a 38.5 gradi) o qualitative
(e.g. febbre alta).
Si produca un modello concettuale delle entità coinvolte e delle loro relazioni, e si identifichino gli
attori e i casi d'uso (20 punti).
Si produca un'astrazione del modello concettuale basato sullo schema di Observation &
Measurement (5 punti), e si illustri la struttura dell'Object Diagram nella rappresentazione delle
seguenti osservazioni (5 punti): l'operatore o ha annotato che il paziente p riporta di avere avuto la
febbre alta dal tempo t1 al tempo t2;
l'operatore o ha annotato che la febbre del paziente p misurata al tempo t3 con l'uso di un
termometro al mercurio è uguale a f;
3.1
Modello concettuale
Ambulatorio
1
*
1
Turno
Medico
Infermiere
*
1
Agenda
OperatoreCup
Professionista
*
Prenotazione
Ticket
OsservazioneQuantitativa
1
Paziente
*
Osservazione
OsservazioneQualitativa
Protocollo
TimeRecord
3.2
Use case diagram
inserisciPrenotazioneInAgenda
OperatoreCUP
accettaPaziente
OperatoreAmministrativo_
ammettiAllaVisita
Medico_
Infermiere_
registraOsservazione
Professionista_
3.3
astrazione basata su Observation and measurement
e.g.: value="sintomo riportato"
oppure value="misura con termometro al mercurio"
e.g.: value="alta"
Classificazione
Professionista__
e.g.: value = "temperatura"
Grandezza
Protocollo_
OsservazioneQualitativa_
Paziente_
Osservazione_
OsservazioneQuantitativa_
TimeRecord_
Quantity
e.g.: value=38.5
object diagram: omissis.
Unit
e.g.: value=gradiCentigradi