Sunteți pe pagina 1din 10

INGINERIE SOFTWARE

Proiect: Gestionare cabinet medical-descriere n UML

STRUCTURA PROIECTULUI
1. Capturarea cerinelor;
2. Diagrama de cazuri de utilizare;
3. Diagrama de clase;
3.1 Identificarea claselor, folosind tehnica identificrii substantivelor;
4. Diagrame de secven;
5. Descrierea cazurilor de utilizare (3 cazuri);
6. Implementare;
1. Capturarea cerinelor
Studiu de caz: Cabinet Stomatologic
Se dorete dezvoltarea de soft interactiv pentru gestionarea unui cabinet stomatologic.
Personalul cabinetului este alctuit din medici i asistente, fiecare medic avnd o singur
asistent.
Un medic i o asistent trebuie s ndeplineasc anumite sarcini.
Cnd un nou pacient solicit serviciile cabinetului stomatologic, asistenta colecioneaz
datele i face nscrierea pacientului. Datele despre pacient vor fi trecute n catalog. Fiecare
asistent deine un asemenea catalog. Asistenta ncaseaz plata consultaiei i elibereaz
chitan. nscrierea unui pacient se face doar la prima consultaie. Asistenta va introduce,
pentru consultaie, urmtorul pacient. Dac pacientul este la ultima consultaie, asistenta l va
elimina din sistem.
Medicul indic pacientului tipul consultaiei (extracie, tratament, lucrare etc.) i costul
sedinei curente, efectund consultaia. Tot medicul va face programarea pacientului pentru o
consultaie ulterioar. Pacientul va fi programat doar dac nu se afl la ultima sedin.
La prima consultaie, pacientul va indica datele personale asistentei i va achita
consultaia.

2. Diagrama de cazuri de utilizare


Actori:
-doctor;
-asistenta;
-pacient;
Cazuri de utilizare:
-pentru doctor: -face programare
<include> verific terminarea tratamentului;
-indic costul consultaiei;
-execut consultaia;

-indic consultaia;
-pentru asistent: - nscrie pacient <extend> verific pacient
- ncaseaz banii;
- introduce pacient;
-elimin pacient;
<include> verific terminarea tratamentului;
-pentru pacient; - achit consultaia;
- indic datele;
- solicit serviciile cabinetului;
Diagrama de cazuri de utilizare a fost realizat folosind utilitarul MagicDraw.

3. Diagrama de clase
3.1 Identificarea claselor
S-au identificat urmtoarele substantive care vor deveni clase:
- personal, doctor, asistent, pacient, catalog, consultaie, cabinet;

4. Diagrama de secven
Doua diagrame de secventa; specificarea cazurilor de utilizare pentru care s-au realizat.
A fost realizat utiliznd utilitarul MagicDraw.

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


Caz de utilizare
Descriere
Actori
Ipoteze
Pasi

Alternative
Cerinte non-functionale
Probleme

Caz de utilizare
Descriere
Actori
Ipoteze
Pasi

1. Face programare
Istorie: creat 16.11.2002, Dinc Ionu
Modificat 11.12.2002
Doctorul face progamarea unui nou pacient.
Doctor(principal), Asistenta
Pacientul nu este la ultima sedin.
1 INCLUDE verificarea terminrii tratamentului.
2 Doctorul ntreab pacientul cnd este disponibil s vin la
consultaie.
3 Doctorul consult lista cu ceilali pacieni programai.
4 IN PARALLEL
4.1 Doctorul indic asistentei data programrii pacientului ||
4.2 Asistenta noteaz data programrii n catalog.
#1 Pacientul indic doctorului data la care i-ar conveni s fie
programat.
Performa: timpul de consultare a listei pacienilor s fie optim.
Care va fi structura catalogului?
nscrie pacient
Istorie: creat 16.11.2002, Dinc Ionu
Modificat 11.12.2002
Asistenta nscrie n sistem un nou pacient.
Asistenta(princial)
Pacient
Pacientul este la prima consultaie.
1 EXTEND Verific pacient.

2 IN PARALLEL
2.1 Pacientul indic datele asistentei ||
2.2 Asistenta noteaz datele n catalog.
Probleme

Ce date ale pacientului le reinem n catalog?

Extensie caz de
utilizare

Verific pacient extends nscrie pacient.

Modificri
Pai

Trateaz ipoteza c pacientul este la prima consultaie


#2 if pacientul nu este la prima consultaie then asistenta nchide
sesiunea de lucru ce conine catalogul.
Cum detectm cazurile n care pacientul nu se afl la prima
consultaie.

Probleme

5. Implementare
Utilitarul MagicDraw genereaz urmtoarele fiiere java ce conin 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 )
{

}
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( )

{
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;

}
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;

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

S-ar putea să vă placă și