Sunteți pe pagina 1din 29

Inginerie Software pentru

conducerea proceselor industriale

Universitatea Piteşti 1
Bibliografie Curs
 Main text:“Software Engineering: A Practitioner’s
Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-
Hill, 2001

 Reference book:“Software Engineering” by Ian


Sommerville, Addison-Wesley, 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.

IEEE - Institute of Electrical and Electronics Engineers

Universitatea Piteşti 9
Altă definiţie a ingineriei software

Aplicarea practică a cunoştinţelor ştiinţifice în


proiectarea şi realizarea programelor software, precum
şi asocierea la acestea documentaţiei necesare pentru
dezvoltarea, operarea şi întreţinerea lor. (Boehm).

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ă

Ingineria Software nu este programare.


Programarea este o parte importantă a
ingineriei software.
“Acesta nu este un curs de programare”

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%

Hardware Maintenance Software


Development
Total cost

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

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