Documente Academic
Documente Profesional
Documente Cultură
a¸
ti
Slide 5.1 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.3 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
a s¸i comportamentala˘
UML: Modelare structural˘ Modelare
Slide 5.2 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.4 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Modelare ..UML
UML ..UML
Slide 5.6 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.8 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Structura UML: Blocuri de baz˘
a ..Structura UML: Blocuri de baza˘
Blocuri de baz˘ a: In UML, blocurile de bază sunt lucruri (things), Diagramele sunt de 9 tipuri
relaţii, diagrame.
Diagrame de clase (class diagram)
Lucrurile (things) sunt de 4 tipuri: structurale, comportamentale,
Diagrame de obiecte (object diagram)
de grupare, de adnotare
Diagrame de utilizare (use case diagram)
Lucruri structurale
• clase Diagrame de secvent¸e (sequence diagram)
• interfeţe Diagrame de colabor˘
ari (collaboration diagram)
• colaborări
• use cases (moduri de utilizare) Diagrame de statechart-uri (statechart diagram)
• clase active Diagrame de activit˘
a¸
t i (activity diagram)
• componente
• noduri Diagrame de componente (component diagram)
Diagrame de desf˘
as¸urare (deployment diagram)
Slide 5.9 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.11 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Asociat¸ii – execuţie
Generaliz˘
ari
Realiz˘
ari
Slide 5.10 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.12 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Structura UML: Roluri, extensii Fazele de dezvoltare
Fazele de dezvoltare: UML este, ı̂n mare, independent de
Mecanisme comune in UML:
metodologiile concrete folosite curent ı̂n dezvoltarea de software.
Specificat¸ii Procesul de dezvoltare din UML este:
A: condus de modul de utilizare a sistemului
ari de notat¸ii (adornments)
Modific˘
• important este ce face sistemul (specificare, proiectare,
Diviziuni comune testare)
Mecanisme de extensie B: axat pe arhitectur˘a
Stereo-tipuri • arhitectura este folosită pentru probleme legate de
concepţie, construcţie, management, şi dezvoltare
Valori atas¸ate (tagged values)
Constrângeri C: iterativ, incremental
• dezvoltarea trece prin 4 faze: concepţie, elaborare,
construcţie, şi tranziţie (spre utilizatori)
Slide 5.13 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.15 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Slide 5.17 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.19 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Clase ..Clase
Nume Responsabilit˘ a¸
t i:
• poate fi simplu, ori cu cale; • o responsabilitate este
Exemple: Wall, java::awt::Rectangle un contract ori o
Atribute obligaţie a clasei
• se pot defini tipul şi valori inţiale; • se descriu ı̂ntr-o zonă
Exemple: hight:Float, isOld:Boolean = false separată, ca ı̂n desen
Operat¸ii • ele pot fi definite mai informal, ori complet formal
• includ specificaţia signaturii; • responsabilităţile au valoare semantică, anume restricţionează
Exemple: reset(), setAlarm(t:Temperature) comportamentul obiectelor din clasă
Slide 5.18 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.20 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
a s¸i comportamentala˘
UML: Modelare structural˘ ..Relat¸ii
Cuprins:
• Generalităţi
• Modelare structurală
– Clase
– Relaţii
– Mecanisme comune
– Diagrame
– Diagrame de clase
• Modelare comportamentală
• Concluzii, diverse, etc.
Slide 5.21 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.23 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Relat¸ii ..Relat¸ii
Dependent¸e:
Relat¸ii:
• reprezintă relaţii de uti-
• relaţiile sunt conexiuni ı̂ntre “lucruri” (things)
lizare
• cele mai importante sunt:
• sunt direcţionate: mod-
– dependenţe - relaţii de utilizare, deci schimbarea unui lu- ificarea specificării un-
cru implică schimbarea celuilalt uia ı̂l poate afecta pe
– generalizări - relaţii dintre general şi particular celălalt, dar nu şi re-
clase generalizate-clase specializate, părinte-fiu, etc. ciproc
– asociaţii - relaţii structurale ı̂ntre instanţe
• exemplu frecvent: o clasă A are un agrument ı̂n definirea unei
• se reprezintă grafic prin diverse tipuri de linii, săgeţi, etc. operaţii de timp B; atunci, A depinde de B
• un exemplu este pe slide-ul următor
Slide 5.22 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.24 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Relat¸ii ..Relat¸ii
Generaliz˘ ari:
• relaţii dintre gen- Multiplicitate:
eral şi particu- - o asociaţie este o relaţie
lar - numită un- structurală ı̂ntre obiecte
eori “is-a-kind- şi putem specifica câte
of” relation obiecte participă: *,
(0..1), (0..*),
• lucrul/obiectul (1..*), 3
fiu poate fi sub- Agregare:
stituit oriunde
- specifică relaţia din-
apare părintele,
tre ı̂ntreg şi părţi (când
dar nu reciproc
“ı̂ntregul este simpla to-
talitate a părţilor”)
Slide 5.25 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.27 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Relat¸ii ..Relat¸ii
Rol:
- ca alăturat, se poate ex-
plicita rolul fiecărei părţi
ı̂ntr-o asociaţie
Slide 5.26 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.28 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
a s¸i comportamentala˘
UML: Modelare structural˘ Mecanisme comune
Slide 5.29 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.31 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Slide 5.30 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.32 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Diagrame ..Diagrame
Diagrame: Diagrame de componente:
• diagramele sunt prezentări grafice a unei mulţimi de elemente, • descriu componentele şi relaţiile lor
cel mai comun reprezentate ca un graf cu noduri (pentru lu- • ı̂n genere, o componentă conţine mai multe clase,
cruri) şi arce (pentru relaţii) interfeţe, şi colaborări
• UML are 4 tipuri de diagrame pentru partea statică a sistemu- Diagrame de desf˘ as¸urare:
lui:
• prezintă o mulţime de noduri şi relaţiile lor (statice)
(1) diagrame de clase, (2) de obiecte, (3) de componente, • ele capturează “arhitectura” sistemului
şi (4) de desfăsurare (engl. class diagram, object diagram, • ı̂n genere, un nod conţine mai multe componente
component diagram, deployment diagram)
• UML are 5 tipuri de diagrame pentru partea dinamică:
(1) diagrame de utilizare, (2) de secvenţe, (3) de colabo-
rare, (4) de statechart-uri, şi (5) de activitate (engl. use-
case diagram, sequence diagram, collaboration diagram,
Slide 5.33 statechart diagram,
CS-21xxactivity diagram)
/ Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.35 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Diagrame ..Diagrame
Diagrame structurale: Diagrame comportamentale:
• descriu aspecte statice; • descriu aspecte dinamice;
• sunt specializate pentru: (1) clase, interfeţe, colaborări; (2) • sunt specializate pentru: (1) organizarea comportamentului;
obiecte; (3) componente; (4) noduri (2) mesaje şi ordinea lor ı̂n timp; (3) organizarea structurală şi
Diagrame de clase: comunicarea send-receive; (4) evoluţia ca reacţie la semnale;
(5) evoluţie din activitate ı̂n activitate
• descriu clasele, interfeţele, colaborările, şi relaţiile lor
• ı̂n genere, descriu aspecte statice Diagrame de utilizare (use-care diagrams)
• dacă sunt incluse “clase active” (care conţin procese) pot • descriu actorii şi modalităţile lor de interacţiune
prinde şi aspecte dinamice • sunt folosite, ı̂n genere, pentru a organiza şi modela com-
Diagrame de obiecte: portamentul sistemului
• prezintă o mulţime de obiecte şi relaţiile lor (statice)
• sunt similare cu cele de clase, dar acum lucrurile sunt priv-
ite din prisma obiectelor
Slide 5.34 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.36 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Diagrame ..Diagrame
Slide 5.37 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.39 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Diagrame ..Diagrame
Cuprins: Exemplu:
• Generalităţi o
• Modelare structurală diagramă
de
– Clase
clase
– Relaţii
– Mecanisme comune
– Diagrame
– Diagrame de clase
• Modelare comportamentală
• Concluzii, diverse, etc.
Slide 5.41 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.43 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Slide 5.42 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.44 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Diagrame de clase Interact¸ii
Exemplu: Interact¸ii:
Slide 5.45 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.47 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
a s¸i comportamentala˘
UML: Modelare structural˘ ..Interact¸ii
Cuprins: Context:
• Generalităţi • interacţia depinde de “contextul” ı̂n care se studiază (clasă,
• Modelare structurală sub-sistem, sistem)
• Modelare comportamentală • poate fi descrisă pe diverse paliere de abstracţie
– Interacţii
– Use cases Obiecte s¸i roluri:
– Diagrame “use cases” • obiectele care participă pot fi concrete, ori lucruri generice
– Diagrame de interacţie (e.g., o persoană reprezentativă pentru clasa Person)
– Diagrame de activităţi
• Concluzii, diverse, etc. • apar instanţe de clase, componente, noduri, ori use-case-uri
(chiar şi “clasele abstracte” pot fi folosite, instanţele lor fiind
“generice”)
Slide 5.46 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.48 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Interact¸ii ..Interact¸ii
Link-uri: Secvent¸ializare:
• sunt conexiuni semantice ı̂ntre obiecte; ı̂n genere sunt asociaţii • secvenţializarea este un mecanism de a determina ordinea
mesajelor ı̂n timp
• se pot folosi notaţii ierarhice (secvenţe cuibărite/săgeţi cu tri-
unghiuri pline) ori plate (numere naturale/săgeţi simple)
Slide 5.49 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.51 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Interact¸ii ..Interact¸ii
Mesaje: (exemplu de secvenţializare cu notaţie plată)
• ı̂n afara mesajelor uzuale, pot fi mesaje de: call, return, send,
create, destroy
Slide 5.50 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.52 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Interact¸ii a s¸i comportamentala˘
UML: Modelare structural˘
Slide 5.53 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.55 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Interact¸ii Use-cases
...şi cea din diagramele de colaborări Use-cases:
• descriu secvenţe de acţiuni (cu varinate) pe care un sistem le
poate face rezultând ceva de valoare pentru un actor
• un actor poate fi om, hardware, alt sistem, etc.
Nume:
• orice use-case are nu nume (simplu, ori cu cale)
• un use-case se desenează ca o elipsă
Use-cases vs. actori:
• un actor reprezintă un rol (ori un set de roluri) coerent pe
care un user ı̂l are ı̂n interacţia cu use-case-ul
• un actor nu face parte din sistem
• un actor este desenat schematic ca un om
Slide 5.54 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.56 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Use-cases ..Diagrame use-case
Use-cases vs. flux de evenimente: Exemplu - modelarea contextului de folosire a unui sistem
• un use-case descrie ce se face, nu cum
• sunt descrise de use-cases atât evoluţiile normale, cât şi
cele excepţionale
Use-cases vs. scenarii:
• un use-case descrie un set de scenarii, nu doar un scenariu
Use-cases vs. colabor˘ ari:
• use-cases descriu ce, nu cum şi sunt implementate prin co-
laborări ı̂ntre diverse elemente
Organizarea use-case-urilor:
• se pot folosi relaţii de generalizare, includere, ori extensie
ı̂ntre use-case-uri
Slide 5.57 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.59 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Slide 5.58 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.60 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Diagrame de interact¸ie ..Diagrame de interact¸ie
Slide 5.61 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.63 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Slide 5.62 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.64 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Diagrame de interact¸ie ..Diagrame de interact¸ie
Echivalent¸a Exemplu - diagramele de colaborări se folosesc când modelăm
fluxul de control prin organizarea activităţii
• Fapt: Diagramele de secvenţe şi diagramele de colaborări sunt
semantic echivalente.
Anume,
• există transformări simple care ne duc dintr-o reprezentare ı̂n
alta, fără a pierde informaţie
Slide 5.65 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.67 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Cuprins:
Exemplu: • Generalităţi
diagramele de
• Modelare structurală
secvenţe se
folosesc când • Modelare comportamentală
modelăm fluxul – Interacţii
de control prin – Use-cases şi diagrame “use cases”
ordinea ı̂n timp – Diagrame de interacţie
– Diagrame de activităţi
• Concluzii, diverse, etc.
Slide 5.66 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.68 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
Diagrame de activit˘
a¸
ti ..Diagrame de activit˘
a¸
ti
Diagrame de activit˘
a¸
ti
Diagrame de activit˘
a¸
ti
St˘
ari de act¸iuni s¸i st̆
ari de activit˘
a¸
ti
• o diagramă de activităţi descrie fluxul din activitate ı̂n activi-
tate •
stările de acţiuni sunt atom-
• o activitate este o execuţie ne-atomică, continuă, constând din ice (acţiunile nu pot fi de-
diverse acţiuni scompuse ori ı̂ntrerupte)
• acţiunile pot fi diverse, precum: apelul unei alte operaţii, trim- • stările de activităţi de descompun, activităţile pot fi
itere de semnal, crearea ori distrugerea de obiecte, paşi de cal- ı̂ntrerupte, durează, se pot include unele ı̂n altele, etc.
cul local, etc.
• grafic, o diagramă de activităţi este o colecţie de noduri şi arce
Slide 5.69 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.71 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Diagrame de activit˘
a¸
ti ..Diagrame de activit˘
a¸
ti
Exemplu: Tranzit¸ii
• tranziţiile apar când se trece de la o acţiune/activitate la
o alta
diagramă • pot fi generate de completarea acţiunii/activităţii curente,
de ori declanşate de evenimente
activităţi
• grafic, se reprezintă cu arce direcţionate simple
Slide 5.70 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.72 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Diagrame de activit˘
a¸
ti ..Diagrame de activit˘
a¸
ti
Ramificat¸ii Swimlanes
• ca ı̂n schemele logice, o diagramă de activităţi poate avea • deseori este utilă partiţionarea activităţilor pe grupe, de
blocuri condiţionale, reprezentate cu romburi care sunt responsabile societăţi diferite
• este o ı̂mpărţire virtuală a diagramei cu linii verticale,
fiecare “culoar” având un nume unic
Fluxul obiectelor
• uneori este util să urmărim ce de ı̂ntâmplă cu anumite
obiecte, pasate de la un grup de activităţi la altul
• urmărirea acestui “flux al obiectelor” este utilă ı̂n procese
manageriale (workflow)
• ı̂ntr-un nod condiţional, condiţiile sunt disjuncte pe fiecare
ramură
Slide 5.73 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.75 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Diagrame de activit˘
a¸
ti ..Diagrame de interact¸ie
Slide 5.74 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.76 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
..Diagrame de interact¸ie Concluzii, diverse, etc.
Exemplu - modelarea unei operaţii (schemă logică simplă) a se insera...
Slide 5.77 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu Slide 5.79 CS-21xx / Metode de Dezvoltare Software, Sem.2 / G Stefanescu
a s¸i comportamentala˘
UML: Modelare structural˘
Cuprins:
• Generalităţi
• Modelare structurală
• Modelare comportamentală
• Concluzii, diverse, etc.