Sunteți pe pagina 1din 31

Platformă de e‐learning și curriculă

gș e‐content 
pentru învățământul superior tehnic

 Instrumente pentru Dezvoltarea Programelor
p g

1. Introducere in problematica dezvoltării programelor software. 
Modele actuale de dezvoltare Procesul software si rolul
Modele actuale de dezvoltare. Procesul software si rolul 
instrumentelor.
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Etapele dezvoltarii software

„Cel care nu reuseste sa planuiasca, planuieste 
un esec.““ (proverb)
( b)

IDP – Instrumente pentru Dezvoltarea Programelor 2
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Recapitulare noţiuni
l anterioare
 Proces software = set structurat de activităţi necesare
pentru dezvoltarea unui sistem software:
Specificaţie
Proiectare
Implementare
Validare
V lid
Evoluţie
 Un model
U d l al procesului
l l i software reprezintă
f i ă o 
reprezentare abstractă a respectivului proces
 = o descriere
d i a unuii proces dintr‐o anumită
di i ă perspectivă
i ă
IDP – Instrumente pentru Dezvoltarea Programelor 3
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Modele generice de procese de dezvoltare
 Modelul cascadă
Faze separate şi distincte de specificare şi dezvoltare
 Modelul evoluţionar
ţ
Specificaţia, dezvoltarea şi validarea sunt etape întreţăsute
 Dezvoltarea bazată p
pe componente
p
Sistemul este asamblat pornind de la un set de componente pre‐
existente
 Există variante ale acestor modele:
Dezvoltarea formală → implică folosirea unui proces de dezvoltare
bazat pe modelul cascadă, dar specificaţia formală este
formală este rafinată în 
în
câteva iteraţii succesive până la stadiul de proiect implementabil

IDP – Instrumente pentru Dezvoltarea Programelor 4
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

O b d
O abordare pragmatică
i ă
Planul general al unui proiect software:

1. Ce trebuie facut? (‐> task‐uri/activităţi/paşi)
2. De ce să implementăm un task? (‐> rezultate, produse)
3. Când ar trebui făcut? (‐> planificare)
4. Cine e implicat? (‐> oameni, roluri, responsabilităţi)
5
5. Cum ar trebui facut? (‐> metode, standarde, instrumente)
facut? (‐> metode standarde instrumente)

 Există diverse modele de procese software


 Nu există un singur model de proces aplicabil pentru oricare proiect
software (nu există “one size fits all”)
 Folosirea unui p
proces de dezvoltare adecvat p
poate îmbunătăţi ţ
calitatea
l produsului
d l final
f l

IDP – Instrumente pentru Dezvoltarea Programelor 5
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

F l
Fazele unui proces (1)
i (1)
Abordarea cea mai simplă: 
p
1. Scriem/modificăm programul (etapa implementării)
2. Găsim defecte, ne întoarcem la 1.

 Probleme:
Modificările ad‐hoc efectuate de‐a lungul timpului încurcă structura
programuluil i
Rezultatul: schimbări ulterioare costă din ce în ce mai mult (schimbi într‐o 
parte, strici în alta, …)

 Soluţia: 
O etapă de proiectare în care este definită structura întregului program
Modificările aduse implementării sunt permise, dar
Modificările aduse permise dar ele trebuie să respecte
proiectul

IDP – Instrumente pentru Dezvoltarea Programelor 6
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

F l
Fazele unui proces (2)
i (2)
Model de proces
p îmbunătăţit:
ţ
1. Definim un proiect al programului (etapa de proiectare)
2. Scriem/modificăm programul (etapa implementării)
3. Găsim defecte, ne întoarcem la 2.

 Probleme:
bl
Programul face ceea ce doreşte utilizatorul?
Rezultatul: programul poate fi refuzat de client.

 Soluţia:
O
O etapă
etapă de analiză
de analiză în care sunt
în care sunt specificate cerinţele programului
Proiectul este definit astfel încât să fie satisfăcute cerinţele utilizatorului

IDP – Instrumente pentru Dezvoltarea Programelor 7
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

F l
Fazele unui proces (3)
i (3)
Un model chiar mai bun:
1. Analizăm cerinţele utilizatorului (faza de analiză)
2. Definim un proiect al programului (etapa de proiectare)
3. Scriem/modificăm programul (etapa implementării)
4. Găsim defecte, ne întoarcem la 3.

 E de ajuns?
 Lipseşte etapa de planificare şi pregătire a testării (etapa 4) 
