Metodologia de programare

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 30 decembrie 2021; verificarea necesită 1 editare .

Metodologia dezvoltării software este un ansamblu de metode aplicate în diferite etape ale ciclului de viață al software -ului și având o abordare filozofică comună [1] .

Fiecare metodologie este caracterizată prin [2] :

Într-un caz particular, atunci când metodologia este aplicată în etapa de programare (proiectare), se numește de obicei paradigma de programare [2] .

Origine

Există trei moduri prin care metodologiile pot fi urmărite. În primul rând, ele pot fi o expresie a experienței practice. În al doilea rând, metodologiile pot deriva din unul dintre cele patru modele de algoritm: mașină Turing abstractă (programare imperativă), funcții recursive Hilbert și Ackerman (programare structurată), calculul lambda al lui Church (programare funcțională), algoritmi normali Markov (programare logică) [3 ] [4 ] ] . În al treilea rând, metodologiile pot fi explicate prin maparea uneia dintre cele trei structuri ale limbajului de modelare la structura limbajului de programare [5] . Părțile constitutive pot fi o structură de date , o structură de control și o logică . Fiecare dintre cele nouă mapări definește fie o metodologie, fie o metodă de programare destul de serioasă. De exemplu, maparea logico-logică stă la baza programării logice [4] .

Clasificare

După miez

Când abordați metodologia ca având un nucleu ( ing.  nucleu ) corespunzător metodei de descriere a algoritmului și caracteristici suplimentare , se pot distinge următoarele cinci nuclee principale de metodologii [6] :

Se poate observa că aceste metodologii sunt pe o scară de la navigație (controlul execuției pas cu pas) până la specificație (determinarea cerințelor pentru rezultat) [6] .

Specific topologic

Specificitatea (specificitatea topologică) este o modalitate de alegere a metodelor de rafinare a nucleului metodologiei. Criteriul de calitate al unei anumite topologii poate fi costul total al dezvoltării software. La rândul lor, costurile de dezvoltare depind, printre altele, de abstracțiile cheie ale limbajului: abstracția datelor, abstracția controlului și modularitatea. De exemplu, într-o metodologie imperativă, se poate adera la metodele de programare structurată , ceea ce oferă o topologie mai avantajoasă în ceea ce privește abstracțiile limbajului. Rezultatul este o metodologie de programare structurată [7] .

Specific implementării

Conform arhitecturii hardware, implementarea poate fi centralizată sau paralelă. De exemplu, metodologia programării paralele (imperative), metodologia programării paralele logice [8] .

În plus, metodologia poate fi hibridă. De exemplu, cel mai comun amestec de programare funcțională și logică [8] .

De asemenea, se efectuează cercetări privind unificarea metodologiilor de programare.

Concluzie

Limbajul de programare poate susține anumite metodologii, dar asta nu înseamnă că un anumit limbaj nu poate fi folosit deloc cu o metodologie care nu este nativă, ci doar că vor fi necesare mai multe efort și resurse [2] .

Metodologiile de programare diferă în ceea ce privește costul total al rezolvării problemelor cu diferite caracteristici (calcule științifice, probleme financiare, sisteme în timp real etc.). Amploarea sarcinilor și eficiența software-ului creat sunt, de asemenea, factori importanți în alegerea unei metodologii de programare [9] .

Note

  1. Odintsov, 2004 , p. 73.
  2. 1 2 3 Odintsov, 2004 , p. 74.
  3. Logica și computerul. Modelarea raționamentului și verificarea corectitudinii programelor. M., Știință, 1990
  4. 1 2 Odintsov, 2004 , p. 76.
  5. Tuzov V. A. Limbi de reprezentare a cunoștințelor. L., Universitatea de Stat din Leningrad, 1990
  6. 1 2 Odintsov, 2004 , p. 78.
  7. Odintsov, 2004 , p. 78-79.
  8. 1 2 Odintsov, 2004 , p. 79.
  9. Odintsov, 2004 , p. 75.

Literatură