MODELE
Formalizarea problemei
Descompunerea pe module
Elaborarea de diagrame
Matrice auxiliare
Justificarea alegerii solutiei
Elaborarea de variante
Alegerea variantei
Estimari de durate, costuri si complexitate
Managementul modelelor
Formalizarea problemei
O problema P se descrie de catre beneficiarul care doreste sa achizitioneze un produs software realizat in a-si satisface unele cerinte in planul prelucrarii de date.
Beneficiarul prezinta:
- ce obiectiv doreste sa atinga
- cine sunt beneficiarii rezultatelor prelucrarii
- ce avantaje va obtine daca rezultatele sunt date dupa ce a fost lansat in executie un produs software
- care sunt indicatorii pe care doreste sa-i obtina
- ce date are deja stocate in baze de date
- formulele de calcul
- codificarile uzuale
- cine furnizeaza date de intrare si la ce intervale
- frecventa cu care se obtin rezultatele.
Aceasta prezentare se realizeaza fie liber de catre viitorul beneficiar al programului, fie acesta raspunde la intrebari puse de analistul din echipa de dezvoltare software.
Exista mai multe tipuri de probleme care :
- vizeaza o colectivitate si prelucrarea vizeaza indicatori pentru fiecare element al colectivitatii
- vizeaza o colectivitate si indicatorii vizeaza indicatori bazati pe informatiile privind toti indicatorii
- prelucreaza date atat pentru calculul de indicatori privind fiecare element al colectivitatii, cat si indicatori ce privesc intreaga colectivitate.
A formaliza o problema inseamna:
- a defini variabile ce privesc numarul de componente ale colectivitatii, numarul perioadelor de timp, numarul de elemente dintr-o alta colectivitate cu care interactioneaza colectivitatea de baza
- a stabili variabilele care caracterizeaza elementele colectivitatii in raport cu obiectivul definit in problema, obiectiv pe care produsul software trebuie sa-l atinga
- a enumera indicatorii ce trebuie calculati, pentru a obtine acele informatii necesare atingerii obiectivului pentru care se elaboreaza programele
- a construi formule de calcul pentru indicatorii identificati astfel incat sa fie utilizate datele definite pentru elementele colectivitatii.
Problema nr.1 - obiectivul este caracterizarea unei colectivitati prin intermediul indicatorilor statistici
- colectivitatea este formata din elementele: C1, C2, C3,....,Cn
- un element Ci al colectivitatii este caracterizat prin inaltimea Hi, prin greutatea Gi si prin productivitatea Wi
- programul trebuie sa afiseze mediile aritmetice ale inaltimii, greutatii si productivitatii, nivelurile minime si maxime ale acestora.
Datele de control arata ca intrarile se organizeaza intr-un tabel cu patru coloane si cu atatea linii cate elemente are colectivitatea.
- in program se definesc variabile sub forma mosivelor unidimensionale:
int G[N],H[N],W[N];
avand grija ca dimenisunea sa fie suficient de mare astfel incat sa se memoreze fara probleme toate datele privind colectivitatea C
Definirea:
#define N 200
este corespunzatoare daca elementele colectivitatii nu au depasit 100 de elemente in mod curent.
Texul sursa va contine:
- procedura pentru initializarea de la tastatura a unui masiv unidimensional
- procedura pentru calculul mediei aritmetice din elementele unui masiv unidimensional
- procedura pentru alegerea elementului minim dintr-un masiv unidimensional si stabilirea pozitiei acestuia
- procedura pentru alegerea elementului maxim dintr-un masiv unidimensional si stabilirea pozitiei acestuia
- programul principal care: initializeaza apeland procedura cele trei masive, calculeaza indicatorii apeland procedurile si afisaza rezultatele.
Problema nr. 2 - obiectivul este caracterizarea elementelor unei colectivitati prin intermediul unor indicatori
- colectivitatea este formata din elementele: C1, C2, C3,....,Cn
- un element Ci al colectivitatii este caracterizat prin denumire,unitate de masura, stoc initialinal, intrari, iesiri
- programul trebuie sa afiseze pe langa datele de intrare care definesc fiecare element al colectivitatii sistocul final al fiecarui material .
Datele de control arata ca intrarile se organizeaza intr-un tabel cu saseunui articol, iar articolele sunt reunite intr-un fisier cu atatea inregistrari cate elemente are colectivitatea.
- in program se definesc variabile de tip articol:
struct material {
char denumire[30];
char um[5];
int stoc_initial;
int intrari;
int iesiri;
};

