Sunteți pe pagina 1din 34

Ingineria programarii

Adriana Gheorghies , Ovidiu Gheorghies


10 octombrie 2005

1 / 34

Modele de proiectare Extreme Programming Inginerie s i Ingineria Programarii Carta drepturilor dezvoltatorului Carta drepturilor clientului

Idei majore in XP
Recapitulare Analiza cerinelor Scenarii de utilizare

Modele de proiectare

2 / 34

Extreme Programming
Modele de proiectare Extreme Programming Inginerie s i Ingineria Programarii Carta drepturilor dezvoltatorului Carta drepturilor clientului

Extreme Programing (XP) este o model modern, us or

Idei majore in XP
Recapitulare Analiza cerinelor Scenarii de utilizare

(lightweight), de dezvoltare, inspirat din RUP. i s Dezvoltarea programelor nu nseamna ierahii, responsabilit at i ci colaborarea oamenilor din care este termene limita, nseamna echipa formata Membrii echipei sunt ncurajati sa s i arme personalitatea, sa primeasca cunoas devina programatori ofere s i sa tere s i sa straluciti ca dezvoltarea de programe XP considera nseamna n primul rand scrierea de programe (s ierele PowerPoint nu se pot compila).

3 / 34

Inginerie s i Ingineria Programarii


Modele de proiectare Extreme Programming Inginerie s i Ingineria Programarii Carta drepturilor dezvoltatorului Carta drepturilor clientului

este inspirata din ingineria construct Ingineria programarii iilor, dar aceast lucru nu este tocmai ... inspirat. XP sust ine ca In programare nu pot aplicate direct tehnicile de organizare din ingineria construct iilor, deoarece gradul de exibilitate necesar este mult mai mare.

Idei majore in XP
Recapitulare Analiza cerinelor Scenarii de utilizare

4 / 34

Carta drepturilor dezvoltatorului


Modele de proiectare Extreme Programming Inginerie s i Ingineria Programarii Carta drepturilor dezvoltatorului Carta drepturilor clientului

s Ai dreptul sa tii ceea ce se cere, prin cerint e clare, cu declarat ii

Idei majore in XP
Recapitulare Analiza cerinelor Scenarii de utilizare

clare de prioritate. spui cat implementezi ecare cerint s Ai dreptul sa ti va lua sa a, i sa ti revizuies ti estimarile n funct ie de experient a. ile, i Ai dreptul sa ti accept i responsabilitat n loc ca acestea sa-t e asignate. produci treaba de calitate Ai dreptul sa n orice moment. productiva s Ai dreptul la liniste, distract ie s i la munca i placuta.

5 / 34

Carta drepturilor clientului


Modele de proiectare Extreme Programming Inginerie s i Ingineria Programarii Carta drepturilor dezvoltatorului Carta drepturilor clientului

s Ai dreptul la un plan general, sa tii ce poate facut, cand, s i la

Idei majore in XP
Recapitulare Analiza cerinelor Scenarii de utilizare

ce pret . vezi progresul s Ai dreptul sa ntr-un sistem care ruleaza i care se funct trecand dovedeste ca ioneaza teste repetabile pe care tu le specici. te razgandes i s Ai dreptul sa ti, sa nlocuies ti functionalitat i sa ile. schimbi prioritat i informat de schimbarile sucient de Ai dreptul sa n estimari, se devreme pentru a putea reduce cerint ele astfel ca munca sa Pot te opresti la un moment termine la data prestabilita. i chiar sa ram ai cu un sistem folositor care sa reecte investit dat s i sa ia a la acea data. pan

6 / 34

Idei majore in XP
Modele de proiectare Extreme Programming Inginerie s i Ingineria Programarii Carta drepturilor dezvoltatorului Carta drepturilor clientului

ierarhica. Fiecare Echipa de dezvoltare nu are o structura

Idei majore in XP
Recapitulare Analiza cerinelor Scenarii de utilizare

