1 / 19

Principalele capitole ale cursului

Principalele capitole ale cursului 1. Introducere: a ctivitati in procesul de dezvoltare software. 2. Modele ale procesului de dezvoltare software. 3. Definirea cerintelor utilizatorilor si a cerintelor software. 4. Proiectarea arhitecturala. 5. Sabloane de proiectare.

lena
Download Presentation

Principalele capitole ale cursului

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Principalele capitole ale cursului 1. Introducere: activitati in procesul de dezvoltare software. 2. Modele ale procesului de dezvoltare software. 3. Definirea cerintelor utilizatorilor si a cerintelor software. 4. Proiectarea arhitecturala. 5. Sabloane de proiectare. 6. Modelarea sistemelor informatice: U(nified) M(odeling) L(anguage). 7. Verificarea si validarea programelor. 8. Calitatile produselor software. 9. Specificarea formala a programelor. 10.Metrici software. 11.Conducerea proiectelor software.

  2. Software Engineering?? Anii 1970 – “Criza software” • Metodele de dezvoltare existente – inadecvate dezv. de programe mari. • Efortul creste mai mult decat liniar in comparatie cu dimensiunea programului. • Componentele hardware nu mai reprezinta factorul cel mai important. • Un program nu este o entitate statica, ci el evolueaza in timp datorita schimbarii cerintelor si a mediului de utilizare. • Trebuie sa poata fi usor de inteles si de adaptat de persoane diferite de cele care l-au dezvoltat. • Dezvoltarea de software devine o industrie de sine statatoare

  3. A devenit necesara o disciplina care sa furnizeze cadrul pentru construirea de software: Software Engineering • Scopul: definirea de tehnici de “fabricatie” justificate de teorie sau de practica. Software-ul se deosebeste de alte produse fabricate: - nu este un produs fizic • este dezvoltat, nu fabricat; nu exista un proces de fabricatie software • programele nu pot fi “asamblate” din componente • nu “imbatraneste”

  4. Software = cod sursa, cod executabil, biblioteci + documentatii (de realizare, de instalare, de utilizare) • Standardul IEEE 1993: Software Engineering este: “Aplicarea unei abordari sistematice, disciplinate si masurabile in dezvoltarea, operarea si intretinerea software-ului, adica aplicarea ingineriei pentru software. De asemenea, studiul unor asemenea abordari.”

  5. Principalele activitati ale unui proiect software • Activitati tehnice: • Definirea Cerintelor Utilizator • Definirea Cerintelor Software • Proiectarea arhitecturala • Proiectarea detaliata • Implementarea unitatilor program ( modulelor) • Integrarea • Testarea de sistem • Testarea de acceptare • Intretinerea si operarea • Activitati de asigurare a calitatii • Activitati de management al proiectului

  6. Definirea cerintelor utilizator • Aceste cerinte descriu punctul de vedere al utilizatorului: CE doreste viitorul utilizator de la viitorul produs. Sunt cerinte de: functionare a sistemului, de performanta, de securitate, de interfata utilizator, de interfata, s.a. • Cerintele sunt definite cat mai clar intr-un document: Documentul Cerintelor Utilizator (User Requirements Document - URD) sau Documentul Cerintelor de Sistem • Activitatea de definire a cerintelor utilizator poate include si specificarea testelor de acceptare. Definirea cerintelor software • Analiza cerintelor utilizator si definirea unui set de cerinte pe care viitorul produs software trebuie sa le indeplineasca astfel incat sa fie satisfacute cerintele utilizatorilor. • Cerintele sunt descrise in cadrul unui document numit “Documentul de Cerinte Software” (SRD) sau “Specificatia de sistem”. • Specificatia cerintelor software este independenta de implementare • SRD sta la baza contractului dintre client si producator/ echipa de dezvoltare • Furnizeaza o baza pentru estimarea costurilor si a planificarii

  7. Proiectarea arhitecturala • Se stabileste arhitectura sistemului software care va implementa Cerintele formulate in documentul de Cerinte Software • Se alege solutia de proiectare optima dintre alternativele posibile. • Toate Cerintele Software trebuie sa fie acoperite de sistemul descris in Documentul de Proiectare Arhitecturala (ADD). • Activitatea de proiectare arhitecturala poate include si specificarea testelor de integrare Proiectarea de detaliu • Subsistemele sunt descompuse succesiv pana se ajunge la nivel de componente direct implementabile prin unitati de program ( care nu mai sunt descompuse). • Se specifica functia/ functiile pe care trebuie sa le realizeze fiecare componenta, in Documentul de Proiectare de Detaliu (DDD). • De asemenea, se pot defini testele unitare

  8. Implementarea modulelor • Implementarea cuprinde codificarea si testarea separata a modulelor definite in etapa de proiectare de detaliu. • Cea mai bine stapanita si cea mai bine “utilata” dintre toate activitatile ciclului de viata. • Reprezinta circa 15-20% din efortul total de dezvoltare a unui program. • Specificarea si proiectarea reprezinta in jur de 40% • Testarea circa 40% din efortul total de dezvoltare.

  9. Integrarea • Modulele care au fost testate independent sunt integrate treptat in subsisteme, pana la nivel de sistem. • Se verifica comunicarea si interactiunea intre componentele integrate. Testarea de sistem • Se verifica daca sistemul satisface cerintele specificate in documentul Cerintelor Software Testarea de acceptare • Se verifica daca sistemul satisface cerintele specificate in documentul Cerintelor Utilizator • Se efectueaza de o echipa de testare independenta care include si clientul/utilizatori • Testare alfa/beta

  10. Intretinerea si operarea • Este efectuata de un grup special • Activitatile depind de tipul de software: corectarea defectelor, imbunatatirea unor caracteristici, adaptarea la cerinte noi Asigurarea calitatii Scop: asigurarea cerintelor tehnice si a standardelor de calitate in procesul de dezvoltare si de catre produsul final • Alegerea metodelor si a standardelor de specificare, proiectare si implementare • Revizii, pe tot parcursul procesului de dezvoltare • Definirea strategiilor de testare • Definirea metodelor de documentare • Definirea metricilor de evaluare a produselor si a instrumentelor de masurare

  11. Activitati de management • Scrierea propunerii pentru obtinerea proiectului • Etapizarea si planificarea in timp a activitatilor • Revizii • Selectia si evaluarea personalului • Scrierea si prezentarea de rapoarte Riscurile unui proiect software • factori de experienta: a managerului, a echipei, a organizatiei • factori de planificare: estimarea resurselor umane, a perioadelor de timp pentru diferite activitati, definirea responsabilitatilor • factori tehnologici: noutatea tehnologica, metodele de dezvoltare, instrumentele de dezvoltare • factori externi: calitatea specificatiei cerintelor, stabilitata cerintelor, calitatea definirii , stabilitatea si disponibilitatea interfetelor externe

  12. Ciclul de viata al unui program (Software life cycle) • O secventa de etape in existenta produsului software care include toate activitatile necesare pentru dezvoltarea produsului si relatiile temporale dintre ele. • Fiecare etapa din ciclul de viata este caracterizata prin activitati specifice si produsele rezultate din activitatile respective. • Include intretinerea  reluare activitati de dezvoltare Modele ale ciclului de viata software (Software development life cycle models / process models): • Modelul cascada (Waterfall model) • Modelul in V ( Vmodel) • Modelul ESA ( European Space Agency) • Modelul iterativ si incremental • Dezvoltarea “agila”(Agile development) • Dezvoltarea pe baza de prototip (Prototyping ) • Modelul in spirala (Spiral model)

  13. Avantaje: • Sistemul este bine documentat • Permite un bun management al proiectului: • planificarea resurselor umane pe etape • estimari de cost mai exacte Dezavantaje: • Un produs executabil, care sa demonstreze functionarea sistemului este disponibil destul de tarziu, dupa integrare. Pana atunci s-au produs numai documente. • Deoarece modelul este secvential, exista numai uhn feedback local, la tranzitiile intre faze. • Multe erori sunt descoperite tarziu  cost crescut • Toate riscurile sunt incluse intr-un singur ciclu de dezvoltare • Adecvat pentru proiectele in care cerintele sunt bine intelese de la inceput si nu se modifica pe parcursul procesului de dezvoltare. • Experienta ultimelor decenii a demonstrat ca modelul este valoros. • Este utilizat si in prezent de multe organizatii mari.

  14. Definire Cerinte folosind Prototip

More Related