Sunteți pe pagina 1din 34

1 / 34

Ingineria program arii


Adriana Gheorghies, Ovidiu Gheorghies
10 octombrie 2005
Modele de proiectare
Extreme
Programming
Inginerie si Ingineria
Program arii
Carta drepturilor
dezvoltatorului
Carta drepturilor
clientului
Idei majore in XP
Recapitulare
Analiza cerinelor
Scenarii de utilizare
2 / 34
Modele de proiectare
Extreme Programming
Modele de proiectare
Extreme
Programming
Inginerie si Ingineria
Program arii
Carta drepturilor
dezvoltatorului
Carta drepturilor
clientului
Idei majore in XP
Recapitulare
Analiza cerinelor
Scenarii de utilizare
3 / 34
Extreme Programing (XP) este o model modern, usor
(lightweight), de dezvoltare, inspirat din RUP.
Dezvoltarea programelor nu nseamna ierahii, responsabilit at i si
termene limit a, ci nseamn a colaborarea oamenilor din care este
format a echipa
Membrii echipei sunt ncurajati s a si arme personalitatea, s a
ofere si s a primeasc a cunoastere si s a devin a programatori
str aluciti
XP consider a c a dezvoltarea de programe nseamn a n primul
r and scrierea de programe (sierele PowerPoint nu se pot
compila).
Inginerie s i Ingineria Program arii
Modele de proiectare
Extreme
Programming
Inginerie si Ingineria
Program arii
Carta drepturilor
dezvoltatorului
Carta drepturilor
clientului
Idei majore in XP
Recapitulare
Analiza cerinelor
Scenarii de utilizare
4 / 34
Ingineria program arii este inspirat a din ingineria construct iilor, dar
XP sust ine c a aceast lucru nu este tocmai ... inspirat.
In programare nu pot aplicate direct tehnicile de organizare din
ingineria construct iilor, deoarece gradul de exibilitate necesar
este mult mai mare.
Carta drepturilor dezvoltatorului
Modele de proiectare
Extreme
Programming
Inginerie si Ingineria
Program arii
Carta drepturilor
dezvoltatorului
Carta drepturilor
clientului
Idei majore in XP
Recapitulare
Analiza cerinelor
Scenarii de utilizare
5 / 34
Ai dreptul s a stii ceea ce se cere, prin cerint e clare, cu declarat ii
clare de prioritate.
Ai dreptul s a spui c at t i va lua s a implementezi ecare cerint a, si
s a t i revizuiesti estim arile n funct ie de experient a.
Ai dreptul s a t i accept i responsabilit at ile, n loc ca acestea s a-t i
e asignate.
Ai dreptul s a produci treab a de calitate n orice moment.
Ai dreptul la liniste, distract ie si la munc a productiv a si placut a.
Carta drepturilor clientului
Modele de proiectare
Extreme
Programming
Inginerie si Ingineria
Program arii
Carta drepturilor
dezvoltatorului
Carta drepturilor
clientului
Idei majore in XP
Recapitulare
Analiza cerinelor
Scenarii de utilizare
6 / 34
Ai dreptul la un plan general, s a stii ce poate f acut, c and, si la
ce pret .
Ai dreptul s a vezi progresul ntr-un sistem care ruleaz a si care se
dovedeste c a funct ioneaz a trec and teste repetabile pe care tu le
specici.
Ai dreptul s a te razg andesti, s a nlocuiesti functionalit at i si s a
schimbi priorit at ile.
Ai dreptul s a i informat de schimbarile n estim ari, sucient de
devreme pentru a putea reduce cerint ele astfel ca munca s a se
termine la data prestabilit a. Pot i chiar s a te opresti la un moment
dat si s a r am ai cu un sistem folositor care s a reecte investit ia
p an a la acea dat a.
Idei majore in XP
Modele de proiectare
Extreme
Programming
Inginerie si Ingineria
Program arii
Carta drepturilor
dezvoltatorului
Carta drepturilor
clientului
Idei majore in XP
Recapitulare
Analiza cerinelor
Scenarii de utilizare
7 / 34
Echipa de dezvoltare nu are o structur a ierarhic a. Fiecare
contribuie la proiect folosind maximul din cunostint ele sale.
Scrierea de cod este activitatea cea mai important a.
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.
Codul se scrie c at mai simplu.
Se scrie cod de test int ai.
Dac a apare necesitatea rescrierii sau arunc arii de cod, aceasta
se face f ar a mil a.
Modicarile aduse codului sunt integrate continuu (de cateva ori
pe zi).
Se programeaz a n echip a (programare n perechi). Echipele se
schimb a la sf arsitul unei iterat ii (1-2 sapt am ani).
Se lucreaz a 40 de ore pe sapt am an a, f ar a lucru suplimentar.
Modele de proiectare
Recapitulare
Etapele dezvolt arii
programelor
Analiza cerinelor
Scenarii de utilizare
8 / 34
Recapitulare
Etapele dezvolt arii programelor
Modele de proiectare
Recapitulare
Etapele dezvolt arii
programelor
Analiza cerinelor
Scenarii de utilizare
9 / 34
Analiza cerint elor
Proiectarea
Scrierea codului
Testare


