Sunteți pe pagina 1din 54

Gestiunea unei Biblioteci Universitare

Studente: Liliana Gherasim Anda Popovici Alexandra Roati Otilia Sabu

Profesor Coordonator: Ovidiu Aritoni

1. Prezentarea detaliat a subiectului


Softul utilizat pentru biblioteca universitara se orienteaza doar spre gestiunea

utilizatorilor. Problemele de gestiune de personal sau financiar contabil ale bibliotecii nu constituie subiectul acestui proiect. In continuare vom prezenta pe larg acest subiect: 1. Biblioteca universitara propune studentilor si cadrelor didactice carti, reviste, Cd-uri, Dvd-uri, casete audio si video, servicii de consultare a diferitelor baze de date cu materiale stiintifice. . !aterialele si serviciile oferite de catre biblioteca sunt ac"izitionate de catre bibliotecar in functie de :

propunerile facute de edituri si companii # propunerile facute de profesori# bugetul bibliotecii pentru ac"izitii de materiale si servicii de informare#

$. Ca si utilizatori pentru biblioteca se pot inscrie cadre didactice si studenti. %. &rice utilizator are dreptul de a cauta un material in baza de date a bibliotecii daca acesta s-a autentificat. '. (numite materiale pot fi imprumutate pe o perioada determinata de timp, cu posibilitate de prelungire a respectivei perioade. ). (plicatia soft*are va permite imprumutarea unei anumite carti daca utilizatorul nu are nici o penalizare la momentul de fata. +. Bibliotecarul are dreptul de a sterge contul unui anumit utilizator daca acesta pierde statutul de cititor ,nu mai este student,profesor, i-a e-pirat legitimatia, etc.. (plicatia va trebui sa pastreze un istoric asupra utilizatorilor, astfel ca utilizatorii vor fi marcati ca /e-pirati0. 1. 2n e-emplar al unei carti nu poate fi imprumutat daca acesta este intr-o stare foarte proasta. 3. 2tilizatorii pot fi penalizati in anumite situatii ,intarziere returnare carte, pierdere material imprumutat, etc. . 14. (plicatia va folosi date furnizate de catre un server al universitatii si diferite servicii furnizate de catre acest server.

2. Modelarea funcional i dinamic


(1) Actori:
2tilizatori

Studenti Profesori

Bibliotecari Server 2niversitate ,S2. Sistemul Informatic al Bibliotecii ,SIB. 5dituri

(2) Diagrama de conte t static:

Server Universitate Package1 1

Sistemul Informatic al Bibliotecii Package2 1

1..* Bibliotecar

Biblioteca Universitara

0..* Utilizator

1..*

Editura

Profesor

Student

(!) Diagrama de cazuri de utilizare:

Inscriere utilizator nou

Stergere utilizator

Imprumutare carte

Editura

Achizitionare carte

Inregistrare de noi exemplare

Verificare stare exemplar

Bibliotecar

Retragere exemplar pentru reconditionare

Retragerea unui exemplar de carte sau revista

etectare carti pierdute

Inregistrare propunere

Inscriere

Stergere

Imprumutare carte

SIB

Restituire carte Utilizator

!onsultare catalog

Autentificare

Student

Profesor Propunere carte

(") Descrierea de cazuri de utilizare:


1. Caz de utilizare: Achizitionare carte Titlu: (c"izitionare carte Rezumat: Bibliotecarul ac"izitioneaza carti in functie de bugetul bibliotecii si de propunerile profesorilor 2niversitatii Actori: Bibliotecar, edituri Descrierea scenariului: Preconditii 5-ista propuneri pentru carti noi Bugetul bibliotecii 64 Cartea e-ista in catalogul de ac"izitii al bibliotecii

Scenariu nominal 1) Bibliotecarul verifica propunerile 2) Bibliotecarul verifica bugetul bibliotecii 3) Bibliotecarul decide sa ac"izitioneze o carte 4) Bibliotecarul verifica cu a7utorul SIB e-istenta cartii in catalogul de propuneri 5) SIB cauta cartea in catalog 6) Bibliotecarul comanda cartea la editura 7) 5ditura e-pediaza bibliotecarului cartea 8) Bibliotecarul efectueaza plata cartii catre editura 9) 5ditura confirma efectuarea platii 10) Bibliotecarul sterge cartea din lista de propuneri
6

11) Bibliotecarul face update bugetului bibliotecii 12) Bibliotecarul face update la SIB Scenarii alternative 1. Cartea nu este disponibila pentru achizitionare (nu se gaseste in catalogul de propuneri Incepe la pasul ' al scenariului nominal ). Cartea nu este in lista de propuneri +. Bibliotecarul se decide pentru o alta carte Scenariul nominal se reia de la pasul $ !. Cartea nu e disponibila pentru achizionare (editura nu are e"emplare disponibile Incepe la pasul ) al scenariului nominal +. 5ditura nu are e-emplare disponibile ale cartii 1. Bibliotecarul se decide pentru o alta carte Scenariul nominal se reia de la pasul $ Scenarii de eroare 1. #ugetul este insu$icient pentru achizitionarea cartii Incepe la pasul al scenariului nominal $. Bugetul este insuficient pentru ac"izitionarea de carti %. Cazul de utilizare se inc"eie !. %u sunt carti disponibile pentru achizitionare Incepe la pasul ) al scenariului nominal

). Biblioteca specifica faptul ca deocamdata nu sunt disponibile carti pentru imprumut +. Cazul de utilizare se inc"eie Diagrama de secventa:

Bibliotecar

