(Generalitatea software) ©

Fiecare dintre noi simte instinctiv cam cum stă treaba cu generalitatea în cazul produselor software. Să zicem că vrem să scriem un program care calculează media aritmetică.
Mai întâi ne gândim la programul care calculează media aritmetică simplă pentru cel mult 100 de elemente ale unui şir format din numere cu virgulă.
După aceea, ne gândim, după ce acest program rulează corect şi a fost testat şi suntem convinşi că face ceea ce trebuie, să-l facem să calculeze media aritmetică pentru oricâţi termeni, ceea ce presupune să lucrăm cu un fişier. Să presupunem că acest program de calcul medie aritmetică pentru oricât de mulţi termeni este bun.
Vom reuni cele două programe şi dacă numărul de termeni este mai mic decât 100 se va folosi programul prim scris, iar dacă numărul este mai mare, se va folosi programul care lucrează cu fişier.
Se observă că:
- am lucrat de la simplu la complex,
- nu am abandonat nici un program,
- am agregat cele două programe,
- fiecare program va fi folosit când se impune.
După ce am căpătat experienţă, ne gândim să scriem şi programul care calculează media aritmetică ponderată. Cu experienţa pe care o avem, suntem tentaţi să scriem direc programul care lucrează cu fişier, ceea ce nu este chiar excelent, din moment ce multe probleme lucrează cu mai puţin de 100 de termeni.
Vom scrie programul pentru calculul mediei aritmetice ponderate pentru un şir cu mai puţin de 100 de perechi valori-frecvenţe.
Apoi von scrie programul pentru calculul mediei aritmetice ponderate pentru oricât de mulţi termeni, folosind un fişier.
Aceeaşi gândire o vom aplica şi dacă dorim să scriem programe pentru calculul mediei geometrice şi a mediei armonice.
Treptat-treptat construim un program suficient de general, care permite calculul mediei aritmetice, a mediei geometrice şi a mediei armonice, toate în variantele simple şi, respectiv, ponderate.
Ca să facem acest program operaţional, va trebui să-l înzestrăm cu o interfaţă în care utilizatorul spune ce date de intrare are şi apoi, ce vrea să facă cu ele.
Ideea de bază este ca dezvoltatorul să o ia cu scrierea de programe de la simplu către complex, fără a se aventura în a face o construcţie extrem de sofisticată, căci nimeni nu este interesat să vadă un program special care însă nu prelucrează nimic. Mereu impresionează numai programele care rezolvă cu adevărat problemele, chiar dacă nu sunt cele mai complexe probleme din câte se cunosc.
Degeaba spunem că avem în faţă un program care optimizează nu ştiu ce problemă cu mai multe funcţii obiectiv, cu până la 5.000 de variabile şi 4.000 de inecuaţii de toate felurile, dacă acel program nu rulează că nu au fost eliminate erorile de sintaxă.
Sunt preferate programe cu mult mai simple, care au fost testate şi care implementează un algoritm simplex pentru 50 de variabile, 30 de restricţii pe mai mic şi doar o funcţie obiectiv, dar de care toată lumea este mai mult decât mulţumită.



                                                                                                                                                                                                    Înapoi