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
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