gestiunea unei biblioteci universitare
TRANSCRIPT
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
1/54
Gestiunea uneiGestiunea unei
Biblioteci Universitare Biblioteci Universitare
1
Studente:
Liliana Gherasim
Anda Popovici
Alexandra Roati
Otilia Sabu
Profesor Coordonator:
Ovidiu Aritoni
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
2/54
1. Prezentarea detaliat a subiectului
Softul utilizat pentru biblioteca universitara se orienteaza doar spre gestiuneautilizatorilor. Problemele de gestiune de personal sau financiar contabil ale bibliotecii nuconstituie 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 cumateriale 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 . (plicatiava trebui sa pastreze un istoric asupra utilizatorilor, astfel ca utilizatorii vor fimarcati ca /e pirati0.
. 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, pierderematerial imprumutat, etc .
14. (plicatia va folosi date furnizate de catre un server al universitatii si diferite serviciifurnizate de catre acest server.
2
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
3/54
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:
3
Biblioteca Universitara
Utilizator0..*
StudentProfesor
Bibliotecar
1..*
Editura
1..*
Package1
1
Package2
1
Server Universitate Sistemul Informatic al Bibliotecii
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
4/54
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
5/54
5
Utilizator
Student Profesor
Inscriere
Stergere
Imprumutare carte
Restituire carte
!onsultare catalog
SIB
Propunere carte
Autentificare
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
6/54
(")Descrierea de cazuri de utilizare:
1. Caz de utilizare: Achizitionare carte
Titlu: (c"izitionare carteRezumat: 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
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
7/54
11) Bibliotecarul face update bugetului bibliotecii
12) Bibliotecarul face update la SIB
Scenarii alternative1. 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"emplaredisponibile
Incepe la pasul ) al scenariului nominal
+ 5ditura nu are e emplare disponibile ale cartii
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
7
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
8/54
) Biblioteca specifica faptul ca deocamdata nu sunt disponibile carti pentru
imprumut
+ Cazul de utilizare se inc"eie
Diagrama de secventa:
8
Bibliotecar SIB Edituri
1 : Prop=consulta_prop(
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 +(
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
9/54
Diagrama de activitate:
9
$onsulta propuneri
$onsulta buget biblioteca
Buget insu,icient
$auta carte
$auta carte in catalog$artea nu se gaseste
$ere cartea editurii
Editura tri-ite cartea
Plata carte
Sterge propunerea
Plata e in regula
pdate buget biblioteca
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
10/54
!. 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
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
11/54
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 destudent 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 anuluide 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 al2niversitatii
' S2 cauta persoana in baza de date
) Bibliotecarul verifica cu a7utorul SIB daca studentul este penalizat pentru un an
+ SIB cauta informatia ceruta
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
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
12/54
1. Studentul e penalizat pentru un an
Scenariul debuteaza la pasul + al scenariului nominal
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
b daca aceasta data data curenta cazul de utilizare se inc"eie
!. Persoana nu a platit ta"ele necesare inscrieriiScenariul 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 al scenariului nominal
3 Cazul de utilizare se inc"eie
Postconditii:
12
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
13/54
5ste inscris un nou utilizator in SIB
;r ;r
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
14/54
Diagrama de activitate:
14
eri,ica identitate persoana
u are carnet sau buletin
E pro,esor sau student3
u e ista in B4 a ni/
eri,ica daca e penali&at pt un an
eri,ica data ter-inarii penali&arii
45
$ere po&adata_ter-6data_curenta
data_ter-7data_curenta
u are po&a
$ere c8itanta
Plateste ta e Inscrie utili&ator
pdate SI al bibliotecii
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
15/54
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
16/54
1'. Bibliotecarul introduce n SIB data scadentA de restituire a cAr ii.1). Bibliotecarul face update penru numArul de cAr i mprumutate de cAtre student.1+. Bibliotecarul face update al bazei de date ce con ine cAr ile.Scenarii alternative1. Persoana nu e -nscris+ la bibliotec+
Scenariul debutezA la pasul al scenariului nominal.
$. Bibliotecarul cere acordul persoanei care dore te sA mprumute o carte de a o nscriela bibliotecA.
Cazul continuA cu cazul de utilizare F nscriere de noi utilizatori F.
1. Persoana nu -mprumut+ nici o carte
Scenariul debutezA la pasul ) al scenariului nominal.
+.Persoana nu i aminte te ce carte dore te sA mprumute.
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 n SIB.
11.8oate e emplarele sunt mprumutate
1 .Cazul de utilizare se nc"eie. 5roareG
(ceastA situa ie poate fi rezolvatA prin cumpArarea unei cAr i sau returnarea uneiamprumutate.
!. tilizatorul are penalizari
Scenariul debutezA la pasul 11 al scenariului nominal.
1 .2tilizatorul nu poate mprumuta alte cAr i pEnA nu ac"itA penalizarile.
16
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
17/54
1$.Cazul de utilizare se nc"eie. 5roareG
&. tilizatorul are de a & c+r,i -mprumutate
Scenariul debutezA la pasul 1$ al scenariului nominal.
1%. 2tilizatorul nu poate mprumuta alte cAr i pEnA nu returnezA cel pu in o carte.
1'. Cazul de utilizare se nc"eie. 5roareG
Postcondi,ii:
Pt utilizator:nr
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
18/54
/. Caz de utilizare: Restituirea unei c+r,i
Titlu: Hestituire carte
Rezumat: 2tilizatorul restituie cartea pe care a mprumutat-o
Actori: 2tilizator, Bibliotecar, SIB
Descriere scenariu
Precondi,ii:
Cartea e nregistratA n SIB
Cartea e mprumutatA de cineva.
Scenariu nominal:
1. & persoanA se prezintA la g"i eu pentru a returna o carte.. Bibliotecarul i cere cartea pe care dore te sA o restituie.
$. 2tilizatorul nmEneazA bibliotecarului cartea pe care a adus-o.%. Bibliotecarul verificA n baza de date din SIB cota cartii5.
SIB aratA bibliotecarului cota cartii.). Bibliotecarul verificA n baza de date din SIB data scadenta.7. SIB ntoarce data scadenta.
. Bibliotecarul cautA in SIB id-ul utilizatorului.3. SiB intoarce id-ul utilizatorului.14. Bibliotecarul aduce la cuno tin A utilizatorului dacA are penalizari.11. Bibliotecarul aduce la cuno tiin A utilizatorului situa ia mprumuturilor curente.12. Bibliotecarul verificA starea e emplarului returnat.
1$. Bibliotecarul face update n baza de date din SIB pentru disponibilitatea cAr ilor.14. Bibliotecarul face update n baza de date din SIB pentru numArul de e emplare
mprumutate de acel utilizator.Scenarii alternative:1. Cartea e $oarte distrus+
Scenariul debuteazA la pasul 1 al scenariului nominal.
18
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
19/54
1$.Bibliotecarul trimite e emplarul pentru a fi recondi ionat.
1%.Bibliotecarul sc"imbA diponibilitatea e emplarului n atributul: nHecondi ionare.
Cazul de utilizare se continuA cu pasul 1% .
!.Cartea nu e -nregistrat+ -n S'#
Scenariul debuteazA la pasul ' al scenariului nominal.
(ceastA situa ie e posibilA atunci cEnd cartea a fost pierdutA i utilizatorul o restituiedupA ce ea a fost tearsA din baza de date i eventual nlocuitA cu una nouA. CEnd un e emplaeste pierdut el este ters din baza de date. Bibliotecarul trebuie sA reintroducA noua carte n bd
i sA aplice penalizare utilizatorului care a pierdut cartea. 2tilizatorul e penalizat ca pentru ontErziere precum i plata noului e emplar Pentru cA biblioteca a cumpArat un alt e emplar
de7a .
).Bibliotecarul nregistreazA cartea ca i nou e emplar
+.Bibliotecarul face update penalizarilor utilizatorului.
Scenariul continuA cu pasul 1$ din scenariul nominal.
Scenarii de eroare 0
Postcondi,ii:
nr
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
20/54
20
Bibliotecar SIB
1 : status=getStare(
2 : /eri,icaStare(
! : returnStare(
" : i, status=9distrus9 etrage(
# : update r(% : updateB4(
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
21/54
.Caz de utilizare: 2tergere utilizator
Titlu: tergere utilizator
Rezumat: Bibliotecarul terge utilizatorul care nu i-a re nnoit nregistrarea n SIB ae pirat legitima ia sau nu mai este student sau profesor
Actori: 2tilizator, Bibliotecar, SIB, S2
Precondi,ii:
2tilizatorul i pierde statutul de nscris la bibliotecA.
Scenariu nominal:
1. Bibliotecarul verificA n baza de date din S2 dacA utilizatorul este ncA student sau profesor.
2. S2 verificA e isten a persoanei respective n baza de date.3. Bibliotecarul verificA n baza de date din SIB dacA utilizatorul i-a vizat legitima ia.4. SIB verificA dacA utilizatorul este re nregistrat.
'. Bibliotecarul terge utilizatorul care nu ndepline te condi iile necesare pentru a fi
utilizator.Scenarii alternative 0Scenarii de eroare
DacA un utilizator i-a vizat legitima ia pentru anul n curs i este ncA student sau profesor nu poate fi ters.
Cazul de utilizare se nc"eie.
Postcondi,ii:2tilizatorul nu mai e istA n SIB.
Diagrama de secventa:
21
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
22/54
22
Bibliotecar SIB S
1 : id=getId(
2 : /eri,icaId(
! : re turnId(
" : /eri,icaStatut(
# : statut=getStatut(
% : returnStatut(
' : i, sta tut /eri,icaInregistrare(
: return i&a(
) : i, ; statut
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
23/54
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
24/54
24
Bibliotecar SIB S
1 : id=getId(
2 : /eri,icaId(
! : re turnId(
" : /eri,icaStatut(
# : statut=getStatut(
% : returnStatut(
' : i, sta tut /eri,icaInregistrare(
: return i&a(
) : i, ; statut
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
25/54
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 i nu poate fi recondi ionat
- e emplarul respectiv a fost pierdut
Actori: Bibliotecar, SIB
Descriere scenariu
Precondi,ii: 5 emplarul sA e iste n baza de date din SIB
5 emplarul respectiv e prea distrus i nu poate fi recondi ionat sau e emplarulrespectiv 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 0Scenarii de eroare 0
Postcondi,ii:
;umArul cAr ilor i revistelor pentru care a fost retras un e emplar este diminuat cu ounitate.
Pentru material :
nr
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
26/54
Diagrama de secventa:
26
Bibliotecar SIB
1 : status=getStare(
2 : /eri,icaStare(
! : returnStare(
" : i, status=9distrus9 etrage(
# : update r(% : updateB4(
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
27/54
5. Caz de utilizare: Consultare catalog
Titlu: Cautare material in catalogul bibliotecii
Rezumat:2tilizatorul cauta in baza de date materialul de care are nevoie. Sistemulinformatic al bibliotecii pune la dispozitie mai multe tipuri de cautari: dupa titlul cartii, dupaautor, 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"eiein 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
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
28/54
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
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
29/54
Diagrama de activitate:
5utent i,icare eri,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 scenariuPrecondi,ii:
5 emplarul cartiiJrevistei imprumutat e ista in SIB si a fost returnat.
Scenariu nominal:
1. Bibliotecarul verificA starea e emplarului returnat.
29
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
30/54
. Bibliotecarul modifica in SIB starea cartiiJrevistei care a fost verificata.
$. Daca starea e emplarului este Lfoarte proasta0, acesta este trimis sprerecondi ionare. 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(
$a&ul de utili&are secontinua cu ? etragere e0e-plarpentru reconditionare@.
11.Caz de utilizare: Detectare c+r,i pierdute
Titlu: Detectare carti pierdute
Rezumat:Bibliotecarul identifica toate cartile pierdute. Daca o carte imprumutata nueste restituita in timp de o luna de la efectuarea imprumutuluiJreimprumutului, cartea estedeclarata pierduta. In acest caz, utilizatorul va fi penalizat.
30
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
31/54
Actori:Bibliotecar, SIB
(cest caz de utilizare 99include cazul LHetragerea unui e emplar de carte saurevistA0.
Descriere scenariu
Preconditii:
Cartea e ista n baza de date din SIB.
Data scadenta de returnare a fost depasita data
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
32/54
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
33/54
%. Bibliotecarul actualizeaza situatia cartiiJrevistei pentru care a introdus un noue 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 : update5t ribute(
! : 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 deutilizator, care nu e ista in sistemul informatic al bibliotecii. (stfel, fiecare cererenesatisfacuta , va fi inregistrata in lista cu propuneri.
Actori:Bibliotecar, SIB
Descriere scenariu:
33
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
34/54
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
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
35/54
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
36/54
!. Modelare static
(a)Diagrama de clasa
36
Utilizator
nu-e: Stringprenu-e: StringI4: integer
66abstract77 nrFileI-pru-ut: integerdataInscriere: 4atedata5nulare: 4atenr$artiI-pru-utate: integernu-e ser: Stringparola: String
A$reare(A5nulare(A5utenti,icare(Aupdate(AupdateGog(Aalegere>od$autare(
Student
adresanrFileI-pru-ut: integer = 1#data escriere: integerH#dataS,arsitPenali&are: 4ate
AupdatePenali&are(A/eri,icarePenali&are(
Profesor
e-ail: StringnrFileI-pru-ut: integer = !0data escriere: integerH!0
Apropune(
Biblioteca
0..*
Sistemul Informatic al Bibliotecii
Server Universitate
1
1
Imprumut
cota: integerI4: integerdataI-pru-ut: 4atedata estituirePre/a&uta: 4atedata estituireE,ecti/a: 4ate
AcreareI-pru-ut(AanulareI-pru-ut(Acautare4E(Aupdate(AeliberareI-pru-ut(AesteEliberat(
Eliberare
Adata: 4atenrEliberare: integer
AEliberare(
0..*
"aterial
Atitlu: StringAautor: StringAnrE 4isp: integer
ISB : Stringdata$reare: 4atedata5nulare: 4ate
Acreare(Aanulare(
0..*
!arte
A/olu-: integer = 1Aeditie: integer = 1
AupdateGog(Aupdate(Acautare$arte(
Revista
Aperiodicitate: ,loatAnu-ar: intAcuprins: String
Acautare e/ista(
0..!
1
Exemplar
cota: integerstare: booleancalitate: Stringin eparatie: booleandata$reare: 4atedata5nulare: 4atepierdut: boolean = ,alsei-pru-utabil: boolean
Asc8i-bareStare(Asc8i-bareIn eparatie(Asc8i-bare$alitate(Acreare(Aanulare(Acautare(AupdateGog(
0..*
1
1..*
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
37/54
(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 is2ni ue #
M nrQileImprumut 4#
M $ 6 nrCartiImprumutate 6 4#
M nume2ser is2ni ue #
M dataInscriere R todaN#
37
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
38/54
M data(nulare R todaN#
M dataInscriere R data(nulare#
Context Student
M adresa not emptN#
M nrQileImprumut > 1'#
M dataHeinscriere :
dataHeinscriere iT ? $)' R dataHeinscriere i?1T #
dataInscriere 9 dataHeinscriere 4T #
M dataSfarsitPenalizare :
dataSfarsitPenalizare 6 todaN #
dataSfarsitPenalizare R dataHeinscriere iT #
Context Profesor
M email not emptN #
M nrQileImprumut > $4 #
M dataHeinscriere :dataHeinscriere iT ? $)' R dataHeinscriere i?1T #
Context Material
M titlu not emptN #
M autor not emptN #
M nr5 Disp 6 4 #
M ISB; is2ni ue #
M dataCreare R todaN #
M data(nulare R todaN #
dataCreare 9 data(nulare #
Context Carte
M volum not emptN default > 1 #
38
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
39/54
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 is2ni ue
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
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
40/54
(d)Pre Post ondiii
Context Student
M creare nume, prenume, adresa, nume2ser, parola
Precondi ii :
not utilizator - e ists user V user.id>id O
not utilizator - e ists user V user.id O
anprenume O
todaN student - user:2tilizatorVuser.id>idd .dataSfarsitPenalizarePostcondi ii:
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
Precondi ii :
Postcondi ii :
Biblioteca.nr2tilizatori=pre>self.nr2tilizatori=post-1 O
self.data(nulare>todaN
M autentificare nume2ser, parola
Precondi ii :
Postcondi ii :
result> utilizator - for(ll e :StudentVe.nume2ser>nume2ser O
40
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
41/54
e.parola>parola
M update
M updateWog
M alegere!odCautare mod
M updatePenalizare imprumut
MverificarePenalizare id :boolean
Context Profesor
M creare nume, prenume, email, nume2ser, parola
Precondi ii :
not utilizator - e ists user V user.id>id O
not utilizator - e ists user V user.id O
anprenume
Postcondi ii:
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
Precondi ii :
Postcondi ii :
Biblioteca.nr2tilizatori=pre>Biblioteca.nr2tilizatori=post-1 O
self.data(nulare>todaN
M autentificare nume2ser,parola
41
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
42/54
Precondi ii :
Postcondi ii :
result> utilizator - for(ll e :ProfesorVe.nume2ser>nume2ser O
e.parola>parola
M update
M updateWog
M alegere!odCautare
M propune propunere
Precondi ii :
titlu,autor V propunere.titlu>titlu O propunere.autor>autor 5mptN
Postcondi ii :
Biblioteca.listaPropuneri not5mptN
propunere- e ist pV p.autor>autor V p.titlu>titlu
Context Carte
Mupdate MupdateWog
McautareCarte autor : WistaCarti
Precondi ii :
Postcondi ii :
result>e emplare- select e : Carte Ve.autor>autor
McautareCarte titlu :WistaCarti
Precondi ii :
Postcondi ii :
result>e emplare- select e : Carte Ve.titlu>titlu
McautareCarte autor,titlu :WistaCarti
42
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
43/54
Precondi ii :
Postcondi ii :
result>e emplare- select e : Carte Ve.autor>autor O e.titlu>titlu
McautareCarte autor,titlu,ISB; :boolean
Precondi ii :
Postcondi ii :
result>e emplare- for(ll e : Carte Ve.autor>autor O e.titlu>titlu O
e.ISB;>ISB;
Mcreare autor,titlu,ISB;
Precondi ii :
not carte- cautareCarte titlu,autor,ISB;
Postcondi ii :
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>4Manulare ISB;
Precondi ii :
carteVcarte.ISB;>ISB;
carte.nr5 Disp>4
Postcondi ii :
carteVcarte.ISB;>ISB;
carte.data(nulare>todaN
carte- anulare
Context Revista
Mupdate
43
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
44/54
MupdateWog
McautareHevista autor : listaHeviste
Precondi ii :
Postcondi ii :
result>e emplare- select e : Hevista Ve.autor>autor
McautareHevista titlu :listaHeviste
Precondi ii :
Postcondi ii :
result>e emplare- select e : Hevista Ve.titlu>titluMcautareHevista autor,titlu :listaHeviste
Precondi ii :
Postcondi ii :
result>e emplare- select e : Hevista Ve.autor>autor O e.titlu>titlu
McautareHevista autor,titlu,ISB; :boolean
Precondi ii :
Postcondi ii :
result>e emplare- for(ll e : Hevista Ve.autor>autor O e.titlu>titlu O
e.ISB;>ISB;
Mcreare autor,titlu,ISB;
Precondi ii :
not Hevista- cautareHevista titlu,autor,ISB;
Postcondi ii :
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
Manulare ISB;
44
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
45/54
Precondi ii :
HevistaVHevista.ISB;>ISB;
Hevista.nr5 Disp>4
Postcondi ii :
HevistaVHevista.ISB;>ISB;
Hevista.data(nularetodaN
Hevista- anulare
Context Exemplar
M sc"imbareStare nouaStare
Precondi ii :
Postcondi ii :
self.stare>nouaStare
M sc"imbareInHeparatie n
Precondi ii :
Postcondi ii :self.inHeparatie>n
M sc"imbareCalitate cota,nouaCalitate
Precondi ii :
Postcondi ii :
lVl.cota>cota
l.calitate>nouaCalitate
M creare titlu,autor,ISB;,cota
Precondi ii :
carte : Carte Vcarte.titlu>titlu O carte.autor>autor O
carte.ISB;>ISB; not5mptN
Postcondi ii :
45
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
46/54
e emplar- e ists e.titlu>titlu V e.autor>autor V e.ISB;>ISB;
V e.dataCrearenull 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
Precondi ii :
e : 5 emplarVe .cota>cota
e .pierdut>true VV e .calitate> Xfoartefalse
Postcondi ii :
e : 5 emplarVe .cota>cota
e .data(nulare
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
47/54
implies student.dataSfarsitPenalizare 5mptN
Postcondi ii :
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
Precondi ii :
not cota.imprumutabil O not cota.stare
Postcondi ii :
e : Imprumut VCautaImprumut cota
e.dataHestituire5fectiva>todaN O e emplar : 5 emplar
Ve emplar.cota>cota e emplar.consultable O e emplar.stare Outilizator : 2tilizator VCauta2tilizator e
utilizator.nrImprumut=pre>utilizator.nrImprumut=post-1
M cautaD5
Precondi ii :
Postcondi ii :
result> self.dataHestituirePrevazutaM update ne*DataHestituire5fectiva
Precondi ii :
Postcondi ii :
self.dataHestituire5fectiva> ne*DataHestituire5fectiva
M eliberareImprumut
47
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
48/54
Precondi ii :
este5liberat
Postcondi ii :
not eliberare- contains rVr.imprumut>self =pre implies
eliberare.size>eliberare.size=pre?1
eliberare- contains rVr.imprumut>self O todaN -
r.data95liberare.intervaltodaN O nb5liberare??
Context Biblioteca
Mac"izitie!aterial
Precondi ii :
self.buget 4 O self .listaPropuneri. ;ot5mptN O
self.catalog.not5mptN
Postcondi ii :
self.buget=pre6self.buget=post O
self.listaPropuneri=post.includes self.listaPropuneri=pres O
48
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
49/54
self.lista!ateriale;oi.not5mptN
M inscrireProfesor id,nume,prenume,email,nume2ser,parola
Precondi ii :
not utilizator - e ists user V user.id>id O
not utilizator - e ists user V user.id O
anprenume
Postcondi ii:
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,parolaPrecondi ii :
not utilizator - e ists user V user.id>id O
not utilizator - e ists user V user.id O
anprenume O
todaN student - user:2tilizatorVuser.id>idd .dataSfarsitPenalizarePostcondi ii:
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
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
50/54
user.data(nulare>null Vuser.dataHeinscriere>null
Vuser.dataSfarsitPenalizare>null O
self.nr2tilizatori=pre>self.nr2tilizatori=post?1
M imprumut utilizator,cota
Precondi ii :
utilizator.id not5mptN O 49 utilizator.nrImprumut9$ O
cota.imprumutabil O cota.stare O utilizator.ocl(s8Npe student
implies student.dataSfarsitPenalizare emptN
Postcondi ii :
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 cotaPrecondi ii :
not cota.imprumutabil O not cota.stare
Postcondi ii :
e :Imprumut VCautaImprumut cota
e.dataHestituire5fectiva>todaN O e emplar : 5 emplar
Ve emplar.cota>cotae emplar.consultable O e emplar.stare O
utilizator : 2tilizator V Cauta2tilizator e
utilizator.nrImprumut=pre>utilizatornrImprumut=post-1
M anulare2tilizator id
Precondi ii :
50
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
51/54
Postcondi ii :
self.nr2tilizatori=pre>self.nr2tilizatori=post-1 O
user : 2tilizator Vuser.id>id
user.data(nulare>todaN
M repararecota
not e emplar.imprumutabil O not e emplar.stare O
e emplar.inHeparatie O
e emplar.calitate>Xfoartee emplar.ISB; O e emplar.cota>cota
carte.nr5 Disp=pre>carte.nr5 Disp=post-1
M reparare;umarHevista cota
Precondi ii :Postcondi ii :
nrHevista : ;umarHevistaVnrHevista.cota>cota
not nrHevista.imprumutabil O not nrHevista.stare O
nrHevista.inHaparatie O nrHevista.calitate> Xfoartecota O
nrHevista.titlu>revista.titlu O nrHevista.autor>revista.autorrevista.nrDisponibil=pre>revista.nrDisponibil=post-1
M retragere5 Carte cota
Precondi ii :
e : 5 emplarVe .cota>cota
e .pierdut>true VV e .calitate> Xfoarte
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
52/54
e .inHeparatie>false
Postcondi ii :
e : 5 emplarVe .cota>cota
e .data(nularetodaN O nrHevista- anulare O
revista : Hevista VnrHevista.cota>cota O nrHevista.titlu>revista.titlu OnrHevista.autor>revista.autor
revista.nrDisponibil=pre>revista.nrDisponibil=post-1
M retragereCarte ISB;
Precondi ii :
carte :Carte Vcarte.ISB;>ISB;
carte.nr5 Disp>4Postcondi ii :
carte : CarteVcarte.ISB;>ISB;
carte.data(nularetodaN O carte- anulare
M inregistrareCarte titlu,autor,ISB;
Precondi ii :
52
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
53/54
not carte- cautareCarte titlu,autor,ISB;
Postcondi ii :
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;
Precondi ii :
not revista- cautareHevista titlu,autor,ISB;
Postcondi ii :
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
Precondi ii :
carte : Carte Vcarte.titlu>titlu O carte.autor>autor O
carte.ISB;>ISB; not5mptN
Postcondi ii :e emplar- e ists e.titlu>titlu V e.autor>autor V e.ISB;>ISB;
V e.dataCrearenull 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
Precondi ii :
revista : Hevista Vrevista.titlu>titlu O revista.autor>autor not5mptN
Postcondi ii :
e emplar- e ists e.titlu>titlu V e.autor>autor V e.ISB;>ISB;
53
-
8/13/2019 Gestiunea Unei Biblioteci Universitare
54/54
V e.dataCrearenull 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
Precondi ii :
Postcondi ii :
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
Precondi ii :
Postcondi ii :m : !aterial Vm.cota>cota
m.calitate>nouaCalitate