– sistemul e sistematic verificat de posibile defecte (etapă
de sine stătătoare)
de sine stătătoare)

IDP – Instrumente pentru Dezvoltarea Programelor 8
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

E
Etapele unui proces
l i
Etapa Rezultat
A li
Analiza Specificarea
S ifi cerintelor
i l utilizatorului
ili l i – posibil
ibil un
document al cerintelor
Proiectare Specificarea structurii si componentelor aplicatiei
software – posibil un model al sistemului
Implementare Programul executabil (calitate “alpha”)
Testare Program executabil (calitate “release”)
release )

• Cele mai comune etape ale dezvoltării


• Mai pot apărea: deployment/lansare,
deployment/lansare operare
operare, asigurarea
de suport, instruire, mentenanţă
• Toate fazele sunt cunoscute sub denumirea g
generică de
Software Development Life Cycle (SDLC)
IDP – Instrumente pentru Dezvoltarea Programelor 9
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

SSoftware Development Life Cycle (SDLC)
f D l Lif C l (SDLC)

 Modelul generic al dezvoltării unui proiect software
M d l l i ld l ă ii i i f

IDP – Instrumente pentru Dezvoltarea Programelor 10
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Cu ce dezvoltam?
d l ?
 Instrumente:
Constructie: make, ant, rake…
Compilare: gcc, Microsoft Visual Studio, CodeWarrior, Xcode…
Depanare: gdb, GNU Binutils…
Dezasamblare
Generatoare de documentatie: doxygen, javadoc, asciidoc…
Metode formale
Verificare a compatibilitatii componentelor binare
Generatoare de interfete
Generatoare
Generatoare de parsere: Lex, Yacc
de parsere: Lex Yacc
Analiza performantelor
Colaborare: cvs, svn, git, bazaar…
Analiza statica: jtest, lint...
statica: jtest lint
…
IDP – Instrumente pentru Dezvoltarea Programelor 11
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Ce urmeaza??

 Integrated Development Environments (IDEs)
g p ( )
Multe instrumente intr‐un singur pachet
Proiecte de dimensiuni mari
Dezvoltare de aplicatii
de aplicatii nivel “enterprise”

Xcode

IBM Rational Application Developer

Code::Blocks

IDP – Instrumente pentru Dezvoltarea Programelor 12
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Enterprise??
 Functii business la nivel de organizatie comerciala
 Performanta
 Scalabilitate
 Robustete

IDP – Instrumente pentru Dezvoltarea Programelor 13
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Limbaje, Procese si Instrumente
b
Limbaje software

Instrumentele
nu pot exista
separat

Procese Instrumente
software software

IDP – Instrumente pentru Dezvoltarea Programelor 14
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Ce este ingineria programelor software?

 Adesea comparata cu constructia industriala
e.g., construirea unui pod
 O analogie buna:
Dimensiunea conteaza: casuta cainelui vs. un zgarie‐nori
Efort de echipa ce necesita planificare corecta
Dificultati asemanatoare in modificarea proiectului
Termeni comuni: constructie, arhitectura, componente…

IDP – Instrumente pentru Dezvoltarea Programelor 15
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Software: probleme uzuale
f bl l

 Dimensiunea
 Interactiunea cu oamenii
 Siguranta
 Securitatea
S i
 Portabilitatea
 Costul 
Costul
 Certitudinea asupra cerintelor

IDP – Instrumente pentru Dezvoltarea Programelor 16
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Curba sigurantei
b

 Hardware‐ul se 
Hardware ul se
uzeaza in intregime

 Software‐ul sufera 
modificari
df
sau mediul sau sufera 
modificari
sursa: “Software Engineering: CS169”, Prof. Sen, Berkeley University

IDP – Instrumente pentru Dezvoltarea Programelor 17
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

sursa: “Software Engineering: CS169”, Prof. Sen, Berkeley University

IDP – Instrumente pentru Dezvoltarea Programelor 18
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

IDP – Instrumente pentru Dezvoltarea Programelor 19
19
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Solutia?
l ?
 Specificatii
Notarea functionalitatilor cerute din partea aplicatiei software
Insa: 
•Toata lumea trebuie sa le inteleaga
•Trebuie sa mentinem specificatiile actualizate
 Probleme?
Pot exista ambiguitati si contradictii in intelegerea
specificatiilor
Acestea conduc la defecte de dezvoltare

IDP – Instrumente pentru Dezvoltarea Programelor 20
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Problema #1
bl

 O specificatie permite:

