Metode de proiectare a algoritmilor și programelor - Life-prog

Cele mai folosite trei metode de proiectare a algoritmilor și programelor - ascendent, descendent, contra.

Un design ascendent (de jos în sus) folosește ideea de a aloca sub-algoritmi și module suficient de mari, fiecare realizând anumite funcții.







Alegerea modulelor este determinată de diferite considerații: completitudinea funcțională, mărimea, omogenitatea structurilor de date etc. Pentru modulele selectate se fac specificații și comunicarea este determinată de intrare și ieșire. În plus, fiecare modul al algoritmului este dezvoltat și verificat în mod autonom. După elaborarea modulelor, ținând seama de conexiunile dintre intrare și ieșire, integrarea se face în subsisteme supuse controlului. Subsistemele testate sunt combinate într-un sistem software care trece printr-un test cuprinzător.

În consecință, designul ascendent începe cu nivelul conceptelor de bază și se dezvoltă prin formarea de concepte abstracte pe baza lor și, în cele din urmă, conduce la astfel de concepte, în termenii cărora se exprimă soluționarea întregii probleme.

Principalele dezavantaje ale metodei de proiectare ascendentă sunt:

- complexitatea procesului de combinare a modulelor individuale într-un algoritm;

- dificultatea de a corecta greșelile făcute în stadiile incipiente ale dezvoltării;

- complexitatea controlului asupra prognozei dezvoltării și finalizării.

Designul descendent (de sus în jos) începe cu afirmația problemei care trebuie rezolvată și se dezvoltă în continuare prin divizarea acesteia în subtascuri. În cele din urmă, aceasta conduce la astfel de submăsuri, a căror soluție este ușor de exprimat în termeni de construcții de bază. Procesul de proiectare include următoarele:







- sarcina generală este descompusă în sub-sarcini precise definite;

- Se demonstrează că dacă fiecare subproblem este rezolvat corect și soluțiile rezultate sunt interdependente, atunci problema inițială va fi rezolvată corect.

Procesul de descompunere se repetă pentru subtascuri și se demonstrează că descompunerea este completă. Acest proces se repetă până când subtaskele sunt atât de simple încât soluția este exprimată de construcțiile de bază.

Această metodă de proiectare a algoritmilor și a programelor sub forma unei structuri ierarhice permite rezolvarea unor probleme greoaie și complexe. Cu dezvoltarea de sus în jos, devine posibilă verificarea algoritmului sau verificarea și depanarea programului chiar de la începutul dezvoltării și, astfel, crearea unei situații de detectare a erorilor în fazele timpurii ale proiectării programului.

Deoarece modulele de program sunt proiectate din partea de sus în jos, în loc de modulele de nivel inferior, se folosesc stubs de software. Ele sunt necesare numai pentru a permite modulului de nivel superior să verifice interacțiunea cu modulul de nivel inferior. Stubul software conține declarații de intrare și ieșire și rapoarte privind execuția acestuia.

La proiectarea unui program care utilizează un design de sus în jos, nu este necesară depanarea complexă, care necesită 25-40% din timpul total de dezvoltare al programului pentru alte metode de dezvoltare. În același timp, dezvoltarea întregului program progresează mai rapid decât dezvoltarea componentelor de nivel inferior. Se poate constata că componentele individuale nu îndeplinesc funcțiile care le sunt atribuite (de exemplu, asigurarea preciziei necesare și a timpului de calcul).

Strategia reală de dezvoltare a algoritmilor și programelor aproape întotdeauna reprezintă o combinație rezonabilă de metode de proiectare de sus în jos și de jos în sus (design on-site).







Articole similare

Trimiteți-le prietenilor: