Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-01.pdf · ‹Intrebari frecvente...

of 56/56
1 / 56 Ingineria program ˘ arii Adriana Gheorghies ¸, Ovidiu Gheorghies ¸ 3 octombrie 2005
  • date post

    05-Feb-2020
  • Category

    Documents

  • view

    5
  • download

    4

Embed Size (px)

Transcript of Adriana Gheorghies‚, Ovidiu Gheorghies‚ogh/files/ip/curs-01.pdf · ‹Intrebari frecvente...

  • 1 / 56

    Ingineria programării

    Adriana Gheorghieş, Ovidiu Gheorghieş

    3 octombrie 2005

  • Conţinutul cursului

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    2 / 56

    • Modele de dezvoltare• Ingineria cerinţelor• UML (Unified Modeling Language)• Modele de proiectare (Design patterns)• Testare• Metrici software• Managementul proiectelor• Etică şi legislaţie

  • • Conţinutul cursului

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

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    3 / 56

    Evaluare

  • Evaluare

    • Conţinutul cursului

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

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    4 / 56

    • Obiectiv: apreciere cât mai bună a efortului depus de un studentşi a calităţii 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

    • Conţinutul cursului

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

    Introducere ı̂ningineria programării

    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

    • Conţinutul cursului

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

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    6 / 56

    • Probleme, proiecte, referate• Fiecare are alocat un buget şi un termen limită de predare• Obiectiv: să acumulaţi un buget cât mai mare• Trebuie să ne convingeţi să cumpărăm produsul rezultat• Decizia de cumpărare depinde de calitatea produsului• Nu există o limită superioară pentru punctajul total la lab• Minim pentru promovare 150 E

  • Laborator

    • Conţinutul cursului

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

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    7 / 56

    • Puteţi negocia (bugetul, termenul de predare)• Puteţi propune (probleme, modificări la problemele existente)• Puteţi lucra ı̂n echipă. Punctajul obţinut se ı̂mparte ı̂ntre membrii

    echipei. Voi spuneţi cum.• Frauda se pedepseşte prin “amendă”, mentionarea in anexa la

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

    propuse.

  • Rezumat evaluare

    • Conţinutul cursului

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

    Introducere ı̂ningineria programării

    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 adună punctajul de la laborator cu cel de la examen• Notarea se face folosind curba lui Gauss pe punctajul final• Un student care obţine punctajul minim la examen şi la laborator

    este promovat.

  • • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    9 / 56

    Introducere ı̂ningineria programării

  • Motivaţie

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    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 programării propune teorii, metodologii şi instrumente

    pentru dezvoltarea de software profesional• Ingineria programării are alocat un procent semnificativ din PIB

    ı̂n toate statele dezvoltate

  • Motivatie (2)

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    11 / 56

    • 1946 Goldstine şi von Neumann: 1000 de instrucţiuni reprezintăo limită superioară rezonabilă pentru complexitatea problemelorce pot fi concepute ca rezolvabile cu ajutorul calculatorului.

    • După ce a prevăzut că nici un program pentru calculatoarepersonale nu va necesita vreodată mai mult de 64 KB dememorie RAM, Bill Gates admite ı̂n 1995 că lucrurile s-auschimbat ı̂n ultimele două decenii.

  • Motivaţie (3)

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    12 / 56

    • Sistemul de rezervare a biletelor pentru compania aeriană KLMconţinea, ı̂n anul 1992, două milioane de linii de cod ı̂n limbaj deasamblare;

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

    • Programele scrise pentru naveta spaţială 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?

  • Greşeli celebre

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    13 / 56

    • Cecuri enorme la staţiile de benzine. Amuzant...• IBM OS360 contţinea la fiecare relansare 1.000 de greşeli.

    Resemnare...• Pierdere vehicul explorare Venus. Ah, era de fapt ”,” in FOR!...• Sistem de avertizare anti-rachetă activat. Atacăm sau nu?• Ariane 5 explodează. Cost artificii: 500.000.000 $

  • Definitie (?)

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    14 / 56

    • Prima definitie a ingineriei programarii (NATO,1968): Ingineriaprogramării este stabilirea şi utilizarea de principii inginereştisolide pentru a obţine ı̂n mod economic programe care suntsigure şi funcţionează eficient pe maşini de calcul concrete.

    • O definitie mai recenta (si mai rezervata, IEEE StandardGlossary of Software Engineering Tehnology, 1983): Ingineriaprogramării reprezintă abordarea sistematică a dezvoltării,funcţionării, ı̂ntreţinerii, şi retragerii din funcţiune a programelor

  • Costurile alocate programelor

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    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 decâcostul unui sistem (hardware)

    • Costul de dezvoltare al unui program este mai mic decat costulde intreţinere al acestuia. În cazul sistemelor cu o durată marede viaţă costul de ı̂ntreţinere poate depăşi de câteva ori costul dedezvoltare

    • Dezvoltarea eficientă a programelor este una dintre preocupărileingineriei programării

  • Întrebări frecvente

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    16 / 56

    • Ce ı̂nţelegem prin software?• Care sunt atributele unui program bun?• Ce este ingineria programării?• Ce diferenţă este ı̂ntre IP şi informatică?• Ce diferenţă este ı̂ntre IP şi ingineria sistemelor?• Ce este un proces software?• Ce este un model al unui proces software?

  • Întrebări frecvente

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    17 / 56

    • Care sunt costurile ı̂n ingineria programării?• Ce reprezintă metodologiile propuse de ingineria programării?• Ce este CASE (Computer Aided Software Engineering)?• Care sunt principalele dificultăţi ı̂n IP?

  • Software

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    18 / 56

    • Reprezintă programe şi documentaţia aferentă• Produsele software pot fi

    ◦ generice (off-the-shelf) - dezvoltate pentru a fi vândute maimultor clienţi

    ◦ specifice (custom) - dezvoltate pentru a fi vândute unui singurclient (conform cu specificaţiile acestuia)

  • Atributele unui program bun

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    19 / 56

    • să ofere utilizatorilor funcţionalităţile cerute• să fie uşor de menţinut - programul trebuie să evolueze odată cu

    schimbarea nevoilor utilizatorilor• să fie sigur• să fie eficient - să nu irosească resursele sistemului• să fie uşor de folosit

  • Ingineria programării

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării• Motivaţie• Motivatie (2)• Motivaţie (3)• Greşeli celebre• Definitie (?)• Costurile alocateprogramelor• Întrebări frecvente• Întrebări frecvente• Software• Atributele unuiprogram bun• Ingineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    20 / 56

    • Este o disciplină inginerească care se ocupă de toate aspecteledezvoltării unui program

    • Propune adoptarea unei abordări sistematice şi organizate aprocesului de dezvoltare software

    • Propune folosirea tehnicilor şi instrumentelor adecvate având ı̂nvedere

    ◦ problema care trebuie rezolvată◦ restricţiile impuse◦ resursele disponibile

  • • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP• IP vs informatică?• 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 informatică?

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP• IP vs informatică?• 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 ocupă de aspectele teoretice ale dezvoltăriisoftware

    • IP se ocupă de aspectele practice ale dezvoltării software• Teoriile dezvoltate de informatică sunt ı̂n prezent insuficiente

    pentru a constitui o fundament complet pentru IP

  • IP vs ingineria sistemelor

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP• IP vs informatică?• 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 ocupă de toate aspectele dezvoltăriisistemelor de calcul (hardware, software, ingineria proceselor)

    • IP este o parte din ingineria sistemelor• IP se ocupă de

    ◦ specificarea cerinţelor◦ proiectare arhitecturală◦ implementare◦ integrare◦ deployment

    0.1 Procese, modele, metodologii

  • Proces software

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

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

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    24 / 56

    • Reprezintă o mulţime de activităţi al căror scop este dezvoltareasau evoluţia unui program

    • Activităţi generice ı̂n toate procesele soft:

    ◦ specificarea cerinţelor◦ proiectare◦ implementare◦ testare◦ validare◦ evoluţie (ı̂ntreţinere)

  • Model al unui proces software

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP• IP vs informatică?• 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 simplificată a unui proces software prezentatădintr-o anumită perspectivă, cum ar fi:

    ◦ perspectiva fluxului de activităţi (workflow)◦ perspectiva fluxului de informaţii (data-flow)◦ perspectiva rolurilor/acţiunilor (cine ce face)

    • Modele generice ale proceselor software: cascadă, spirală,prototipuri, RUP, extreme programming ...

  • IP: metodologii

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP• IP vs informatică?• 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 abordări structurate ale procesului de dezvoltare care includ:

    • descrieri ale modelelor - pot fi folosite diferite notaţii• reguli - restricţii aplicate modelelor• recomandări - sfaturi privind ”good design practice”• ghidare a procesului de dezvoltare - care este fluxul de activităţi

    care trebuie urmat

  • CASE

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP• IP vs informatică?• 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 oferă suport automat activitţilor unui processoft; de obicei sunt folosite ca suport al unei metodologii

    • Upper-CASE - instrumente care ajută activităţile de ı̂nceput(analiza cerinţelor, proiectare)

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

  • • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ı̂ndezvoltare• Dificultăţi ı̂n IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    28 / 56

    Provocari in IP

  • Repartizarea costurilor

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ı̂ndezvoltare• Dificultăţi ı̂n IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    29 / 56

    Costurile relative ale stadiilor dezvoltării

    33%17%

    50%

    Analiza si proiectare

    Scrierea codului

    Testare

  • Numarul relativ al erorilor

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ı̂ndezvoltare• Dificultăţi ı̂n IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    30 / 56

    Numărul relativ de erori facute pe parcursul dezvoltării

    50%

    33%17%

    Proiectare

    Sintaxa

    Programare si logica

  • Costul relativ al erorilor

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ı̂ndezvoltare• Dificultăţi ı̂n IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    31 / 56

    Costul relativ al reparării erorilor

    80%

    20%

    Proiectare

    Programare, logica, sintaxa

  • Costurile ı̂n dezvoltare

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ı̂ndezvoltare• Dificultăţi ı̂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 ı̂ntreţinere depăşescdeseori costurile de dezvoltare

    • Costurile variază ı̂n funcţie de tipul sistemului care este dezvoltat,de cerinţele şi restricţiile (performanţă, siguranţă) impusesistemului

    • Distribuţia costurilor depinde şi de modelul de dezvoltare folosit

  • Dificultăţi ı̂n IP

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP• Repartizareacosturilor• Numarul relativ alerorilor• Costul relativ alerorilor• Costurile ı̂ndezvoltare• Dificultăţi ı̂n IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare

    33 / 56

    • Sistemele mai vechi care trebuie ı̂ntreţinute şi actualizate• Eterogenitatea sistemelor software/hardware• Presiunea pentru a livra programul mai repede, mai repede ...

  • • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltăriiprogramelor• Analiza cerinţelor• Proiectarea• Implementare,integrare• Validare şi verificare• Întreţinere• Modele de dezvoltare

    Exemple de modele dedezvoltare

    34 / 56

    Modele de dezvoltare

  • Modele de dezvoltare

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltăriiprogramelor• Analiza cerinţelor• Proiectarea• Implementare,integrare• Validare şi verificare• Întreţinere• Modele de dezvoltare

    Exemple de modele dedezvoltare

    35 / 56

    • Pentru a dezvolta un program este nevoie de:

    ◦ O inţelegere clară a ceea ce se cere◦ Un set de metode şi instrumente de lucru◦ Un plan de acţiune

    • Plan de acţiune = şablon = model de dezvoltare

  • Etapele dezvoltării programelor

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltăriiprogramelor• Analiza cerinţelor• Proiectarea• Implementare,integrare• Validare şi verificare• Întreţinere• Modele de dezvoltare

    Exemple de modele dedezvoltare

    36 / 56

    • Analiza cerinţelor• Proiectarea architecturală• Proiectarea detaliată• Scrierea codului• Integrarea componentelor• Validare• Verificare• Întreţinere

  • Analiza cerinţelor

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltăriiprogramelor• Analiza cerinţelor• Proiectarea• Implementare,integrare• Validare şi verificare• Întreţinere• Modele de dezvoltare

    Exemple de modele dedezvoltare

    37 / 56

    • Se stabileşte ce anume vrea clientul ca programul să facă• Scopul este ı̂nregistrarea cerinţelor ı̂ntr-o manieră cât mai clară şi

    mai fidelă• Probleme

    ◦ Comunicare◦ Negociere◦ Sfătuirea clientului

  • Proiectarea

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltăriiprogramelor• Analiza cerinţelor• Proiectarea• Implementare,integrare• Validare şi verificare• Întreţinere• Modele de dezvoltare

    Exemple de modele dedezvoltare

    38 / 56

    • Proiectarea arhitecturală

    ◦ Din motive de complexitate, programele mari nu pot ficoncepute şi implementate ca o singură bucată

    ◦ Programul este ı̂mpărţit ı̂n module sau componente maisimple, care pot fi abordate individual

    • Proiectarea detaliată

    ◦ Se proiectează fiecare modul al aplicaţiei, ı̂n cele mai micidetalii.

  • Implementare, integrare

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltăriiprogramelor• Analiza cerinţelor• Proiectarea• Implementare,integrare• Validare şi verificare• Întreţinere• Modele de dezvoltare

    Exemple de modele dedezvoltare

    39 / 56

    • Implementare

    ◦ Proiectul detaliat este transpus ı̂ntr-un limbaj de programare◦ Acesta se realizează modular, pe structura rezultată la

    proiectarea arhitecturală

    • Integrare

    ◦ Modelul big-bang◦ Modelul incremental

  • Validare şi verificare

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltăriiprogramelor• Analiza cerinţelor• Proiectarea• Implementare,integrare• Validare şi verificare• Întreţinere• Modele de dezvoltare

    Exemple de modele dedezvoltare

    40 / 56

    • Validare: ne asigurăm că programul ı̂ndeplineşte cerinţeleutilizatorului.

    ◦ Construim produsul corect?

    • Verificare: ne asigurăm că programul este stabil şi căfuncţionează corect din punctul de vedere al dezvoltatorilor.

    ◦ Construim corect produsul?

  • Întreţinere

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltăriiprogramelor• Analiza cerinţelor• Proiectarea• Implementare,integrare• Validare şi verificare• Întreţinere• Modele de dezvoltare

    Exemple de modele dedezvoltare

    41 / 56

    • După livrare

    ◦ Sunt descoperite greşeli ce trebuie reparate◦ Pot apărea schimbări ı̂n specificaţii◦ Pot apărea noi cerinţe

    • Întreţinere = gestionarea acestor tipuri de probleme

  • Modele de dezvoltare

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare• Modele de dezvoltare• Etapele dezvoltăriiprogramelor• Analiza cerinţelor• Proiectarea• Implementare,integrare• Validare şi verificare• Întreţinere• Modele de dezvoltare

    Exemple de modele dedezvoltare

    42 / 56

    • Cum efectuăm activităţile indicate de etapele dezvoltăriiprogramelor

    • Exemple de modele de dezvoltare:

    ◦ Ad-hoc: descurca-te cum poţi◦ Modelul ı̂n cascadă (cu feedback)◦ Prototipizare◦ Metode formale◦ Modelul ı̂n spirală◦ RUP (Rational Unified Process)◦ XP (Extreme Programming)

  • • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

    43 / 56

    Exemple de modele dedezvoltare

  • Modelul ı̂n cascadă

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• 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 cascadă

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

    45 / 56

    • +: Împarte o sarcină complexă ı̂n paşi mai mici• +: Uşor de administrat şi controlat• +: Fiecare pas are ca rezultat un produs bine definit• -: Erorile se propagă ı̂ntre paşi• -: Nu există mecanisme de reparare a erorilor

  • Modelul ı̂n cascadă cu ı̂ntoarcere

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• 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 cascadă cu ı̂ntoarcere

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

    47 / 56

    • +: Oferă 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 sfârşitul dezvoltării

  • Modelul ı̂n spirală

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

    48 / 56

    • Studiul de fezabilitate• Analiza cerinţelor• Proiectarea arhitecturii• Implementarea

    Pentru fiecare pas, se fac următoarele activităţi:

    1 : pregatirea[take stock]

    2 : gestiunea riscului[dealing with risk]

    3 : dezvoltarea[development]

    4 : planificareaurmatorului stagiu

    [planning]

  • Modelul ı̂n spirală

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

    49 / 56

    • +: Păstrază avantajele modelului ı̂n cascadă• +: Ia ı̂n calcul noţiunea de risc

    Exemple de riscuri:

    • O firmă concurentă lansează un produs rival• Un arhitect părăseşte echipa• Clientul schimbă cerinţele• O echipă nu respectă termenele de livrare

  • Prototipizare

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• 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.

    ◦ Evoluţionar

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

    apoi noi functionalitati.

  • Prototipizare: avantaje

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• 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 specificaţiilor◦ Clienţii pot schimba cerinţele (e ieftin de gestionat)◦ Întreţinere ieftină (verificare pe parcus)◦ Se poate facilita instruirea utilizatorilor

  • Prototipizare: dezavantaje

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• 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 durează atât?◦ Putem să schimbăm specificaţiile? Păi aş vrea şi...◦ Adică munca mea este aruncată la gunoi?

  • Rational Unified Process (0)

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

    53 / 56

  • Rational Unified Process

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

    54 / 56

    • Ingineria functionalităţii. Sunt sintetizate necesităţile funcţionale.• Cerinţe. Se translatează necesităţile funcţionale ı̂n

    comportament de sisteme automate.• Analiza şi Proiectare. Se translatează cerinţele ı̂n arhitectura

    programului.• Implementare. Se crează programul conform cu arhitectura astfel

    ı̂ncat comportamentul acestuia sa fie consistent cu cel dorit.• Testare. Se asigură că comportamentele cerute sunt corecte şi

    că toate comportamentele necesare sunt prezente ı̂n program.

  • Rational Unified Process (2)

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

    55 / 56

    • Administrarea configuratiei şi a schimbarilor. Se gestioneazăversiunile tuturor entităţilor din care este compus programul.

    • Administrarea proiectului. Sunt administrate planificările şiresursele.

    • Administrarea mediului. Se instalează şi se menţine mediul delucru necesar dezvoltării programului.

    • Plasament. Se efectuează activităţile necesare punerii ı̂nfuncţiune a programului.

  • Rational Unified Process (3)

    • Conţinutul cursului

    Evaluare

    Introducere ı̂ningineria programării

    Unde se incadreaza IP

    Provocari in IP

    Modele de dezvoltare

    Exemple de modele dedezvoltare• Modelul ı̂n cascadă• Modelul ı̂n cascadă• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n cascadăcu ı̂ntoarcere• Modelul ı̂n spirală• Modelul ı̂n spirală• Prototipizare• Prototipizare:avantaje• Prototipizare:dezavantaje• Rational UnifiedProcess (0)• Rational UnifiedProcess• Rational UnifiedProcess (2)• Rational UnifiedProcess (3)

    56 / 56

    Continutul cursuluiEvaluareEvaluareApreciere cursLaboratorLaboratorRezumat evaluare

    Introducere în ingineria programariiMotivatieMotivatie (2)Motivatie (3)Greseli celebreDefinitie (?)Costurile alocate programelorÎntrebari frecventeÎntrebari frecventeSoftwareAtributele unui program bunIngineria programarii

    Unde se incadreaza IPIP vs informatica?IP vs ingineria sistemelorProces softwareModel al unui proces softwareIP: metodologiiCASE

    Provocari in IPRepartizarea costurilorNumarul relativ al erorilorCostul relativ al erorilorCosturile în dezvoltareDificultati în IP

    Modele de dezvoltareModele de dezvoltareEtapele dezvoltarii programelorAnaliza cerintelorProiectareaImplementare, integrareValidare si verificare ÎntretinereModele de dezvoltare

    Exemple de modele de dezvoltareModelul în cascadaModelul în cascadaModelul în cascada cu întoarcereModelul în cascada cu întoarcereModelul în spiralaModelul în spiralaPrototipizarePrototipizare: avantajePrototipizare: dezavantajeRational Unified Process (0)Rational Unified ProcessRational Unified Process (2)Rational Unified Process (3)