Sunteți pe pagina 1din 31

Ciclul de via a produsului soft

1. Determinarea cerinelor
2. Analiza cerinelor i sinteza
3. Proiectarea
4. Realizarea
5. Testarea
6. Implementarea
7. nvarea
8. ntreinerea

Pachetele
Exist doar n timpul elaborrii. Se reprezint printr-o map cu semn de carte.

Remarca (nota)
Este un simbol pentru reprezentarea comentariilor. Se reprezint printr-un dreptunghi cu colul
sus din dreapta ndoit.

Cazul de utilizare
Este o descriere a consecutivitii de aciuni ndeplinite de sistem. Se reprezint printr-o elips n
interior se afl denumirea cazului de utilizare.

Relaiile UML
1. Dependena
2. Asocierea
3. Generalizarea

4. Realizarea

Dependena
Relaie semantic ntre dou entiti, modificarea uneia poate influena semantica celeilalte. Se
reprezint prin linie ntrerupt, poate conine o etichet.

Asocierea
Relaie de structur, descrie o totalitate de legturi ntre obiecte. Numele se scrie cu majuscul
lng asociere, se reprezint printr-o linie pe care se indic multiplicitatea claselor - rolurile
asocierii.

Un caz particular al asocierii este agregarea ntre ntreg i prile componente. Arat din ce
elemente const sistemul i cum sunt legate. Rombul arat ntregul, restul prtile.

Caz particular al agregrii este compoziia. n acest caz prile componente nu pot exista fr
partea ntreag, distrugerea ntregului presupune distrugerea prilor componente.

Generalizarea
Este o relaie de tip specializare-generalizare n care un obiect descendent poate substitui
obiectul printe. Copilul motenete structura i comportamentul printelui.

Realizarea
Relaie semantic ntre clasificatori, un clasificator definete un contract, iar cellalt garanteaz
ndeplinirea lui. Se folosete ntre interfee i clase sau componente care realizeaz aceste
interfee, ntre cazuri de utlilizare i colaborri care le realizeaz.

Elemente:
1. De legatur se repezint prin diferite linii care au specificul lor. Liniile au
parametri.
2. Text
3. Diferite simboluri, pictograme (patrate, elipse, dreptunghiuri) ntre care trebuie
fcut legatura.
Diagrame UML
Diagramele ne permit s alctuim modelul integrat al sistemului. Permit deasemenea trecerea de
la cea mai mare abstracie la cea mai mare detaliere.
1. D.variantelor de utilizare (Use Case) descrie sistemul ca un tot ntreg. Conine

actori care execut funcii, precedente-funciile propriu-zise i relaiile dintre


actori.
2. D. secventelor arat cursul funcionalitii ntr-un precedent. Reprezint un circuit

de evenimente care au loc n limitele cazului de utilizare.


3. D. de colaborare arat aceeai informaie ca i D. secvenelor, ns lipsete

legatura cu timpul.
4. D. strilor indic strile n care un obiect se poate afla, arat comportamentul unui

obiect.
5. D. activitilor descrie cursul funcionalitii sistemului.
6. D. claselor arat interaciunea dintre clase n sistem
7. D. componentelor arat componentele soft n sistem i relaiile dinttre ele.

8. D. desfurrilor arat schema fizic a reelei i unde vor fi amplasate diferitele

componente.

<<extend>>
Completarea datelor personale

<<i>>

<<i>>
Completarea formularului

Inregistrarea userului

<<include>>

Activarea

<<i>>

<<i>>

Adaugarea parolei user name

Adaugarea userului
Primirea raspunsului pe mail

Diagrama variantelor de utilizare (Use Case) descrie sistemul ca un tot ntreg, integru. Drept
exemplu diagrama Use Case pentru ATM (serviciul bancar pentru clieni - Automated Teller
Machine).

Sgeata care vine de la precedent la actor arat c precedentul produce o informaie pe care o
folosete actorul.
La elaborarea diagramei trebuie de rspuns la ntrebrile:
1. Ce vrea s fac sistemul
2. Ce funcii importante va avea sistemul
De obicei un proiect are 20-50 variante de utilizare, deaceea ele sunt adunate n pachete. Varia
ntele de utilizare sunt numite folosind verbe care descriu rezultatul tranzaciei. Se pot desena
asocieri ntre cazuri de utilizare i actori, generalizri ntre cazuri de utilizare.
Generalizarea ntre dou cazuri de utilizare indic c cazul de utilizare poate mprti
comportamentul definit n unul sau mai multe cazuri de utilizare. Generalizarea ntre actori arat
c un actor motenete structura i comportamentul unui actor sau mai multor actori.

ncheierea de asigurare pe via i asigurarea auto poate fi generalizat n ncheiere asigurare.


De exemplu clienii sunt de dou tipuri: persoane fizice i juridice.

Diagrama Interaciunilor
n Rational Rose exist dou tipuri de diagrame de interaciune: d. de secven i d. de
colaborare.
Diagrama de secven prezint interaciunile care au loc ntre diverse obiecte ale unui sistem,
ordonate cronologic. Sunt asociate unui caz de utilizare. Fiecrui obiect sau clasa i corespunde o
linie a timpului (linia de via), mesajele transmise ntre obiecte sunt reprezentate prin sgei
etichetate cu numele mesajului.

ncheie contract

Achit factura

Conectare

ntocmete factura

Diagrama colaborrilor
Diagrama colaborrilor atrage atenia asupra fluxului de date, diagrama secvenelor asupra
controlului. Pune accentul pe organizarea obiectelor cooperante. Orice diagram de interaciune
trebuie s aib un obiect actor.

Relaiile utilizate:
1. Simpl
2. Sincron cnd clientul care a trimis mesaj ateapt rspuns de la server
3. Fr intrarea n lista de ateptare dac serverul nu poate executa mesajul la momentul
respectiv el este pierdut.
4. Asincron clientul trimite mesaj, nu ateapt rspuns de la server.

Selectarea unui curs


Diagrama claselor
Clasa reprezint descrierea obiectelor care posed proprieti comune (atribute), comportament,
interaciuni comune cu alte obiecte i semantic comun.

Interfaa prezint o totalitate de operaii ce definesc servicii oferite de clas sau component. Se
reprezint printr-un cerc ce poart numele interfeei, este legat cu clasa sau componenta care o
realizeaz.

Relaiile utilizate n diagrama claselor


1. Utilizarea (asocierea) presupune c obiectul unei clase e legat cu unul sau mai multe
obiecte ale altei clase. Asocierea se folosete pentru a arat existena unei relaii ntre
clase.
Agregarea un obiect este partea altui obiect. Se folosete pentru a arat c o clasa
conine alt clas.
2. Generalizarea
3. Dependena se folosete pentru a arta dependena ntre dou esene.
4. Realizarea (motenirea) este utilizat atunci cnd subclasa motenete structura i
comportamentul unei sau mai multor clase.
Majoritatea asocierilor sunt binare - relaii ntre dou clase. Exist ns i asociere multipl
se reprezint printr-un romb ctre care vin trasee de la diferite componente ale asocierii.
Exemplu de asociere multipl:

Fiecare relaie e caracterizat de o fraz numit numele rolului i tot relaia poate avea
indicatorul de multiplicitate care arat cte obiecte dintr-o clas corespund obiectului din alt
clas: 1 ... * (unu sau multe).
Exemplu de asociere simpl:

Cardinalitatea asocierii:

-Orict de multe
1...* - Unu sau mai multe

1...8 ntre 1 i 8
18 Exact 18
Exemplu de asociere complex:

Exemplu de agregare:

