Progetto PC versione del 11 gennaio 2008

Documenti analoghi
Progetto PC versione del 22 aprile 2008

Progetto PC versione del 2 aprile 2008

Progetto PI , passo A.3 versione del 28 marzo 2007

Progetto E versione del 12 marzo 2007

Progetto PI , passo A.1 versione del 16 marzo 2007

Progetto PC versione del 20 settembre 2007

Corso di Progettazione del Software

Progetto PI , passo A.1 versione del 10 aprile 2007

Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza

Corso di Progettazione del Software

Progetto PI , passo A.2 versione del 10 aprile 2007

1 Catena di officine, versione 2

Progetto PI , passo A.1 versione del 6 febbraio 2007

Progetto PC versione del 12 marzo 2007

GESTIONE DEI REPARTI DI UN OSPEDALE

Corso di Progettazione del Software

Progetto E versione del 12 marzo 2007

Progetto PI , passo A.3 versione del 6 febbraio 2007

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.)

Progettazione del Software Analisi

Progettazione del Software

Progettazione del Software

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Sapienza Università di Roma A.A

Requisiti. Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria

Progetto PI , passo P.1 versione del 11 marzo 2007

Il diagramma delle classi è raffigurato in Figura 1, insieme alla descrizione della responsabilità sulle associazioni.

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria

Progettazione del Software

Progettazione del Software

Progettazione del Software

SOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza Facoltà di Ingegneria

Basi di Dati 1 Esercitazione 4 27/11/2012. Matteo Picozzi

Basi di Dati 1! Esercitazione 4. Matteo Picozzi!

Della suddetta realtà fornire lo schema E/R, lo schema logico e la realizzazione in SQL.

Progetto PI , passo A.2 versione del 6 febbraio 2007

INFORMATICA SANITARIA Domande ed Esercizi di Preparazione all Esame (Parti 1-4)

Compito di Informatica Grafica 2 appello 02/02/2009. Nome e Cognome Numero di Matricola

Esercizio 1 ESERCIZI DI PROGETTAZIONE CONCETTUALE DI BASI DI DATI. La base di dati di una università contiene informazioni

Proff. Toni Mancini & Monica Scannapieco Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza

Progettazione Concettuale

Corso di Basi di Dati

Studente Data. Prof.: Sara Renata Francesca Marceglia. Esame del 20/06/2017

Progetto PC versione del 11 luglio 2007

Compito di Informatica Grafica 2 appello 02/02/2009. Nome e Cognome Numero di Matricola

CARTELLA CLINICA ELETTRONICA DOSSIER FASCICOLO

CORSO DI BASI DI DATI Secondo Compitino

Funzionamento Esistono diverse soluzioni in base al livello di integrazione del sistema che un azienda vuole adottare

Redazione e Presentazione di Progetti Informatici

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

La pagina di accesso all area riservata del Fondo richiede al Dipendente la preventiva generazione delle credenziali di accesso.

Compito Basi di Dati. Tempo concesso: 2 ore 18 Febbraio 2013 Nome: Cognome: Matricola:

Prova Scritta di Basi di Dati

Complementi di Informatica. Prof. Mauro Giacomini

Esercizi su Modello Entità-Relazioni

2. Modellazione dei casi d uso

GUIDA AI RIMBORSI E RICHIESTA DELLE PRESTAZIONI AL NETWORK SANITARIO PER IL PERSONALE (NON DIRIGENTE) DI POSTE ITALIANE SPA E DELLE SOCIETÀ DEL

GUIDA AI RIMBORSI E RICHIESTA DELLE PRESTAZIONI AL NETWORK SANITARIO

Fondamenti di Informatica e Programmazione

ESERCITAZIONE PREPARAZIONE ALL ESAME,

Laboratorio di Basi di Dati

BASI DATI: modello relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

INTRODUZIONE AI DBMS. Inoltre i fogli elettronici. Mentre sono poco adatti per operazioni di. Prof. Alberto Postiglione

INTRODUZIONE AI DBMS

Progettazione Logica. Esercitazione. Informatica (modulo di Basi di Dati) Domenico Fabio Savo

Progettazione Concettuale. Raccolta e analisi dei requisiti

Basi di dati II Prova parziale 20 maggio 2013 Compito A

DINAMIC LIGHT LIGHT PLUS Principali modifiche implementate nel corso dell anno 2012 e raggruppate e distribuite nella versione 4.76.

Allegato: Soddisfazione dell utenza

Fase di Analisi Class Diagram. Esercizi

Istruzioni per l uso

Corso di Progettazione del Software

Basi di Dati - III. La costruzione di una base di dati. Progettazione concettuale di schemi. Esercizio: Segreteria studenti

Insegnamento di Basi di Dati

La fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo

UML2. Progettazione della realizzazione dei casi d uso. Andrea Polini

Generazione diagrammi ER

