Documente Academic
Documente Profesional
Documente Cultură
Caramihai, © 2012
PROGRAMAREA
ORIENTATA
OBIECT
1
CURS 3
Analiza, proiectarea
si programarea
orientata obiect
2
Sistem informatic
3
Dezvoltarea aplicatiilor OO
4
Analiza si proiectarea OO
Analiza:
Intelegerea, gasirea si descrierea conceptelor in
domeniul problemei
Proiectarea:
Structurarea solutiei soft pornind de la etapa de
analiza pana la nivel de implementare
5
Analiza vs. proiectare
Analiza Proiectare
Evolutie
Operatii si atribute
Structura sistem
Performanta
Cerinte functionale
Usor de programat
Model (in mic)
Ciclul de viata al
obiectelor
Cerinte non-functionale
Model (in mare)
6
Ciclul de viata al soft-ului
Ingineria sistemelor
Ingineria sistemelor
Analiza necesitatilor
Analiza necesitatilor
Planificare proiect
Unde se regaseste
Planificare proiect
Asigurarea calitatii
Asigurarea calitatii
Proiectare arhitectura
Proiectare arhitectura
Mentenanta
Mentenanta abordarea OO ?
Proiectare detalii
Proiectare detalii
Implementare
Implementare
Publicare
Publicare
7
Obiecte vs. functii
8
Cerintele dezvoltarii SI
Functionale
Nefunctionale:
Securitate / protectie
Flexibilitate
Robustete
9
Modele de dezvoltare (1)
Modelul linear
10
Modele de dezvoltare (2)
11
Modele de dezvoltare (3)
Modelul
cascada
Posibilitati
minime de
revenire
Informatia
“curge” intr’un
singur sens
12
© Object Oriented Design in a Nutshell, 2002
Modele de dezvoltare (4)
13
Modele de dezvoltare (5)
14
Modele de dezvoltare (6)
Modelul spirala
Caracteristica: se
introduce recursivitate
in ciclul de dezvoltare a
programului.
Dezavantaj: exista
pericolul aparitiei unor
schimbari
neconvergente cu
iterare infinita
18
Elaborarea Modelului
Obiectual – MO (1)
Pentru construirea MO se identifica intai clasele si
asociatiile; se adauga atributele si se utlizeaza
mostenirea
Etape:
Se identifica clasele / obiectele; reguli:
Evitarea claselor redundante
Eliminarea claselor irelevante
Declararea ca atribute a proprietatilor celor mai relevante
ale obiectelor
Se includ in clase operatiile ce sunt aplicate obiectelor
Pregatirea unui dictionar de date, i.e. descrierea precisa a
fiecarui obiect, asociatii, atribut si operatii
19
Elaborarea Modelului
Obiectual – MO (2)
Identificarea relatiilor de asociere (orice dependenta intre
doua / mai multe clase sau o referire de la o clasa la alta);
reguli:
Se elimina asocierile irelevante
Se elimina asocierile redundante
Daca in procesul de analiza se elimina o clasa, asocierile
corespunzatoare se elimina / se reformuleaza in functie de alte clase
Majoritatea asocierilor intre 3 / mai multe clase pot fi descompuse in
asocieri binare
Indentificarea atributelor
Organizarea claselor prin mostenire:
De jos in sus: generalizare in superclasa
De sus in jos: prin rafinarea claselor existente 20
Elaborarea Modelului
Obiectual – MO (3)
Iterarea modelului
Gruparea claselor in module (o multime de clase ce
reprezinta o submultime logica a intregului model)
Definitii:
Diagrama de clase: reflecta instatieri posibile ale
datelor
Diagrama de obiecte: descrie modul in care inter-
relationeazaun set de obiecte
Relatia de agregare: daca asociatia exprima o relatie
de tip “parte–intreg”
21
Elaborarea Modelului
Dinamic – MD (1)
22
Elaborarea Modelului
Dinamic – MD (2)
Eveniment:
Caracterizeaza stimulii externi ce actioneaza asupra
obiectelor.
Reprezinta o transmitere unidirectionala de informatie
(de la un obiect la altul).
Special: erori
Concurenta: doua sau mai multe evenimente necorelate
cauzal
Scenariu: secventa de evenimente ce apare intr’un caz
particular de evolutie a sistemului.
23
Elaborarea Modelului
Dinamic – MD (3)
Operatii:
Activitati: Sunt asociate starilor si necesita timp
pentru a fi efectuate.
Actiuni: Operatii instantanee asociate evenimentelor.
24
Elaborarea Modelului
Functional – MF
Descrie modul in care se efectueaza calculele in
interiorul unui sistem, fara a tine cont de secvente,
decizii sau structuri
26
Extreme Programming, XP
(1)
XP esteun proces de dezvoltare a soft-ului care are ca
obiective:
Producerea de soft de calitate
Dezvoltarea de soft ieftin
Produse soft finalizate la timp
28
Filozofia XP
Pentru corijarea erorilor:
Se lucreaza pe bucati, toata lumea este co-propietara codului
si se scriu multe teste
Pentru gestionarea riscurilor asociate aspectelor
economice:
Proiectarea este facuta prin iteratii succesive
Modificarile sunt testate si apoi integrate
Se folosesc cele mai simple metode de proiectare
In permanenta se pot aduce modificari solutiei de proiectare
Pentru gestionarea RU:
Toata lumea este co-propietara codului
29
Cele 4 variabile ale
dezvoltarii
Cele 4 variabile ale dezvoltarii sunt: costul,
durata, calitatea si portabilitatea (specificatiilor)
Observatii
Variabilele sunt stabilite in raport cu eficienta
economica (a rularii aplicatiei)
XP: Calitatea nu trebuie tratata ca o variabila
XP: Portabilitatea este dependenta de costuri si de
timp
30
Cele 4 valori ale dezvoltarii
(1)
Comunicarea
Intre programatori, intr’o echipa, intre
echipele de lucru,
Intre echipa si client(i)
Simplitate
Pentru revizia codului si o dezvoltare rapida
Pentru minimizarea riscurilor de aparitie a
erorilor
Pentru o buna intelegere ulterioara a
codului 31
Cele 4 valori ale dezvoltarii
(2)
Feedback-ul
Referitor la sistemul informatic ( via teste), dar si
asupra performantelor echipei (d.e. viteza de
dezvoltarea unui proiect)
Curajul
De a arunca la cos codul daca se blocheaza in faza
de testare sau daca este ineficient dpdv economic
De a propune idei bizare
32
Punerea in practica a XP (1)
Planificarea
O echipa va avea in componenta elemente
economice si elemente de programare
1.Economic: specificarea necesitatilor
2.Programarea: estimarea costurilor si a duratei
implementarii
3.Economic: decizie ref. implementare
Versiuni incrementale:
E preferabila imbunatatirea aplicatiei la 2 –3 luni
decat la 6 luni (i.e. mai tarziu vor contine mai multe
modificari)
33
Punerea in practica a XP (2)
Un design simplu
Toate testele trebuie sa fie OK
Fara duplicare cod
Numar minim de clase si metode
Testari
Testele sunt descrise de clienti si scrise de
programatori
XP balanseaza timpul pierdut cu scrierea testelor prin
castigul dat de eliminarea erorilor
34
Sunt recomandate testele automatizate