Documente Academic
Documente Profesional
Documente Cultură
1 Modelare i UML
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
n acest capitol:
Despre modelare, principii de modelare, limbaje de modelare
Metodologii de realizare a sistemelor informatice
UML standard industrial de modelare obiect
Tipuri de diagrame UML
Studiul de caz e-commerce enun, exigene i restricii
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
[BRJ] Booch Grady, Rumbaugh James, Jacobson Ivar Le guide de lutilizateur UML,
Edition Eyrolles, 2000, pp.8-10 (trad.l.engl. The Unified Modeling Language User Guide,
Addison-Wesley, 1998).
poate aduce clarificri nesperate alegerii celei mai bune soluii, n timp ce o
alegere greit a modelului poate abate atenia dezvoltatorilor de la unele
probleme fundamentale. Practica arat c orientarea obiect conduce la cele mai
bune rezultate pentru construirea unor sisteme informatice care se sprijin pe
arhitecturi flexibile, chiar dac majoritatea activitilor const n calcule sau
lucrul cu baze de date.
Al doilea principiu: Modelele pot avea diferite niveluri de precizie. Cele mai bune
modele sunt acelea care las la latitudinea proiectantului alegerea nivelului de
detaliu pn la care s se coboare n realizarea diferitelor subsisteme, n funcie
de ceea ce se urmrete i care sunt resursele disponibile.
Al treilea principiu: Cele mai bune modele sunt bazate pe simul realitii. Orice
modelare simplific realitatea, dar nu trebuie s piard din vedere nici un detaliu
important. Cu ajutorul tehnicilor orientate obiect se pot reuni ntr-un tot
semantic diferitele puncte de vedere asupra unui proiect.
Al patrulea principiu: Deoarece nici un model nu este suficient prin sine nsui,
este preferabil s descompunem un sistem mare ntr-un ansamblu de mici
modele, aproape independente, care s poat fi studiate i testate separat.
De ce un limbaj de modelare?
Pentru a realiza un sistem, trebuie mai nti s-l modelm. Pentru a analiza un
sistem, trebuie, de asemenea, s-l modelm. Modelarea are nevoie de un
limbaj, n primul rnd ca mijloc de comunicare, pentru ca toi factorii implicai,
constructori i utilizatori, s neleag acelai lucru 2.
O ameliorare a acestei metode, SDLC iterativ, a aprut mai trziu, dup anul
1980 i consta n realizarea unui nucleu al sistemului n jurul cruia acesta se
dezvolt pas cu pas i se completeaz pe msura necesitilor aprute. Nu
insistm asupra acestei soluii care nu constituie n sine o inovaie.
7
4
versiunea 2.0 i, de curnd, i-au fcut apariia versiunile 3.0, 3.1 i 3.2 n
cadrul unor pachete de programe promovate de firmele specializate n grafic
pe calculator 6.
Figura 1.1
Istoricul UML
2004
UML 3.0
2003
UML 2.0
09/2001: vers.1.4
UML 1.4
06/1999: vers.1.3
UML 1.1
01/1997: naintarea
la OMG
Standardizare
OMG
UML 1.3
Industrializare
UML 1.0
Partenerii UML
10/1996:
UML 0.91
06/1996:
UML 0.9
10/1995:
10/1994:
Booch93+OMT-2
G.Booch
Booch-91
J.Rumbaugh
OMT-1
Unificarea
Metodelor
I.Jacobson
OOSE
10
6
A se vedea [VP3.2UG] Visual Paradigm for UML 3.2 Users Guide Copyright 1999-2004
by Visual Paradigm, http:/www.apache.org Apache Software Foundation.
Versiunile UML 7
Din anul 1997 pn n prezent, UML a cunoscut numeroase modificri, acestea
fiind concretizate n versiuni mai mult sau mai puin cunoscute publicului. Este
de notat faptul c principiile UML au rmas, n general, neschimbate, versiunile
UML opernd n special n domeniul formalismelor utilizate (notaii, simboluri,
convenii).
Z Cazurile de utilizare
Dac versiunea UML 1.1 recunotea dou tipuri de relaii ntre cazurile de
utilizare, use i extends, ambele sub form de stereotipuri, versiunea UML 1.3
nlocuiete use prin include, introduce generalizarea i definete extensia ca pe
un stereotip de dependen form mai controlat dect relaia de
generalizare.
Z Diagramele de activiti
11
7
[Fowler2] Martin Fowler - UML 2.0 CampusPress, 2004, pp.181-189 (trad.l.engl. UML
Distilled Third Edition, Addison Wesley, 2003).
12
Z Diagramele de secven
Modificarea cea mai important este notaia cadrelor de interaciune, care
permite gestionarea structurilor iterative, condiionale i a altor structuri de
control ale comportamentului. Putei exprima aproape n ntregime algoritmii n
diagramele de secven. Vechile marcaje de iteraii i notaiile lor au fost
abandonate. Antetele de linii de via nu mai sunt instane, acestea fiind definite
prin termenul participant. Diagramele de colaborare se numesc acum diagrame
de comunicare.
Z Diagramele de activiti
13
Tipuri de diagrame
UML este un limbaj esenialmente grafic, ce se definete n jurul mai multor
categorii de diagrame, fiecare dintre acestea fiind dedicat reprezentrii unor
concepte particulare ale unui sistem informatic: prima categorie descrie
serviciile funcionale, a doua privete structura static a sistemului iar cea
de-a treia se refer la dinamica funcionrii sistemului.
Diagramele funcionale
14
Figura 1.2
Diagrama UML. Cazuri de utilizare
Actor
Caz de utilizare
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
Diagramele de clase
Diagramele de clase, a cror paradigm de reprezentare este ilustrat n figura
1.3, constituie punctul central al dezvoltrii obiect. n figura menionat, clasa B
caracterizat prin atributele atribut2 i atribut3 i operaiile operaie2 i
operaie3 este asociat clasei A caracterizat prin atribut1 i operaie1
printr-o relaie de agregare. Cu alte cuvinte, un numr neprecizat de instane
ale clasei B (notat cu 0..*) intr n compunerea unei instane aparinnd clasei
A. Pe de alt parte, clasa A este legat printr-o relaie de generalizare
/particularizare de sub-clasa A1 care i motenete proprietile (atribut1 i
operaie1) avnd n plus operaie4.
9 Pentru analiz, diagrama de clase este util deoarece descrie structura
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
15
Figura 1.3
Diagrama de clase UML
Clasa B
Clasa A
atribut1
operaie1()
0..*
atribut2
atribut3
operaie2()
operaie3()
Sub-clasa A1
operaie4()
16
Diagramele de obiecte
O diagram de obiecte este o fotografie a obiectelor unui sistem la un moment
dat. Ele reprezint instane ale claselor (nu clase), de aceea se mai numesc i
diagrame de instane.
Un exemplu al acestui tip de diagram este prezentat n figura 1.4.
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
Figura 1.4
Diagrama de obiecte UML
centru : ntreprindere
copil
localitate = Bucureti
printe
copil
filiala1 : ntreprindere
filiala2: ntreprindere
localitate = Braov
localitate = Constana
printe
copil
copil
Georgescu : Angajat
Ionescu: Angajat
localitate = Braov
localitate = Braov
17
Diagramele de pachete
Clasele reprezint structura de baz a unui sistem orientat obiect. Totui, atunci
cnd avem de-a face cu sisteme mari, cu sute de clase, acestea devin dificil de
neles i necesit gruparea elementelor UML n pachete.
Orice construcie UML (cazuri de utilizare, clase, obiecte) poate fi grupat n
uniti de nivel mai nalt sub form de pachete.
ntr-un model UML, fiecare clas aparine unui singur pachet i poart un nume
distinct n cadrul pachetului.
Pachetele pot fi, n acelai timp, membre ale altor pachete, ceea ce conduce la o
structur ierarhizat de pachete i clase.
Un pachet poate conine, totodat, sub-pachete i clase independente.
n UML, numele pachetului este urmat de semnul :: care l desparte de
numele sub-pachetului sau de numele clasei componente.
n exemplul din figura 1_5 este reprezentat pachetul java din care face parte
sub-pachetul util care conine, la rndul su, clasa Date.
Figura 1.5
Diagrama de pachete UML
java
util
18
Date
Ceea ce este reprezentat n figura 1.5 va putea fi notat java::util::Date sau Date
(de java::util) 8.
"______________________________________________________________
_________________________________________________________________
Aceast notaie a fost introdus de firma Rational Rose i nu face parte din standardul
UML.
Figura 1.6
Diagrama de structuri composite UML (dup Jim Rumbaugh)
a). reprezentarea global
b). reprezentarea compozit
Telecomand
<<interfee realizate>>
comanda TV om-main
comanda TV aplicaii
<<interfee cerute>>
reglaj
afiare
flux de imagini
a).
comanda TV om-main
Telecomand
:Controlor
afiare
:Generator
Comanda
TV
aplicaii
reglaj
flux de imagini
b).
Din figura 1.6 a)., nu rezult dect c aceast clas are dou feluri de interfee:
realizate i cerute, precum i denumirea acestora.
Din figura 1.6 b)., aflm c aceast clas se descompune, de fapt, n dou pri:
controlor i generator iar interfeele sunt cuplate astfel:
9 comanda TV om-main la partea numit controlor, iar
9 comanda TV aplicaii, mpreun cu afiarea, reglajul i fluxul de imagini,
la partea numit generator.
Observaii privind notaiile:
1. Pentru a arta c o parte implementeaz o interfa, am desenat un conector sub
form de cerc i o sgeat cu linie ntrerupt care sosete n partea respectiv.
19
Structurile compozite sunt noi n UML 2.0 i, datorit acestei nouti, este
prematur s se prevad pn la ce punct se vor dovedi ele eficace n practic.
Diagramele de componen
Diagramele de componen, a cror paradigm de reprezentare este dat n
figura 1.7, constituie concepte de configurare a programelor n pachete de
programe, n fiiere surs sau n biblioteci. Aceste concepte arat cum se leag
ntre ele fiierele surs, pachetele de programe i bibliotecile, n cadrul
sistemului informatic proiectat. Astfel, n figura menionat sunt reprezentate
pachetul de programe de tip <<Applet>>, care cuprinde toate programele de
interfa om-main (IOM) i care comunic cu pachetul de programe de tip
<<Baza de date>> numit Clieni. Cele dou pachete de programe pot fi
amplasate pe maini diferite sau n biblioteci diferite n cadrul sistemului
informatic.
Figura 1.7
Diagrama de componen UML
20
<<Applet>>
IOM
<<Baza de date>>
Clieni
Diagramele de desfurare
Diagramele de desfurare, a cror paradigm de reprezentare este ilustrat n
figura 1.8, corespund structurii de reea informatic ce preia sistemul de
programe i modul n care sunt instalate componentele de reea. Astfel, din
figura 1.8 rezult c sistemul local este constituit din serverul central, la care
sunt legate un server de nlnuire i un server Web.
Figura 1.8
Diagrama de desfurare UML
Server de
nlnuire
Server
central
Server
Web
Diagramele de activiti
Diagramele de activiti, a cror paradigm de reprezentare este ilustrat n
figura 1.9, reprezint regulile de nlnuire ale activitilor n cadrul sistemului
(de exemplu, navigarea ntr-un site Web). Activitile sunt reprezentate prin
dreptunghiuri ovalizate iar trecerea de la o activitate la alta prin sgei, care se
ntlnesc n noduri de stare marcate prin linii verticale. Ansamblul activitilor
are un punct de intrare i un punct de ieire, marcate ca n figur.
21
Figura 1.9
Diagrama de activiti UML
Activ.2
Activ.1
Activ.3
Diagramele de stare
22
Figura 1.10
Diagrama de stare UML
Stare1
Stare2
Stare3
Diagramele de secven
Diagramele de secven, a cror paradigm de reprezentare este ilustrat n
figura 1.11, servesc, n primul rnd, dezvoltrii de scenarii n cadrul analizei
utilizrii sistemului. n diagramele de secven mesajele sunt reprezentate
orizontal, pe o ax a timpului de sus n jos, de attea ori de cte ori apar.
Figura 1.11
Diagrama de secven UML
:Clasa A
:Clasa B
:Actor
m1
m2
Diagramele de colaborare 9
Diagramele de colaborare, a cror paradigm de reprezentare este ilustrat n
figura 1.12, servesc aceluiai scop ca i diagramele de secven. n diagramele
de colaborare exist o singur cale, care unete dou elemente (clase, actori),
mesajele care circul pe aceast cale mpreun cu sensul lor fiind marcate pe
marginea cii cu sgei. De obicei, diagramele de colaborare se construiesc pe
baza diagramelor de secven i ilustreaz schimburile de mesaje ntre obiecte
9
Am menionat c UML 2.0 numete acest tip de element diagram de comunicare. Noi
vom continua s pstrm, n cadrul acestei lucrri, termenul de diagram de colaborare,
care ni se pare mai sugestiv, pentru a pstra corespondena cu unele lucrri mai vechi n
domeniul limbajului UML.
23
Figura 1.12
Diagrama de colaborare UML
1:m1
:Clasa A
2:m2
4:
:Actor
3:
:Clasa B
24
secven.
Ele se pot considera fie diagrame de activiti n care activitile sunt nlocuite
prin mici diagrame de secven, fie diagrame de secven divizate, notaiile
avnd menirea s uureze citirea acestor diagrame.
n figura 1.13 este prezentat un exemplu simplu al acestui tip de diagrame.
Se dorete producerea i formatarea unei liste recapitulative a comenzilor. Dac
clientul este extern, obinem informaii ntr-un formular XML. Dac clientul este
intern, l obinem dintr-o baz de date. Cele dou diagrame de secven ne
arat cele dou posibiliti. Odat obinute datele, putem emite lista
recapitulativ a comenzilor.
Acesta este un nou tip de diagram UML 2.0 i este nc prematur de a emite o
idee referitoare la modul n care va fi el utilizat n practic.
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
Figura 1.13
Diagrama de vedere de ansamblu a interaciunilor
[date externe]
:Client
:AnalizorXml
ncarc
getNume analizeaz
[date interne]
:Client
:BazDeDate
selecioneaz
dup clieni
i comenzi
new
getCom
new
:ComReper
toriuCzi
new
:Repertoriu
Comenzi
Diagramele de timing
Diagramele de timing reprezint o alt form de diagrame de interaciune, n
care accentul este pus pe constrngerile de timp, fie pentru un obiect, fie pentru
un grup de obiecte.
S lum, pentru exemplificare, scenariul de funcionare al unei cafetiere
electrice. Aceasta se compune, n principal, din dou automate: cel al pompei de
evacuare al preparatului de cafea i cel al plcii nclzitoare. S presupunem c
ntre activarea pompei i cea a plcii nclzitoare trebuie s treac un interval de
minimum 10 secunde. Atunci cnd rezervorul se golete, pompa se oprete, ns
placa poate continua s funcioneze nc 15 minute 10.
10
Vezi [Fowler2] UML 2.0 CampusPress, 2004, pp.181-189 (trad.l.engl. UML Distilled
Third Edition, Addison Wesley, 2003), pp.171-172
25
Figura 1.14
Diagrama de timing
Pompa
Placa
nclzitoare
n funciune
Oprit
Rezervor golit
timp
n funciune
Oprit
{<15 min}
{>10 s}
26
Vezi [Fowler2] UML 2.0 CampusPress, 2004, pp.181-189 (trad.l.engl. UML Distilled
Third Edition, Addison Wesley, 2003), p.22
Figura 1.15
Diagrama UML. Cazuri de utilizare
Diagrama
de clase
Diagrame
de
structur
Diagrama
de
structuri
compozite
Diagrama
de obiecte
Diagrame
Diagrama
de cazuri
de utilizare
Diagrame
comportamentale
Diagrama
de
activiti
Diagrama
de stare
Diagrame
de interaciune
Diagrama
de
componen
Diagrama
de
desfurare
Diagrama
de pachete
Diagrama
de secven
Diagrama
de
colaborare
Diagrama
vedere de
ansamblu a
interaciunilor
Diagrama
de timing
27
28
12
Scop
Se urmrete construirea unei librrii on-line pe un site Web i, cu acest prilej,
trecerea n revist a tuturor instrumentelor metodologice de proiectare orientate
obiect.
Exigene funcionale
Site-ul www.librariaX.com va trebui s regrupeze toate funcionalitile necesare
cutrii, descoperirii detaliate de lucrri, seleciei acestora i lansrii de comenzi
on-line.
Z Cutarea
Prima etap, pentru persoana care navigheaz, const n a gsi, ct mai rapid
posibil, lucrarea pe care o caut, n catalog. Referinele lucrrii fiind mai mult
sau mai puin precise, este preferabil s se furnizeze mai multe criterii de
cutare. Persoana care navigheaz trebuie s poat alege un criteriu: titlu,
29
autor, ISBN etc, sau mai multe criterii simultan (vezi exemplul de formular de
interfa om-main IOM pentru cutare rapid din figura 1.16). Ar fi de dorit ca
rezultatele cutrii s fie disponibile pe o pagin i s poat fi uor parcurse i
reclasate.
Dac persoana n cauz nu are o idee precis despre ceea ce caut, trebuie s i
se ofere un mijloc de a se plimba - aa cum ar face-o dac s-ar afla ntr-o
adevrat librrie i a avea acces la o clasificare tematic, la nouti, la o list
cu cele mai bune vnzri etc (vezi, de exemplu, ecranul IOM de cutare
general din figura 1.17. Acesta este de fapt o fereastr care se afl n
permanen n partea superioar a paginilor de cutare).
Figura 1.16
Formularul de interfa om-main IOM pentru cutarea rapid
30
Figura 1.17
Ecranul IOM de cutare general
...............
Informatic ntreprinderi management tiin tehnic practic
Introducere Cercetare avansat Teme Nouti Subiectul lunii Cele mai bune vnzri
Cutare rapid
Tema
Z Descoperirea
Fiecare carte vndut n cadrul site-ului trebuie s fie prezentat n detaliu,
punndu-se n eviden urmtoarele elemente:
9 imagine (pentru majoritatea lucrrilor) care s poat fi, eventual, mrit;
9 preul i disponibilitatea;
9 comentarii ale clienilor;
9 tabl de materii detaliat, extrase etc. (a se vedea, de exemplu, schia
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
31
Figura 1.18
Fia detaliat a lucrrii
32
Z Comanda
n orice moment, clientul poate accesa formularul bonului de comand, n care
i trece coordonatele i informaiile necesare pentru plat i livrare (vezi
exemplul de bon de comand). Pentru a garanta securitatea i
confidenialitatea, se impune ca trimiterea datelor s fie criptat. n cazul n
care se dorete, sistemul trebuie s fie capabil s emit un deviz, care s poat
fi imprimat de client pentru a comanda prin fax sau curier.
Clientul trebuie s-i poat apoi urmri comenzile, s le poat modifica nainte
de a fi expediate, ntr-o manier securizat.
Exigene nefuncionale
Exigenele nefuncionale se refer la calitate i la performan.
Z Exigene de calitate
S cumperi o carte pe Web nu trebuie s-i ia mult timp i nici s ai cunotine
speciale. n acest scop, trebuie:
9 s existe o prezentare clar i intuitiv;
9 formularul de comand s fie simplu;
9 help-ul on-line s fie puternic. Clientul trebuie s poat consulta help-ul
Z Exigene de performan
9
9
9
9
Restricii de concepie
Z Actualizarea datelor de referin
Informaiile referitoare la lucrrile prezentate pe site provin, de regul, din dou
surse complementare:
9 prima servete la alimentarea bazei de date cu toate lucrrile noi;
9 cea de-a doua servete la actualizarea datelor referitoare la pre i starea
33
Z Coul
Coul navigatorului nu va fi salvat n baza de date. Durata sa de via nu va
depi pe aceea a vizitei utilizatorului.
Z Plata securizat
34
Specificarea cerinelor
conform cazurilor de
utilizare
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yy
n acest capitol:
Cazurile de utilizare
Diagramele cazuri de utilizare i elementele lor
Studiul de caz e-commerce identificarea elementelor diagramelor cazuri
de utilizare
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
Cazurile de utilizare
Primul pas n dezvoltarea unui proiect de sistem informatic este nelegerea
clar a problemei. n acest scop, orice analiz ncepe cu construirea cazurilor de
utilizare, care descriu modul n care va fi utilizat sistemul. Pentru a facilita
aceste descrieri, dezvoltatorii UML au inclus diagramele caz de utilizare n
specificaia limbajului.
Fiecare caz de utilizare trebuie s aib un nume, un numr i o descriere.
Un caz de utilizare trebuie s respecte o anumit form de descriere.
a. Acest caz ncepe atunci cnd ....
b. Sistemul rspunde prin ... (secven de interaciuni) ...
c. Acest caz se termin atunci cnd ...
Exemplu:
Iat cum descriem cazul de utilizare: Trasarea unei linii ntr-un program de
desenare.
a. Acest caz ncepe atunci cnd utilizatorul clickeaz pe icon-ul linie n
bara de menu.
35
36
Figura 2.1
Fia diagramei UML cazuri de utilizare
Fia diagramei Cazuri de utilizare
UML
Rol
Diagrama caz de utilizare produce o prim viziune asupra
Elemente
Cnd se
utilizeaz
Actorii
Un actor este un rol pe care utilizatorul l joac n raport cu sistemul. Actorii
realizeaz cazurile de utilizare. Un singur actor poate realiza mai multe cazuri i,
invers, un caz poate avea mai muli actori.
Tipurile de actori sunt prezentate n detaliu n figura 2.2. Exemplele se refer la
studiul de caz e-commerce i la aplicaiile propuse spre rezolvare (vezi TEMA).
Figura 2.2
Tipurile de actori
Element diagram
UML
Reprezentare
Actor extern
extern
care
Exemple:
Magazioner
37
Stabilirea programului
eful seciei producie de fabricaie
Maistru
Responsabil serviciu
aprovizionare
Clientul
Selectarea listei de
furnizori
Efectuarea comenzii
Actor intern
38
Exemple:
Efectuarea comenzii
Serviciul clieni
ntreinerea catalogului
Librar
ntreinerea site-ului
Webmaster
Distribuirea
sarcinilor pe
muncitori
Gestionarea
magaziei de piese
i subansambluri
Gestionarea
magaziei de
materiale
Actor subsistem
Denumire subsistem
Reprezint subsistemele automate de prelucrare a datelor
privite, pentru moment, ca entiti globale.
Exemple:
Gestiunea stocurilor
Librar
ntreinerea
catalogului
Nouti
Gestiunea stocurilor
Magazioner ntreinerea
fielor de
magazie
Magazioner
Client
Lansarea comenzilor
de fabricaie
Gestionarea
fiei de magazie
Efectuarea
comenzii
Gestiunea stocurilor
Elaborarea comenzii
de aprovizionat
39
40
Remarci:
9 n cadrul capitolului 12 al acestei lucrri se arat un mod simplu de a genera un
actor folosind pachetul de programe VP-UML (vezi figura 12.8).
9 Acelai mod simplu de a crea un actor avem la dispoziie i atunci cnd lucrm cu
pachetul de programe RRRT (vezi capitolul 11, paragraful 11.3 Adugarea unui
caz de utilizare). n figura 11.8, care arat vederea de ansamblu a diagramei
cazurilor de utilizare intitulat Use Case View /Main, n bara de instrumente a
acesteia, situat pe latura stng a diagramei, se vede imaginea aceluiai
instrument Actor (standard UML). Executarea unui click pe aceast imagine,
urmat de mutarea mouse-ului n interiorul diagramei i efectuarea unui nou click
genereaz un actor al crui nume poate fi imediat redefinit.
Cazurile de utilizare
Cazurile de utilizare sunt prezentate n detaliu n figura 2.3. Exemplele se refer
la studiul de caz e-commerce i la aplicaiile propuse spre rezolvare (vezi TEMA).
Figura 2.3
Cazurile de utilizare
Element
diagram UML
Reprezentare
Caz de utilizare
Cazul A
Exemple:
Gestionarea coului
Cutarea lucrrilor
Efectuarea comenzii
ntreinerea catalogului
ntreinerea informaiilor
editoriale
Consultarea unei
comenzi n curs
ntreinerea
sistemului
Lansarea documentelor
de fabricaie
41
Figura 2.4
Relaii ntre cazurile de utilizare
Element
diagram UML
Incluziune
42
Reprezentare
A <<include>> B
Exemplu:
<<include>>
Analiza de risc
Agent
comercial
Extensie
<<include>> Expertiza
Tarifare tranzacie
C
C <<extinde>> D
Exemple:
43
Generalizare
/specializare
44
Exemple:
45
Identificarea actorilor
46
Figura 2.5
Actorii site-ului www.librariaX.com
Actor
extern
Actori
interni
Actori
subsisteme
Navigatorul
Exprimarea exigenelor funcionale a pus n eviden principalele cazuri de
utilizare ale navigatorului: cutarea lucrrilor, gestionarea coului i efectuarea
comenzii. S reprezentm acest lucru printr-o diagram de cazuri de utilizare
(vezi figura 2.6).
Figura 2.6
Cazuri de utilizare pentru navigator
Observaii:
9 n relaiile reprezentate n figura 2.6, o legtur nseamn: Actorul x
particip la cazul de utilizare y.
47
Angajaii ntreprinderii
Angajaii ntreprinderii Librria X, librarul i webmaster-ul, au urmtoarele
sarcini:
9 s ntrein catalogul, ceea ce face s intervin cele dou sisteme:
Nouti i Gestiunea stocurilor;
9 s ntrein informaiile editoriale;
9 s ntrein site-ul.
Aceste cazuri de utilizare sunt reprezentate n figura 2.7.
48
Figura 2.7
Cazuri de utilizare pentru angajai
Observaii:
9 Actorii ne-umani nu fac dect s trimit mesaje sistemului, fr s
primeasc vreunul (Remarcai sensul sgeilor de navigabilitate ctre
cazurile de utilizare).
9 Relaia de extindere din figura 2.7 va fi comentat n paragraful urmtor.
Figura 2.8
Relaii de generalizare/specializare ale cazului de utilizare Cutarea lucrrilor
Observaii:
9 Cutarea lucrrilor este (figura 2.8) un caz virtual (nu se realizeaz dect
prin specializrile sale).
9 Cazurile de utilizare ale angajailor nu pun n eviden nici o relaie ntre
ele.
49
Pe lng cele de mai sus, mai exist urmtoarele cazuri de utilizare ale
navigatorului:
9 consultarea comenzilor n curs;
9 consultarea help-ului on-line.
50
Figura 2.9
Completarea cazurilor de utilizare pentru navigator
Observaii:
9 Consultarea help-ului on-line nu trebuie neglijat, dar nu este un caz de
utilizare major.
9 Consultarea help-ului on-line poate extinde toate celelalte cazuri de
utilizare. n orice moment, fie la cutarea lucrrilor, fie la gestiunea
coului etc, navigatorul poate s ntrerup activitatea pentru a consulta
help-ul on-line i apoi s continue activitatea ntrerupt.
Figura 2.10
Completarea cazurilor de utilizare pentru navigator
51
52
Figura 2.11
Clasamentul cazurilor de utilizare n studiul de caz e-commerce
Caz de utilizare
Prioritate
Risc
Cutarea lucrrilor
Gestionarea coului
Efectuarea comenzii
Consultarea comenzilor n curs
Consultarea help-ului on-line
ntreinerea catalogului
ntreinerea informaiilor editoriale
ntreinerea site-ului
nalt
nalt
medie
sczut
sczut
nalt
medie
medie
mediu
sczut
nalt
mediu
sczut
nalt
sczut
sczut
Ordine de
abordare
2
3
4
6
7
1
5
5
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
53
Specificarea detaliat a
cerinelor. Fia-tip a
cazurilor de utilizare
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
n acest capitol:
Descrierea detaliat a cazurilor de utilizare
Scenarii: scenariul nominal, extensii, precondiii, postcondiii, cerine
suplimentare
Fia-tip a cazurilor de utilizare
Studiul de caz e-commerce - fia-tip a cazurilor de utilizare pentru:
ntreinerea catalogului, cutarea lucrrilor, gestionarea coului,
efectuarea comenzii. Actualizarea diagramelor de caz de utilizare
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
54
Scenarii
Putem considera cazurile de utilizare drept o colecie de scenarii de succes sau
eec, ce descriu modul n care un anumit actor utilizeaz sistemul pentru a
atinge un obiectiv.
Cazul de utilizare trebuie s aib un nceput i un sfrit, clar definite.
55
13
Figura 4.1
Fia-tip a cazurilor de utilizare rezumat
Fia-tip a
Explicaii
cazurilor
de utilizare
Rol
Fia-tip are rolul de a detalia fiecare caz de utilizare, fcnd s
Elemente
componente
Cnd se
utilizeaz
Exemplu 14
56
14
Figura 4.2
Elementele fiei-tip a cazurilor de utilizare
Elementele fiei-tip a
cazurilor de utilizare
Actorul principal
Actorii secundari
Obiectivul
Scenariul nominal
Extensiile
Explicaii
57
Precondiiile
Postcondiiile
Declanatorul
Cerine suplimentare
58
un model apropiat de acela al fiei-tip definit mai sus (vezi capitolul 12, figura
12.11).
ntreinerea catalogului
Fia-tip: ntreinerea catalogului
Actorul principal: Librarul
Actori secundari: Cele dou subsisteme: Nouti i Gestiunea stocurilor.
Obiectiv: Librarul va putea controla actualizarea automat a catalogului de
lucrri prezentat pe site-ul Web.
Extensii:
59
15
Cutarea lucrrilor
Fia-tip: Cutarea lucrrilor
Actorul principal: Navigatorul
Obiective: Navigatorul vrea s gseasc, cel mai rapid posibil, o lucrare cutat
Scenariul nominal:
60
Extensii:
Observaii:
9 Fie c lanseaz o nou cutare, fie c abandoneaz, cele dou situaii
sunt simplu indicate utiliznd acelai numr de secven.
9 Soluia prezentat este mai simpl i mai pragmatic dect soluia
preliminar propus n figura 2.8 din capitolul 2. Cazurile de utilizare de
acolo dispar n favoarea unui singur caz, cel prezentat, care devine
concret. Acesta este un bun exemplu de modelare iterativ.
9 Scenariul de mai sus a fost propus ca aplicaie practic i n cadrul
capitolului 12, pentru a fi realizat cu pachetul de programe Visual
Paradigm for Unified Modeling Language (vezi figura 12.11).
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
61
Gestionarea coului
Fia-tip: Gestionarea coului
Actorul principal: Navigatorul
Obiectiv: Atunci cnd navigatorul este interesat de o lucrare, el trebuie s aib
posibilitatea de a o nscrie ntr-un co virtual, apoi s adauge alte lucrri, s
suprime sau s modifice cantitile nainte de a nregistra comanda.
Precondiii: Nu sunt.
Postcondiii: Nu sunt.
Scenariul nominal:
62
Figura 4.3
Exemplu de afiare a strii coului virtual
Figura 4.4
Exemplu de afiare a devizului
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
63
64
Extensii:
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
65
66
Diagramele de secven
sistem (DSS)
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
n acest capitol:
Diagramele de secven sistem
Studiul de caz e-commerce diagramele de secven sistem pentru
cazurile de utilizare: cutarea lucrrilor, gestionarea coului, efectuarea
comenzii, ntreinerea catalogului
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
67
Figura 5.1
Principalele caracteristici ale diagramelor de secven sistem
Diagrama UML de
Caracteristici
secven sistem
Reprezentare
68
Rol
Elemente
componente
Cnd se utilizeaz
Exemplu
Remarci:
9 n aceast diagram s-a reprezentat numai scenariul
nominal.
9 Clientul caut n catalog articolul dup cuvinte cheie.
9 Completarea formularului de comand include informaiile
privind livrarea (adresa de livrare, condiiile de livrare).
9 Autorizarea livrrii este reprezentat aici printr-o operaie
n interiorul sistemului. O alt variant ar fi expedierea
unui mesaj Serviciului Clieni care s preia aceast sarcin
(vezi studiul de caz e-commerce Efectuarea comenzii).
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
69
Figura 5.2
Elementele diagramei de secven sistem
Elementele
diagramei de
secven sistem
Instanele
actorilor
Explicaii
<nume_instan> : <nume_actor>
Remarc. Numele instanei nu este obligatoriu.
Instana
sistemului
<nume_instan> : <nume_sistem>
70
Liniile de via
Mesajele
71
Cutarea lucrrilor
Pentru cazul de utilizare Cutarea lucrrilor (scenariul nominal), se pornete
de la descrierea textual detaliat a cazului de utilizare, fiecare etap
transformndu-se ntr-o sgeat care reprezint un mesaj.
Prima aciune este aceea a cutrii rapide sau cutrii avansate a lucrrii n
catalog. Am utilizat o not pe marginea diagramei (sau). Nu este neaprat
nevoie, dar aceasta permite creterea coninutului informativ al reprezentrii.
Sgeata ntrerupt care pleac de la instana sistem (:librariaX.com) la instana
actor (:Navigator) reprezint un retur n sens UML. Aceasta nseamn c
mesajul n cauz (lucrri gsite) este rezultatul direct al mesajului precedent,
printr-o relaie puternic de la cauz la efect. n general, nu se marcheaz dect
retururile interesante.
Aa cum am menionat, diagramele de secven ilustreaz interaciuni ntre
instane (obiecte) i nu ntre clase. Notaia :Navigatorul indic o instan a
actorului i nu clasa sa.
72
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
Figura 5.3
Diagrama de secven sistem a cazului de utilizare Cutarea lucrrilor
Gestionarea coului
Pentru acest caz de utilizare, DSS reprezint mai mult dect scenariul nominal.
Am descris un exemplu mai complet de gestionare a coului pentru a ilustra
aciunile de accesare a coului, modificare a cantitii, de suprimare a liniilor etc.
(vezi figura 5.4).
A se nota, de asemenea, trimiterea la cazul de utilizare Cutarea lucrrilor
odat cu comanda punenCo () la nceputul diagramei, care arat un exemplu
de umplere a coului ca urmare a unei cutri.
73
Figura 5.4
Diagrama de secven sistem pentru cazul de utilizare Gestionarea coului
74
Efectuarea comenzii
Mesajul comandCoul() trimis sistemului la nceputul diagramei leag acest caz
de cazul de utilizare Gestionarea coului.
Ca urmare, sistemul trimite navigatorului formularul de comand. Acesta este
completat de navigator i trimis sistemului odat cu mesajul tasteaz
InfoComand().
Figura 5.5
Diagrama de secven sistem pentru cazul de utilizare Efectuarea comenzii
ntreinerea catalogului
n aceast diagram de secven, instanele subsistemelor Nouti i
Gestionarea stocurilor trimit informaii instanei sistemului librariaX.com pentru
ca aceasta s actualizeze, n mod automat, Catalogul.
n diagrama de secven sistem pentru acest caz de utilizare, sgeata care
bucleaz i care reprezint actualizarea automat a Catalogului
(actualAutoCatal(), vezi figura 5.6) permite reprezentarea grafic a unui
comportament intern major pe care dorim s-l accentum. Nu trebuie s se
abuzeze totui de acest gen de reprezentri, deoarece nu acesta este primul
obiectiv al diagramei de secven sistem.
"______________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
75
Figura 5.6
Diagrama de secven sistem pentru cazul de utilizare ntreinerea catalogului
76
Figura 5.7
Operaii sistem ale site-ului Web librariaX.com
77