Sunteți pe pagina 1din 56

Ingineria programarii

Adriana Gheorghies, Ovidiu Gheorghies


3 octombrie 2005

1 / 56

Continutul cursului
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

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

2 / 56

Continutul cursului
Evaluare

Evaluare
Apreciere curs
Laborator
Laborator
Rezumat evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP

Evaluare

Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

3 / 56

Evaluare
Continutul cursului
Evaluare

Evaluare
Apreciere curs
Laborator
Laborator
Rezumat evaluare
Introducere n

ingineria programarii

mai buna a efortului depus de un student


Obiectiv: apreciere cat
ii rezultatului
si a calitat
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

Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

4 / 56

Apreciere curs
Continutul cursului
Evaluare

Evaluare
Apreciere curs
Laborator
Laborator
Rezumat evaluare
Introducere n

ingineria programarii

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

Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

5 / 56

Laborator
Continutul cursului
Evaluare

Evaluare
Apreciere curs
Laborator
Laborator
Rezumat evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP

Probleme, proiecte, referate


Fiecare are alocat un buget si un termen limita de predare
mai mare
Obiectiv: sa acumulati un buget cat
am
produsul rezultat
Trebuie sa ne convingeti sa cumpar

Decizia de cumparare
depinde de calitatea produsului
Nu exista o limita superioara pentru punctajul total la lab
Minim pentru promovare 150 E

Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

6 / 56

Laborator
Continutul cursului
Evaluare

Evaluare
Apreciere curs
Laborator
Laborator
Rezumat evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP

Puteti negocia (bugetul, termenul de predare)