avand grija ca dimenisunea campurilor sa fie suficient de mare astfel incat sa se memoreze fara probleme toate datele privind colectivitatea C.
Texul sursa va contine:
- procedura pentru crearea cu validare a fisierului
- procedura pentru citirea de articole din fisier
- procedura pentru calculul stocul final
- procedura pentru afisarea datelor
- programul principal asigura repetitivitativitatea citirii articolelor, calculului stocului final pentru fiecare material, afisarea rezultatelor .
revenire

Descompunerea pe module
Problemele pentru care se construiesc programe trebuie sa realizeze unele dintre functiile de prelucrare urmatoare:
- validare date
- initializare parametri
- conservare pe suport a stadiilor prelucrarii
- sortare date
- creare fisier
- creare structura date dinamica
- initializare masiv
- efectuare calcule
- constituirea unui structuri prin selectie dintr-o alta structura de date
- constituirea unei structuri de date prin concatenare
- adaugare de elemente
- interschimb de elemente
- stergere de elemente
- selectie de proceduri
- afisare rezultate
- construire fisiere grafice
- prelucrari reversibile pe fisiere
- determinare restrictii de acces
- gestionare seturi de date
- gestionare seturi de rezultate intermediare
- gestionare de probleme
- autentificare pentru acces
- compareatii
- reorganizare fisiere
- restaurare date
- testare corectitudine prelucrare pentru continuare proces.
Orice problema presupune construirea unei structuri arborescente ale carei noduri sunt de fapt module care sunt referite.
Structura arborescenta pentru problema calculului inversei unei matrice include:
- programul apelator
- procedura pentru initializarea de la tastatura a matricei
- procedura pentru calculul inversei matricei
- procedura de inmultire a doua matrice, pentru a efectua verificarea daca produsul dintre matricea initiala si matricea obtinuta prin procedura de inversare este chiar matricea unitate
- procedura de afisare a matricei inverse.
Structura aeborescenta pentru solutionarea problemei de calcul a mediilor candidatilor cu ordonare descrescatoare dupa medie este:
- programul principal
- procedura de creare cu validare a fisierului de candidati
- procedura de calcul a mediei aritmetice a notelor obtinute de candidati in probele de concurs
- procedura de sortare descrescatoare a candidatilor dupa medie
- procedura de afisare a candidatilor.
Solutionarea unei probleme de achizitionare on-line de produse are structura arborescenta:
- componenta de baza care deschide accesul la resurse
- componenta de administrare
- componenta client
- componenta plati
- componenta de securitate.
Pe nivelul al treilea se afla:
- componenta de incarcare a bazei de produse
- componenta de actualizare a bazei de produse
- componenta de navigare a clientilor
- componenta de gestionare a cosului
- componenta de transfer spre finalizarea cautarii si trecerea la achizitionare
- componenta factura
- componenta de livrare
- componenta de plata
- componenta de logare
- componenta de urmarire a livrarilor
- coponenta de aprovizionare
- componenta de gestiune contabila a magazinului
- coponenta de comunicare cu clientii
- componenta de fidelizare a clientilor.
La nivelul companiei care dezvolta aplicatii informatice vor exista biblioteci foarte bogate ce continu proceduri care executa la cele mai inalte standarde de calitate operatii care sa conduca la economia de munca vie.
Daca de exemplu, in biblioteca exista o procedura pentru desenarea diagramei de structura, in aceeasi biblioteca trebuie sa existe si procedura care preia date din fisier si constituie un vector, vector care va deveni parametru de intrare in procedura de desenare a diagramei.
Este important ca intreaga activitate de proiectare a unei solutii sa se bazeze pe existenta de proceduri.
revenire

