Upload
others
View
14
Download
4
Embed Size (px)
Citation preview
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