56
1 / 56 Ingineria program ˘ arii Adriana Gheorghies ¸, Ovidiu Gheorghies ¸ 3 octombrie 2005

Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-01.pdf · ‹Intrebari frecvente Cont‚inutul cursului Evaluare Introducere ‹ n ingineria programar ii Motivat‚ie

  • Upload
    others

  • View
    14

  • Download
    4

Embed Size (px)

Citation preview

1 / 56

Ingineria programarii

Adriana Gheorghies, Ovidiu Gheorghies

3 octombrie 2005

Continutul cursului

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

2 / 56

• Modele de dezvoltare• Ingineria cerintelor• UML (Unified Modeling Language)• Modele de proiectare (Design patterns)• Testare• Metrici software• Managementul proiectelor• Etica si legislatie

• Continutul cursului

Evaluare• Evaluare• Apreciere curs• Laborator• Laborator• Rezumat evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

3 / 56

Evaluare

Evaluare

• Continutul cursului

Evaluare• Evaluare• Apreciere curs• Laborator• Laborator• Rezumat evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

4 / 56

• Obiectiv: apreciere cat mai buna a efortului depus de un studentsi a calitatii rezultatului

• Aprecierea se va face ın E (puncte virtuale) (rata standard 5E/h)• Lucru full time:

40h/sapt x 4 sapt x 5E/h = 800 E/luna

Apreciere curs

• Continutul cursului

Evaluare• Evaluare• Apreciere curs• Laborator• Laborator• Rezumat evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

5 / 56

• Semestru: 14 cursuri x (2h + 2h) = 56h• Sesiune: 5 zile x 10h = 50 h• Total: aproximativ 100h ⇒ 100h x 5E/h = 500 E (maxim)• Evaluarea se va face ın sesiune prin examen• Minim pentru promovare 150 E

Laborator

• Continutul cursului

Evaluare• Evaluare• Apreciere curs• Laborator• Laborator• Rezumat evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

6 / 56

• Probleme, proiecte, referate• Fiecare are alocat un buget si un termen limita de predare• Obiectiv: sa acumulati un buget cat mai mare• Trebuie sa ne convingeti sa cumparam produsul rezultat• Decizia de cumparare depinde de calitatea produsului• Nu exista o limita superioara pentru punctajul total la lab• Minim pentru promovare 150 E

Laborator

• Continutul cursului

Evaluare• Evaluare• Apreciere curs• Laborator• Laborator• Rezumat evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

7 / 56

• Puteti negocia (bugetul, termenul de predare)• Puteti propune (probleme, modificari la problemele existente)• Puteti lucra ın echipa. Punctajul obtinut se ımparte ıntre membrii

echipei. Voi spuneti cum.• Frauda se pedepseste prin “amenda”, mentionarea in anexa la

diploma, etc.• Prezentare OK: stapanirea integrala a rezolvarii (posibil partiale)

propuse.

Rezumat evaluare

• Continutul cursului

Evaluare• Evaluare• Apreciere curs• Laborator• Laborator• Rezumat evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

8 / 56

• Examen (ın sesiune): max 500E min 150E• Laborator: min 150E• Se aduna punctajul de la laborator cu cel de la examen• Notarea se face folosind curba lui Gauss pe punctajul final• Un student care obtine punctajul minim la examen si la laborator

este promovat.

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

9 / 56

Introducere ıningineria programarii

Motivatie

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

10 / 56

• Din ce ın ce mai multe sisteme sunt controlate de software• Economiile tuturor statelor dezvoltate depind de software• Ingineria programarii propune teorii, metodologii si instrumente

pentru dezvoltarea de software profesional• Ingineria programarii are alocat un procent semnificativ din PIB

ın toate statele dezvoltate

Motivatie (2)

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

11 / 56

• 1946 Goldstine si von Neumann: 1000 de instructiuni reprezintao limita superioara rezonabila pentru complexitatea problemelorce pot fi concepute ca rezolvabile cu ajutorul calculatorului.

• Dupa ce a prevazut ca nici un program pentru calculatoarepersonale nu va necesita vreodata mai mult de 64 KB dememorie RAM, Bill Gates admite ın 1995 ca lucrurile s-auschimbat ın ultimele doua decenii.

Motivatie (3)

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

12 / 56

• Sistemul de rezervare a biletelor pentru compania aeriana KLMcontinea, ın anul 1992, doua milioane de linii de cod ın limbaj deasamblare;

• Sistemul de operare System V versiunea 4.0 (UNIX) a fostobtinut prin compilarea a 3 700 000 linii de cod;

• Programele scrise pentru naveta spatiala NASA au circa 40 demilioane de linii de cod obiect;

• Pentru realizarea sistemului de operare IBM OS360 au fostnecesari 5000 de ani-om.

• Criza a programarii? Programarea: arta sau tehnica?

Greseli celebre

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

13 / 56

• Cecuri enorme la statiile de benzine. Amuzant...• IBM OS360 conttinea la fiecare relansare 1.000 de greseli.

Resemnare...• Pierdere vehicul explorare Venus. Ah, era de fapt ”,” in FOR!...• Sistem de avertizare anti-racheta activat. Atacam sau nu?• Ariane 5 explodeaza. Cost artificii: 500.000.000 $

Definitie (?)

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

14 / 56

• Prima definitie a ingineriei programarii (NATO,1968): Ingineriaprogramarii este stabilirea si utilizarea de principii inginerestisolide pentru a obtine ın mod economic programe care suntsigure si functioneaza eficient pe masini de calcul concrete.

• O definitie mai recenta (si mai rezervata, IEEE StandardGlossary of Software Engineering Tehnology, 1983): Ingineriaprogramarii reprezinta abordarea sistematica a dezvoltarii,functionarii, ıntretinerii, si retragerii din functiune a programelor

Costurile alocate programelor

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

15 / 56

• Costul programelor pentru un PC este de obicei mai mare decacostul unui sistem (hardware)

• Costul de dezvoltare al unui program este mai mic decat costulde intretinere al acestuia. In cazul sistemelor cu o durata marede viata costul de ıntretinere poate depasi de cateva ori costul dedezvoltare

• Dezvoltarea eficienta a programelor este una dintre preocuparileingineriei programarii

Intrebari frecvente

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

16 / 56

• Ce ıntelegem prin software?• Care sunt atributele unui program bun?• Ce este ingineria programarii?• Ce diferenta este ıntre IP si informatica?• Ce diferenta este ıntre IP si ingineria sistemelor?• Ce este un proces software?• Ce este un model al unui proces software?

Intrebari frecvente

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

17 / 56

• Care sunt costurile ın ingineria programarii?• Ce reprezinta metodologiile propuse de ingineria programarii?• Ce este CASE (Computer Aided Software Engineering)?• Care sunt principalele dificultati ın IP?

Software

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

18 / 56

• Reprezinta programe si documentatia aferenta• Produsele software pot fi

◦ generice (off-the-shelf) - dezvoltate pentru a fi vandute maimultor clienti

◦ specifice (custom) - dezvoltate pentru a fi vandute unui singurclient (conform cu specificatiile acestuia)

Atributele unui program bun

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

19 / 56

• sa ofere utilizatorilor functionalitatile cerute• sa fie usor de mentinut - programul trebuie sa evolueze odata cu

schimbarea nevoilor utilizatorilor• sa fie sigur• sa fie eficient - sa nu iroseasca resursele sistemului• sa fie usor de folosit

Ingineria programarii

• Continutul cursului

Evaluare

Introducere ıningineria programarii• Motivatie• Motivatie (2)• Motivatie (3)• Greseli celebre• Definitie (?)• Costurile alocateprogramelor• Intrebari frecvente• Intrebari frecvente• Software• Atributele unuiprogram bun• Ingineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

20 / 56

• Este o disciplina inginereasca care se ocupa de toate aspecteledezvoltarii unui program

• Propune adoptarea unei abordari sistematice si organizate aprocesului de dezvoltare software

• Propune folosirea tehnicilor si instrumentelor adecvate avand ınvedere

◦ problema care trebuie rezolvata◦ restrictiile impuse◦ resursele disponibile

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP• IP vs informatica?• IP vs ingineriasistemelor• Proces software• Model al unui processoftware• IP: metodologii• CASE

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

21 / 56

Unde se incadreaza IP

IP vs informatica?

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP• IP vs informatica?• IP vs ingineriasistemelor• Proces software• Model al unui processoftware• IP: metodologii• CASE

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

22 / 56

• Informatica se ocupa de aspectele teoretice ale dezvoltariisoftware

• IP se ocupa de aspectele practice ale dezvoltarii software• Teoriile dezvoltate de informatica sunt ın prezent insuficiente

