Documente Academic
Documente Profesional
Documente Cultură
Inginerie software
Curs 1
Instructor : Conf. dr. Cristina Mndru
cmindruta@info.uvt.ro
Sites:
http://sites.google.com/site/ingswcm
http://www.info.uvt.ro/~cmindruta/Curs_IS_SwEng
Slide 2
Subiecte tratate
Probleme ale dezvoltrii i asigurrii de suport pentru produsele software
Un program simplu
Permiterea automatizrii i reutilizrii programului ca modul n programe viitoare invocabil din cadrul
unui script CLI
Slide 9
Un program simplu procesul de gndire
Decizii i constrngeri de proiectare : Declaraii care restricioneaz modurile n care
software-ul poate fi proiectat i implementat.
Dimensiuni tipice i maxime pentru intrare:
Mici orice algoritm de sortare cel mai simplu de implementat
Mari, ncap n RAM un algoritm eficient
Mari, nu ncap n RAM algoritm specializat pentru sortare pe disc.
Limbajul de programare:
Poate fi o constngere de proiectare.
Poate fi o decizie de proiectare bazat pe tipul de programare necesar, pe cerinele de
performan i portabilitate, pe expertiza tehnic a dezvoltatorilor.
Algoritmi:
Pot fi dai sub form de constrngeri de proiectare sau ca cerine funcionale.
Pot fi decizii de proiectare influenate de:
Implementare rutin de sortare utiliznd un algoritm care implic gsirea celui mai
mare element, plasare lui la sfritul array-lui, i sortarea restului array-lui utiliznd
acelai mecanism crearea unei metode IndexOfBiggestcare returneaz indexul
celui mai mare element dintr-un array.
Tem :
Estimai un timp ideal (asap) i un timp calendaristic pentru fiecare task din lista
urmtoare:
IndexOfBiggest
Sort
Read
Write
GUI
Testing
Implementai soluia i comparai timpul estimat cu cel real.
Slide 13
Un program simplu Estimare efort
Concluzie:
Estimarea va diferi mai mult sau mai puin de timpul necesar n realitate
Alegei nume descriptive; lungi pentru elemente care au domeniu global (ex. clase,
metode publice), scurte pentru referine locale (ex. variabile locale, nume private).
Puini utilizatori
Probleme:
Activiti:
nelegerea cerinelor
Estimarea efortului i posibil planificarea dezvoltrii
Proiectarea soluiei
Implementarea soluiei
Testarea corectitudinii i a acceptrii de ctre utilizator
Un process (simplu).
Documentaie minimal.
Dar dac ?
Sistem complex cu componente multiple.
Slide 29
Terminologie
Problema ce trebuie rezolvat de un sistem software.
Spaiul problemei domeniul business n care este definit
problema
specificat
.
de cerinele utilizator.
Modelul domeniului entitile i relaiile din domeniul business care definesc
problema de rezolvat.
Rezultat al analizei cerinelor.
Spaiul soluiei domeniul software domain n care va fi implementat soluia.
Reezultat al deciziilor i constrngerilor de proiectare.
Modelul proiect (design) reprezentare a entitilor i relaiilor din spaiul soluiei
care definesc sistemul software soluie nainte de a fi codificat (implementat).
Rezultat al procesului de proiectare.
Soluia un sistem software care rezolv problema.
Rezultat al procesului de dezvoltare de software.
Slide 30
Subiecte tratate
Probleme ale dezvoltrii i asigurrii de suport pentru prdusele software
Un program simplu
funcii majore
Modularizarea soluiei
Separare tematici
Iteraii incrementale
Discuie:
Divizarea problemei n segmente mai mici
Ex. dup funcie i trstur
Divizm soluia de-a lungul liniilor de divizare stabilite de segmentele
problemei ?
Slide 35
Probleme tehnice
Technologie i unelte
Alegeri tehnice:
Limbajul de programare:...
Unelte de dezvoltare : IDEs,
Infrastructur : SGBD, reea, middleware,...
Unelte de management : controlul versiunilor,
Diversitatea pregtirii i experienei membrilor echipei acord asupra deciziilor, planuri de
instruire, etc.
Slide 36
Probleme tehnice
Proces i metodologie
Procesul de dezvoltare de software (ciclul de via al dezvoltrii de software
SDLC) = Setul de activiti, de secvene i flux al acestor activiti, intrrile
i ieirile acestor activiti, i precondiiile i postcondiiile fiecrei activiti
implicate n producerea de software.
Cod
Model Model
Arhitectur
Cod Cod Cod
Adugare, modificare, tergere nume i informaii personale asociate ale tuturor angajailor
Adugare, modificare, tergere toate taxele i alte deduceri asociate tuturor angajailor
Adugare, modificare, tergere toi algoritmii relativi la calcularea plii nete pentru fiecare
angajat
Generarea unui cec de plat sau a unui depozit bancar direct pentru fiecare angajat
Care sunt informaiile asociate?
Pe cine s ntreb? Utilizator, client, manager
proiect?Trebuie s documentez rspunsurile?
Ce nseamn toate beneficiile?
Ce implicaii are posedarea unui beneficiu asupra plii unui angajat?Exist
o list cu toate beneficiile posibile? Va fi aceasta modificat n viitor?
Pentru a gestiona corect Cerinele funcionale trebuie nelese
cunotinele specifice domeniului aplicaiei relative la problem.
Slide 43
Sistem stat de plat
ipotetic Cerine
Care este ciclul de realizare a statului de plat?
Care este termenul de transmitere a informaiilor (ex. cretere de salariu).
Pentru a gestiona corect Cerinele funcionale trebuie nelese
cunotinele specifice domeniului aplicaiei relative la problem.
Cerine funcionale: (exemple)
Adugare, modificare, tergere nume i informaii personale asociate ale tuturor angajailor
Adugare, modificare, tergere toate taxele i alte deduceri asociate tuturor angajailor
Adugare, modificare, tergere toi algoritmii relativi la calcularea plii nete pentru fiecare
angajat
Generarea unui cec de plat sau a unui depozit bancar direct pentru fiecare angajat
Slide 44
Sistem stat de plat
ipotetic Cerine
Cerine non-funcionale: (exemple)
Performan
Utilizabilitate
Care este volumul tranzaciilor de plat?
Care este viteza de procesare pentru o tranzacie?
Pentru a gestiona corect cerinele non-funcionale sunt
necesare cunotine despre sistemul tehnic i informaii de
interfa.
Ce experien are utilizatorul n folosirea de interfee grafice?
Care sunt profilele utilizatorilor?
Cum se anuleaz i reproceseaz un cec de plat bazat pe o
nregistrare incorect?
Slide 45
Sistem stat de plat
ipotetic Cerine
Aprox 15% din defectele software-lui se datoreaz erorilor din cerine.
Erorile din cerine sunt foarte dificil de remediat dac sunt descoperite
trziu.
Reea
Interfee de transmisie
Interfee de imprimare
Interfee cu sisteme de operare
Medii de dezvoltare
Domeniul aplicaie stat de plat
Competente de proiectare din perspectiva complexitii :
Performan
Procesare erori
Descompunere funcional
Sintez
Disciplin superioar
Principii de ghidare suplimentare
Comentarii pentru descriere : condiii de intrare i de ieire din modul, date vitale
pentru procesare, funcie urmrit.
Mesaje de eroare
Slide 53
Sistem stat de plat ipotetic
Codificare i testare module
Dezvoltatorul modulului:
Testeaz fiecare unitate de programate (modul) :