.
Pentru atribute i operaii UML definete trei nivele de vizibilitate:
1. Public element vizibil tuturor clienilor clasei (+)
2. Protected element vizibil subclaselor clasei (#)
3. Private element vizibil n interiorul clasei (-)
Clase abstracte
Clase abstracte sunt clasele care nu posed instane, se folosesc numai pentru sinteza noilor
subclase ce ncapsuleaz proprietai i comportament asemntor.
class A
{ virtual ~A() = 0;
};

A:: ~A()
{
};
CRect poate fi clasa abstract pentru toate subclasele la baza crora este dreptunghiul cum sunt
butoanele din Windows.

Clasele abstracte sunt de tip root clase care sunt destinate pentru crearea altor clase. Clasele
leaf sunt subclase finite nu se folosesc pentru obinerea altor clase, ele nu se utilizeaz pentru
motenire.
Stereotipuri
Stereotipul este un mecanism ce d posibilitatea de a mpri n categorii clasele. n UML sunt
trei tipuri de stereotipuri: Boundary (hotar), Entity (obiect), Control.

1. Clasele hotar indic interaciunea dintre sistem i lumea exterioar. Se noteaz


se folosete ca element de legatur n principiu e o interfa.

2. Clasele control se utilizeaz pentru realizarea caracteristicilor de comportament ale


sistemului, caracteristice unor scenarii i coordoneaz evenimentele ce se produc pe
parcursul funcionrii sistemului, n cadrul acestor scenarii. Se noteaz
folosete pentru a arta c o anumit clas efectuiaz aciuni, manipuleaz date.

, se

3. Clasele entitate sunt create la etapa de planificare. Clasele acestui stereotip se utilizeaz
pentru execuia funciilor interne ale sistemului, aceste clase nu sunt flexibile la faptul
cum influeneaz factorii externi asupra funcionrii sistemului. Se noteaz
folosete pentru a arta ca o clas salveaz date pe termen lung.

, se

Exemple:

CerereOpional permite opiuni adugtoare asupra cererii


CerereCorect rspunde de corectitudinea ndeplinirii cererii
OrganizareaCererii realizeaz cererea pentru a fi apoi transmis
Tranzacie urmrete s se ndeplineasc tranzacia cererii

Diagrama claselor ne arat modelul static al sistemului, arhitectura sistemului. Modelul static nu
depinde de timp. Ele se construiesc n faza de elaborare fiind cele mai importante n aceast faz.

Exemple:

Pentru a putea genera codul n Rational Rose trebuie s avem construite cel puin d. claselor i
componentelor. Pentru a genera codul din d. claselor (componentelor) efectum click dreapta pe
clasa (componenta) respectiv i alegem opiunea C++/Code Generation, codul se genereaz i
va fi plasat n mapa source din directoriul programului Rational Rose. Pentru generarea codului
din pachete se selecteaz pachetul i alegem din meniul principal Tools -> C++ -> Code
Generation.
Diagrama de stare
Diagrama de stare reprezint poziia unui obiect, activitile sau mesajele, care creaz schimbul
de la o stare la alta. Nu e necesar pentru fiecare clas a sistemului, doar pentru clasele cu o
comportare dinamic deosebit.
Starea este o poziie oarecare n viaa obiectului. Intervalul dintre dou mesaje transmise de
obiect reprezint o stare. De aceea pentru a determina strile obiectului trebuie de studiat d.
secvenelor.
Diagramele de stare sunt destinate pentru modelarea diferitor stri n care poate s se afle
obiectul. n timp ce diagrama claselor arat imaginea static a claselor i legturilor lor, diagrama
strilor se folosete la descrierea dinamic a comportamentului sistemului. Principalele stri
sunt: nceput i sfirit. nceputul se reprezint grafic ca un cerc de culoare neagr corespunde
momentului crerii obiectului. Starea final se reprezint grafic prin dou cercuri unul colorat.
Corespunde strii obiectului nainte de distrugerea lui.
Stri de nceput pot exista doar una singur, iar stri finale cte sunt necesare. Dac obiectul
clasei poate exista n mai multe stri i n fiecare se comport diferit, trebuie construit diagrama
strilor. ns n multe proiecte nu se folosesc. Diagramele de stare sunt necesare n majoritatea
cazurilor pentru documentare.

O tranziie reprezint o relaie ntre dou stri ce indic faptul c un obiect aflat n prima stare va
efectua un ir de aciuni i apoi va trece n starea a doua, cnd se va petrece un anumit eveniment.

Forma general a diagramei de stri:

Evenimentul este orice schimbare care determin o modificare de stare. Semnatura


evenimentului cuprinde numele evenimentului urmat de o list de parametri n paranteze
rotunde. Evenimentele pot consta din:
1. Verificarea unei condiii predefinite when expresie-condiional
2. Scurgerea unui interval de timp after (durata)
3. Primirea unui semnal de la un alt obiect
4. Invocarea unei operaiuni de ctre un alt obiect sau de ctre acelai obiect
Exemplu:

Fig. Promovarea studenilor n anul III de studii

Starea surs reprezint starea din care se pleac. Starea destinaie reprezint starea n care ajunge
obiectul dup executarea tranziiei.
Diagrama de activitate
Diagrama de activitate descrie dinamica sistemului n situaiile n care strile observate sunt
reprezentate de aciuni sau subactiviti. Acest tip de diagram folosete elementele: aciuni,
tranziii, puncte de decizie i bare de sincronizare.

punct initial

actiune1

decizie
cond1

cond2
actiune2

actiune3

executie
simultana

actiune4

actiune5

punct final

Fig. Modelul general al unei diagrame de activitate


Exist posibilitatea ca mai multe activiti s se execute n paralel. Pentru sincronizare se
folosete bara de sincronizare, care poate fi orizontal sau vertical, nu se deosebesc.
Aceasta poate fi de dou tipuri:
1. Fork are o tranziie de intrare i una sau mai multe tranziii de ieire, fiecare tranziie de
ieire prezentnd un flux de control independent.

NewActivity

NewActivity2

NewActivity3

NewActivity4

2. Join poate avea dou sau mai multe tranziii de intrare i una de ieire. Fiecare flux de
control ateapt pn cnd toate celelalte fluxuri de intrare ajung n acel punct.

NewActivity10

NewActivity9

NewActivity12

NewActivity11

Swimline (pista) n ea sunt plasate activitile care sunt legate dup anumite criterii.

Departament lucru cu clientii

Departament v inzari

Stocul

Recomanda

Alege produse
Calculeaza pret
Ia comanda

Livreaza produs
Prezinta bonului

Plateste

Ia produsele

Finish

Registrul general

UAL

Magistrala interna

Registrul de deplasare

Selecteaza registrul care


contine operandul

Citeste operatia
din registru

Trece operandul
modificat

Transmite
Inscrie
operandul
Comanda deplasarea
stinga cu o pozitie

Citeste
rezultatul

Executa
deplasarea

Transmite
rezultatul
Selecteaza
registrul

Inscrie
rezultatul

end

Primirea
proiectului

Studierea
conditiilor

Repartizarea
sarcinilor designerilor

Repartizarea sarcinilor
programatorilor

Studierea
softului final

Sustinerea
proiectului

Fig. Strile ProjectManager

Studierea
conditiei

Scrierea
codului sursa

Sustinerea programelor si
modulelor

Fig. Diagrama de stare privind strile programatorului

Studierea
conditiei

Realizarea interfetei si
altor aplicatii grafice

Sustinerea lucrului efectuat

Fig. Diagrama de stare privind strile designerului

Studiere
conditie

Verificare program

Apar erori
Nu

Da

Aprobare
program

Evidentiere
erori

Fig. Diagrama de stare privind strile testerului

Model de creare a modelului prin ReverseEngineering


Procesul de modelare invers const din etapele:
1. Lansarea aplicaiei C++ Analyzer
Alegem Tools -> ReverseEnginering, dup care se execut C++ Analyzer.
2. Crearea unui nou proiect
Alegem File -> New i proiectul nou al analizatorului este creat.
3. Stabilirea antetului proiectului
Antetul nu este obligatoriu de a fi setat, alegem butonul Caption n fereastra Project.
Dup care introducem antetul proiectului n fereastra Caption.

4. Stabilirea listei de directorii


Aceast etap nu este obligatorie. La alegerea fiierelor din etapa a aptea lista
directoriilor se completeaz automat. Alegerea directoriilor i adugarea lor poate fi
efectuat cu butonul Directories -> Project Directory List. Alegem directoriul necesar
i-l adugm tastnd Add Current.
5. Stabilirea listei extensiilor
Nu este obligatorie, la fel ca anterior la alegerea fiierelor din etapa a aptea n list
apar automat extensiile acestor fiiere. De exemplu dac adugm n list
extensia .cpp, atunci vor fi admise la proiectarea invers doar fiiere cu
extensia .cpp.
6. Alegerea proiectului de baz
Proiect de baz se numete fiierul proiectului C++ Analyzer, care conine informaii
despre clasele de baz utilizate. Pentru a aduga un proiect de baz artm calea ctre
fiier i a numelui su cu ajutorul cmpurilor Directories i File name i executm
click pe Add. n fereastra proiectelor va aprea proiectul de baz i antetul su.
7. Alegerea fiierelor pentru proiectarea invers
Alegem File apare fereastra fiierelor proiectului. n ierarhia Directory alegem
directoriul care conine fiierele necesare. Pentru a alege fiierul, l alegem din lista
Files Not In List -> Add Selected sau Add All (trecnd n list toate fiierele).
Alegem directoriile i fiierele pn cnd n lista Files In List nu vor fi prezente toate
fiierele care vor fi supuse proiectrii inverse.
8.

Analiza fiierelor
Tastai Ctrl+A, alegem Action -> Analyze sau tastai F3, rezultatele procesului vor fi
scrise n registru. n fereastra listei Files se afieaz numrul de erori din fiecare
fiier. Pentru a analiza greelile efectum dublu click pe fiierul din lista Files a
ferestrei registrului, pe ecran vor fi afiate informaii despre erori.

9. Stabilirea parametrilor pentru export


Edit -> Export Options sau tastai Ctrl +R.
10. Exportarea n Rose
Alegem Action -> Export to Rose sau tastm F8. Apare fereastra Export to Rose
unde se poate stabili numele modelului generat, antetul proiectului, pentru generarea
modelului tastai Ok.
Declaraiile Friend din codul programului se genereaz n Rose n calitate de dependene.
Sistemul program poate fi considerat realizat dac va putea executa funciile sale. Aceasta este
posibil dac codul surs va fi realizat n form de module executate, biblioteci ale claselor i

procedurilor interfeelor grafice, fiierelor bazelor de date. Anume aceste componente sunt
necesare pentru reprezentarea fizic a sistemului.
Diagrama componentelor
Diagrama componentelor descrie particularitile reprezentrii fizice a sistemului. Elementele
grafice de baz sunt: componentele, interfeele i dependenele ntre ele. Diagrama
componentelor asigur trecerea coordonat de la reprezentarea logic spre o realizare a unui
proiect n form de cod surs.
Componenta realizeaz una sau mai multe interfee, grafic se reprezint printr-un dreptunghi cu
anexe. n interior se indic numele componentei i informaie suplimentar.
Componenta reprezint partea fizic a sistemului i asigur realizarea lui.
main.exe

Componenta generic (standart)


n calitate de nume sunt utilizate numele fiierelor executabile: .exe; numele librriilor
dinamice .dll; numele paginilor Web .html; numele fiierelor text .txt sau .doc; numele fiierelor
bazei de date .db; numele fiierelor cu textul iniial al programului .h; .cpp; .java.
n UML sunt specificate trei tipuri de componente:
1. Componente de regrupare specific executarea de ctre sistem a funciilor sale.
Exemplu: librrii conectate dinamic .dll; pagini web .html.
2. Componente produse de lucru acestea sunt fiiere cu textele iniiale ale programului cu
extensia .h sau .cpp.
3. Componente de executare fiiere cu extensia .exe.
O bibliotec include o suit de clase pe care le putem utiliza.
biblioteca.h

fis.cpp

Se utilizeaz relaia de dependen. Fiierul al 2-lea va funciona numai dup compilarea


fiierului 1. Fiierul 2 folosete ceva din fiierul 1.
Interfaa
Este reprezentat n form de cerc legat de component cu ajutorul liniei fr sgeat. Numele
interfeei obligatoriu trebuie scris cu majuscul (I) n fa, alturi de cerc.

main.exe
NewInterface
3

NewInterface
4
NewInterface
2

Dac componenta realizeaz o interfa atunci interfaa se numete export deoarece aceast
component prezint modul de serviciu pentru alte componente. Dac componenta utilizeaz o
interfa care e realizat de alt component, atunci interfaa pentru prima component se
numete import. Relaia pentru interfaa de import n diagrama componentelor este reprezentat
cu ajutorul dependenei. Dependena se reprezint printr-o linie ntrerupt cu sgeata orientat de
la client (element dependent) la surs (element independent). n diagrama componentelor
dependenele pot conecta componente i interfee de import, dar i diferite componente ntre ele.
image.java

main.exe
IDialog

Se reprezint relaia de dependen ntre componentele main.exe i interfaa de import. nseamn


c componenta nu realizeaz interfaa, dar utilizeaz n ea procesul su de executare. Dar mai
poate exista o alt component care realizeaz aceast interfa. Componenta main.exe este
dependent de interfaa de import IDialog, care la rndul su este realizat de componenta
image.java. pentru a doua component interfaa este de export.

index.html
main.exe

main.cpp

dialog.dll

Fig. Reprezentarea grafic a relaiei de dependen ntre componente


Schimbrile n textele programului sau librrii dinamice vor aduce la schimbarea componentei.
WebServer

asp.NET
IUtilizator

asp.net

ServerBD

Web_server
IUtilizator

ICerere_denu
mire_carti
BDCarti

main
Web_server.exe

Incarcarea_paginii.cpp

Incarcarea_paginii.h

io.h

SGBD

Aplicatia_
Magazin
I
Main

Vinzari.cpp

Windows.h

Vinzari.h

Diagrama desfurrilor
n calitate de noduri ale sistemului care exist fizic avem: servere, centrale funcionale, canale de
conectare i pstrrile de date. Diagrama e utilizat pentru reprezentarea general a configuraiei
i topologiei sistemului i conine repartizarea componentelor dup nodurile sistemului.
Diagrama prezint legturile fizice, rutele de transfer a informaiei ntre echipamentele utilizate
n realizarea sistemului. Este specific pentru vizualizarea elementelor i componentelor
programului care exist numai la etapa executrii lui. Componentele care nu sunt utilizate la

etapa executrii n diagram nu sunt indicate. Componente cu texte iniiale a programului pot fi
numai n diagrama de componente.
Nodul reprezint un anumit element fizic a sistemului care are o anumit resurs de calculare.
Reprezint un mijloc de calculare cu un anumit volum de memorie i deseori cu capacitate de
prelucrare a informaiei care exist i n timpul funcionrii produsului soft. Nodul poate fi:
imprimanta, modemul, camera digital, scanerul. Se reprezint grafic sub form de cub
trigonometric, are nume propriu indicat n interior.
Server

Dac informaia adugtoare este legat cu numele nodului, atunci ea e scris mai jos de nume ca
valoare marcat.
:Statia de lucru {frecv.procesorului nu
<500MHz}{memorie operativa nu <128Mb}

Dac e necesar de indicat componentele care sunt deplasate n nod:


1. mprim nodul n dou seciuni, n seciunea de sus e scris numele nodului, n cea de jos
componentele deplasate la nod;
2. Amplasm componentele care pot fi numai executante.

n calitate de relaii sunt conectri fizice ntre noduri i dependene ntre noduri i componente.
Conectrile sunt linii fr sgei. Prezena liniei indic necesitatea organizrii canalului fizic
pentru schimbarea informaiei ntre noduri.

"retea locala" {viteza de


transfer nu <500Mb/sec}
"procesor"
:Server

"procesor":Statie
de lucru

Folosirea dependenei este un caz alternativ pentru reprezentarea componentelor depuse n


interiorul nodului, ce nu este ntotdeauna comod.

Fig. Sistemul serviciului ndreptat ctre clienii bncii


Este indicat dependena componentei de realizare a dialogului dialog.exe n terminalul
ndreptat de la interfaa IAutorise, realizat de componentele main.exe, care la rndul su se
desfoar la nodul anonim Serverul bncii. Care depinde de componenta Bazei de date
Clienii bncii desfurat tot n acest nod.
Procesor

- are putere de calcul: servere, staii de lucru


Periferic

- nu are proprieti de prelucrare a datelor: printerul, scanerul, terminale de intrareieire.

Serverul BD

Serverul
aplicatiei

Printer

OrderServerExe

Statia de lucru
client nr.1

Statia de lucru
client nr.2

OrderClientEXE

ATMClientEXE

Serverul BD

"retea locala"
Server
comenzi

Printer

ServerExe
"retea inchisa"
Statia de lucru
Nr.1

Statia de lucru
Nr.2

S-ar putea să vă placă și