Documente Academic
Documente Profesional
Documente Cultură
Ingineria programării
2. Definitie.
o Prima definiție a ingineriei programării data de NATO in anul 1968:
Ingineria programării este stabilitatea si utilizarea de principi inginerești
solide pentru a obține in mod economic programe care sunt sigure si
funcționează eficient pe mașini de calcul concrete. (F. L. Bauer )
Statistici.
o Va fi considerat că un proiect software are succes, dacă este realizat într-
un timp rezonabil şi cu un buget rezonabil. Un eşec al unui produs
software are loc atunci când produsul nu este realizat sau când nu poate fi
folosit.
Studii de succes: USA’82 - Gibson & Singer
18 proiecte
12% 19% Succes: 17%
25% Parţial în folosinţă: 28%
32% Satisfacătoare: 11%
12%
Eşec: 22%
Neevaluate: 11%
Motivele eşecurilor
◦ Probleme de organizare
◦ Noile metode de lucru şi politicile salariale
◦ Modificările neprevăzute în afacere
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
Statistici.
Studii de succes: USA’82 - Gibson & Singer
Din peste 100 proiecte
25% 33%
Succes: 33%
Cu probleme: 42%
42%
Eşec: 25%
Motivele eşecurilor
◦ Slaba pregătire a inginerilor software
◦ Resurse insuficiente
◦ Probleme de management
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
3. Greșeli celebre
o Sistemul de operare IBM OS360 conținea la fiecare relansare 1.000 de
greșeli.
5. Nevoia de programe.
o In general economia tuturor statelor dezvoltate depinde de sisteme
informatice bine puse la punct.
o Tot mai multe mai multe sisteme de siguranța sunt controlate de
calculator.
o Este necesară identificarea de teorii, metode şi instrumente pentru
dezvoltarea profesionistă de programe.
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
o Eficienţa.
Produsul nu trebuie să folosească în pierdere resursele sistemului.
o Instruire.
Acces rapid la documentația produsului cu un “help” cat mai eficient.
o Fiabilitatea.
Produsul trebuie să se comporte după cerinţele utilizatorului şi să nu „cadă”
mai mult decât e prevăzut în specificaţiile sale.
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
Analiza
Ce dorim sa construim
Proiectarea
Cum vom construi
Implementarea
Construirea propriu-zisă
Testarea
Asigurarea calităţii
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
Analiza
o Această fază defineşte cerinţele sistemului, independent de modul în care acestea vor fi îndeplinite
o Se defineşte problema pe care doreşte să o rezolve clientul
o Rezultatul este documentul cerinţelor, care trebuie să precizeze clar ce trebuie construit
Proiectarea
o Pe baza cerinţelor din faza de analiză, se stabileşte arhitectura sistemului:
Componentele sunt elementele constructive ale produsului. Acestea pot fi create de la zero sau reutilizate dintr-o
bibliotecă de componente. Componentele rafinează şi capturează semnificaţia detaliilor din documentul cerinţelor
Interfeţele ajută la îmbinarea componentelor. O interfaţă reprezintă graniţa dintre două componente, utilizată pentru
comunicarea dintre acestea. Prin intermediul interfeţei, componentele pot interacţiona
Comportamentul, determinat de interfaţă, reprezintă răspunsul unei componente la stimulii acţiunilor altor componente
Implementarea
o În această fază este construit sistemul, ori plecând de la zero, ori prin asamblarea unor componente pre-existente
o Scopul este producerea sistemului propriu-zis
Testarea
o Asigură calitatea produsului software
o Scopul este realizarea unui produs competitiv
o Un produs performant creşte satisfacţia clienţilor, iar funcţionalitatea poate fi dezvoltată în versiuni ulterioare
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
Implementare
Testarea
unităților
Testarea
sistemului
Ingineria
cerințelor
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
o Modelul
în cascadă cu întoarcere. + Oferă cadrul pentru remedierea erorilor din pasul
precedent.
Ingineria
- Erorile la pasul i care sunt descoperile la pasul i + 2 nu
cerințelor
sunt remediate.
- Clientul vede produsul final abia la sfârșitul dezvoltării.
Proiectarea
arhitecturala
Proiectarea
detaliata
Implementare
Testarea
unităților
Testarea
sistemului
Ingineria
cerințelor
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
Proiectarea
detaliata
Implementare
Testarea
unităților
Testarea
sistemului
Ingineria
cerințelor
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
o Modelul
în spirală. Exemple de riscuri:
- O firma concurentă lansează un produs rival.
+ Păstrează avantajele modelului în cascadă. - Un programator părăsește echipa.
+ Ia ˆîn calcul noțiunea de risc. - Clientul schimbă cerințele.
- O echipă nu respectă termenele de livrare.
4. Planificarea
3. Dezvoltarea
următorului stagiu development
planning
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
o Modelul
ecluză. (watersluice) + Preia natura iterativă a metodologiei spirală, la care adaugă progresul sigur
al metodologiei cascadă
+ Echipele nu sunt blocate într-o serie de cerinţe sau într-o arhitectură imobilă
care se pot dovedi mai târziu inadecvate sau chiar greşite
+ Pentru respectarea termenelor limită, impune date de îngheţare a unor faze
- Presupune asumarea unor responsabilităţi privind delimitarea etapelor şi
îngheţarea succesivă a fazelor de dezvoltare.
- Presupune crearea unui mediu de lucru în care acceptarea responsabilităţii
pentru o decizie care se dovedeşte mai târziu greşită să nu se repercuteze în
mod negativ asupra individului
Ingineria
cerințelor
Proiectarea
Proiectarea
arhitecturala
arhitecturala
Proiectarea
Proiectarea
detaliata Implementare
detaliata Testarea
Testarea unităților
Implementare
Implementare
unităților Testarea
Produs
Testarea Testarea Testarea sistemului
unităților unităților sistemului
Testarea Testarea
sistemului sistemului
Ingineria
cerințelor
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
Proiectarea Testarea
arhitecturala sistemului
Proiectarea Testarea
detaliata unităților
Implementare
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
Proiectarea
arhitecturala
Proiectarea
Ingineria Server OS detaliata
cerințelor
Implementare
Testarea
unităților
Testarea
sistemului
Ingineria
cerințelor
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
11) Prototipizare.
Tipuri de prototipuri
De aruncat (throw-away)
Scop: clarificarea specificaţiilor
Se dezvoltă repede, orice altceva e secundar (quick-and-dirty)
Util în a rezolva “architecural/technology spikes”
Programul “adevărat” este scris apoi de la 0
Evoluţionar
Scop: construire incrementală a produsului final
Se construieşte un nucleu funcţional la care se adaugă apoi noi funcţionalităţi
http://fedir.github.io/web/2014/05/19/rup/
UNIVERSITATEA “AUREL VLAICU” DIN ARAD Student: Șerban Ovidiu Florin
FACULTATEA DE STIINŢE EXACTE
DOMENIUL INFORMATICĂ
Bibliografie:
• Ovidiu Gheorghieş:
http://www.infoiasi.ro/~ogh/files/ip/curs-01.pdf
• Adrian Iftene:
http://thor.info.uaic.ro/~adiftene/Scoala/2012/IP/
• Andy Kramek, New Software - Build or Buy?
A Personal View:
http://weblogs.foxite.com/andykramek/archive/2009/07/25/8674.aspx
Links:
• Internet
• Wikipedia
• Failure rate: http://www.it-cortex.com/Stat_Failure_Rate.htm
• RUP: http://fedir.github.io/web/2014/05/19/rup/