ingineri

12
INGINERIE SOFTWARE Proiect: Gestionare cabinet medical-descriere în UML

Upload: gogea

Post on 16-Jan-2016

218 views

Category:

Documents


0 download

DESCRIPTION

b

TRANSCRIPT

Page 1: INGINERI

INGINERIE SOFTWAREProiect: Gestionare cabinet medical-descriere în UML

Page 2: INGINERI

STRUCTURA PROIECTULUI

1. Capturarea cerinţelor;2. Diagrama de cazuri de utilizare;3. Diagrama de clase;

3.1 Identificarea claselor, folosind tehnica identificării substantivelor;4. Diagrame de secvenţă;5. Descrierea cazurilor de utilizare (3 cazuri);6. Implementare;

1. Capturarea cerinţelorStudiu de caz: Cabinet Stomatologic

Se doreşte dezvoltarea de soft interactiv pentru gestionarea unui cabinet stomatologic.Personalul cabinetului este alcătuit din medici şi asistente, fiecare medic având o singură asistentă.

Un medic şi o asistentă trebuie să îndeplinească anumite sarcini.Când un nou pacient solicită serviciile cabinetului stomatologic, asistenta colecţionează

datele şi face înscrierea pacientului. Datele despre pacient vor fi trecute în catalog. Fiecare asistentă deţine un asemenea catalog. Asistenta încasează plata consultaţiei şi eliberează chitanţă. Înscrierea unui pacient se face doar la prima consultaţie. Asistenta va introduce, pentru consultaţie, următorul pacient. Dacă pacientul este la ultima consultaţie, asistenta îl va elimina din sistem. Medicul indică pacientului tipul consultaţiei (extracţie, tratament, lucrare etc.) şi costul sedinţei curente, efectuând consultaţia. Tot medicul va face programarea pacientului pentru o consultaţie ulterioară. Pacientul va fi programat doar dacă nu se află la ultima sedinţă.

La prima consultaţie, pacientul va indica datele personale asistentei şi va achita consultaţia.

2. Diagrama de cazuri de utilizare

Actori:-doctor;-asistenta;-pacient;

Cazuri de utilizare:-pentru doctor: -face programare <include> verifică terminarea tratamentului;

-indică costul consultaţiei;

Page 3: INGINERI

-execută consultaţia; -indică consultaţia;

-pentru asistentă: - înscrie pacient <extend> verifică pacient

- încasează banii;- introduce pacient;

-elimină pacient;<include> verifică terminarea tratamentului;

-pentru pacient; - achită consultaţia;- indică datele;

- solicită serviciile cabinetului; Diagrama de cazuri de utilizare a fost realizată folosind utilitarul MagicDraw.

3. Diagrama de clase3.1 Identificarea claselorS-au identificat următoarele substantive care vor deveni clase:

- personal, doctor, asistentă, pacient, catalog, consultaţie, cabinet;

Page 4: INGINERI

4. Diagrama de secvenţăDoua diagrame de secventa; specificarea cazurilor de utilizare pentru care s-au realizat. A fost realizată utilizând utilitarul MagicDraw.

Page 5: INGINERI

5.Descriere cazuri de utilizare//nu apare in proiect

Caz de utilizare 1. Face programareIstorie: creat 16.11.2002, Dincă Ionuţ

Modificat 11.12.2002Descriere Doctorul face progamarea unui nou pacient.Actori Doctor(principal), AsistentaIpoteze Pacientul nu este la ultima sedinţă.Pasi 1 INCLUDE verificarea terminării tratamentului.

2 Doctorul întreabă pacientul când este disponibil să vină la consultaţie.3 Doctorul consultă lista cu ceilalţi pacienţi programaţi.4 IN PARALLEL 4.1 Doctorul indică asistentei data programării pacientului || 4.2 Asistenta notează data programării în catalog.

Alternative #1 Pacientul indică doctorului data la care i-ar conveni să fie programat.

Cerinte non-functionale Performaţă: timpul de consultare a listei pacienţilor să fie optim.Probleme Care va fi structura catalogului?

Caz de utilizare Înscrie pacientIstorie: creat 16.11.2002, Dincă Ionuţ Modificat 11.12.2002

Descriere Asistenta înscrie în sistem un nou pacient.Actori Asistenta(princial)

PacientIpoteze Pacientul este la prima consultaţie.Pasi 1 EXTEND Verifică pacient.

Page 6: INGINERI

2 IN PARALLEL2.1 Pacientul indică datele asistentei ||2.2 Asistenta notează datele în catalog.

Probleme Ce date ale pacientului le reţinem în catalog?

Extensie caz de utilizare

Verifică pacient extends Înscrie pacient.

Modificări Tratează ipoteza că pacientul este la prima consultaţiePaşi #2 if pacientul nu este la prima consultaţie then asistenta închide

sesiunea de lucru ce conţine catalogul. Probleme Cum detectăm cazurile în care pacientul nu se află la prima

consultaţie.

5. ImplementareUtilitarul MagicDraw generează următoarele fişiere java ce conţin scheletele claselor identificate:

/** * @(#) Asistenta.java */public class Asistenta extends Personal{

public void inscriePacient( Pacient p ){}public void eliminaPacient( int id ){}private Doctor asociat_cu;private Catalog are_un;public boolean verificaPacient( int id ){

return false;}private Pacient[] pacs;public Asistenta( ){}private Catalog c;public void completareCatalog( ){}public Pacient[] getListaPacienti( ){

return null;}public void setListaPacienti( Pacient[] tmp ){

Page 7: INGINERI

}public void listarePacienti( ){}

}

/** * @(#) Doctor.java */public class Doctor extends Personal{

public void progPacient( int id ){}private java.util.Collection are;private Asistenta asociat_cu;private java.util.Collection efectueaza;public void efectueazaConsultatia( int id ){}public Doctor( Asistenta as ){}private Asistenta as;

}

/** * @(#) Pacient.java */public class Pacient{

private int id;private String nume;private String adresa;private int durata_sed;private int data_prog;public Pacient( int id1, String nm, String adr ){}public void SetData_prog( String data ){}public void SetDurata_sed( int tmp ){}public String GetData_prog( )

Page 8: INGINERI

{return null;

}public String GetNume( ){

return null;}public int GetId( ){

return 0;}public String GetAdresa( ){

return null;}private Doctor are;private java.util.Collection merge_la;private boolean ultima_consultatie;public void achitaConsultatia( ){}private Consultatie c;public Consultatie getConsultatie( ){

return null;}public boolean getOrdinCons( ){

return false;}public void setOrdinCons( boolean i ){}

} /** * @(#) Personal.java */public class Personal{

private int id;private String nume;private String prenume;private String adresa;public int GetId( ){

return 0;

Page 9: INGINERI

}public String GetNume( ){

return null;}

}

/** * @(#) Catalog.java */public class Catalog{

private File c;public Catalog( ){}public void scrie_date_pacient( Pacient p ){}private Asistenta are_un;

} /** * @(#) Consultatie.java */public class Consultatie{

private String nume;private int pret;private int durata;public Consultatie( String nm, int p, int tmp ){}public String getNume( ){

return null;}public int getPret( ){

return 0;}public int getDurata( ){

return 0;}private Doctor sustine;private java.util.Collection merge_la;

Page 10: INGINERI

}/** * @(#) Cabinet.java */public class Cabinet{

public void main( ){}

}