Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme...

34
1 / 34 Ingineria program ˘ arii Adriana Gheorghies ¸, Ovidiu Gheorghies ¸ 10 octombrie 2005

Transcript of Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme...

Page 1: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

1 / 34

Ingineria programarii

Adriana Gheorghies, Ovidiu Gheorghies

10 octombrie 2005

Page 2: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Modele de proiectare• ExtremeProgramming• Inginerie si IngineriaProgramarii• Carta drepturilordezvoltatorului• Carta drepturilorclientului• Idei majore in XP

Recapitulare

Analiza cerinelor

Scenarii de utilizare

2 / 34

Modele de proiectare

Page 3: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Extreme Programming

Modele de proiectare• ExtremeProgramming• Inginerie si IngineriaProgramarii• Carta drepturilordezvoltatorului• Carta drepturilorclientului• 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, responsabilitati sitermene limita, ci ınseamna colaborarea oamenilor din care esteformata echipa

• Membrii echipei sunt ıncurajati sa ısi afirme personalitatea, saofere si sa primeasca cunoastere si sa devina programatoristraluciti

• XP considera ca dezvoltarea de programe ınseamna ın primulrand scrierea de programe (fisierele PowerPoint nu se potcompila).

Page 4: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Inginerie si Ingineria Programarii

Modele de proiectare• ExtremeProgramming• Inginerie si IngineriaProgramarii• Carta drepturilordezvoltatorului• Carta drepturilorclientului• Idei majore in XP

Recapitulare

Analiza cerinelor

Scenarii de utilizare

4 / 34

• Ingineria programarii este inspirata din ingineria constructiilor, darXP sustine ca aceast lucru nu este tocmai ... inspirat.

• In programare nu pot fi aplicate direct tehnicile de organizare diningineria constructiilor, deoarece gradul de flexibilitate necesareste mult mai mare.

Page 5: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Carta drepturilor dezvoltatorului

Modele de proiectare• ExtremeProgramming• Inginerie si IngineriaProgramarii• Carta drepturilordezvoltatorului• Carta drepturilorclientului• Idei majore in XP

Recapitulare

Analiza cerinelor

Scenarii de utilizare

5 / 34

• Ai dreptul sa stii ceea ce se cere, prin cerinte clare, cu declaratiiclare de prioritate.

• Ai dreptul sa spui cat ıti va lua sa implementezi fiecare cerinta, sisa ıti revizuiesti estimarile ın functie de experienta.

• Ai dreptul sa ıti accepti responsabilitatile, ın loc ca acestea sa-tifie asignate.

• Ai dreptul sa produci treaba de calitate ın orice moment.• Ai dreptul la liniste, distractie si la munca productiva si placuta.

Page 6: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Carta drepturilor clientului

Modele de proiectare• ExtremeProgramming• Inginerie si IngineriaProgramarii• Carta drepturilordezvoltatorului• Carta drepturilorclientului• Idei majore in XP

Recapitulare

Analiza cerinelor

Scenarii de utilizare

6 / 34

• Ai dreptul la un plan general, sa stii ce poate fi facut, cand, si lace pret.

• Ai dreptul sa vezi progresul ıntr-un sistem care ruleaza si care sedovedeste ca functioneaza trecand teste repetabile pe care tu lespecifici.

• Ai dreptul sa te razgandesti, sa ınlocuiesti functionalitati si saschimbi prioritatile.

• Ai dreptul sa fii informat de schimbarile ın estimari, suficient dedevreme pentru a putea reduce cerintele astfel ca munca sa setermine la data prestabilita. Poti chiar sa te opresti la un momentdat si sa ramai cu un sistem folositor care sa reflecte investitiapana la acea data.

Page 7: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Idei majore in XP

Modele de proiectare• ExtremeProgramming• Inginerie si IngineriaProgramarii• Carta drepturilordezvoltatorului• Carta drepturilorclientului• Idei majore in XP

Recapitulare

Analiza cerinelor

Scenarii de utilizare

7 / 34

• Echipa de dezvoltare nu are o structura ierarhica. Fiecarecontribuie la proiect folosind maximul din cunostintele sale.

• Scrierea de cod este activitatea cea mai importanta.• Proiectul este ın mintea tuturor programatorilor din echipa, nu ın

documentatii, modele sau rapoarte.• La orice moment, un reprezentant al clientului este disponibil

pentru clarificarea cerintelor.• Codul se scrie cat mai simplu.• Se scrie cod de test intai.• Daca apare necesitatea rescrierii sau aruncarii de cod, aceasta

se face fara mila.• Modificarile aduse codului sunt integrate continuu (de cateva ori

pe zi).• Se programeaza ın echipa (programare ın perechi). Echipele se

