Documente Academic
Documente Profesional
Documente Cultură
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.
Studenti Profesori
1..* Bibliotecar
Biblioteca Universitara
0..* Utilizator
1..*
Editura
Profesor
Student
Stergere utilizator
Imprumutare carte
Editura
Achizitionare carte
Bibliotecar
Inregistrare propunere
Inscriere
Stergere
Imprumutare carte
SIB
!onsultare catalog
Autentificare
Student
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
( : cere(
) 10 : plateste(
Diagrama de activitate:
$onsulta propuneri
$artea nu se gaseste
Plata carte
Plata e in regula
Sterge propunerea
!. 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:
.tili&ator
SIB
Ser/er .ni/ersitate
1! : return Inscriere*+
13
Diagrama de activitate:
2u e0ista in B4 a .ni/
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.
. 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(
# : 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.
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(
# : 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(
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 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(
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
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(
# : 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
28
Diagrama de activitate:
5utenti,icare
1eri,icare utili&ator
$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(
! : 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
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:
%. 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(
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.
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
# : 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
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(
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..!
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(
36
, . 2seri
,$. 8ranzactii
Imprumut 5liberare
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
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
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.
M cautareCarte,titlu. :WistaCarti
PrecondiCii : PostcondiCii : result>e-emplare-:select,e : Carte Ve.titlu>titlu.
M cautareCarte,autor,titlu. :WistaCarti
42
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,.
43
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
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??
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