contribuie la proiect folosind maximul din cunos tint ele sale. Scrierea de cod este activitatea cea mai importanta. Proiectul este n mintea tuturor programatorilor din echipa, nu n documentat ii, modele sau rapoarte. La orice moment, un reprezentant al clientului este disponibil pentru claricarea cerint elor. mai simplu. Codul se scrie cat Se scrie cod de test intai. apare necesitatea rescrierii sau aruncarii de cod, aceasta Daca a mila. se face far Modicarile aduse codului sunt integrate continuu (de cateva ori pe zi). (programare Se programeaza n echipa n perechi). Echipele se la sfars itul unei iterat ani). schimba ii (1-2 saptam 40 de ore pe saptam an a, far a lucru suplimentar. Se lucreaza
7 / 34

Modele de proiectare Recapitulare Etapele dezvoltarii programelor Analiza cerinelor Scenarii de utilizare

Recapitulare

8 / 34

programelor Etapele dezvoltarii


Modele de proiectare Recapitulare Etapele dezvoltarii programelor Analiza cerinelor Scenarii de utilizare

Analiza cerint elor Proiectarea Scrierea codului Testare Intret inere

programelor depind de analiza cerint Toate etapele dezvoltarii elor.

9 / 34

Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

implementare la analiza? ile Responsabilitat analistului

Analiza cerint elor

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

10 / 34

construim? Ce trebuie sa
Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

implementare la analiza? ile Responsabilitat analistului

It took 300 years to build and by the time it was 10% built, everyone knew it would be a total disaster. But by then the investment was so big they felt compelled to go on. Since its completion, it has cost a fortune to maintain and is still in danger of collapsing. There are at present no plans to replace it, since it was never really needed in the rst place. K.E. IVERSON, despre turnul din Pisa

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

11 / 34

Inceputul unui proiect


Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

Un proiect poate ncepe cu o idee a clientului cu o idee a unei echipe de dezvoltare Aceasta idee poate
bine denita clara, prost denita vaga,

implementare la analiza? ile Responsabilitat analistului

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

Pentru a continua cu succes, este nevoie de ingineria cerint elor.

12 / 34

ce, cum, cat Cerint a:


Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

Pe o cale ferata uscata, locomotiva trebuie Exemplu de cerint a:

de e capabila sa porneasca un tren de 100 tone pe o panta sa ie de cel put in 30km/h2 . maxim 5% cu o accelerat Caracteristici ale acestei cerinte:

implementare la analiza? ile Responsabilitat analistului

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

Spune ce vrea clientul [ok] e realizate cerint Nu spune cum sa ele [ok(?)] Cerint ele sunt cuanticabile [ok] nimic despre pret Nu ment ioneaza [!] termenul de realizare [!] Nu specica

13 / 34

Specicat ia buna
Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

Spune ce trebuie facut, nu cum (neambigua) Este clara Este sucient de detaliata Este completa

implementare la analiza? ile Responsabilitat analistului

Exemplu (sau contraexemplu?): Scriet i un program Pascal care

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

funct ofera ionalitatea unei agende telefonice personale. Ar trebui implementeze funct sa ii pentru cautarea unui numar s i pentru de telefon. Programul va oferi o introducerea unui nou numar utilizator prietenoasa. interfat a

14 / 34

Detalii de implementare la analiza?


Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

NU Clientul nu este competent n detalii tehnice de cauza cu Clientul nu poate de acord n cunos tint a

implementare la analiza? ile Responsabilitat analistului

DA

stipularile tehnice din specicat ii (S tiu secretarele COM? S tiu s oferii ciclul Carnot?). restrangem E necesar sa multimea posibilelor solut iile tehnice?

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

integram Este nevoie sa ntr-un sistem existent Timpul de dezvoltare depinde de implementare Intret inerea (costul) depinde de implementare

15 / 34

ile analistului Responsabilitat


Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

extraga s clarice cerint sa i sa ele clientului ajute la rezolvarea diferent sa elor de opinie ntre client i s i

implementare la analiza? ile Responsabilitat analistului

utilizatori. sfatuiasc clientul despre ce este tehnic posibil sau imposibil sa a documenteze cerint sa ele negocieze s obt o sa i sa ina nt elegere cu clientul.

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

16 / 34

ile analistului Activitat


Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

nregistreaza cerint Ascultare: I ele clientului. pertinent Reectare: Traduce cerint ele n limbaj tehnic. Veric a a. Scriere: Se cade de acord asupra formularilor.

implementare la analiza? ile Responsabilitat analistului

pan a cand Repeta se ajunge la o nt elegere cu clientul n ceea ce prives te cerint ele.

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

17 / 34

Probleme potent iale


Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

implementare la analiza? ile Responsabilitat analistului

Procesul iterativ poate lung s i complicat Negocieri (dure) dintre client s Diferent a culturala i analist Diferent e ntre cerint ele clientului s i ale utilizatorilor Filmele SF vazute de client Filmele SF vazute de programatori

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

18 / 34

Rezultatul analizei
Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

Document de specicare a cerint elor Acest document este folosit ca referint a Provocari Nivelul de detaliu
inutila Mare: mai precis, obt inut mai greu, munca Mic: prea vag, nu poate ghida ecient dezvoltarea

implementare la analiza? ile Responsabilitat analistului

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

Audient a documentelor

2 versiuni: una pentru client, alta pentru dezvolatori? semiformala, formala Informala,

Notat ia folosita

19 / 34

Tipuri de cerint e
Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

Cerint e funct ionale


faca sistemul Ce trebuie sa

Cerint e privind datele Formatul datelor la intrare/ies ire Formatul datelor din interiorul sistemului
Constrangeri

implementare la analiza? ile Responsabilitat analistului

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

Cerint e de respectat ad-literam direct implementarea Inuent eaza


Recomandari la luarea deciziilor de proiectare cand Ajuta sunt mai multe opt iuni

20 / 34

Exemple
Modele de proiectare Recapitulare Analiza cerinelor Ce trebuie sa construim? Inceputul unui proiect ce, cum, cat Cerint a: Specicat ia buna Detalii de

Cerint e funct ionale


ce temperatura Sistemul se va opri n maxim 5 secunde dupa procesorului atinge 80 grade Celsius. ilor Sistemul va permite cautarea s i as area titlurilor cart scrise anumit autor.

implementare la analiza? ile Responsabilitat analistului

Cerint e privind datele Datele vor exportate n format XML Datele din tampoanele de intrare s i ies ire vor criptate
Constrangeri

ile analistului Activitat Probleme potent iale Rezultatul analizei Tipuri de cerint e Exemple Scenarii de utilizare

Implementarea se va realiza folosind un limbaj orientat obiect. Metodologia de dezvoltare va RUP


Recomandari mai put memorie Se va folosi cat ina
21 / 34

Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

Scenarii de utilizare

Exemplu

22 / 34

La ce folosesc scenariile
Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

sistemul din perspectiva utilizatorului Prezinta nt elegem ce se

cere Extragerea cerint elor, testare i asignate cerint Frecvent a de utilizare a scenariilor prioritat elor

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

Document ia utilizatorilor Prezentarea sistemului utilizatorilor

Exemplu

23 / 34

Not iuni de baza


Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

Actor Use case

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

Exemplu

24 / 34

Actor
Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

o entitate exterioara cu care sistemul interact Reprezinta ioneaza. Poate :

un utilizator uman un alt sistem (hardware/software)

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

Exemplu

25 / 34

Use case
Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

Ce este? Ce nu este? Cum arata? La ce foloses te?

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

Exemplu

26 / 34

Use case: ce este


Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

cu O descriere a modului n care un actor interact ioneaza

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

sistemul raspund O descriere a modului n care sistemul trebuie sa a acestor interact iuni de implementare a modului O viziune independenta n care se va comporta sistemul de act O secvent a iuni care are un rezultat vizibil pentru un actor

Exemplu

27 / 34

Use case: ce nu este


Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

O descriere a interfetei cu utilizatorul O descriere a modului de implementare al sistemului O specicat ie a claselor O specicat ie a datelor

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

Exemplu

28 / 34

Use case: cum arata


Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

text: diferite formate brief: un paragraf care descrie scenariul principal de succes mai multe scenarii casual: mai multe paragrafe care acopera fully dressed: cel mai elaborat; sunt detaliat i tot i pas ii s i toate
variat iile; sunt specicate precondit iile s i postcondit iile

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

grac: diagrame UML

Exemplu

29 / 34

Exemplu use case brief


Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

te site-ul unei agent pachete Un utilizator gases ii de turism care ofera Agent completeze un formular de vacant a. ia i cere utilizatorului sa Agent apoi cu datele vacant ei s i destinat ia dorita. ia interogheaza serviciile web ale liniilor aeriene s i ale companiilor hoteliere s i-i utilizatorului o lista de opt prezinta iuni.Utilizatorul s i alege opt iunea Agent utilizatorului o lista cu favorita. ia face rezervarile s i i prezinta ile de plata. Utilizatorul alege o modalitate de plata s modalitat i-i agent furnizeaza iei informat iile necesare. Agent ia conrma efectuarea plat ii s utilizatorului toate rezervarile, solicita i i da informat iile de care are nevoie pentru a pleca n vacant a.

Exemplu

30 / 34

Exemplu use case casual


Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

Scenariul principal de succes: (vezi slide-ul anterior) Scenarii alternative:


locul rezervat Daca n avion nu mai este disponibil, utilizatorul va alege alt zbor nu mai este disponibila camera rezervata, utilizatorul va Daca alege alta utilizatorul nu are sucient Daca i bani, agent ia va anula rezervarile ...

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

Exemplu

31 / 34

Use case fully dressed


Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

la adresa: Un s ablon propus de Alistair Cockburn poate gasit


http://members.aol.com/acockburn/papers/uctempla.htm

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

Exemplu

32 / 34

Use case fully dressed


Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

Cont ine:

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

fraza verbala) ID (nr), Nume (scurta Informat ii caracteristice (Descriere, Domeniu, Actori...) Principalul scenariu de succes Extensii Alte informat ii

Exemplu

33 / 34

Exemplu
Modele de proiectare Recapitulare Analiza cerinelor Scenarii de utilizare La ce folosesc scenariile

Agent ia de turism

brief Exemplu use case casual Use case fully dressed Use case fully dressed

Not iuni de baz Actor Use case Use case: ce este Use case: ce nu este Use case: cum arata Exemplu use case

Exemplu

34 / 34

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