schimba la sfarsitul unei iteratii (1-2 saptamani).• Se lucreaza 40 de ore pe saptamana, fara lucru suplimentar.

Page 8: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Modele de proiectare

Recapitulare• Etapele dezvoltariiprogramelor

Analiza cerinelor

Scenarii de utilizare

8 / 34

Recapitulare

Page 9: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Etapele dezvoltarii programelor

Modele de proiectare

Recapitulare• Etapele dezvoltariiprogramelor

Analiza cerinelor

Scenarii de utilizare

9 / 34

• Analiza cerintelor• Proiectarea• Scrierea codului• Testare• Intretinere

Toate etapele dezvoltarii programelor depind de analiza cerintelor.

Page 10: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

10 / 34

Analiza cerintelor

Page 11: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Ce trebuie sa construim?

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

11 / 34

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

Page 12: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Inceputul unui proiect

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• 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 fi

◦ clara, bine definita◦ vaga, prost definita

• Pentru a continua cu succes, este nevoie de ingineria cerintelor.

Page 13: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Cerinta: ce, cum, cat

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

13 / 34

• Exemplu de cerinta: Pe o cale ferata uscata, locomotiva trebuiesa fie capabila sa porneasca un tren de 100 tone pe o panta demaxim 5% cu o acceleratie de cel putin 30km/h2.

• Caracteristici ale acestei cerinte:

◦ Spune ce vrea clientul [ok]◦ Nu spune cum sa fie realizate cerintele [ok(?)]◦ Cerintele sunt cuantificabile [ok]◦ Nu mentioneaza nimic despre pret [!]◦ Nu specifica termenul de realizare [!]

Page 14: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Specificatia buna

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

14 / 34

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

• Exemplu (sau contraexemplu?): Scrieti un program Pascal careofera functionalitatea unei agende telefonice personale. Ar trebuisa implementeze functii pentru cautarea unui numar si pentruintroducerea unui nou numar de telefon. Programul va oferi ointerfata utilizator prietenoasa.

Page 15: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Detalii de implementare la analiza?

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

15 / 34

• NU

◦ Clientul nu este competent ın detalii tehnice◦ Clientul nu poate fi de acord ın cunostinta de cauza cu

stipularile tehnice din specificatii (Stiu secretarele COM? Stiusoferii ciclul Carnot?).

◦ E necesar sa restrangem multimea posibilelor solutiiletehnice?

• DA

◦ Este nevoie sa integram ıntr-un sistem existent◦ Timpul de dezvoltare depinde de implementare◦ Intretinerea (costul) depinde de implementare

Page 16: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Responsabilitatile analistului

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

16 / 34

• sa extraga si sa clarifice cerintele clientului• sa ajute la rezolvarea diferentelor de opinie ıntre clienti si

utilizatori.• sa sfatuiasca clientul despre ce este tehnic posibil sau imposibil• sa documenteze cerintele• sa negocieze si sa obtina o ıntelegere cu clientul.

Page 17: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Activitatile analistului

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

17 / 34

• Ascultare: Inregistreaza cerintele clientului.• Reflectare: Traduce cerintele ın limbaj tehnic. Verifica pertinenta.

• Scriere: Se cade de acord asupra formularilor.

• Repeta pana cand se ajunge la o ıntelegere cu clientul ın ceeace priveste cerintele.

Page 18: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Probleme potentiale

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

18 / 34

• Procesul iterativ poate fi lung si complicat• Negocieri (dure)• Diferenta culturala dintre client si analist• Diferente ıntre cerintele clientului si ale utilizatorilor• Filmele SF vazute de client• Filmele SF vazute de programatori

Page 19: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Rezultatul analizei

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

19 / 34

• Document de specificare a cerintelor• Acest document este folosit ca referinta• Provocari

◦ Nivelul de detaliu

• Mare: mai precis, obtinut mai greu, munca inutila• Mic: prea vag, nu poate ghida eficient dezvoltarea

◦ Audienta documentelor

• 2 versiuni: una pentru client, alta pentru dezvolatori?

◦ Notatia folosita

• Informala, semiformala, formala

Page 20: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Tipuri de cerinte

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

20 / 34

• Cerinte functionale

◦ Ce trebuie sa faca sistemul

• Cerinte privind datele

◦ Formatul datelor la intrare/iesire◦ Formatul datelor din interiorul sistemului

• Constrangeri

◦ Cerinte de respectat ad-literam◦ Influenteaza direct implementarea

• Recomandari

◦ Ajuta la luarea deciziilor de proiectare cand sunt mai multeoptiuni

Page 21: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Exemple

Modele de proiectare

Recapitulare