pentru a constitui o fundament complet pentru IP

IP vs ingineria sistemelor

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP• IP vs informatica?• IP vs ingineriasistemelor• Proces software• Model al unui processoftware• IP: metodologii• CASE

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

23 / 56

• Ingineria sistemelor se ocupa de toate aspectele dezvoltariisistemelor de calcul (hardware, software, ingineria proceselor)

• IP este o parte din ingineria sistemelor• IP se ocupa de

◦ specificarea cerintelor◦ proiectare arhitecturala◦ implementare◦ integrare◦ deployment

0.1 Procese, modele, metodologii

Proces software

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP• IP vs informatica?• IP vs ingineriasistemelor• Proces software• Model al unui processoftware• IP: metodologii• CASE

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

24 / 56

• Reprezinta o multime de activitati al caror scop este dezvoltareasau evolutia unui program

• Activitati generice ın toate procesele soft:

◦ specificarea cerintelor◦ proiectare◦ implementare◦ testare◦ validare◦ evolutie (ıntretinere)

Model al unui proces software

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP• IP vs informatica?• IP vs ingineriasistemelor• Proces software• Model al unui processoftware• IP: metodologii• CASE

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

25 / 56

• O reprezentare simplificata a unui proces software prezentatadintr-o anumita perspectiva, cum ar fi:

◦ perspectiva fluxului de activitati (workflow)◦ perspectiva fluxului de informatii (data-flow)◦ perspectiva rolurilor/actiunilor (cine ce face)

• Modele generice ale proceselor software: cascada, spirala,prototipuri, RUP, extreme programming ...

IP: metodologii

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP• IP vs informatica?• IP vs ingineriasistemelor• Proces software• Model al unui processoftware• IP: metodologii• CASE

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

26 / 56

Sunt abordari structurate ale procesului de dezvoltare care includ:

• descrieri ale modelelor - pot fi folosite diferite notatii• reguli - restrictii aplicate modelelor• recomandari - sfaturi privind ”good design practice”• ghidare a procesului de dezvoltare - care este fluxul de activitati

care trebuie urmat

CASE

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP• IP vs informatica?• IP vs ingineriasistemelor• Proces software• Model al unui processoftware• IP: metodologii• CASE

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare

27 / 56

• Sisteme soft care ofera suport automat activittilor unui processoft; de obicei sunt folosite ca suport al unei metodologii

• Upper-CASE - instrumente care ajuta activitatile de ınceput(analiza cerintelor, proiectare)

• Lower-CASE - medii integrate de dezvoltare (implementare,testare, depanare)

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ındezvoltare• Dificultati ın IP

Modele de dezvoltare

Exemple de modele dedezvoltare

28 / 56

Provocari in IP

Repartizarea costurilor

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ındezvoltare• Dificultati ın IP

Modele de dezvoltare

Exemple de modele dedezvoltare

29 / 56

Costurile relative ale stadiilor dezvoltarii

33%17%

50%

Analiza si proiectare

Scrierea codului

Testare

Numarul relativ al erorilor

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ındezvoltare• Dificultati ın IP

Modele de dezvoltare

Exemple de modele dedezvoltare

30 / 56

Numarul relativ de erori facute pe parcursul dezvoltarii

50%

33%17%

Proiectare

Sintaxa

Programare si logica

Costul relativ al erorilor

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ındezvoltare• Dificultati ın IP

Modele de dezvoltare

Exemple de modele dedezvoltare

31 / 56

Costul relativ al repararii erorilor

80%

20%

Proiectare

Programare, logica, sintaxa

Costurile ın dezvoltare

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ındezvoltare• Dificultati ın IP

Modele de dezvoltare

Exemple de modele dedezvoltare

32 / 56

• Aproximativ 50% sunt costuri de dezvoltare, restul sunt costuripentru testare.

• Pentru programele specifice costurile de ıntretinere depasescdeseori costurile de dezvoltare

• Costurile variaza ın functie de tipul sistemului care este dezvoltat,de cerintele si restrictiile (performanta, siguranta) impusesistemului

• Distributia costurilor depinde si de modelul de dezvoltare folosit

Dificultati ın IP

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ındezvoltare• Dificultati ın IP

Modele de dezvoltare

Exemple de modele dedezvoltare

33 / 56