Verificarea functionalitatii corecte a aplicatiei software

Constructia in echipe

 Verificarea
f ca aplicatia
l software functioneaza
f f = proces dificil:
df l

Verificarea codului (code review)

Instrumente de analiza statica

Instrumente si metode de testare


de testare

IDP – Instrumente pentru Dezvoltarea Programelor 21
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Problema #2
bl

 Minimizarea timpului
Time‐to‐market: presiune sporita asupra procesului de 
dezvoltare software
 Cod scris mai repede?
Angajam mai multi programatori!
multi programatori!
 Cati programatori?
Cate task‐uri
task uri independente putem genera
 Lucru la mai multe module concurent
Paralelism = timp
timp salvat

IDP – Instrumente pentru Dezvoltarea Programelor 22
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Dezvoltare paralela?
l l l ?

 Probleme ca in programarea paralela

 Mai multi oameni
M i li i = maii multa
l comunicatie
i i

Greu de gestionat

Overhead de comunicatie

 Constrangeri secventiale inerente

e.g.,
e.g., arhitectura
arhitectura pipeline

IDP – Instrumente pentru Dezvoltarea Programelor 23
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Interfete
f

 Componentele dezvoltate ideal sunt independente


dar trebuie sa poata lucra impreuna in sistemul final
 Interfete intre componente
Pentru a le izola
Pentru a ne asigura ca in final sistemul functioneaza
 Interfetele nu pot suferi schimbari (radicale)!

IDP – Instrumente pentru Dezvoltarea Programelor 24
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Definirea interfetelor
f f l
 Ce sunt interfetele?

Specificatii… de un tip special

 Definesc granite intre

componente
componente … 

si oameni

 Ne putem opri la specificarea interfetelor

programatorii
t ii decid
d id asupra partilor
til interne
i t

IDP – Instrumente pentru Dezvoltarea Programelor 25
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Arhitectura software
h f

 Definirea interfetelor
Definirea interfetelor

putem descompune sistemul in parti separate 

granitele conduc la definirea de interfete

 Decompozitia? depinde de:

ce face sistemul

cum construim sistemul

cine construieste sistemul
IDP – Instrumente pentru Dezvoltarea Programelor 26
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Decompozitia: Ce face sistemul
f l

 Insasi aplicatia poate conduce la o descompunere


conduce la o descompunere naturala
 e.g., compilator = banda de asamblare compusa din componente
pentru:
Analiza lexicala
Analiza sintactica
Analiza semantica
Generare cod intermediar
Optimizare cod
Generare cod final
...
IDP – Instrumente pentru Dezvoltarea Programelor 27
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Decompozitia: Cum construim sistemul

 Constructia unei case necesita si montarea unor schele auxiliare


 … la fel si constructia aplicatiilor software
 Referire la:
Cod suplimentar neinclus in produsul final
Influenta subsistemelor externe incluse
 Ex: cod pentru testare, stub‐uri, modalitati de constructie si
rulare a sistemelor partiale, prototipuri…

IDP – Instrumente pentru Dezvoltarea Programelor 28
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

D
Decompozitia: Cine construieste sistemul
iti Ci t i t it l
 Arhitectura software reflecta structura organizatiei ce construieste 
aplicatia
 Ex: 5 programatori = 5 componente

IDP – Instrumente pentru Dezvoltarea Programelor 29
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Concluzii
l

 Ingineria programelor se ocupa de cateva aspecte:
Specificare: Cunoaste ce vrei sa faci
Proiectare: Dezvolta un plan eficient de a‐l face
Implementare: Pune‐l in practica
l l
Validare: Verifica ca in final ai obtinut ce ai dorit
 Instrumentele de dezvoltare a aplicatiilor intervin in toate aceste 
etape

IDP – Instrumente pentru Dezvoltarea Programelor 30
Platformă de e‐learning și curriculă e‐content pentru 
învățământul superior tehnic

Sumar

 Procesul software si fazele acestuia
Procesul software si fazele acestuia

 Probleme uzuale in ingineria programelor si modalitati de 
rezolvare a acestora

 Specificatii

 Interfete

 Arhitectura software

