Tecniche di Programmazione


Come si è detto l’attività necessaria alla stesura di un programma prende il nome di programmazione. Essa può pensarsi suddivisa nelle seguenti fasi di lavoro:
  • formulazione (identificazione) del programma
  • analisi del problema;
  • ricerca dell’algoritmo;
  • stesura del programma;
  • verifica della sua esattezza.

In base ai risultati dell’elaborazione il programma va ulteriormente corretto, fino a giungere ad una sua stesura definitiva.

Formulazione del problema
Prima di stendere il programma atto ad eseguire un certo lavoro è opportuno valutare le seguenti condizioni:
individuare con precisione il risultato che si deve conseguire;
controllare che il problema sia formulato in modo corretto;
verificare che la sua risoluzione sia economicamente conveniente.

L’ultima condizione si verifica in genere quando si devono elaborare grandi quantità di dati, quando l’elaborazione va eseguita in tempi brevi o quando i problemi da trattare sono tali da non poter essere risolti con altri strumenti. La formulazione del problema, sia esso scientifico, tecnico o amministrativo, è in genere effettuata da esperti dei vari settori, i quali ne esaminano i dettagli e le ipotesi di soluzione, lasciando le fasi successive agli specialisti di informatica.

Analisi del problema
Tale fase è svolta da tecnici chiamati analisti. Il lavoro di analisi del problema deve valutare se il problema proposto può essere realizzato dal calcolatore e stabilire quali sia il migliore procedimento di soluzione, in relazione al sistema di elaborazione disponibile. Vanno inoltre previste tutte le condizione che possono presentarsi durante lo svolgimento del lavoro, anche al di fuori delle normali modalità di esecuzione, al fine di garantire comunque la funzionalità del programma. Dopo aver esaminato le varie fasi di lavoro, l’analista stende un diagramma di flusso che permette di rappresentare in forma schematica il lavoro da eseguire.

Ricerca dell’algoritmo
A questo punto interviene il programmatore, che ha il compito di individuare l’algoritmo di soluzione, ossia la struttura operativa che deve essere seguita durante l’elaborazione, componendo ogni blocco in una successione di operazioni elementari traducibili in istruzioni per il calcolatore in relazione al linguaggio di programmazione adottato. In altre parole, l’algoritmo rappresenta quella serie di criteri che permettono, introducendo dei dati nel sistema, di ottenere dei risultati col problema da risolvere.
Fra le varie caratteristiche che deve possedere un algoritmo si citano le seguenti:
compiutezza;
univocità;
realizzabilità.

La compiutezza di un algoritmo è una garanzia della sua effettiva funzionalità, e rappresenta la caratteristica di poter essere realizzato un numero finito di cicli, definito all’inizio o in fase di elaborazione, ma comunque in modo tale da poter venire effettivamente eseguito.
L’univocità dell’algoritmo deve assicurare che a parità di dati di ingresso e di qualunque altra condizione che definisce il problema, i risultati debbano essere sempre gli stessi.
La realizzabilità di un algoritmo va verificata nella pratica, controllando che le istruzioni previste dal programma siano nelle condizioni date effettivamente eseguibili.

Stesura del programma
La redazione del diagramma di flusso espressa in forma grafica mediante il diagramma a blocchi permette una rappresentazione del problema in modo indipendente dal linguaggio di programmazione e dal processore disponibile. A questo punto occorre però far corrispondere ad ogni operazione, simboleggiata nel diagramma a blocchi, l’istruzione più adatta a risolvere quel particolare passo del problema nel linguaggio ad alto livello scelto, realizzando così la fase di stesura del programma.

Regole di stesura
Per corretto uso di un programma vanno evidentemente stabilite delle regole di stesura e di collegamento, ossia delle convenzioni ortografiche e sintattiche. Ciò tuttavia non basta: in modo del tutto analogo a quanto accade per le convenzioni matematiche, occorre stabilire la procedura operativa per l’interpretazione dell’operazione voluta, e cioè la regola semantica. Ad esempio, nella seguente scrittura:
A = B + C x D
Le regole ortografiche sono rispettate, ma permane un ambiguità rispetto all’ordine di esecuzione delle operazioni. Se si vuole fare in modo che il programma effettui prima il prodotto di C e D, e sommi il risultato con la variabile A, come avviene nell’algebra tradizionale, ciò va esplicitato nella traduzione del programma, e di tale regola occorrerà tenere conto in fase di stesura. In assenza di tali specificazioni, vi è il rischio che il programma esegua le operazioni nell’ordine in cui sono scritte, sommando quindi B e C prima di effettuare la moltiplicazione per D.

Verifica
Prima di passare all’esecuzione del programma è opportuno procedere ad una fase di verifica (debug) per cercare di eliminare gli eventuali, ma in genere inevitabili, errore di programmazione. Questi possono consistere in semplici scorrettezze formali, come sviste di tipo ortografico, o in errori di tipo sintattico, relativi cioè all’insieme del costrutto di un’istruzione, con modalità del tutto analoghe a quanto accade nella lingua parlata. Può accadere tuttavia che ad una correttezza formale non corrisponda una perfetta esecuzione del lavoro per la presenza di errori di tipo logico, consistenti in un’impropria realizzazione dell’algoritmo scelto, o nella stessa inadeguatezza di questo a svolgere il lavoro richiesto. Se tutte le fasi di programmazione si sono svolte correttamente, il programma è pronto per essere definitivamente eseguito.


Nessun commento :

Scrivi un commento

I commenti dovranno prima essere approvati da un amministratore. Verranno pubblicati solo quelli utili a tutti e attinenti al contenuto della pagina. Per commentare utilizzate un account Google/Gmail.