Analiza cerinelor• Ce trebuie saconstruim?• Inceputul unui proiect• Cerinta: ce, cum, cat• Specificatia buna• Detalii deimplementare laanaliza?• Responsabilitatileanalistului• Activitatile analistului• Probleme potentiale• Rezultatul analizei• Tipuri de cerinte• Exemple

Scenarii de utilizare

21 / 34

• Cerinte functionale

◦ Sistemul se va opri ın maxim 5 secunde dupa ce temperaturaprocesorului atinge 80 grade Celsius.

◦ Sistemul va permite cautarea si afisarea titlurilor cartilorscrise anumit autor.

• Cerinte privind datele

◦ Datele vor fi exportate ın format XML◦ Datele din tampoanele de intrare si iesire vor fi criptate

• Constrangeri

◦ Implementarea se va realiza folosind un limbaj orientat obiect.

◦ Metodologia de dezvoltare va fi RUP

• Recomandari

◦ Se va folosi cat mai putina memorie

Page 22: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

22 / 34

Scenarii de utilizare

Page 23: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

La ce folosesc scenariile

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

23 / 34

• Prezinta sistemul din perspectiva utilizatorului ⇒ ıntelegem ce secere

• Extragerea cerintelor, testare• Frecventa de utilizare a scenariilor ⇒ prioritati asignate cerintelor

• Documentia utilizatorilor• Prezentarea sistemului utilizatorilor

Page 24: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Notiuni de baza

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

24 / 34

• Actor• Use case

Page 25: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Actor

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

25 / 34

Reprezinta o entitate exterioara cu care sistemul interactioneaza.Poate fi:

• un utilizator uman• un alt sistem (hardware/software)

Page 26: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Use case

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

26 / 34

• Ce este?• Ce nu este?• Cum arata?• La ce foloseste?

Page 27: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Use case: ce este

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

27 / 34

• O descriere a modului ın care un actor interactioneaza cusistemul

• O descriere a modului ın care sistemul trebuie sa raspundaacestor interactiuni

• O viziune independenta de implementare a modului ın care se vacomporta sistemul

• O secventa de actiuni care are un rezultat vizibil pentru un actor

Page 28: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Use case: ce nu este

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

28 / 34

• O descriere a interfetei cu utilizatorul• O descriere a modului de implementare al sistemului• O specificatie a claselor• O specificatie a datelor

Page 29: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Use case: cum arata

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

29 / 34

• text: diferite formate

◦ brief: un paragraf care descrie scenariul principal de succes◦ casual: mai multe paragrafe care acopera mai multe scenarii◦ fully dressed: cel mai elaborat; sunt detaliati toti pasii si toate

variatiile; sunt specificate preconditiile si postconditiile

• grafic: diagrame UML

Page 30: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Exemplu use case brief

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

30 / 34

Un utilizator gaseste site-ul unei agentii de turism care ofera pachetede vacanta. Agentia ıi cere utilizatorului sa completeze un formularcu datele vacantei si destinatia dorita. Agentia interogheaza apoiserviciile web ale liniilor aeriene si ale companiilor hoteliere si-iprezinta utilizatorului o lista de optiuni.Utilizatorul ısi alege optiuneafavorita. Agentia face rezervarile si ıi prezinta utilizatorului o lista cumodalitatile de plata. Utilizatorul alege o modalitate de plata si-ifurnizeaza agentiei informatiile necesare. Agentia confirmarezervarile, solicita efectuarea platii si ıi da utilizatorului toateinformatiile de care are nevoie pentru a pleca ın vacanta.

Page 31: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Exemplu use case casual

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

31 / 34

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

◦ Daca locul rezervat ın avion nu mai este disponibil, utilizatorulva alege alt zbor

◦ Daca nu mai este disponibila camera rezervata, utilizatorul vaalege alta

◦ Daca utilizatorul nu are suficienti bani, agentia va anularezervarile

◦ ...

Page 32: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Use case fully dressed

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

32 / 34

Un sablon propus de Alistair Cockburn poate fi gasit la adresa:http://members.aol.com/acockburn/papers/uctempla.htm

Page 33: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Use case fully dressed

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

33 / 34

Contine:

• ID (nr), Nume (scurta fraza verbala)• Informatii caracteristice (Descriere, Domeniu, Actori...)• Principalul scenariu de succes• Extensii• Alte informatii

Page 34: Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-02.pdf · Modele de proiectare Extreme Programming Inginerie s‚i Ingineria Programar ii Carta drepturilor dezvoltatorului

Exemplu

Modele de proiectare

Recapitulare

Analiza cerinelor

Scenarii de utilizare• La ce folosescscenariile• Notiuni de baz• Actor• Use case• Use case: ce este• Use case: ce nu este• Use case: cum arata• Exemplu use casebrief• Exemplu use casecasual• Use case fullydressed• Use case fullydressed• Exemplu

34 / 34

Agentia de turism