Si consideri il caso di studio 2, Grande distribuzione, e in particolare la modifica dei prezzi.

Insiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative.

Università di Cassino Facoltà di Ingegneria Modulo di Alfabetizzazione Informatica. Base Dati. Progettazione di un DB

SOLUZIONE. Requisiti. Requisiti (cont.) Fase di analisi. Università di Roma La Sapienza, Facoltà di Ingegneria

Basi di dati 19 dicembre 2016 Prova parziale Compito A Tempo a disposizione: un ora e quindici minuti. Libri chiusi.

Progettazione Logica e Modello Realizzativo

Variabili e assegnazione

PRESENTAZIONE PROPOSTE DI INIZIATIVE FORMATIVE E DI RICERCA/AZIONE

Indicare quale o quali delle seguenti affermazioni sono vere?

Progettazione del Software

Progettazione del Software, Laurea in Ingegneria Gestionale Progettazione del Software Laurea in Ing. Gestionale

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Fase di Analisi Class Diagram. Esercizi

MyPoli. Roberto Poeta Responsabile ICT Fondazione Poliambulanza

Fondamenti di Informatica T-1. Classi & vettori

System Analysis (SA) MGT MiGiocoTutto

ESAME di INFORMATICA e ARCHIVIAZIONE

UML2. Concetti base. Andrea Polini. Laboratorio di Ingegneria del Software Corso di Laurea in Informatica L31 Università di Camerino

Corso di Progettazione del Software

TIPI DI DATO NELLA CARTELLA CLINICA ELETTRONICA: I DOCUMENTI TESTUALI. Corso di Informatica Medica

Compito di Informatica Grafica 2 appello 02/02/2009. Nome e Cognome Numero di Matricola

Webinar Esse3 Lettera di referenza per ammissione ai dottorati

Transcript:

Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale Corso di Progettazione del Software Proff. Toni Mancini e Monica Scannapieco Progetto PC.20080110 versione del 11 gennaio 2008 Si vuole progettare e realizzare QuickHospital, un sistema informatico per la gestione di ricoveri e di visite mediche in un ospedale estremamente efficiente. Il sistema deve permettere la memorizzazione e gestione dei pazienti e dei relativi ricoveri ospedalieri e prenotazioni di visite ambulatoriali, nonché degli itinerari di visita dei medici dell ospedale. Si richiede di effettuare le fasi di Analisi, Progetto, e Realizzazione del sistema in Java, utilizzando la metodologia illustrata nel corso. Requisiti Il sistema QuickHospital deve permettere di memorizzare e gestire informazioni circa i pazienti e i medici dell ospedale nel quale viene installato. In particolare, dei pazienti interessano alcune informazioni anagrafiche (nome, cognome e data di nascita) ed i loro recapiti, distinti in recapiti telefonici, recapito email e postale (questi ultimi unici). Per quanto riguarda i medici dell ospedale invece, interessa mantenere informazioni sul loro nome, cognome e data di nascita, ed i pazienti che hanno in cura. Un paziente può essere ricoverato, in una certa data, solo se una precedente verifica della disponibilità dei posti letto presenti nell ospedale ha dato esito positivo. Una volta effettuato il ricovero, il paziente ha assegnato un posto letto nell ambito di una stanza; una stanza può contenere da un minimo di 1 ad un massimo di 8 posti letto. Le stanze hanno un piano ed un settore (interi positivi). Il sistema deve inoltre permettere la memorizzazione dello storico di tutti i pazienti che sono stati ricoverati e poi dimessi nel tempo, con le informazioni relative ai posti letto occupati durante i diversi ricoveri. 1 Sono funzionalità specifiche del sistema la registrazione del ricovero di un paziente e della sua dimissione ad opera del personale di accettazione. Inoltre il sistema deve assistere i medici ottimizzando il loro percorso di visite. 1 Si assuma per semplicità che durante il periodo di un ricovero il paziente non possa cambiare letto. 1

