Il ciclo ideale

Guardiamo in faccia alla realtà: sarebbe bello non dover scrivere neppure una linea di codice, poter immaginare la soluzione ed averla immediatamente disponibile senza errori, corretta e documentata.

Il ciclo di vita ideale sarebbe quello di sola analisi e progettazione, con un ambiente di sviluppo software così potente e robusto che ogni specifica di analisi si traduca automaticamente in un prodotto finito, pronto per essere consegnato al cliente.

Con questo magico sistema di sviluppo la fase di test non sarebbe più necessaria, perchè il codice prodotto in automatico nasce già corretto; la manutenzione sparirebbe; tutte le attività collaterali come la stesura del manuale dovrebbero essere ottenute automaticamente.

Questo obiettivo è raggiungibile? Sicuramente oggi non siamo già a questo punto, ma per settori specializzati ci stiamo avvicinando.

Le tecniche orientate agli oggetti spingono verso una forte riusabilità delle varie componenti software, gli strumenti CASE sono in grado di facilitare il processo di coordinamento dei vari aspetti del ciclo di vita, i generatori di codice possono tradurre specifiche date ad alto livello in programmi funzionanti.

Ripercorrendo la storia dell’informatica possiamo vedere come questa sia stata una tendenza fin dai primi timidi vagiti dei computer: dalla programmazione cablata all’assembler, togliendo una fase generatrice di errori come quella della stesura dei fili, dall’assembler ai linguaggi più evoluti come COBOL o FORTRAN, che hanno portato a livello simbolico le operazioni macchina rendendo i programmi più mantenibili, dai linguaggi general purpose ai 4GL specializzati, che permettono codifiche sempre più astratte e meno procedurali.

Da queste considerazioni sul modo di combinare le fasi possiamo trarre due conclusioni:

Esistono vari cicli di vita del software

bisogna disporre dei tool opportuni per poter seguire con successo il ciclo prescelto.

E’ evidente che se non scegliamo coscientemente un particolare ciclo di vita, sarà il corso degli eventi a sceglierlo per noi e a quel punto non guideremo più lo sviluppo dell’applicazione, ma avremo perso ogni controllo subendone le conseguenze.