Elaborarea diagramelor
Elaborarea diagramelor se efectueaza pentru fiecare modul in parte.
Este proba intelegerii exacte a ceea ce doreste beneficiarul programului.
Daca a devenit o activitate de rutina, calitatea diagramelor este garantata.
Diagrama este corecta sau nu este corecta.
Pierderea corectitudinii este data de:
- lucru cu variabile
neinitializate transforma programul intr-un program cu comportament intamplator, pentru ca functie de continutul variabilei S de la o prelucrare anterioara se obtine un rezultat interpretabil sau un rezultat care nu are legatura cu domeniul de variatie a variabilelor care intervin in calcul
- initializarea, modificarea sau incrementarea in loc nepotrivit a variabilelor
- construirea de expresii conditionale incorecte
- neinitializarea variabilelor de control detrmina evolutia aleatoare a referirii elementelor si pierderea de sub control a numarului de repetari
- mentinerea variabilelor de control la nivel constant prin absenta incrementarii sau decrementarii
- inversarea locului unde se produce incrementarea sau decrementarea variabilelor de control; ordinea de intrare in calcule a elementelor masivului este alta decat cea care trebuie, iar domeniul de variatie al variabilelor de control nu mai are nicio legatura cu dimensiunile masivelor; in diagrama considerata, variabila de control i avanseaza cu mult mai repede, in timp ce variabila j nu se modifica
- neconcordanta dintre limitele de variatie a variabilelor de control si numarul de componente din masivele traversate si referite
- interschimbul pozitiei de incrementare a variabilelor de control conduce la obtinerea fie a unor ciclari infinite, fie a referirilor eronate a elementelor din masive
- construirea neadecvata a expresiilor de calcul
- construirea neadecvata a expresiilor conditionale determina referirea altor elemente din masive decat cele necesare; daca matricea este definita si initializata pentru m linii si n coloane si traversarea este pentru n linii si n coloane deja programul se comporta ca un automat aleator atunci cand n > m sau traverseaza numai partial masivul daca n - neincluderea tuturor elementelor din colectivitate in prelucrari
- modificarea neautorizata a unor date care se folosesc in membrul drept a unei expresii de atribuire.
Sunt situatii in care chiar programatori cu experienta construiesc diagrame care contin erori.
Prin verificari sau dupa rulari ale programelor cu verificarea rezultatelor partiale, se procedeaza la corectii si intr-un final mai mult sau mai putin indepartat, se obtin diagrame complete si corecte.
revenire

Matrice auxiliare
Matricele auxiliare au rolul de a evidentia cat de bine este proiectata o carianta care solutioneaza problema data.
Matricea variabile-module evidentiaza legatura dintre variabilele definite si modulele proiectate.
revenire

Justificarea alegerii solutiei
Pentru o problema se construieste solutia prin alegerea dintre secventele posibile S1, S2, S3,....,Sd.
Fiecare secventa este analizata si se decide sa se foloseasca cea mai eficienta .
Fiecare secventa presupune un anumit efort de implementare, un anumit numar de cicluri masina, o anumita complexitate si anumite riscuri in utilizare.
Programul apare ca o constructie rezultata din selectia de secvente bune si foarte bune, discutate si acceptate.
revenire

Elaborarea de variante
revenire

Alegerea variantei
Pentru o problema se elaboreaza variantele V1, V2, V3,....,Vr.
Fiecare varianta se defineste prin lungimea ca numar de instructiuni L1, L2, L3, ...., Lr.
Fiecare varianta presupune un cost dat de salariile programatorilor si de instrumentele software care trebuie achizitionate, KO1, KO2, KO3,..., KOr.
Durata de realizare a fiecarei variante este D1, D2, D3,..., Dr.
Printr-o agregare acceptata de dezvoltator, este aleasa varianta de program Vs.
Pe acesta varianta fixata se va merge in celelalte etape ale ciclului de dezvoltare, indiferent ce alte considerent apar.
Se elimina in acest fel tentatia de a relua de la inceput lucrul, fara a ajunge la finalitate vreodata.
Justificarea alegerii unei variante este facuta strict pe calcule si nu pe argumente aproximative, asa-zise de ordin calitativ sau mai degraba subiective, legate de experienta unor programatori sau de rutina acestora si nu de obiectivul urmarit.
revenire

Estimari de durate, costuri si complexitate
revenire

Managementul modelelor
Managementul presupune:
- gestionarea fisierelor cu texte sursa intermediare
- exploatarea insemnarilor care se fac pe parcursul ciclului de dezvoltare
- includerea in biblioteci a celor mai bune componente din program, in vederea reutilizarii lor ulterioare, pentru alte programe
- masurarea consumurilor de resurse care au fost necesare pentru a face programul
- stabilirea nivelului de performanta a programului.
revenire

revenire