SIB 1 : Prop=consulta_prop(

Edituri

2 : return Prop( ! : Buget=consulta_bugetBiblio(

" : return Buget( # : $arte=cauta_carte( % : re&=cauta_carte(

' : return re&(

( : cere(

) 10 : plateste(

11 : return plata*+( 12 : stergePropunere(

1! : return stergere*+( 1" : updateBuget( 1# : return *+(

Diagrama de activitate:

$onsulta propuneri

$onsulta buget biblioteca

$auta carte Buget insu,icient

$artea nu se gaseste

$auta carte in catalog

$ere cartea editurii

Editura tri-ite cartea

Plata carte

Plata e in regula

Sterge propunerea

.pdate buget biblioteca

!. Caz de utilizare: Propunerea de noi carti Titlu: Propunere de noi carti Rezumat: 5diturile propun carti noi. 8oate cartile noi sunt introduse in catalogul bibliotecii. Actori:5diturile Descrierea scenariilor Preconditii Sa e-iste edituri Sa e-iste catalogul propunerilor

Scenariu nominal 1. & editura are o carte noua . 5ditura cauta in catalog pentru a vedea daca e-ista de7a cartea $. Daca nu e-ista de7a in catalog, cartea este adaugata Postconditii: Catalogul de propuneri al bibliotecii contine carti noi. &. Caz de utilizare: 'nscrierea de noi utilizatori Titlu: Inscrierea de noi utilizatori Rezumat: Bibliotecarul inscrie utilizatori care vor sa imprumute carti sau sa consulte publicatii. Actori: Bibliotecarul, utilizatorul, SIB, S2 Descrierea scenariului

10

Preconditii Persoana care doreste sa se inscrie este student sau profesor al 2niversitatii Persoana care doreste sa se inscrie are de7a toate actele necesare ,carnet de student sau buletin. Persoana care doreste sa se inscrie a platit ta-ele necesare inscrierii 2n student penalizat pentru un an se poate inscrie numai la sfarsitul anului de penalizare Scenariu nominal 1. & persoana se prezinta la g"iseul bibliotecii pentru a se inscrie . Bibliotecarul ii cere carnetul de student sau buletinul $. Persoana ii inmaneaza carnetul sau buletinul %. Bibliotecarul verifica cu a7utorul S2 daca persoana este student sau profesor al 2niversitatii '. S2 cauta persoana in baza de date ). Bibliotecarul verifica cu a7utorul SIB daca studentul este penalizat pentru un an +. SIB cauta informatia ceruta 1. Bibliotecarul cere persoanei o poza 3. Persoana ii inmaneaza o poza 14. Bibliotecarul ii cere persoanei c"itanta pentru a dovedi ca a platit ta-ele de inscriere 11. Persoana ii inmaneaza c"itanta 1 . Bibliotecarul creeaza un nou utilizator si il adauga in lista de utilizatori 1$. Bibliotecarul face update la SIB Scenarii alternative:
11

1. Studentul e penalizat pentru un an Scenariul debuteaza la pasul + al scenariului nominal 1. Bibliotecarul verifica cu a7utorul SIB data inc"eierii perioadei de penalizare 3. SIB cauta data inc"eierii perioadei de penalizare 14. a. daca aceasta data 9 data curenta atunci bibliotecarul ii cere studentului o poza Scenariul se reia din punctul 1. b. daca aceasta data : data curenta cazul de utilizare se inc"eie !. Persoana nu a platit ta"ele necesare inscrierii Scenariul debuteaza la pasul 14 al scenariului nominal 11. Bibliotecarul trimite persoana sa plateasca ta-ele necesare 1 . Persoana efectueaza plata ta-ei necesare inscrierii Scenarii de eroare: 1. Persoana nu poate prezenta buletinul sau carnetul de student Scenariul debuteaza la pasul al scenariului nominal $. Cazul de utilizare se inc"eie !. Persoana nu e student sau pro$esor al (niversitatii Scenariul debuteaza la pasul ' al scenariului nominal ). Cazul de utilizare se inc"eie &. Persoana nu poate prezenta poza Scenariul debuteaza la pasul 1 al scenariului nominal 3. Cazul de utilizare se inc"eie Postconditii:

12

5ste inscris un nou utilizator in SIB ;r<utilizatori=post > ;r<utilizatori=pre ? 1 Diagrama de secventa:

Bibliotecar 1 : $ere buletin sau carnet 2 : In-anea&a buletin sau carnet

.tili&ator

SIB

Ser/er .ni/ersitate

! : re&=cauta_utili&ator( " : cauta_utili&ator(

# : return re& % : re&2=este_penali&at(

' : return re&2 ( : $ere po&a

) : In-anea&a po&a 10 : platit = plata_ta0e( 11 : return platit 12 : Inscriere(

1! : return Inscriere*+

13

Diagrama de activitate:

1eri,ica identitate persoana

E pro,esor sau student3

2u are carnet sau buletin

2u e0ista in B4 a .ni/

1eri,ica daca e penali&at pt un an

data_ter-7data_curenta 2. 2u are po&a 1eri,ica data ter-inarii penali&arii 45 data_ter-6data_curenta $ere po&a

$ere c8itanta

Plateste ta0e

Inscrie utili&ator

.pdate SI al bibliotecii

14

). Caz de utilizare: *mprumutarea unei c+r,i Titlu: @mprumutare carte Rezumat: 2tilizatorul consultA catalogul din SIB pentru a alege o carte Actori: 2tilizator, Bibliotecar, SIB Descriere scenariu Precondi,ii: Catalogul sA nu fie vid 2tilizatorul sA fie Bnscris la bibliotecA Cartea doritA sA fie disponibilA 2tilizatorul sA nu aibA penalizari restante 2tilizatorul sA nu aibA mai mult de $ cArCi Bmprumutate de7a. Scenariu nominal
1.

& persoanA se prezintA la g"iDeu pentru a efectua un Bmprumut.

. Bibliotecarul Bi cere legitimaCia de bibliotecA. $. 2tilizatorul BnmEneazA legitimaCia bibliotecarului. %. Bibliotecarul verificA Bn baza de date din SIB id-ul utilizatorului. '. SiB Bntoarce id-ul utilizatorului. ). Bibliotecarul BntreabA ce carte doreDte sA Bmprumute. +. 2tilizatorul comunicA titlul cArCii dorite. 1. Bibliotecarul verificA Bn baza de date din SIB disponibilitatea cArCii cerute. 3. SIB Bntoarce disponibilitate cArCii. 14. Bibliotecarul verificA Bn SIB dacA utilizatorul are penalizari. 11. SIB Bntoarce bibliotecarului situaCia studentului. 1 . Bibliotecarul verificA Bn SIB numArul de cArCi Bmprumutate de7a de cAtre utilizator. 1$. SIB Bntoarce numArul cArCilor nerestituite BncA de cAtre student. 1%. Bibliotecarul BmprumutA cartea sudentului.

15

1'. Bibliotecarul introduce Bn SIB data scadentA de restituire a cArCii. 1). Bibliotecarul face update penru numArul de cArCi Bmprumutate de cAtre student. 1+. Bibliotecarul face update al bazei de date ce conCine cArCile. Scenarii alternative 1. Persoana nu e -nscris+ la bibliotec+ Scenariul debutezA la pasul al scenariului nominal.

$. Bibliotecarul cere acordul persoanei care doreDte sA Bmprumute o carte de a o Bnscrie la bibliotecA. Cazul continuA cu cazul de utilizare F Bnscriere de noi utilizatori F. 1. Persoana nu -mprumut+ nici o carte Scenariul debutezA la pasul ) al scenariului nominal. +.Persoana nu BDi aminteDte ce carte doreDte sA Bmprumute. Cazul se reia cu cazul de utilizare F consultare catalogF. Scenarii de eroare 1. Cartea nu este disponibil+ Scenariul debutezA la pasul 3 al scenariului nominal. 14.Cartea nu e-istA Bn SIB. 11.8oate e-emplarele sunt Bmprumutate 1 .Cazul de utilizare se Bnc"eie. 5roareG (ceastA situaCie poate fi rezolvatA prin cumpArarea unei cArCi sau returnarea uneia Bmprumutate. !. (tilizatorul are penalizari Scenariul debutezA la pasul 11 al scenariului nominal. 1 .2tilizatorul nu poate Bmprumuta alte cArCi pEnA nu ac"itA penalizarile.
16

1$.Cazul de utilizare se Bnc"eie. 5roareG &. (tilizatorul are de.a & c+r,i -mprumutate Scenariul debutezA la pasul 1$ al scenariului nominal. 1%. 2tilizatorul nu poate Bmprumuta alte cArCi pEnA nu returnezA cel puCin o carte. 1'. Cazul de utilizare se Bnc"eie. 5roareG Postcondi,ii: Pt utilizator:nr<carti<imprumutate=post>nr<carti<Bmprumutate=pre?1 5-emplarul respectiv a devenit indiponibil. Pt carte: nr<e-emplare<disponibile>nr<e-emplare<disponibile-1 Baza de date a utilizatorilor conCine noul Bmprumut Baza de date a cArCilor conCine noul Bmprumut Diagrama de secventa:

Bibliotecar

SIB

1 : status=getStare( 2 : /eri,icaStare(

! : returnStare(

" : i, status=9distrus9 :etrage(

# : update2r( % : updateB4(

17

/. Caz de utilizare: Restituirea unei c+r,i Titlu: Hestituire carte Rezumat: 2tilizatorul restituie cartea pe care a Bmprumutat-o Actori: 2tilizator, Bibliotecar, SIB Descriere scenariu Precondi,ii: Cartea e BnregistratA Bn SIB Cartea e BmprumutatA de cineva. Scenariu nominal: 1. & persoanA se prezintA la g"iDeu pentru a returna o carte. . Bibliotecarul Bi cere cartea pe care doreDte sA o restituie. $. 2tilizatorul BnmEneazA bibliotecarului cartea pe care a adus-o. %. Bibliotecarul verificA Bn baza de date din SIB cota cartii
5. SIB aratA bibliotecarului cota cartii.

). Bibliotecarul verificA Bn baza de date din SIB data scadenta.


7. SIB Bntoarce data scadenta.

1. Bibliotecarul cautA in SIB id-ul utilizatorului. 3. SiB intoarce id-ul utilizatorului. 14. Bibliotecarul aduce la cunoDtinCA utilizatorului dacA are penalizari. 11. Bibliotecarul aduce la cunoDtiinCA utilizatorului situaCia Bmprumuturilor curente. 12. Bibliotecarul verificA starea e-emplarului returnat. 1$. Bibliotecarul face update Bn baza de date din SIB pentru disponibilitatea cArCilor.
14. Bibliotecarul face update Bn baza de date din SIB pentru numArul de e-emplare

Bmprumutate de acel utilizator. Scenarii alternative: 1. Cartea e $oarte distrus+ Scenariul debuteazA la pasul 1 al scenariului nominal.

18

1$.Bibliotecarul trimite e-emplarul pentru a fi recondiCionat. 1%.Bibliotecarul sc"imbA diponibilitatea e-emplarului Bn atributul: BnHecondiCionare. Cazul de utilizare se continuA cu pasul 1% . !.Cartea nu e -nregistrat+ -n S'# Scenariul debuteazA la pasul ' al scenariului nominal. (ceastA situaCie e posibilA atunci cEnd cartea a fost pierdutA Di utilizatorul o restituie dupA ce ea a fost DtearsA din baza de date Di eventual BnlocuitA cu una nouA. CEnd un e-emplar este pierdut el este Dters din baza de date. Bibliotecarul trebuie sA reintroducA noua carte Bn bd Di sA aplice penalizare utilizatorului care a pierdut cartea. 2tilizatorul e penalizat ca pentru o BntErziere precum Di plata noului e-emplar ,Pentru cA biblioteca a cumpArat un alt e-emplar de7a.. ).Bibliotecarul BnregistreazA cartea ca Di nou e-emplar +.Bibliotecarul face update penalizarilor utilizatorului. Scenariul continuA cu pasul 1$ din scenariul nominal. Scenarii de eroare 0 Postcondi,ii: nr<carti<imprumutate=pre>nr<carti<Bmprumutate=post-1 @mprumutul a fost distrus 5-emplarul este disponibil Pt carte: nr<e-emplare<disponibile>nr<e-emplare<disponibile?1 Baza de date a cArCilor conCine cArCile returnate Baza de date a utilizatorului conCine cArCile retunate Diagrama de secventa:

19

Bibliotecar

SIB

1 : status=getStare( 2 : /eri,icaStare(

! : returnStare(

" : i, status=9distrus9 :etrage(

# : update2r( % : updateB4(

20

1.Caz de utilizare: 2tergere utilizator Titlu: Itergere utilizator Rezumat: Bibliotecarul Dterge utilizatorul care nu Di-a reBnnoit Bnregistrarea Bn SIB ,a e-pirat legitimaCia. sau nu mai este student sau profesor Actori: 2tilizator, Bibliotecar, SIB, S2 Precondi,ii: 2tilizatorul BDi pierde statutul de Bnscris la bibliotecA. Scenariu nominal:
1.

Bibliotecarul verificA Bn baza de date din S2 dacA utilizatorul este BncA student sau

profesor.
2. S2 verificA e-istenCa persoanei respective Bn baza de date. 3. Bibliotecarul verificA Bn baza de date din SIB dacA utilizatorul Di-a vizat legitimaCia. 4. SIB verificA dacA utilizatorul este reBnregistrat.

'. Bibliotecarul Dterge utilizatorul care nu BndeplineDte condiCiile necesare pentru a fi utilizator. Scenarii alternative 0 Scenarii de eroare DacA un utilizator Di-a vizat legitimaCia pentru anul Bn curs Di este BncA student sau profesor nu poate fi Dters. Cazul de utilizare se Bnc"eie. Postcondi,ii:2tilizatorul nu mai e-istA Bn SIB. Diagrama de secventa:

21

Bibliotecar

SIB

S.

1 : id=getId( 2 : /eri,icaId(

! : returnId(

" : /eri,icaStatut(

# : statut=getStatut( % : returnStatut(

' : i, statut /eri,icaInregistrare( ( : return1i&a(

) : i, ;statut << ;/i&at sterge.tili&ator(

22

3. Caz de utilizare: Retragere e"emplar pentru recondi,ionare Titlu: Hetragere e-emplar pentru recondiCionare Rezumat: @n cazul Bn care o carte sau o revistA este foarte distrusA ea trebuie retrasA din uz Di trimisA pentru a fi recondiCionatA. Actori: Bibliotecar, SIB Descriere scenariu Precondi,ii: 5-emplarul cArCiiJrevistei trebuie sA figureze Bn baza de date din SIB. Scenariu nominal:
1.

Bibliotecarul verificA starea materialelor e-istente Bn baza de date din SIB.

. Bibliotecarul modificA starea materialului Bn 99BnHecondiCionare::. $. Bibliotecarul modificA disponibilitatea e-emplarului retras Bn baza de date din SIB. %. Bibliotecarul trimite spre recondiCionare carteaJrevistele. Scenarii alternative 0 Scenarii de eroare 2n e-emplar e prea distrus Di nu poate fi reparat. @n acest caz bibliotecarul retrage e-emplarul din baza de date din SIB. Postcondi,ii: 5-emplarul cArCiiJrevistei nu este disponibil momentan. Starea e-emplarului este 99BnHeparaCie::. Pentru carteaJrevista respectivA: nr<e-emplare<disponibile=post> nr<e-emplare<disponibile=pre-1 Diagrama de secventa:
23

Bibliotecar

SIB

S.

1 : id=getId( 2 : /eri,icaId(

! : returnId(

" : /eri,icaStatut(

# : statut=getStatut( % : returnStatut(

' : i, statut /eri,icaInregistrare( ( : return1i&a(

) : i, ;statut << ;/i&at sterge.tili&ator(

24

4. Caz de utilizare: Retragerea unui e"emplar de carte sau revist+ Titlu: Hetragerea unui e-emplar de carte sau revistA Rezumat: Bibliotecarul retrage o carteJo revistA dacA: e-emplarul respectiv e prea distrus Di nu poate fi recondiCionat e-emplarul respectiv a fost pierdut

Actori: Bibliotecar, SIB Descriere scenariu Precondi,ii:

5-emplarul sA e-iste Bn baza de date din SIB 5-emplarul respectiv e prea distrus Di nu poate fi recondiCionat sau e-emplarul respectiv a fost pierdut Scenariu nominal: 1. Bibliotecarul retrage o carte sau o revistA foarte distrusA.
2. Bibliotecarul retrage un material decalarat pierdut. 3. Bibliotecarul face update pentru numArul de e-emplare al materialului retras.

%. SIB face update al bazei de date. Scenarii alternative 0 Scenarii de eroare 0 Postcondi,ii: ;umArul cArCilor Di revistelor pentru care a fost retras un e-emplar este diminuat cu o unitate. Pentru material : nr<e-emplare<e-istente=post> nr<e-emplare<e-istente=pre-1 Baza de date conCine faptul cA un e-emplar a fost retras.

25

Diagrama de secventa:

Bibliotecar

SIB

1 : status=getStare( 2 : /eri,icaStare(

! : returnStare(

" : i, status=9distrus9 :etrage(

# : update2r( % : updateB4(

26

5. Caz de utilizare: Consultare catalog Titlu: Cautare material in catalogul bibliotecii Rezumat: 2tilizatorul cauta in baza de date materialul de care are nevoie. Sistemul informatic al bibliotecii pune la dispozitie mai multe tipuri de cautari: dupa titlul cartii, dupa autor, dupa cuvinte c"eie, etc. Actori: 2tilizator, SIB Descriere scenariu Preconditii: 2tilizator sa fie inscris la biblioteca. Scenariu nominal: 1. 2tilizatorul introduce id-ul de autoidentificare. . SIB verificA dacA utilizatorul este inregistrat. $. SIB autorizeaza utilizatorul in sesiunea de cautare. %. 2tilizatorul alege modul, ,dupa numele autorului, titlul cartii sau alte cuvinte c"eie. in care se va efectua cautarea. '. SIB verifica daca poate efectua cautarea dupa tipul de cautare specificat. ). SIB realizeaza cautarea. +. SIB returneaza rezultatul cautarii. Scenarii alternative: 0 Scenarii de eroare: 0 Postconditii: 5-emplarul cautat a fost gasit.

27

Diagrama de secventa:

.tili&ator

SIB

1 : id=getId( 2 : /eri,icaId( ! : returnId( " : -od=get>od( # : /eri,ica>od( % : cautare(

' : return re&ultat_cautare(

28

Diagrama de activitate:

5utenti,icare

1eri,icare utili&ator

eroare de identi,icare Indica -od$autare

$autare

5,isea&a re&ultat

16. Caz de utilizare: 7eri$icare stare e"emplar Titlu: Kerificare stare e-emplar Rezumat: Bibliotecarul verifica starea fiecarei carti returnate de utilizator. (stfel, bibliotecarul verifica starea tuturor cartilor care au fost imprumutate apoi restituite. Actori: Bibliotecar, SIB Descriere scenariu Precondi,ii: 5-emplarul cartiiJrevistei imprumutat e-ista in SIB si a fost returnat. Scenariu nominal: 1. Bibliotecarul verificA starea e-emplarului returnat.

29

. Bibliotecarul modifica in SIB starea cartiiJrevistei care a fost verificata. $. Daca starea e-emplarului este Lfoarte proasta0, acesta este trimis spre recondiCionare. Cazul de utilizare se continua cu /Hetragere e-emplar pentru reconditionare0. Scenarii alternative: 0 Scenarii de eroare: 0 Postcondi,ii: Starea e-emplarului este actualizata. Diagrama de secventa:

Bibliotecar

SIB

1 : /eri,icaStare( 2 : -odi,icaStare(

$a&ul de utili&are se continua cu ?:etragere e0e-plar pentru reconditionare@.

! : i, stare=9,oarteProasta9 reconditionare(

11.Caz de utilizare: Detectare c+r,i pierdute Titlu: Detectare carti pierdute Rezumat: Bibliotecarul identifica toate cartile pierdute. Daca o carte imprumutata nu este restituita in timp de o luna de la efectuarea imprumutuluiJreimprumutului, cartea este declarata pierduta. In acest caz, utilizatorul va fi penalizat.
30

Actori: Bibliotecar, SIB (cest caz de utilizare 99include:: cazul LHetragerea unui e-emplar de carte sau revistA0. Descriere scenariu Preconditii:

Cartea e-ista Bn baza de date din SIB. Data scadenta de returnare a fost depasita ,data<curenta:data<scadenta?$1.. Scenariu nominal:

1. Bibliotecarul verifica situatia inprumutuluiJreimprumutului ,data<scadenta pentru fiecare e-emplar.. . SIB returneaza data<scadenta la care trebuie returnat e-emplarul. $. Bibliotecarul declara pierdut e-emplarul pentru care data<curenta:data<scadenta?$1. %. Bibliotecarul sterge din SIB imprumutul pentru e-emplarul declarat pierdut. '. (cest caz de utilizare se continua cu scenariul cazului de utilizare LHetragerea unui e-emplar de carte sau revista0. Scenarii alternative: 0 Scenarii de eroare: 0 Postcondi,ii:

In baza de date din SIB nu e-ista e-emplare pierdute. ;umArul cArCilor Di revistelor care au fost declarate pierdute este diminuat cu o unitate. Pentru material : nr<e-emplare<e-istente=post> nr<e-emplare<e-istente=pre-1 Diagrama de secventa:

31

Bibliotecar 1 : /eri,ica_dataScadenta( 2 : return dataScadenta(

SIB

Se continua cu scenariul ca&ului de utili&are B:etragerea unui e0e-plar de carte sau re/ista@. ! : i, data_curenta7data_scadentaA!1 e0_pierdut( " : stergeI-pru-ut(

1&. Caz de utilizare: *nregistrare de noi e"emplare Titlu: Inregistrare de noi e-emplare Rezumat: Pentru o carteJrevista ac"izitionata, bibliotecarul introduce in baza de date noi e-emplareJnumere din acea carteJrevista. Actori: Bibliotecar, SIB Descriere scenariu Preconditii:

;oua ac"izitie e-ista in baza de date. Scenariu nominal:


1. Bibliotecarul introduce in baza de date noul e-emplar de carteJrevista. . Bibliotecarul

face update la atributele noului e-emplar: stare>noua,

status>disponibila, BnHeparaCie>fals, data<intregistrarii>data<curenta,etc. $. Bibliotecarul actualizeaza istoricul e-emplarului.


32

%. Bibliotecarul actualizeaza situatia cartiiJrevistei pentru care a introdus un nou e-emplarJnumar. '. Bibliotecarul face update la SIB. Scenarii alternative: 0 Scenarii de eroare: 0 Postconditii: SIB contine noul e-emplar de carteJrevista. Diagrama de secventa:

Bibliotecar

SIB

E0e-plar

$arteC:e/ista

1 : introd_e0_nou(

2 : update5tribute(

! : actuali&ea&aIstoric(

" : actuali&ea&aIstoric1( # : updateSIB(

1). Caz de utilizare: 'nregistrare propunere Titlu: Inregistrarea propunere Rezumat: Bibliotecarul adauga in catalogul de propuneri numele cartii ceruta de utilizator, care nu e-ista in sistemul informatic al bibliotecii. (stfel, fiecare cerere nesatisfacuta , va fi inregistrata in lista cu propuneri. Actori: Bibliotecar, SIB Descriere scenariu:

33

Preconditii
2. 5-ista un catalogul de propuneri al bibliotecii.

$. Cartea nu e-ista in baza de date a bibliotecii. Scenariu nominal


1.

Bibliotecarul verifica cu a7utorul SIB e-istenta cartii in catalogul de propuneri. . SIB returneaza rezultatul cautarii.

$. Bibliotecarul adauga numele cartii in catalogul de propuneri. %. Bibliotecarul face update la SIB. Scenarii alternative: 0 Scenarii de eroare: 0 Postconditii: Catalogul de propuneri contine o noua propunere. Diagrama de secventa (scenario nominal :

Bibliotecar

SIB

1 : deDa_inregistrat=cauta_nu-e( 2 : cauta_nu-e( ! : return deDa_inregistrat(

" : i, ;deDa_inregistrat inregistrea&aPropunere(

# : update(

34

1). Caz de utilizare: Autenti$icare utilizator Titlu: (utentificare utilizator Rezumat: 2n utilizator doreste sa efectueze login la baza de date din SIB. Pentru aceasta el trebuie sa introduca numele de user si parola. Actori: 2tilizator, SIB Descriere scenariu Preconditii: $. Persoana sa detina un cont utilizator. Scenariu nominal: %. 2tilizatorul alege optiunea (utentificare. '. 2tilizatorul introduce numele de user si parola. ). SIB verifica autentificarea prin consultarea bazei de date ce contine utilizatorii si parolele. +. SIB permite accesul la catalog. Scenarii alternative: 0 Scenarii de eroare: 1.Autenti$icarea esueaza 2tilizatorul a introdus parola gresit. (ccesul ii este interzis. 5roareG

Postconditii: 2tilizatorul este logat la baza de date din SIB.

35

!. Modelare static
(a) Diagrama de clasa

Imprumut =cota: integer =I4: integer =dataI-pru-ut: 4ate =data:estituirePre/a&uta: 4ate =data:estituireE,ecti/a: 4ate AcreareI-pru-ut( AanulareI-pru-ut( Acautare4E( Aupdate( AeliberareI-pru-ut( AesteEliberat(

Eliberare Adata: 4ate EnrEliberare: integer AEliberare(

Exemplar =cota: integer =stare: boolean =calitate: String =in:eparatie: boolean =data$reare: 4ate =data5nulare: 4ate =pierdut: boolean = ,alse =i-pru-utabil: boolean Asc8i-bareStare( Asc8i-bareIn:eparatie( Asc8i-bare$alitate( Acreare( 0..* Aanulare( Acautare( AupdateGog( 1..*

Server Universitate

0..*

Utilizator Enu-e: String Eprenu-e: String EI4: integer 66abstract77EnrFileI-pru-ut: integer 0..* EdataInscriere: 4ate Edata5nulare: 4ate Enr$artiI-pru-utate: integer Enu-e.ser: String Eparola: String 1 A$reare( A5nulare( A5utenti,icare( Aupdate( AupdateGog( Aalegere>od$autare(

Biblioteca

1 0..* "aterial Atitlu: String Aautor: String AnrE04isp: integer EISB2: String Edata$reare: 4ate Edata5nulare: 4ate Acreare( Aanulare(

0..!

1 Sistemul Informatic al Bibliotecii

Student

Profesor

Eadresa Ee-ail: String EnrFileI-pru-ut: integer = 1# EnrFileI-pru-ut: integer = !0 Edata:escriere: integerH#I Edata:escriere: integerH!0I EdataS,arsitPenali&are: 4ate Apropune( AupdatePenali&are( A/eri,icarePenali&are(

!arte A/olu-: integer = 1 Aeditie: integer = 1 AupdateGog( Aupdate( Acautare$arte(

Revista Aperiodicitate: ,loat Anu-ar: int Acuprins: String Acautare:e/ista(

36

(b) #tructura in $ac%ete


Clasele sunt grupate in urmatoarele pac"ete: ,1. Inventar

5-emplar !aterial Carte Hevista

, . 2seri

2tilizator Student Profesor

,$. 8ranzactii

Imprumut 5liberare

(c) &n'ariani Context Utilizator


M nume not emptN # M prenume not emptN# M ID not emptN O is2niPue, .# M nrQileImprumut : 4# M $ 6 nrCartiImprumutate 6 4# M nume2ser is2niPue, .# M dataInscriere R todaN#
37

M data(nulare R todaN# M dataInscriere R data(nulare#

Context Student
M adresa not emptN# M nrQileImprumut > 1'# M dataHeinscriere : dataHeinscriereSiT ? $)' R dataHeinscriereSi?1T # dataInscriere 9 dataHeinscriereS4T # M dataSfarsitPenalizare : dataSfarsitPenalizare 6 todaN # dataSfarsitPenalizare R dataHeinscriereSiT #

Context Profesor
M email not emptN # M nrQileImprumut > $4 # M dataHeinscriere : dataHeinscriereSiT ? $)' R dataHeinscriereSi?1T #

Context Material
M titlu not emptN # M autor not emptN # M nr5-Disp 6 4 # M ISB; is2niPue, . # M dataCreare R todaN # M data(nulare R todaN # dataCreare 9 data(nulare #

Context Carte
M volum not emptN default > 1 #
38

M editie not emptN default > 1 #

Context Revista
M periodicitate : 4 periodicitatea 9 1 daca revista apare de m ori la n luni, unde m9n M numar not emptN # M cuprins not emptN #

Context Exemplar
M cota is2niPue, . M cota : 4 M dataCreare 9 data(nulare # M inHeparatie implies imprumutabil # M inHeparatie implies stare M calitate implies stare M calitate implies imprumutabil # M calitate implies inHeparatie # M calitate > enumUnou, ca<si<nou, stare<buna, partial<deteriorat, foarte<deteriorat. # M stare implies imprumutabil # M dataCreare 9 data(nulare #

Context Imprumut
M ,dataImprumut, cota, id. is2niPue, . # M dataImprumut 9 dataHestituirePrevazuta # M dataImprumut 9 dataHestituire5fectiva #

Context Eliberare
M nr5liberare 6 4 # M data R todaN #
39

(d) Pre(Post )ondiii Context Student


M creare ,nume, prenume, adresa, nume2ser, parola . PrecondiCii : not utilizator -:e-ists,user V user.id>id. O not utilizator -:e-ists,user V user.id O an<in<curs.include,user.dataInscriere.. O S2-:e-ists,pV p.nume>nume O p.prenume>prenume. O todaN: student -:,user:2tilizatorVuser.id>idd ..dataSfarsitPenalizare PostcondiCii: utilizator -: e-ists, user V user.id>id V user.nume>nume V user.prenume>prenume V user.adresa>adresa V user.nrQileImprumut>1' V user.nume2ser>nume2ser Vuser.parola>parola V user.nrCartiImprumutate>4 Vuser.dataInscriere>todaN Vuser.data(nulare>null Vuser.dataHeinscriere>null V user.dataSfarsitPenalizare>null. O Biblioteca.nr2tilizatori=pre>Biblioteca.nr2tilizatori=post?1 M anulare, . PrecondiCii : PostcondiCii : Biblioteca.nr2tilizatori=pre>self.nr2tilizatori=post-1 O self.data(nulare>todaN M autentificare,nume2ser, parola. PrecondiCii : PostcondiCii : result> utilizator -:for(ll,e :StudentVe.nume2ser>nume2ser O
40

e.parola>parola. M update, . M updateWog, . M alegere!odCautare,.,mod . M updatePenalizare,imprumut .

M verificarePenalizare,id. :boolean Context Profesor


M creare ,nume, prenume, email, nume2ser, parola. PrecondiCii : not utilizator -:e-ists,user V user.id>id . O not utilizator -:e-ists,user V user.id O an<in<curs.include,user.data-inscription.. O S2-:e-ists,pV p.nume>nume O p.prenume>prenume. PostcondiCii: utilizator -: e-ists, user V user.id V user.nume>nume V user.prenume>prenumeV user.email>email V user.nrQileImprumut>$4 V user.nume2ser>nume2ser Vuser.parola>parola V user.nrCartiImprumutate>4 Vuser.dataInscriere>todaN V user.data(nulare>null Vuser.dataHeinscriere>null. O Biblioteca.nr2tilizatori=pre>Biblioteca.nr2tilizatori=post?1 M anulare, . PrecondiCii : PostcondiCii : Biblioteca.nr2tilizatori=pre>Biblioteca.nr2tilizatori=post-1 O self.data(nulare>todaN M autentificare,nume2ser,parola.
41

PrecondiCii : PostcondiCii : result> utilizator -:for(ll,e :ProfesorVe.nume2ser>nume2ser O e.parola>parola. M update, . M updateWog, . M alegere!odCautare, .

M propune,propunere.
PrecondiCii : ,,titlu,autor. V propunere.titlu>titlu O propunere.autor>autor . 5mptN, . PostcondiCii : Biblioteca.listaPropuneri not5mptN, . propunere-:e-ist,pV p.autor>autor V p.titlu>titlu.

Context Carte M update, . M updateWog, . M cautareCarte,autor. : WistaCarti


PrecondiCii : PostcondiCii : result>e-emplare-:select,e : Carte Ve.autor>autor.

M cautareCarte,titlu. :WistaCarti
PrecondiCii : PostcondiCii : result>e-emplare-:select,e : Carte Ve.titlu>titlu.

M cautareCarte,autor,titlu. :WistaCarti

42

PrecondiCii : PostcondiCii : result>e-emplare-:select,e : Carte Ve.autor>autor O e.titlu>titlu.

M cautareCarte,autor,titlu,ISB;. :boolean
PrecondiCii : PostcondiCii : result>e-emplare-:for(ll,e : Carte Ve.autor>autor O e.titlu>titlu O e.ISB;>ISB;.

M creare,autor,titlu,ISB; .
PrecondiCii : not carte-:cautareCarte,titlu,autor,ISB;. PostcondiCii : carte-:e-ists,lV l.titlu>titlu V l.autor>autor V l.ISB;>ISB; V l.dataCreare>todaN V l.data(nulare>null V l.nr5-Disp>4.

M anulare, ISB;.
PrecondiCii : ,carteVcarte.ISB;>ISB;. carte.nr5-Disp>4 PostcondiCii : ,carteVcarte.ISB;>ISB;. carte.data(nulare>todaN carte-:anulare,.

Context Revista M update, .

43

M updateWog, . M cautareHevista,autor. : listaHeviste


PrecondiCii : PostcondiCii : result>e-emplare-:select,e : Hevista Ve.autor>autor.

M cautareHevista,titlu. :listaHeviste
PrecondiCii : PostcondiCii : result>e-emplare-:select,e : Hevista Ve.titlu>titlu.

M cautareHevista,autor,titlu. :listaHeviste
PrecondiCii : PostcondiCii : result>e-emplare-:select,e : Hevista Ve.autor>autor O e.titlu>titlu.

M cautareHevista,autor,titlu,ISB;. :boolean
PrecondiCii : PostcondiCii : result>e-emplare-:for(ll,e : Hevista Ve.autor>autor O e.titlu>titlu O e.ISB;>ISB;.

M creare,autor,titlu,ISB; .
PrecondiCii : not Hevista-:cautareHevista,titlu,autor,ISB;. PostcondiCii : Hevista-:e-ists,rV r.titlu>titlu V r.autor>autor V r.ISB;>ISB; V r.dataCreare>todaN Vr.data(nulare>null Vr.nr5-Disp>4.

M anulare, ISB;.

44

PrecondiCii : ,HevistaVHevista.ISB;>ISB;. Hevista.nr5-Disp>4 PostcondiCii : ,HevistaVHevista.ISB;>ISB;. Hevista.data(nulare<o>todaN Hevista-:anulare,.

Context Exemplar
M sc"imbareStare,nouaStare . PrecondiCii : PostcondiCii : self.stare>nouaStare M sc"imbareInHeparatie,n . PrecondiCii : PostcondiCii : self.inHeparatie>n M sc"imbareCalitate,cota,nouaCalitate. PrecondiCii : PostcondiCii : ,lVl.cota>cota. l.calitate>nouaCalitate M creare,titlu,autor,ISB;,cota. PrecondiCii : ,carte : Carte Vcarte.titlu>titlu O carte.autor>autor O carte.ISB;>ISB;. not5mptN, . PostcondiCii :
45

e-emplar-:e-ists,e.titlu>titlu V e.autor>autor V e.ISB;>ISB; V e.dataCreare<a">todaN Ve.data(nulare<a">null Ve.cota>cota Ve.inHeparatie>false Ve.stare>true Ve.imprumutabil>true Ve.calitate> X nou Ve.pierdute>false. O ,carte : CarteVcarte.titlu>titlu O carte.autor>autor O carte.ISB;>ISB;. carte.nr5-Disp=pre>nr5-Disp=post?1# M anulare, . PrecondiCii : ,e- : 5-emplarVe-.cota>cota. ,e-.pierdut>true.VV ,e-.calitate> Xfoarte<deteriorat O e-.inHeparatie>false . PostcondiCii : ,e- : 5-emplarVe-.cota>cota. e-.data(nulare<a">todaN O e--:anulare,. O ,carte : Carte V carte.ISB;>e-emplar.ISB; O e-emplar.cota>cota. carte.nr5-Disp=pre>carte.nr5-Disp=post-1 M updateWog, . M cauta,cota. :boolean PrecondiCii : PostcondiCii : result>e-emplare-:for(ll,e : 5-emplar Ve.cota>cota.

Context Imprumut
M creareImprumut,cota,utilizator . PrecondiCii : utilizator.id not5mptN, . O 49 utilizator.nrImprumut9$ O cota.imprumutabil O cota.stare O utilizator.ocl(s8Npe,student.
46

implies student.dataSfarsitPenalizare 5mptN PostcondiCii : utilizator.nrImprumut=pre>utilizator.nrImprumut=post?1 O not cota.imprumutabil O not cota.stare O imprumut-:e-ists,eV e.cota>cota V e.id>utilizator.id V e.dataImprumut>todaN V e.dataHestituirePrevazuta > todaN ? ,utilizator.ocl(s8Npe,student. Y 1' : $4 . V e.dataHestituire5fectiva>null. M anulareImprumut, cota . PrecondiCii : not cota.imprumutabil O not cota.stare PostcondiCii : ,e : Imprumut VCautaImprumut,cota.. e.dataHestituire5fectiva>todaN O ,e-emplar : 5-emplar Ve-emplar.cota>cota. e-emplar.consultable O e-emplar.stare O ,utilizator : 2tilizator VCauta2tilizator,e.. utilizator.nrImprumut=pre>utilizator.nrImprumut=post-1 M cautaD5, . PrecondiCii : PostcondiCii : result> self.dataHestituirePrevazuta M update, ne*DataHestituire5fectiva. PrecondiCii : PostcondiCii : self.dataHestituire5fectiva> ne*DataHestituire5fectiva M eliberareImprumut, .
47

PrecondiCii : este5liberat, . PostcondiCii : not eliberare-:contains,rVr.imprumut>self.=pre implies eliberare.size>eliberare.size=pre?1 eliberare-:contains,rVr.imprumut>self O todaN r.data95liberare.interval<eliberare. M este5liberat, . PrecondiCii : current-:contains,self. PostcondiCii : todaN:dataHestituirePrevazuta

Context Eliberare
M eliberare,. PrecondiCii : data 6 todaN O nr5liberare 9 PostcondiCii : data>todaN O nb5liberare??

Context Biblioteca M ac"izitie!aterial , .


PrecondiCii : self.buget:4 O self .listaPropuneri. ;ot5mptN, . O self.catalog.not5mptN, . PostcondiCii : self.buget=pre6self.buget=post O self.listaPropuneri=post.includes,self.listaPropuneri=pres. O
48

self.lista!ateriale;oi.not5mptN, . M inscrireProfesor,id,nume,prenume,email,nume2ser,parola. PrecondiCii : not utilizator -:e-ists,user V user.id>id . O not utilizator -:e-ists,user V user.id O an<in<curs.include,user.data-inscription.. O S2-:e-ists,pV p.nume>nume O p.prenume>prenume. PostcondiCii: utilizator -: e-ists, user V user.id V user.nume>nume V user.prenume>prenume V user.email>email V user.nrQileImprumut>$4 V user.nume2ser>nume2ser Vuser.parola>parola V user.nrCartiImprumutate>4 Vuser.dataInscriere>todaN Vuser.data(nulare>null Vuser.dataHeinscriere>null. O self.nr2tilizatori=pre>self.nr2tilizatori=post?1 M inscrireStudent,id,nume,prenume,adresa,nume2ser,parola. PrecondiCii : not utilizator -:e-ists,user V user.id>id. O not utilizator -:e-ists,user V user.id O an<in<curs.include,user.data-inscription.. O S2-:e-ists,pV p.nume>nume O p.prenume>prenume. O todaN: student -:,user:2tilizatorVuser.id>idd ..dataSfarsitPenalizare PostcondiCii: utilizator -: e-ists, user V user.id>idd V user.nume>nume V user.prenume>prenume V user.adresa>adresa V user.nrQileImprumut>1' V user.nume2ser>nume2ser Vuser.parola>parola V user.nrCartiImprumutate>4 V user.dataInscriere>todaN V
49

user.data(nulare>null Vuser.dataHeinscriere>null Vuser.dataSfarsitPenalizare>null. O self.nr2tilizatori=pre>self.nr2tilizatori=post?1 M imprumut ,utilizator,cota. PrecondiCii : utilizator.id not5mptN, . O 49 utilizator.nrImprumut9$ O cota.imprumutabil O cota.stare O utilizator.ocl(s8Npe,student. implies student.dataSfarsitPenalizare emptN PostcondiCii : utilizator.nrImprumut=pre>utilizator.nrImprumut=post?1 O not cota.imprumutabil O not cota.stare O imprumut-:e-ists,eV e.cota>cota V e.id>utilizator.id V e.dataImprumut>todaN V e.dataHestituirePrevazuta>todaN?,utilizator.ocl(s8Npe,student.Y1':$4. V e.dataHestituire5fectiva>null. M restituire,cota. PrecondiCii : not cota.imprumutabil O not cota.stare PostcondiCii : ,e :Imprumut VCautaImprumut,cota.. e.dataHestituire5fectiva>todaN O ,e-emplar : 5-emplar Ve-emplar.cota>cota. e-emplar.consultable O e-emplar.stare O ,utilizator : 2tilizator V Cauta2tilizator,e.. utilizator.nrImprumut=pre>utilizatornrImprumut=post-1 M anulare2tilizator,id. PrecondiCii :
50

PostcondiCii : self.nr2tilizatori=pre>self.nr2tilizatori=post-1 O ,user : 2tilizator Vuser.id>id. user.data(nulare>todaN M reparare<e-emplar,cota. PrecondiCii : PostcondiCii : ,e-emplar : 5-emplar Ve-emplar.cota>cota. not e-emplar.imprumutabil O not e-emplar.stare O e-emplar.inHeparatie O e-emplar.calitate>Xfoarte<deteriorat O ,carte : Carte V carte.ISB;>e-emplar.ISB; O e-emplar.cota>cota. carte.nr5-Disp=pre>carte.nr5-Disp=post-1 M reparare;umarHevista,cota. PrecondiCii : PostcondiCii : ,nrHevista : ;umarHevistaVnrHevista.cota>cota. not nrHevista.imprumutabil O not nrHevista.stare O nrHevista.inHaparatie O nrHevista.calitate> Xfoarte<deteriorat O ,revista : Hevista VnrHevista.cota>cota O nrHevista.titlu>revista.titlu O nrHevista.autor>revista.autor. revista.nrDisponibil=pre>revista.nrDisponibil=post-1 M retragere5-Carte,cota. PrecondiCii : ,e- : 5-emplarVe-.cota>cota. ,e-.pierdut>true.VV ,e-.calitate> Xfoarte<deteriorat O
51

e-.inHeparatie>false . PostcondiCii : ,e- : 5-emplarVe-.cota>cota. e-.data(nulare<a">todaN O e--:anulare,. O ,carte : Carte V carte.ISB;>e-emplar.ISB; O e-emplar.cota>cota. carte.nr5-Disp=pre>carte.nr5-Disp=post-1 M retragere;umarHevista,cota. PrecondiCii : ,nrHevista : ;umarHevistaVnrHevista.cota>cota. ,nrHevista.pierdut>true. VV ,nrHevista.calitate> Xfoarte<deteriorat O nrHevista.inHeparatie>false . PostcondiCii : ,nrHevista : ;umarHevistaVnrHevista.cota>cota. nrHevista.data(nulare<a">todaN O nrHevista-:anulare, . O ,revista : Hevista VnrHevista.cota>cota O nrHevista.titlu>revista.titlu O nrHevista.autor>revista.autor. revista.nrDisponibil=pre>revista.nrDisponibil=post-1 M retragereCarte,ISB;. PrecondiCii : ,carte :Carte Vcarte.ISB;>ISB;. carte.nr5-Disp>4 PostcondiCii : ,carte : CarteVcarte.ISB;>ISB;. carte.data(nulare<o>todaN O carte-:anulare,. M inregistrareCarte,titlu,autor,ISB;. PrecondiCii :
52

not carte-:cautareCarte,titlu,autor,ISB;. PostcondiCii : carte-:e-ists,lV l.titlu>titlu V l.autor>autor V l.ISB;>ISB; V l.dataCreare>todaN Vl.data(nulare>null Vl.nr5-Disp>4. M inregistrareHevista,titlu,autor,ISB;. PrecondiCii : not revista-:cautareHevista,titlu,autor,ISB;. PostcondiCii : revista-:e-ists,r: HevistaV r.titlu>titlu V r.autor>autor V r.ISB;>ISB; V r.dataCreare>todaN V r.data(nulare>null V r.nrDisponibil>4. M inregistrare5-Carte,titlu,autor,ISB;,cota. PrecondiCii : ,carte : Carte Vcarte.titlu>titlu O carte.autor>autor O carte.ISB;>ISB;. not5mptN, . PostcondiCii : e-emplar-:e-ists,e.titlu>titlu V e.autor>autor V e.ISB;>ISB; V e.dataCreare<a">todaN Ve.data(nulare<a">null Ve.cota>cota Ve.inHeparatie>false Ve.stare>true Ve.imprumutabil>true V e.calitate> X nou Ve.pierdute>false. O ,carte : CarteVcarte.titlu>titlu O carte.autor>autor O carte.ISB;>ISB;. carte.nr5-Disp=pre>nr5-Disp=post?1# M inregistrare;umarHevista,titlu,autor,ISB;,cota,nr. PrecondiCii : ,revista : Hevista Vrevista.titlu>titlu O revista.autor>autor . not5mptN, . PostcondiCii : e-emplar-:e-ists,e.titlu>titlu V e.autor>autor V e.ISB;>ISB;
53

V e.dataCreare<a">todaN Ve.data(nulare<a">null Ve.cota>cota Ve.inHeparatie>false Ve.stare>true Ve.calitate> X nou Ve.pierdute>false Ve.numar>nr. ,revista : Hevista Vrevista.titlu>titlu O revista.autor>autor . O revista.nrDisponibil=pre>nrDisponibil=post?1 M pierdere5-Carte,cota. PrecondiCii : PostcondiCii : ,e-Ve-.cota>cota. e-.pierdut>true O ,carte : Carte V carte.ISB;>e-emplar.ISB; O e-emplar.cota>cota. carte.nr5-Disp=pre>carte.nr5-Disp=post-1 M verificareCalitate,cota,nouaCalitate. PrecondiCii : PostcondiCii : ,m : !aterial Vm.cota>cota. m.calitate>nouaCalitate

54