Documente Academic
Documente Profesional
Documente Cultură
Modelare
D. Lucanu
1
Cuprins
l fazele dezvoltarii unui produs soft
l modelare
l UML
• diagrame use case
• diagrame de activitati
• diagrame de clase
• cum modelam in UML
• cum implementam in C++
l MVC
• descriere
• studiu de caz
D. Lucanu POO – Principii 2
Cum dezvoltam un produs soft?
sursa: www.yoddler.com
D. Lucanu POO – Modelare 4
Dezvoltarea in cascada
sursa: http://alchetron.com/Software-Testing-626-W
sursa: /www.ibm.com/developerworks/rational/…
D. Lucanu POO – Principii 6
Dezvoltarea agila (Scrum)
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.
sursa: http://scrumreferencecard.com/
D. Lucanu POO – Principii 7
Agile Unified Process (AUP)
sursa: http://www.agilemodeling.com/
D. Lucanu POO – Principii 8
Important de tinut minte
l pentru proiectele realizate in timpul studiilor
• clientul este profesorul
• dezvoltatorul
• studentul (proiecte individuale)
• echipa de studenti (proiecte in echipa)
l mai multe despre metodologiile de dezvoltare a
produselor soft la cursurile de IP
caz de
comentariu
utilizare
relatie de
asociere
actor care
participa la cazul
de utilizare
relatie de generalizare/
specializare: Online
Transaction extinde
Process Transaction
relatie de agregare:
Login este o parte a
cazului Online
Transaction
Stare initiala
Stare de actiune
Tranzitie
(action state)
Nod de
jonctiune
Stare finala
Nod Relatie de
dependenta
Relatie de
asociere
Instanta nod
nume clasa
operatii (metode)
Square s;
s.setWidth(5); // metoda mostenita
s.setHeight(10); // metoda mostenita
relatia de
implementare
a unei interfete
clasa abstracta
poate fi parametrizat?
parametru
parametru
relatia de relatia de
agregare tare agregare
(compunere) slaba
un manager de
conturi poate avea
zero sau mai multe
conturi
D. Lucanu POO – Principii 49
Agregare in C++
l agregare tare (compunere)
#include <list> header pt. listele STL
...
class AccountManager {
private:
liste in care componentele
list< Account > accounts; sunt obiecte Account
};
l agregare (slaba)
#include <list>
...
class FigureRepository {
private:
liste in care componentele
list< Figure* > figures; sunt pointeri la obiecte Figure
};
D. Lucanu POO – Principii 50
D. Lucanu POO – Principii 51
Relatia de asociere
l modeleaza relatii dintre obiecte
asociere asociere
bidirectionala unidirectionala
roluri multiplicitati
roluri
class Book {
private:
list< Author* > authors;
...
};
class HardCopy {
private:
Book book;
...
};
D. Lucanu POO – Principii 53
Cum construim o aplicatie OO?
l constructia unei aplicatii OO este similara cu cea a
unei case: daca nu are o structura solida se darama
usor
l ca si in cazul proiectarii cladirilor (urbanisticii),
patternurile (sablaonele) sunt aplicate cu succes
l patternurile pentru POO sunt similare structurilor de
control (programarea structurata) pentru pogramarea
imperativa
l noi vom studia
• un pattern arhitectural (MVC)
• cateva patternuri de proiectare
l mai mult la cursul de IP din anul II
FigureRepository nu trebuie sa
depinda de modul particular de
definire a figurilor (puncte, cercuri,
poligoane...); toate depind de
abstractia Figure
notif. sch.
• expune functionalitatea modelului
schimbare stare
• notifica schimbarea starii
View
• vizualizeaza modelul
• cere actualizari de la model
• trimite evenimentele utilizator la
controller
• permite controllerului sa schimbe Controller
modul de vizualizare • defineste comportarea aplicatiei
actiuni utilizator • mapeaza actiunile utilizator pe
actulizare model
• selecteaza vizulizarea
raspunsului
selectie vizualizare • unul pentru fiecare functionalitate
D. Lucanu POO – Proiectarea de clase
MVC – studiu de caz
l o mica aplicatie care simuleaza operatiile cun cont
bancar
l model = un sistem format dintr-o banca, un utlizator,
un cont, si un ATM
l view
• vizualizare (text) meniu ATM
l controller
• preia optiunile din meniu ale utilizatorului si le
transpune asupra modelului