la problemele existente)
Puteti propune (probleme, modificari
Punctajul obtinut se mparte ntre membrii
Puteti lucra n echipa.
echipei. Voi spuneti cum.
mentionarea in anexa la
Frauda se pedepseste prin amenda,
diploma, etc.
Prezentare OK: stapanirea integrala a rezolvarii (posibil partiale)
propuse.

Modele de dezvoltare
Exemple de modele de
dezvoltare

7 / 56

Rezumat evaluare
Continutul cursului
Evaluare

Evaluare
Apreciere curs
Laborator
Laborator
Rezumat evaluare
Introducere n

ingineria programarii

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.

Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

8 / 56

Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

programelor
frecvente
Intrebari
frecvente
Intrebari
Software
Atributele unui

Introducere n

ingineria programarii

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

9 / 56

Motivatie
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

Din ce n ce mai multe sisteme sunt controlate de software


Economiile tuturor statelor dezvoltate depind de software
propune teorii, metodologii si instrumente
Ingineria programarii

pentru dezvoltarea de software profesional


are alocat un procent semnificativ din PIB
Ingineria programarii
n toate statele dezvoltate

programelor
frecvente
Intrebari
frecvente
Intrebari
Software
Atributele unui

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

10 / 56

Motivatie (2)
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

programelor
frecvente
Intrebari

1946 Goldstine si von Neumann: 1000 de instructiuni reprezint a


o limita superioara rezonabila pentru complexitatea problemelor
ce pot fi concepute ca rezolvabile cu ajutorul calculatorului.

Dupa ce a prevazut
ca nici un program pentru calculatoare
personale nu va necesita vreodata mai mult de 64 KB de
memorie RAM, Bill Gates admite n 1995 ca lucrurile s-au
schimbat n ultimele doua decenii.

frecvente
Intrebari
Software
Atributele unui

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

11 / 56

Motivatie (3)
Continutul cursului

Sistemul de rezervare a biletelor pentru compania aeriana KLM

Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

programelor
frecvente
Intrebari

program bun

frecvente
Intrebari
Software
Atributele unui

continea, n anul 1992, doua milioane de linii de cod n limbaj de


asamblare;
Sistemul de operare System V versiunea 4.0 (UNIX) a fost
obtinut prin compilarea a 3 700 000 linii de cod;
Programele scrise pentru naveta spatiala NASA au circa 40 de
milioane de linii de cod obiect;
Pentru realizarea sistemului de operare IBM OS360 au fost
necesari 5000 de ani-om.
Criza a programarii? Programarea: arta sau tehnica?

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

12 / 56

Greseli celebre
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

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!...
sau nu?
Sistem de avertizare anti-racheta activat. Atacam
Cost artificii: 500.000.000 $
Ariane 5 explodeaza.

programelor
frecvente
Intrebari
frecvente
Intrebari
Software
Atributele unui

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

13 / 56

Definitie (?)
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

programelor
frecvente
Intrebari
frecvente
Intrebari
Software
Atributele unui

Prima definitie a ingineriei programarii (NATO,1968): Ingineria

este stabilirea si utilizarea de principii ingineresti


programarii
solide pentru a obtine n mod economic programe care sunt
sigure si functioneaza eficient pe masini de calcul concrete.
O definitie mai recenta (si mai rezervata, IEEE Standard
Glossary of Software Engineering Tehnology, 1983): Ingineria
reprezinta abordarea sistematica a dezvoltarii,

programarii
ntretinerii, si retragerii din functiune a programelor
functionarii,

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

14 / 56

Costurile alocate programelor


Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

programelor
frecvente
Intrebari
frecvente
Intrebari
Software
Atributele unui

Costul programelor pentru un PC este de obicei mai mare deca

costul unui sistem (hardware)


Costul de dezvoltare al unui program este mai mic decat costul
de intretinere al acestuia. In cazul sistemelor cu o durata mare
i de cateva

de viata costul de ntretinere poate depas


ori costul de
dezvoltare

Dezvoltarea eficienta a programelor este una dintre preocuparile

ingineriei programarii

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

15 / 56

Intrebari
frecvente
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

programelor
frecvente
Intrebari

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?

frecvente
Intrebari
Software
Atributele unui

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

16 / 56

Intrebari
frecvente
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

Care sunt costurile n ingineria programarii?

Ce reprezinta metodologiile propuse de ingineria programarii?


Ce este CASE (Computer Aided Software Engineering)?
i n IP?
Care sunt principalele dificultat

programelor
frecvente
Intrebari
frecvente
Intrebari
Software
Atributele unui

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

17 / 56

Software
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

Reprezinta programe si documentatia aferenta


Produsele software pot fi

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


mai

multor clienti

specifice (custom) - dezvoltate pentru a fi vandute


unui singur
client (conform cu specificatiile acestuia)

programelor
frecvente
Intrebari
frecvente
Intrebari
Software
Atributele unui

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

18 / 56

Atributele unui program bun


Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

ile cerute
sa ofere utilizatorilor functionalitat
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

programelor
frecvente
Intrebari
frecvente
Intrebari
Software
Atributele unui

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

19 / 56


Ingineria programarii
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Motivatie
Motivatie (2)
Motivatie (3)
Greseli celebre
Definitie (?)
Costurile alocate

programelor
frecvente
Intrebari
frecvente
Intrebari
Software
Atributele unui

Este o disciplina inginereasca care se ocupa de toate aspectele


unui program
dezvoltarii
sistematice si organizate a
Propune adoptarea unei abordari
procesului de dezvoltare software
n
Propune folosirea tehnicilor si instrumentelor adecvate av and
vedere

problema care trebuie rezolvata


restrictiile impuse
resursele disponibile

program bun

Ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

20 / 56

Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP

IP vs informatica?
IP vs ingineria

sistemelor

Proces software
Model al unui proces

software

IP: metodologii
CASE

Unde se incadreaza IP

Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

21 / 56


IP vs informatica?
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP

IP vs informatica?
IP vs ingineria

sistemelor

Informatica se ocupa de aspectele teoretice ale dezvoltarii

software
software
IP se ocupa de aspectele practice ale dezvoltarii
Teoriile dezvoltate de informatica sunt n prezent insuficiente
pentru a constitui o fundament complet pentru IP

Proces software
Model al unui proces

software

IP: metodologii
CASE
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

22 / 56

IP vs ingineria sistemelor
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP

IP vs informatica?
IP vs ingineria

sistemelor

Proces software
Model al unui proces

software

IP: metodologii
CASE
Provocari in IP

Ingineria sistemelor se ocupa de toate aspectele dezvoltarii

sistemelor de calcul (hardware, software, ingineria proceselor)


IP este o parte din ingineria sistemelor
IP se ocupa de

specificarea cerintelor
proiectare arhitecturala
implementare
integrare
deployment

Modele de dezvoltare
Exemple de modele de
dezvoltare

23 / 56

Proces software
Continutul cursului
Evaluare
Introducere n

ingineria programarii

i al caror

Reprezinta o multime de activitat


scop este dezvoltarea
sau evolutia unui program
i generice n toate procesele soft:
Activitat

Unde se incadreaza IP

IP vs informatica?
IP vs ingineria

sistemelor

Proces software
Model al unui proces

software

IP: metodologii
CASE
Provocari in IP

specificarea cerintelor
proiectare
implementare
testare
validare
evolutie (ntretinere)

Modele de dezvoltare
Exemple de modele de
dezvoltare

24 / 56

Model al unui proces software


Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP

IP vs informatica?
IP vs ingineria

sistemelor

Proces software
Model al unui proces

software

IP: metodologii
CASE

O reprezentare simplificata a unui proces software prezentata


cum ar fi:
dintr-o anumita perspectiva,

i (workflow)
perspectiva fluxului de activitat
perspectiva fluxului de informatii (data-flow)
perspectiva rolurilor/actiunilor (cine ce face)
spirala,

Modele generice ale proceselor software: cascada,


prototipuri, RUP, extreme programming ...

Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

25 / 56

IP: metodologii
Continutul cursului

structurate ale procesului de dezvoltare care includ:


Sunt abordari

Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP

IP vs informatica?
IP vs ingineria

sistemelor

Proces software
Model al unui proces

descrieri ale modelelor - pot fi folosite diferite notatii


reguli - restrictii aplicate modelelor
- sfaturi privind good design practice
recomandari
i
ghidare a procesului de dezvoltare - care este fluxul de activit at
care trebuie urmat

software

IP: metodologii
CASE
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

26 / 56

CASE
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP

IP vs informatica?
IP vs ingineria

sistemelor

Proces software
Model al unui proces

Sisteme soft care ofera suport automat activittilor unui proces


soft; de obicei sunt folosite ca suport al unei metodologii
ile de nceput
Upper-CASE - instrumente care ajuta activitat
(analiza cerintelor, proiectare)
Lower-CASE - medii integrate de dezvoltare (implementare,
testare, depanare)

software

IP: metodologii
CASE
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

27 / 56

Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Repartizarea
costurilor
Numarul relativ al
erorilor
Costul relativ al
erorilor
Costurile n
dezvoltare

Provocari in IP

i n IP
Dificultat
Modele de dezvoltare
Exemple de modele de
dezvoltare

28 / 56

Repartizarea costurilor
Continutul cursului

Costurile relative ale stadiilor dezvoltarii

Evaluare
Introducere n

ingineria programarii

Analiza si proiectare

Unde se incadreaza IP
Provocari in IP
Repartizarea
costurilor
Numarul relativ al
erorilor
Costul relativ al
erorilor
Costurile n
dezvoltare

Scrierea codului

33%

17%

50%

i n IP
Dificultat
Modele de dezvoltare
Exemple de modele de
dezvoltare

Testare

29 / 56

Numarul relativ al erorilor


Continutul cursului

Numarul
relativ de erori facute pe parcursul dezvoltarii

Evaluare
Introducere n

ingineria programarii

Proiectare

Unde se incadreaza IP
Provocari in IP
Repartizarea
costurilor
Numarul relativ al
erorilor
Costul relativ al
erorilor
Costurile n
dezvoltare

50%

17%
33%

i n IP
Dificultat
Modele de dezvoltare
Exemple de modele de
dezvoltare

Programare si logica

Sintaxa

30 / 56

Costul relativ al erorilor


Continutul cursului

erorilor
Costul relativ al repararii

Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Repartizarea
costurilor
Numarul relativ al
erorilor
Costul relativ al
erorilor
Costurile n
dezvoltare

Proiectare
80%
20%

Programare, logica, sinta

i n IP
Dificultat
Modele de dezvoltare
Exemple de modele de
dezvoltare

31 / 56

Costurile n dezvoltare
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Repartizarea
costurilor
Numarul relativ al
erorilor
Costul relativ al
erorilor
Costurile n
dezvoltare

Aproximativ 50% sunt costuri de dezvoltare, restul sunt costuri

pentru testare.
esc
Pentru programele specifice costurile de ntretinere depas
deseori costurile de dezvoltare
Costurile variaza n functie de tipul sistemului care este dezvoltat,
siguranta)
impuse
de cerintele si restrictiile (performanta,
sistemului
Distributia costurilor depinde si de modelul de dezvoltare folosit

i n IP
Dificultat
Modele de dezvoltare
Exemple de modele de
dezvoltare

32 / 56

i n IP
Dificultat
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Sistemele mai vechi care trebuie ntretinute si actualizate


Eterogenitatea sistemelor software/hardware
Presiunea pentru a livra programul mai repede, mai repede ...

Unde se incadreaza IP
Provocari in IP
Repartizarea
costurilor
Numarul relativ al
erorilor
Costul relativ al
erorilor
Costurile n
dezvoltare
i n IP
Dificultat
Modele de dezvoltare
Exemple de modele de
dezvoltare

33 / 56

Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Modele de dezvoltare

Etapele dezvoltarii

programelor

Modele de dezvoltare

Analiza cerintelor
Proiectarea
Implementare,

integrare

Validare si verificare
Intretinere
Modele de dezvoltare
Exemple de modele de
dezvoltare

34 / 56

Modele de dezvoltare
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Modele de dezvoltare

Etapele dezvoltarii

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

programelor

Analiza cerintelor
Proiectarea
Implementare,

integrare

Validare si verificare
Intretinere
Modele de dezvoltare
Exemple de modele de
dezvoltare

35 / 56

programelor
Etapele dezvoltarii
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Modele de dezvoltare

Etapele dezvoltarii

programelor

Analiza cerintelor
Proiectarea
Implementare,

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

integrare

Validare si verificare
Intretinere
Modele de dezvoltare
Exemple de modele de
dezvoltare

36 / 56

Analiza cerintelor
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Modele de dezvoltare

Etapele dezvoltarii

programelor

Analiza cerintelor
Proiectarea
Implementare,

Se stabileste ce anume vrea clientul ca programul sa faca


mai clara si
Scopul este nregistrarea cerintelor ntr-o maniera cat
mai fidela
Probleme

Comunicare
Negociere

Sfatuirea
clientului

integrare

Validare si verificare
Intretinere
Modele de dezvoltare
Exemple de modele de
dezvoltare

37 / 56

Proiectarea
Continutul cursului
Evaluare
Introducere n

ingineria programarii

Proiectarea arhitecturala
Din motive de complexitate, programele mari nu pot fi

Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Modele de dezvoltare

Etapele dezvoltarii

programelor

Analiza cerintelor
Proiectarea
Implementare,

integrare

concepute si implementate ca o singura bucata


it n module sau componente mai
Programul este mpart
simple, care pot fi abordate individual

Proiectarea detaliata
Se proiecteaza fiecare modul al aplicatiei, n cele mai mici
detalii.

Validare si verificare
Intretinere
Modele de dezvoltare
Exemple de modele de
dezvoltare

38 / 56

Implementare, integrare
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Modele de dezvoltare

Etapele dezvoltarii

programelor

Analiza cerintelor
Proiectarea
Implementare,

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

integrare

Validare si verificare
Intretinere
Modele de dezvoltare
Exemple de modele de
dezvoltare

39 / 56

Validare si verificare
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Modele de dezvoltare

Etapele dezvoltarii

programelor

ca programul ndeplineste cerintele


Validare: ne asiguram
utilizatorului.

Construim produsul corect?


ca programul este stabil si ca
Verificare: ne asiguram

functioneaza corect din punctul de vedere al dezvoltatorilor.

Construim corect produsul?

Analiza cerintelor
Proiectarea
Implementare,

integrare

Validare si verificare
Intretinere
Modele de dezvoltare
Exemple de modele de
dezvoltare

40 / 56

Intretinere
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Modele de dezvoltare

Etapele dezvoltarii

Dupa livrare
Sunt descoperite greseli ce trebuie reparate

n specificatii
Pot aparea
schimbari

Pot aparea
noi cerinte
Intretinere = gestionarea acestor tipuri de probleme

programelor

Analiza cerintelor
Proiectarea
Implementare,

integrare

Validare si verificare
Intretinere
Modele de dezvoltare
Exemple de modele de
dezvoltare

41 / 56

Modele de dezvoltare
Continutul cursului
Evaluare
Introducere n

ingineria programarii

activitat
ile indicate de etapele dezvoltarii

Cum efectuam
programelor
Exemple de modele de dezvoltare:

Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Modele de dezvoltare

Etapele dezvoltarii

programelor

Analiza cerintelor
Proiectarea
Implementare,

integrare

Validare si verificare
Intretinere
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)