Intret inere
Toate etapele dezvolt arii programelor depind de analiza cerint elor.
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
10 / 34
Analiza cerint elor
Ce trebuie s a construim?
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
11 / 34
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

Inceputul unui proiect


Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
12 / 34
Un proiect poate ncepe
cu o idee a clientului
cu o idee a unei echipe de dezvoltare
Aceasta idee poate
clar a, bine denit a
vag a, prost denit a
Pentru a continua cu succes, este nevoie de ingineria cerint elor.
Cerint a: ce, cum, c at
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
13 / 34
Exemplu de cerint a: Pe o cale ferat a uscat a, locomotiva trebuie
s a e capabil a s a porneasc a un tren de 100 tone pe o pant a de
maxim 5% cu o accelerat ie de cel put in 30km/h
2
.
Caracteristici ale acestei cerinte:
Spune ce vrea clientul [ok]
Nu spune cum s a e realizate cerint ele [ok(?)]
Cerint ele sunt cuanticabile [ok]
Nu ment ioneaz a nimic despre pret [!]
Nu specic a termenul de realizare [!]
Specicat ia bun a
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
14 / 34
Spune ce trebuie f acut, nu cum
Este clar a (neambigu a)
Este sucient de detaliat a
Este complet a
Exemplu (sau contraexemplu?): Scriet i un program Pascal care
ofer a funct ionalitatea unei agende telefonice personale. Ar trebui
s a implementeze funct ii pentru c autarea unui numar si pentru
introducerea unui nou num ar de telefon. Programul va oferi o
interfat a utilizator prietenoas a.
Detalii de implementare la analiz a?
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
15 / 34
NU
Clientul nu este competent n detalii tehnice
Clientul nu poate de acord n cunostint a de cauz a cu
stipul arile tehnice din specicat ii (S tiu secretarele COM? S tiu
soferii ciclul Carnot?).
E necesar s a restr angem multimea posibilelor solut iile
tehnice?
DA
Este nevoie s a integr am ntr-un sistem existent
Timpul de dezvoltare depinde de implementare


Intret inerea (costul) depinde de implementare
Responsabilit at ile analistului
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
16 / 34
s a extrag a si s a clarice cerint ele clientului
s a ajute la rezolvarea diferent elor de opinie ntre client i si
utilizatori.
s a sf atuiasc a clientul despre ce este tehnic posibil sau imposibil
s a documenteze cerint ele
s a negocieze si s a obt in a o nt elegere cu clientul.
Activit at ile analistului
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
17 / 34
Ascultare:

Inregistreaz a cerint ele clientului.
Reectare: Traduce cerint ele n limbaj tehnic. Veric a pertinent a.
Scriere: Se cade de acord asupra formul arilor.
Repet a p an a c and se ajunge la o nt elegere cu clientul n ceea
ce priveste cerint ele.
Probleme potent iale
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
18 / 34
Procesul iterativ poate lung si complicat
Negocieri (dure)
Diferent a cultural a dintre client si analist
Diferent e ntre cerint ele clientului si ale utilizatorilor
Filmele SF v azute de client
Filmele SF v azute de programatori
Rezultatul analizei
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
19 / 34
Document de specicare a cerint elor
Acest document este folosit ca referint a
Provoc ari
Nivelul de detaliu
Mare: mai precis, obt inut mai greu, munc a inutil a
Mic: prea vag, nu poate ghida ecient dezvoltarea
Audient a documentelor
2 versiuni: una pentru client, alta pentru dezvolatori?
Notat ia folosit a
Informal a, semiformal a, formal a
Tipuri de cerint e
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
20 / 34
Cerint e funct ionale
Ce trebuie s a fac a sistemul
Cerint e privind datele
Formatul datelor la intrare/iesire
Formatul datelor din interiorul sistemului
Constr angeri
Cerint e de respectat ad-literam
Inuent eaz a direct implementarea
Recomand ari
Ajut a la luarea deciziilor de proiectare c and sunt mai multe
opt iuni
Exemple
Modele de proiectare
Recapitulare
Analiza cerinelor
Ce trebuie s a
construim?

