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