Documente Academic
Documente Profesional
Documente Cultură
Universitatea Piteşti 1
Bibliografie Curs
Main text:“Software Engineering: A Practitioner’s
Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-
Hill, 2001
Universitatea Piteşti 2
Obiective curs
Definirea conceptului de inginerie software
Înţelegerea importanţei ingineriei software
Abordarea şi discutarea caracteristicilor importante în
software
Înţelegerea faptului că aprecierea diferitelor aplicaţii
se poate evalua diferit
Universitatea Piteşti 3
Un program simplu
“Scrie un program care obţine studenţii care au
promovat în ordinea rezultatelor obţinute pe parcursul
anilor de studiu şi tipăreşte o listă cu aceştia”
Universitatea Piteşti 4
Abordări tipice
Merge la calculator şi scrie un program
Găseşte un program vechi şi-l modifică
Discută cu prietenii cum trebuie realizat programul
Întreabă profesorul pentru a afla mai multe informaţii
despre program
Universitatea Piteşti 5
Ce este Ingineria Software?
Software?
Programe care oferă funcţii şi performanţă
Structuri de date pentru manipularea datelor
Documente care descriu operaţii şi cum sunt utilizate
programele
Ingineria?
O disciplina care aplică metode tehnice şi ştiinţifice în
proiectarea şi realizarea unui produs
Universitatea Piteşti 6
Diferenţe între ingineria software şi
ştiinţa calculatoarelor
Știința calculatoarelor se ocupă cu partea ştiinţifică
în timp ce ingineria software se ocupă cu dezvoltarea,
proiectarea şi livrarea software-ului în timp util
Teoria din ştiinţa calculatoarelor este insuficientă
pentru a fi considerată o bază completă în ingineria
software (ex. ingineria fizicii şi electrică)
Universitatea Piteşti 7
Diferenţe între ingineria
software şi ingineria de sistem
Ingineria de sistem este concentrată asupra
tuturor aspectelor cu privire la dezvoltarea
sistemelor de calcul incluzând hardware, software
şi procese inginereşti. Ingineria software este o
parte din ingineria de sistem care dezvoltă
infrastructura software, controlul, aplicaţiile şi
bazele de date în sistem
Ingineria de sistem este implicată în
specificaţiile de sistem, integrare şi implementarea
sistemului.
Universitatea Piteşti 8
Definiţia Ingineriei Software
Definiţie IEEE :
Aplicarea unei abordări sistematice, organizată şi
cuantificabilă pentru dezvoltarea, operarea şi
întreţinerea software-lui.
Universitatea Piteşti 9
Altă definiţie a ingineriei software
Universitatea Piteşti 10
Obiectivele ingineriei Software
Îmbunătăţirea calităţii produselor software
Creşterea mulţumirii clienţilor
Creşterea productivităţii
Creşterea satisfacţiei locului de muncă
Universitatea Piteşti 11
Context istoric
În primii ani ai calculatoarelor, programele erau
scrise pentru a înlocui munca grea de calcul.
Programarea nu reprezenta o disciplină, mai mult
era un hobby “arta de a…”
Cu toate acestea, evoluţia calculatoarelor necesită
programe mai mari ce urmează a fi dezvoltate, de
ex. compilatoare, sisteme de operare
Programarea devine o profesie.
Universitatea Piteşti 12
Caracteristicile programelor
Programele, înainte erau mici, create de către o persoană
calificată pentru un algoritm. Datele de intrare erau date
numerice şi cele de ieşire erau tipărite la imprimantă.
Dificultăţile apărute erau la nivel de memorie şi
registrele.
Programele, acum sunt mari şi complexe scrise de un
grup de oameni.
Universitatea Piteşti 13
Costurile de software
100%
Software Maintenance
1955 1980s
Universitatea Piteşti 14
Întârzieri şi instabilitate
Din 600 de firme, 35% aveau proiecte informatice
scăpate de sub control din punctul de vedere al
bugetului de execuţie;
Raportul Standish Group privind finalizarea
proiectelor IT din SUA
Universitatea Piteşti 15
Lipsa de încredere
Software care:
Nu face ce trebuie
Face ce nu trebuie
În sistemele complexe (incluzând componente
electronice, electrice, mecanice, hidraulice), de cele
mai multe ori, software-ul este problema cea mai mare
Universitatea Piteşti 16
Reprogramarea
Cerinţele nu sunt specificate complet
Schimbarea lor conduce la refacerea tuturor fazelor
ulterioare
Pentru proiectare cu durată lungă, cerinţele clientului
se modifică
Reprogramarea consumă 30%-40% din efortul total de
dezvoltare
Universitatea Piteşti 17
Miturile clienţilor
Miturile propagate din istoria timpurie a
programării produc aşteptări nerealiste din partea
clienţilor şi nemulţumiri din partea dezvoltatorilor
Exemple de mituri ale clienţilor:
O descriere generală a obiectivelor este suficientă pentru
începerea scrierii programului
Cerinţele se schimbă permanent pentru că software-ul
este flexibil şi se adaptează.
Universitatea Piteşti 18
Mituri ale dezvoltatorilor
În primii ani ai programării, programarea este
văzută ca o formă de artă și nu o profesie
Exemple de mituri:
Odată ce programul este scris şi funcţionează, rolul
nostru s-a încheiat
Până când nu merge programul, nu îi putem evalua
calitatea
Singurul produs util este programul funcţional
Ingineria software va crea documentaţie voluminoasă şi
inutilă şi va produce întârzieri
Universitatea Piteşti 19
Industria software
2800 de firme de servicii software
45 cu mai mult de 100 de programatori şi
venituri până la 100 milioane de dolari
Până în anii 70, producătorii de calculatoare
vindeau software-ul inclus în preţ (sisteme de
operare, compilatoare, alte utilitare)
De la 1 ianuarie 1970, IBM a vândut separat
software-ul
Universitatea Piteşti 20
Criza software
La proiectele mari de programare erau necesari
mulţi programatori care lucrau în echipă
Proiectele care nu erau livrate la timp sau costul
mult mai mare decât a-l bugetului initial
Software-ul costă de 2-4 ori mai mult decât
hardware-ul.
Puterea hardware-ului creştea continuu iar
software-ul nu putea ţine pasul.
Universitatea Piteşti 21
Criza software
Un raport arată că:
2% din sistemele software contractate au funcţionat de
la predare
3% din sistemele software au putut funcţiona după
câteva modificări
29% au fost predate dar n-au funcţionat niciodată
19% au fost folosite dar au fost abandonate
47% au fost plătite dar niciodată predate
Universitatea Piteşti 22
Abordare sistemică
Problema
Analiză
Proiectare
Modele
Dezvoltare
Soluții
Testare/Validare
Universitatea Piteşti 23
Caracteristici software
Software-ul este proiectat și dezvoltat, şi nu fabricat în
sensul clasic
Software-ul nu se uzează
În general, cele mai multe programe software sunt
personalizate pe aplicaţii decât să fie asamblate în
componente deja existente.
Universitatea Piteşti 24
Ce se înţelege printr-un un
software bun?
Software-ul este intangibil?
Software-ul bun este subiectiv?
Pentru a evalua un software dacă este bun, trebuie să
îndeplinească:
Corectitudine: un program îndeplineşte
specficaţiile de proiectare.
Fiabilitate: un program îndeplineşte funcţiile
pentru care este destinat.
Utilizare: efortul necesar pentru a învăţa,
opera, prepararea datelor de intrare şi
interpretarea datelor de ieşire.
Integritate: Controlul accesului persoanelor
neautorizate.
Universitatea Piteşti 25
Ce se înţelege printr-un un
software bun?
Eficienţă: cantitatea de resurse de calcul necesare.
Mentenanţă: efortul necesar pentru a localiza şi depana
erorile într-un program operaţional.
Portabilitate: efortul necesar pentru a transfera un
program dintr-un mediu software sau hardware în altul.
Testablitate: efortul necesar pentru a testa un program
pentru a fi sigur că îndeplineşte funcţiile pentru care este
destinat.
Interoperabilitate: efortul necesar pentru cuplarea
programelor între ele.
Reutilizare: efortul de a reutiliza programul în alte
aplicaţii.
Universitatea Piteşti 26
Aplicaţii software
Sisteme software
Real-time Software
Business Software
Engineering & Scientific Software
Embedded Software
Personal Computer Software
Telecommunication Software
Universitatea Piteşti 27
References
“Software Engineering: A Practitioner’s Approach” 5th
Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001
“Software Engineering” by Ian Sommerville, Addison-
Wesley, 2001
Universitatea Piteşti 28
Universitatea Piteşti 29