Come progettare un software
Introduzione
Una domanda a cui molte persone appassionate di informatica si chiedono è come progettare un software. Il processo può essere abbastanza lungo e laborioso, oltre a richiedere anche parecchi mesi di lavoro, dal momento che le diverse fasi di cui esso è composto spesso necessitano di varie modifiche e correzioni, ma sopratutto continui rinnovamenti. Tuttavia è necessario precisare che il fattore tempo è solitamente ripagato dal fatto che, se ben progettato, un software può rivelarsi estremamente utile, sia economicamente che praticamente, al suo creatore e a chi lo utilizza. In questa semplice ed esauriente guida, pertanto, andremo a spiegare come si può progettare un software.
Occorrente
- Computer
- Tanto tempo e pazienza
È fondamentale elencare i differenti passaggi di cui si compone la progettazione di un software. Dal momento che l'utilità del programma, come ad esempio uno finalizzato al calcolo ingegneristico, consiste nella capacità di risolvere dei tipi di problemi, è di estrema importanza che il progettista abbia ben presente quale sia la problematica specifica che il suo software dovrà risolvere. Infatti, i programmi che sono completamente privi di alcuna finalità precisa, non hanno molto successo una volta che vengono immessi sul mercato. Questa fase iniziale non è assolutamente da sottovalutare, dal momento che richiede un lavoro di astrazione non indifferente da parte del progettista, nel tentativo di immaginare quale sia il risultato finale. Specificatamente è necessario focalizzarsi su quali saranno i parametri inseriti dall'utente (ossia gli input) e quali invece dovrà restituire il software in risposta (quindi gli output).
Il secondo procedimento fondamentale per la realizzazione di un software consiste nella redazione di grafici, di diagrammi di flusso, di pseudo-codice, con l'obiettivo di avere degli schemi che rappresentino la struttura logica del programma stesso. Questa fase può essere saltata, nel caso di software relativamente semplici da creare dal punto di vista procedurale. In questo passaggio si concretizza la progettazione attraverso la stesura degli algoritmi. È completamente inutile sostenere che in questa fase è molto importante, per non dire fondamentale, conoscere il "linguaggio" del computer. In effetti, come dice un vecchio proverbio, "i computer fanno quello che gli dici di fare, non quello che vuoi".
Nel caso in cui il processo appena esposto dovesse essere assimilabile al lavoro che compie il proprio cervello durante la creazione di una frase, quello che stiamo per spiegarvi può essere assimilato alla pronuncia della frase stessa. Inizialmente rappresenta una sequenza di idee messe una dopo l'altra per costruire un concetto. Successivamente quando la si pronuncia, la frase acquista delle caratteristiche fondamentale per la sua comprensione, quali ad esempio la lingua. Esattamente come per gli essere umani esistono varie lingue come l'arabo, l'italiano, il cinese, il francese, un discorso analogo vale per i computer. Per quest'ultimi, infatti, esistono svariati linguaggi di programmazione come il Visual Basic, il Java, il C++, il Delphi e molti altri ancora, con diverse caratteristiche sintattiche e strutturali. Il loro ruolo è quello di agire da ponte tra la logica di programmazione e la sua effettiva esecuzione. Questa parte è quella che, sicuramente, necessita di maggiori conoscenze tecniche ed abilità intellettive. Questo procedimento comprende, tra l'altro, la realizzazione di un'interfaccia grafica e della stesura pratica del codice del programma che, una volta compilato, restituirà un file "eseguibile" pronto per essere eseguito.
L'ultimo passo di questo lungo processo consiste nella verifica del risultato ottenuto, che, alcune volte, può comportare un ritorno al passo precedente per la correzione di un eventuale errore. Infatti il programma appena elaborato, non sempre porta a buoni risultati. Spesso, in questo passaggio, può rivelarsi utile ricorrere al cosiddetto debugging (de-bug vuol dire eliminazione dei problemi) che osserva il comportamento del programma istruzione dopo istruzione. Una volta che sono stati eliminati tutti quanti i problemi relativi al codice, e pertanto quando è stato verificato il corretto funzionamento del software, la progettazione può dirsi terminata e lasciare spazio alla fase di commercializzazione. Progettare un software, in buona sostanza, rappresenta una vera e propria professione che richiede di molto tempo disponibile e di tanta buona volontà, oltre a possedere le giuste conoscenze dei linguaggi di programmazione.