Inceputul unui proiect


Cerint a: ce, cum, c at
Specicat ia bun a
Detalii de
implementare la
analiz a?
Responsabilit at ile
analistului
Activit at ile analistului
Probleme potent iale
Rezultatul analizei
Tipuri de cerint e
Exemple
Scenarii de utilizare
21 / 34
Cerint e funct ionale
Sistemul se va opri n maxim 5 secunde dup a ce temperatura
procesorului atinge 80 grade Celsius.
Sistemul va permite c autarea si asarea titlurilor c art ilor
scrise anumit autor.
Cerint e privind datele
Datele vor exportate n format XML
Datele din tampoanele de intrare si iesire vor criptate
Constr angeri
Implementarea se va realiza folosind un limbaj orientat obiect.
Metodologia de dezvoltare va RUP
Recomand ari
Se va folosi c at mai put in a memorie
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
22 / 34
Scenarii de utilizare
La ce folosesc scenariile
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
23 / 34
Prezint a sistemul din perspectiva utilizatorului nt elegem ce se
cere
Extragerea cerint elor, testare
Frecvent a de utilizare a scenariilor priorit at i asignate cerint elor
Document ia utilizatorilor
Prezentarea sistemului utilizatorilor
Not iuni de baz a
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
24 / 34
Actor
Use case
Actor
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
25 / 34
Reprezint a o entitate exterioar a cu care sistemul interact ioneaz a.
Poate :
un utilizator uman
un alt sistem (hardware/software)
Use case
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
26 / 34
Ce este?
Ce nu este?
Cum arat a?
La ce foloseste?
Use case: ce este
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
27 / 34
O descriere a modului n care un actor interact ioneaz a cu
sistemul
O descriere a modului n care sistemul trebuie s a r aspund a
acestor interact iuni
O viziune independent a de implementare a modului n care se va
comporta sistemul
O secvent a de act iuni care are un rezultat vizibil pentru un actor
Use case: ce nu este
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
28 / 34
O descriere a interfetei cu utilizatorul
O descriere a modului de implementare al sistemului
O specicat ie a claselor
O specicat ie a datelor
Use case: cum arat a
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
29 / 34
text: diferite formate
brief: un paragraf care descrie scenariul principal de succes
casual: mai multe paragrafe care acoper a mai multe scenarii
fully dressed: cel mai elaborat; sunt detaliat i tot i pasii si toate
variat iile; sunt specicate precondit iile si postcondit iile
grac: diagrame UML
Exemplu use case brief
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
30 / 34
Un utilizator g aseste site-ul unei agent ii de turism care ofer a pachete
de vacant a. Agent ia i cere utilizatorului s a completeze un formular
cu datele vacant ei si destinat ia dorit a. Agent ia interogheaz a apoi
serviciile web ale liniilor aeriene si ale companiilor hoteliere si-i
prezint a utilizatorului o list a de opt iuni.Utilizatorul si alege opt iunea
favorit a. Agent ia face rezerv arile si i prezint a utilizatorului o list a cu
modalit at ile de plat a. Utilizatorul alege o modalitate de plat a si-i
furnizeaz a agent iei informat iile necesare. Agent ia conrm a
rezerv arile, solicit a efectuarea pl at ii si i d a utilizatorului toate
informat iile de care are nevoie pentru a pleca n vacant a.
Exemplu use case casual
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
31 / 34
Scenariul principal de succes: (vezi slide-ul anterior)
Scenarii alternative:
Dac a locul rezervat n avion nu mai este disponibil, utilizatorul
va alege alt zbor
Dac a nu mai este disponibil a camera rezervat a, utilizatorul va
alege alta
Dac a utilizatorul nu are sucient i bani, agent ia va anula
rezerv arile
...
Use case fully dressed
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
32 / 34
Un sablon propus de Alistair Cockburn poate g asit la adresa:
http://members.aol.com/acockburn/papers/uctempla.htm
Use case fully dressed
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
33 / 34
Cont ine:
ID (nr), Nume (scurt a fraz a verbal a)
Informat ii caracteristice (Descriere, Domeniu, Actori...)
Principalul scenariu de succes
Extensii
Alte informat ii
Exemplu
Modele de proiectare
Recapitulare
Analiza cerinelor
Scenarii de utilizare
La ce folosesc
scenariile
Not iuni de baz
Actor
Use case
Use case: ce este
Use case: ce nu este
Use case: cum arat a
Exemplu use case
brief
Exemplu use case
casual
Use case fully
dressed
Use case fully
dressed
Exemplu
34 / 34
Agent ia de turism

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