• Sistemele mai vechi care trebuie ıntretinute si actualizate• Eterogenitatea sistemelor software/hardware• Presiunea pentru a livra programul mai repede, mai repede ...

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltariiprogramelor• Analiza cerintelor• Proiectarea• Implementare,integrare• Validare si verificare• Intretinere• Modele de dezvoltare

Exemple de modele dedezvoltare

34 / 56

Modele de dezvoltare

Modele de dezvoltare

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltariiprogramelor• Analiza cerintelor• Proiectarea• Implementare,integrare• Validare si verificare• Intretinere• Modele de dezvoltare

Exemple de modele dedezvoltare

35 / 56

• Pentru a dezvolta un program este nevoie de:

◦ O intelegere clara a ceea ce se cere◦ Un set de metode si instrumente de lucru◦ Un plan de actiune

• Plan de actiune = sablon = model de dezvoltare

Etapele dezvoltarii programelor

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltariiprogramelor• Analiza cerintelor• Proiectarea• Implementare,integrare• Validare si verificare• Intretinere• Modele de dezvoltare

Exemple de modele dedezvoltare

36 / 56

• Analiza cerintelor• Proiectarea architecturala• Proiectarea detaliata• Scrierea codului• Integrarea componentelor• Validare• Verificare• Intretinere

Analiza cerintelor

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltariiprogramelor• Analiza cerintelor• Proiectarea• Implementare,integrare• Validare si verificare• Intretinere• Modele de dezvoltare

Exemple de modele dedezvoltare

37 / 56

• Se stabileste ce anume vrea clientul ca programul sa faca• Scopul este ınregistrarea cerintelor ıntr-o maniera cat mai clara si

mai fidela• Probleme

◦ Comunicare◦ Negociere◦ Sfatuirea clientului

Proiectarea

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltariiprogramelor• Analiza cerintelor• Proiectarea• Implementare,integrare• Validare si verificare• Intretinere• Modele de dezvoltare

Exemple de modele dedezvoltare

38 / 56

• Proiectarea arhitecturala

◦ Din motive de complexitate, programele mari nu pot ficoncepute si implementate ca o singura bucata

◦ Programul este ımpartit ın module sau componente maisimple, care pot fi abordate individual

• Proiectarea detaliata

◦ Se proiecteaza fiecare modul al aplicatiei, ın cele mai micidetalii.

Implementare, integrare

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltariiprogramelor• Analiza cerintelor• Proiectarea• Implementare,integrare• Validare si verificare• Intretinere• Modele de dezvoltare

Exemple de modele dedezvoltare

39 / 56

• Implementare

◦ Proiectul detaliat este transpus ıntr-un limbaj de programare◦ Acesta se realizeaza modular, pe structura rezultata la

proiectarea arhitecturala

• Integrare

◦ Modelul big-bang◦ Modelul incremental

Validare si verificare

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltariiprogramelor• Analiza cerintelor• Proiectarea• Implementare,integrare• Validare si verificare• Intretinere• Modele de dezvoltare

Exemple de modele dedezvoltare

40 / 56

• Validare: ne asiguram ca programul ındeplineste cerinteleutilizatorului.

◦ Construim produsul corect?

• Verificare: ne asiguram ca programul este stabil si cafunctioneaza corect din punctul de vedere al dezvoltatorilor.

◦ Construim corect produsul?

Intretinere

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltariiprogramelor• Analiza cerintelor• Proiectarea• Implementare,integrare• Validare si verificare• Intretinere• Modele de dezvoltare

Exemple de modele dedezvoltare

41 / 56

• Dupa livrare

◦ Sunt descoperite greseli ce trebuie reparate◦ Pot aparea schimbari ın specificatii◦ Pot aparea noi cerinte

• Intretinere = gestionarea acestor tipuri de probleme

Modele de dezvoltare

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltariiprogramelor• Analiza cerintelor• Proiectarea• Implementare,integrare• Validare si verificare• Intretinere• Modele de dezvoltare

Exemple de modele dedezvoltare

42 / 56

• Cum efectuam activitatile indicate de etapele dezvoltariiprogramelor

• Exemple de modele de dezvoltare:

◦ Ad-hoc: descurca-te cum poti◦ Modelul ın cascada (cu feedback)◦ Prototipizare◦ Metode formale◦ Modelul ın spirala◦ RUP (Rational Unified Process)◦ XP (Extreme Programming)

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

43 / 56

Exemple de modele dedezvoltare

