un numar de programe separate fisiere de configuratie necesare pentru functionare documentatie care descrie structura sistemului documentatie pentru utilizator
2. Ce activitati presupune un proces software?
Presupune 4 categorii de activitati structurate: Specificare software: se defineste functionalitatea sistemului software si constrangerile cu care opereaza. Dezvoltare software (Design si Implementare): se produce un sistem software care satisface specificatiile. Validare software: se valideaza sistemul software pentru a se asigura ca aceste corespunde cerintelor clientului. Evolutie software: sistemul evolueaza pentru a satisface noi cerinte. 3. Enumerati si descrieti etapele modelului cascada. analiza si definirea cerintelor: sunt stabilite serviciile, constraangerile si scopurile sistemului prin consultare cu utilizatorul proiectarea arhitecturala: se stabileste o arhitectura de ansamblu si functiile sistemului software pornind de la cerinte implementarea si testarea unitara: designul sistemului este transformat intr-o multime de unitati de program integrarea si testarea sistemului: unitatile de program ]sunt integrate si testate ca un sistem complet care este apoi livrat clientului operare si mentenanta: sistemul este folosit in practica;mentenanta implica corectarea erorilor sau adaugarea de noi functionalitati
4. Cum se obtin si ce reprezinta URD si SRD?
Documentul Cerintelor Utilizatorului (User Requirements Document - URD). URD: contine o descriere a cerintelor de nivel inalt ale sistemului, obiectivele sistemului, constrangeri, relatii, entitati si principalele relatii dintre acestea.
SRD se obine in urma unei analize de specialitate a URD si contine o descriere completa a cerintelor produsului software.SRD sta la baza contractului dintre client si echipa de dezvoltare reprezentand o baza pentru estimarea costurilor si a planicarii. 5. Factori de risc ai unui proces software. Sunt 4 tipuri pricipale de factori de risc: 1. de experienta: lipsa de experienta sau calificare a managerului de proiect si a echipei 2. de planicare estimarea incorecta a resurselor umane necesare in fiecare etapa a proiectului 3. estimarea incorecta a intervalelor de timp necesare pentru diferite activitati 4. tehnologici noutatea tehnologica alegerea unor metode de dezvoltare noi sau nepotrivite folosirea unor instrumente de dezvoltare ineficiente sau inadecvate 5. externi cerinte ambigue ale clientilor/utilizatorilor si calitatea specicatiilor aferente slaba calitate a definirii si a stabilitatii interfetelor externe 6. Care sunt principalele caracteristici ale cerintelor? Cerintele reprezinta deziderate formulate de utilizator in ceea ce priveste functionarea aplicatiei ce urmeaza a fi dezvoltata. Acestea se supun, in general, unor standarde si sunt sintetizate intr-un document(SRD) care sta la baza contactului intre client si dezvoltator. Evaluarea unui sistem software, atat pe parcursul dezvoltarii acestuia cat si la analizarea proiectului, este facuta in functie de gradul de indeplinire a cerintelor utilizatorului. Exista doua mari categorii de cerinte: Cerintele functionale se refera la asteptarile utilizatorului/clientului in ceea ce priveste functionalitatile sistemului. Cerintele nefunctionale se refera la: o cerinte de performanta: viteza, disponibilitatea sistemului, o eficienta utilizarii resurselor; o siguranta in functionare (frecventa avariilor, usurinta recuperarii); o cerinte de implementare (respectarea unor standarde, legislatie); o utilizarea facila (consisteta interfetei utilizator, help); o constrangeri de design; o portabilitate si adaptabilitate.
7. Descrieti si exemplicati notiunea de incapsulare.
Incapsularea - ascunderea implementarii. In POO elementele unei clase sunt separate in doua parti: o structura - atribute si implementarea metodelor o interfata - prototipurile metodelor publice prin care poate fi accesat un obiect. Obiectele sunt accesate doar prin intermediul metodelor publice, iar modicarile nu afecteaza interfata. 8. Dati exemplu de o asociere reflexiva. O asociere poate lega o clasa de ea insasi, caz in care se numeste asociere reexiva. In acest caz, rolurile sunt esentiale pentru claritatea diagramei.
9. Care este diferenta dintre agregare si compunere? Exemplificati.
Agregarea este un tip particular de asociere folosit pentru a exprima o relatie de tip parteintreg. Compunerea este un tip particular de agregare ce implica o continere fizica a partilor in intreg si o simultaneitate a duratelor de viata ale partilor si ale intregului. Fiecare din partile clasei agregat au o existenta independenta. In cazul compunerii, o parte poate fi continuta de un singur intreg, deci multiplicitatea asocierii la extremitatea clasei agregat este 1.