IDP – Instrumente pentru Dezvoltarea Programelor 31

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

  • Teza Licenta Magazin Online
    Teza Licenta Magazin Online
    Document26 pagini
    Teza Licenta Magazin Online
    KristinutzaProdan
    0% (1)
  • Proiectul de An
    Proiectul de An
    Document43 pagini
    Proiectul de An
    Rosca Doinita
    Încă nu există evaluări
  • ExamAC Ro
    ExamAC Ro
    Document16 pagini
    ExamAC Ro
    Rosca Doinita
    100% (1)
  • Ac Răspunsuri
    Ac Răspunsuri
    Document19 pagini
    Ac Răspunsuri
    Rosca Doinita
    Încă nu există evaluări
  • Proiect de An
    Proiect de An
    Document23 pagini
    Proiect de An
    Cristina Florea
    Încă nu există evaluări
  • Amoo Partea I
    Amoo Partea I
    Document20 pagini
    Amoo Partea I
    Rosca Doinita
    Încă nu există evaluări
  • Raspunsuri AMSI
    Raspunsuri AMSI
    Document11 pagini
    Raspunsuri AMSI
    Cristina Florea
    Încă nu există evaluări
  • BDC Laborator 13
    BDC Laborator 13
    Document5 pagini
    BDC Laborator 13
    Rosca Doinita
    Încă nu există evaluări
  • Lab10 11 12 13BDC
    Lab10 11 12 13BDC
    Document7 pagini
    Lab10 11 12 13BDC
    Rosca Doinita
    Încă nu există evaluări
  • Examen TIDPP
    Examen TIDPP
    Document3 pagini
    Examen TIDPP
    Rosca Doinita
    Încă nu există evaluări
  • Orar Examen FR IV
    Orar Examen FR IV
    Document3 pagini
    Orar Examen FR IV
    Rosca Doinita
    Încă nu există evaluări
  • Examen PS
    Examen PS
    Document45 pagini
    Examen PS
    Rosca Doinita
    Încă nu există evaluări
  • Lab4 Aplicatii Web Ro
    Lab4 Aplicatii Web Ro
    Document1 pagină
    Lab4 Aplicatii Web Ro
    Rosca Doinita
    Încă nu există evaluări
  • PR 7
    PR 7
    Document41 pagini
    PR 7
    Rosca Doinita
    Încă nu există evaluări
  • Lab2 Studiu IDE Ro
    Lab2 Studiu IDE Ro
    Document1 pagină
    Lab2 Studiu IDE Ro
    Rosca Doinita
    Încă nu există evaluări
  • Lab1 Git Ro
    Lab1 Git Ro
    Document17 pagini
    Lab1 Git Ro
    Rosca Doinita
    Încă nu există evaluări
  • Prezentare 7
    Prezentare 7
    Document8 pagini
    Prezentare 7
    Rosca Doinita
    Încă nu există evaluări
  • Lab3 Gen Doc Ro
    Lab3 Gen Doc Ro
    Document1 pagină
    Lab3 Gen Doc Ro
    Rosca Doinita
    Încă nu există evaluări
  • Prezentare 11
    Prezentare 11
    Document16 pagini
    Prezentare 11
    Rosca Doinita
    Încă nu există evaluări
  • PR 5
    PR 5
    Document67 pagini
    PR 5
    Rosca Doinita
    Încă nu există evaluări
  • PR 6
    PR 6
    Document110 pagini
    PR 6
    Rosca Doinita
    Încă nu există evaluări
  • Prezentare 7
    Prezentare 7
    Document8 pagini
    Prezentare 7
    Rosca Doinita
    Încă nu există evaluări
  • Prezentare 2
    Prezentare 2
    Document9 pagini
    Prezentare 2
    Rosca Doinita
    Încă nu există evaluări
  • Prezentare 3
    Prezentare 3
    Document10 pagini
    Prezentare 3
    Rosca Doinita
    Încă nu există evaluări
  • Prezentare 10
    Prezentare 10
    Document12 pagini
    Prezentare 10
    Rosca Doinita
    Încă nu există evaluări
  • Prezentare 7
    Prezentare 7
    Document8 pagini
    Prezentare 7
    Rosca Doinita
    Încă nu există evaluări
  • Prezentare 8
    Prezentare 8
    Document34 pagini
    Prezentare 8
    Rosca Doinita
    Încă nu există evaluări
  • pr8 PDF
    pr8 PDF
    Document113 pagini
    pr8 PDF
    Rosca Doinita
    Încă nu există evaluări
  • PR 6
    PR 6
    Document110 pagini
    PR 6
    Rosca Doinita
    Încă nu există evaluări
  • PR 7
    PR 7
    Document41 pagini
    PR 7
    Rosca Doinita
    Încă nu există evaluări