Exemple de modele de
dezvoltare

42 / 56

Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

Exemple de modele de
dezvoltare

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

43 / 56

Modelul n cascada
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP

Ingineria
cerintelor
P roiectarea
arhitecturala

Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

P roiectarea
detaliata

Implementare

T estarea
unitatilor
T estarea
sistemului

Acceptare
44 / 56

Modelul n cascada
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

+: 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

Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

45 / 56

Modelul n cascada cu ntoarcere


Continutul cursului
Evaluare
Introducere n

ingineria programarii

Ingineria
cerintelor

Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

P roiectarea
arhitecturala
P roiectarea
detaliata

Implementare

T estarea
unitatilor
T estarea
sistemului

Acceptare
46 / 56

Modelul n cascada cu ntoarcere


Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP

+: Ofera cadrul pentru remedierea erorilor din pasul precedent


-: Erorile la pasul i care sunt descoperile la pasul i + 2 nu sunt
remediate
itul dezvoltarii

-: Clientul vede produsul final abia la sfars

Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

47 / 56

Modelul n spirala
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Studiul de fezabilitate
Analiza cerintelor
Proiectarea arhitecturii
Implementarea

i:
Pentru fiecare pas, se fac urmatoarele
activitat

Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

1 : pregatirea
[take stock]

2 : gestiunea riscului
[dealing with risk]