Modelul ın cascada

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

44 / 56

Ingineria

cerintelor

Proiectarea

arhitecturala

Proiectarea

detaliata

Implementare

Testarea

unitatilor

Testarea

sistemului

Acceptare

Modelul ın cascada

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

45 / 56

• +: Imparte o sarcina complexa ın pasi mai mici• +: Usor de administrat si controlat• +: Fiecare pas are ca rezultat un produs bine definit• -: Erorile se propaga ıntre pasi• -: Nu exista mecanisme de reparare a erorilor

Modelul ın cascada cu ıntoarcere

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

46 / 56

Ingineria

cerintelor

Proiectarea

arhitecturala

Proiectarea

detaliata

Implementare

Testarea

unitatilor

Testarea

sistemului

Acceptare

Modelul ın cascada cu ıntoarcere

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

47 / 56

• +: Ofera cadrul pentru remedierea erorilor din pasul precedent• -: Erorile la pasul i care sunt descoperile la pasul i + 2 nu sunt

remediate• -: Clientul vede produsul final abia la sfarsitul dezvoltarii

Modelul ın spirala

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

48 / 56

• Studiul de fezabilitate• Analiza cerintelor• Proiectarea arhitecturii• Implementarea

Pentru fiecare pas, se fac urmatoarele activitati:

1 : pregatirea

[take stock]2 : gestiunea riscului

[dealing with risk]

3 : dezvoltarea

[development]

4 : planificarea

urmatorului stagiu

[planning]

Modelul ın spirala

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

49 / 56

• +: Pastraza avantajele modelului ın cascada• +: Ia ın calcul notiunea de risc

Exemple de riscuri:

• O firma concurenta lanseaza un produs rival• Un arhitect paraseste echipa• Clientul schimba cerintele• O echipa nu respecta termenele de livrare

Prototipizare

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

50 / 56

• Tipuri de prototipuri

◦ De aruncat (throw-away)

• Scop: clarificarea specificatiilor• Se dezvolta repede, orice altceva e secundar

(quick-and-dirty).• Util in a rezolva “architecural/technology spikes”.• Programul “adevarat” este scris apoi de la 0.

◦ Evolutionar

• Scop: construire incrementala a produsului final.• Se construieste un nucleu functional la care se adauga

apoi noi functionalitati.

Prototipizare: avantaje

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

51 / 56

• Avantaje

◦ Se poate elimina lipsa de claritate a specificatiilor◦ Clientii pot schimba cerintele (e ieftin de gestionat)◦ Intretinere ieftina (verificare pe parcus)◦ Se poate facilita instruirea utilizatorilor

Prototipizare: dezavantaje

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

52 / 56

• Dezavantaje

◦ Mediu artificial, probleme ascunse◦ Da’ nu-i apropape gata?! De ce mai dureaza atat?◦ Putem sa schimbam specificatiile? Pai as vrea si...◦ Adica munca mea este aruncata la gunoi?

Rational Unified Process (0)

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

53 / 56

Rational Unified Process

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

54 / 56

• Ingineria functionalitatii. Sunt sintetizate necesitatile functionale.• Cerinte. Se translateaza necesitatile functionale ın

comportament de sisteme automate.• Analiza si Proiectare. Se translateaza cerintele ın arhitectura

programului.• Implementare. Se creaza programul conform cu arhitectura astfel

ıncat comportamentul acestuia sa fie consistent cu cel dorit.• Testare. Se asigura ca comportamentele cerute sunt corecte si

ca toate comportamentele necesare sunt prezente ın program.

Rational Unified Process (2)

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

55 / 56

• Administrarea configuratiei si a schimbarilor. Se gestioneazaversiunile tuturor entitatilor din care este compus programul.

• Administrarea proiectului. Sunt administrate planificarile siresursele.

• Administrarea mediului. Se instaleaza si se mentine mediul delucru necesar dezvoltarii programului.

• Plasament. Se efectueaza activitatile necesare punerii ınfunctiune a programului.

Rational Unified Process (3)

• Continutul cursului

Evaluare

Introducere ıningineria programarii

Unde se incadreaza IP

Provocari in IP

Modele de dezvoltare

Exemple de modele dedezvoltare• Modelul ın cascada• Modelul ın cascada• Modelul ın cascadacu ıntoarcere• Modelul ın cascadacu ıntoarcere• Modelul ın spirala• Modelul ın spirala• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

56 / 56