In particolare, il sistema deve permettere di calcolare, su richiesta di un medico, il suo itineriario delle visite, ovvero un insieme ordinato delle stanze cui accedere (che sono tutte e sole le stanze che ospitano i pazienti che ha in cura). L ordinamento è dato in primo luogo dal piano delle stanze dei pazienti da visitare, ed in secondo luogo dal settore di appartenenza di tali stanze (entrambi in ordine crescente). I settori sono infatti numerati secondo un criterio di vicinanza topologica. Pertanto se un dato medico deve visitare le stanze {(7, 4), (7, 1), (1, 3), (1, 1), (3, 4)} dove la prima componente di ognuna è il piano e la seconda il settore, l itinerario di visita proposto deve essere [(1, 1), (1, 3), (3, 4), (7, 1), (7, 7)]. Oltre ai pazienti dell ospedale, il sistema gestisce anche prestazioni mediche fatte da medici dell ospedale a pazienti esterni. L anagrafica di tali pazienti è registrata nel sistema (ad opera del personale addetto alle prenotazioni), con l informazione aggiuntiva della particolare prestazione medica richiesta al personale ospedaliero (oltre che la data richiesta). Le prestazioni sono caratterizzate da una specializzazione richiesta (ad., ortopedia, dermatologia, ecc.) e una descrizione più estesa. Di ogni medico il sistema deve conoscere la sua specializzazione primaria e le sue specializzazioni secondarie. Data una prestazione richiesta da un paziente esterno (per una specializzazione s), il sistema deve restituire l insieme dei medici maggiormente idonei a soddisfarla. Il criterio di idoneità è il seguente: se esistono medici con specializzazione primaria pari ad s, il risultato è l insieme di tali medici. Altrimenti, il risultato è l insieme dei medici che hanno s tra le loro specializzazioni secondarie. PC.20080110 (versione del 11 gennaio 2008) pag. 2

1 Fase di Analisi 1.1 Diagramma degli Use Case PC.20080110 (versione del 11 gennaio 2008) pag. 3

1.2 Diagramma delle classi Uml PC.20080110 (versione del 11 gennaio 2008) pag. 4

1.3 Specifica dei tipi di dato Nessun tipo di dato definito 1.4 Specifica degli use case SpecificaUseCase ControlloDisponibilitaPostiLetto postidisponibili(): Insieme(PostoLetto) post: result = { p:postoletto t.c. non esiste alcun link <p,r> con r nello stato in corso }. SpecificaUseCase GestioneRicoveri inseriscinuovoricovero(p:paziente): Ricovero pre: p non e gia ricoverato, ovvero non esiste alcun oggetto r:ricovero tale che r.pazientericovero = p e r e nello stato in corso. Inoltre, ControlloDisponibilitaPostiLetto.postiDisponibili()!= vuoto post: result e pari ad un nuovo oggetto di classe piu specifica Ricovero, con: - result.pazientericovero = p; - result.dataingresso = oggi (istanza del tipo Data relativa alla data corrente) - result.postoassegnato e pari ad un elemento qualsiasi di ControlloDisponibilitaPostiLetto.postiDisponibili(). dimettipaziente(p:paziente) pre: esiste un oggetto r:ricovero tale che r.pazientericovero = p e r e nello stato in corso post: viene generato l evento r.registraterm. Di conseguenza, r passa nello stato concluso e all attributo datauscita viene assegnato il valore oggi. SpecificaUseCase PrenotaPrestazioneEsterna prenota(p:paziente, s:specializzazione, d:data, desc:stringa): PrestazionePazEsterno pre: d > oggi; inoltre, p non e gia ricoverato, ovvero non esiste alcun oggetto r:ricovero in p.pazientericovero tale che r non e di classe RicoveroConcluso e r.dataingresso < d, oppure PC.20080110 (versione del 11 gennaio 2008) pag. 5

(cf. vincolo nel diagramma delle classi, e si noti la semplificazione possibile grazie all aggiunta della precondizione d > oggi e alla semantica dell operazione GestioneRicoveri.dimettiPaziente(), che fissa ad oggi la data di uscita) post: result e pari ad un nuovo oggetto di classe PrestazionePazEsterno con: - result.pazienteprestazione = p - result.data = d - result.desc = desc - result.specrichiesta = s SpecificaUseCase CalcolaItinerarioVisite itinerario(m:medico): Lista(Stanza) post: Detto stanze = { s:stanza esiste r:ricovero tale che: - r.medicocurante = m - r e nello stato in corso - r.postoassegnato.postoinstanza = s } l insieme delle stanze che il medico m deve visitare, result e pari ad una lista ordinata contenente tutti e soli gli elementi di stanze. L ordinamento e tale che detti s1 e s2 due elementi in result, si ha che s1 occorre prima di s2 nella lista se e solo se: - s1.piano < s2.piano, oppure - s1.piano = s2.piano e s1.sett < s2.sett 1.5 Specifica delle classi e diagrammi degli stati e transizioni La classe Medico SpecificaClasse Medico pazientiincura(): Insieme(Paziente) post: result = { p:paziente esiste r:ricovero tale che: - r.medicocurante = this PC.20080110 (versione del 11 gennaio 2008) pag. 6

- r e nello stato in corso - r.pazientericovero = p } La classe PrestazionePazEsterno SpecificaClasse PrestazionePazEsterno cercamedici(): Insieme(Medico) post: se this.specrichiesta.specprimaria!= vuoto, allora result = {m:medico <m,s>:specprimaria } altrimenti result = {m:medico <m,s>:specsecondaria} La classe Ricovero Gli oggetti della classe Ricovero evolvono secondo il seguente diagramma degli stati e transizioni: PC.20080110 (versione del 11 gennaio 2008) pag. 7