4 : planif icarea
urmatorului stagiu
[planning]

3 : dezvoltarea
[development]

48 / 56

Modelul n spirala
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

+: Pastraz
a avantajele modelului n cascada
+: Ia n calcul notiunea de risc
Exemple de riscuri:

O firma concurenta lanseaza un produs rival


ases
te echipa
Un arhitect par
Clientul schimba cerintele
O echipa nu respecta termenele de livrare

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

49 / 56

Prototipizare
Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

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.

50 / 56

Prototipizare: avantaje
Continutul cursului

Avantaje

Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

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

Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

51 / 56

Prototipizare: dezavantaje
Continutul cursului

Dezavantaje

Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare

Mediu artificial, probleme ascunse

Da nu-i apropape gata?! De ce mai dureaza atat?


specificatiile? Pai
as vrea si...
Putem sa schimbam
Adica munca mea este aruncata la gunoi?

Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

52 / 56

Rational Unified Process (0)


Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

53 / 56

Rational Unified Process


Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

ii. Sunt sintetizate necesitat


ile functionale.
Ingineria functionalitat
ile functionale n
Cerinte. Se translateaza necesitat

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.

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

54 / 56

Rational Unified Process (2)


Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

Administrarea configuratiei si a schimbarilor. Se gestioneaz a

ilor din care este compus programul.


versiunile tuturor entitat

Administrarea proiectului. Sunt administrate planificarile


si
resursele.
Administrarea mediului. Se instaleaza si se mentine mediul de
programului.
lucru necesar dezvoltarii
ile necesare punerii n
Plasament. Se efectueaza activitat
functiune a programului.

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

55 / 56

Rational Unified Process (3)


Continutul cursului
Evaluare
Introducere n

ingineria programarii
Unde se incadreaza IP
Provocari in IP
Modele de dezvoltare
Exemple de modele de
dezvoltare

Modelul n cascada
Modelul n cascada
Modelul n cascada

cu ntoarcere
Modelul n cascada
cu ntoarcere

Modelul n spirala
Modelul n spirala
Prototipizare
Prototipizare:

avantaje
Prototipizare:
dezavantaje
Rational Unified
Process (0)
Rational Unified
Process
Rational Unified
Process (2)
Rational Unified
Process (3)

56 / 56

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