mercoledì 12 dicembre 2012

Sviluppo di un programma passo-passo - Parte 1

CALCOLO DEL CODICE FISCALE E BASI DELLA PROGRAMMAZIONE


Ciao a tutti! Dopo la pausa decisionale per scegliere il progetto da fare, siamo giunti ad una nuova idea, che esiste certamente, in tutte le salse: il calcolo del codice fiscale. Cliccando su questo link, troverete una pagina molto ben spiegata nel quale troverete le regole per creare l'algoritmo che genera il famoso codice che ci rende tutti univoci al dipartimento dell'agenzia delle entrate!



Resta però da definire in quale linguaggio scrivere l'applicazione che calcolerà il codice fiscale, e il perchè. Vogliamo rendere un servizio al'utente, o vogliamo fare un supercontrollo all'invio di un form? Oppure ancora, vogliamo fare un controllo incrociato  dei dati di un db, e segnalare quali incongruenze ci sono e inviare statistiche sulla clientela controllata, o magari, un semplice esercizio scolastico?

Le possibilità sono diverse, e in base allo scopo si dovrebbe scegliere cosa fare. In un libro sul C++ acquistato nel lontano 1999, edito da Apogeo "C++ Tutto & Oltre" di Jesse Liberty, c'è una fondamentale quanto semplice mappa concettuale sul ciclo di progettazione-realizzazione di un programma:
  1. Concettualizzazione
  2. Analisi
  3. Progettazione
  4. Implementazione
  5. Test
  6. Produzione
Tutto questo verrà spiegato passo-passo durante la realizzazione del programma sul codice fiscale. Per il momento, possiamo però partire dal primo punto. Partiamo quindi dalla Concettualizzazione,  ovvero l'INTUIZIONE. Certo, convengo con voi per il fatto che c'è poco da intuire su un programma che è già stato fatto in molti modi diversi, ma anche in questo caso possiamo fare un cenno su cosa sia la concettualizzazione e usarla per iniziare finalmente questo progetto.

CONCETTUALIZZAZIONE

L'intuizione è quella fase in cui si determina lo scopo del nostro programma (nel libro si riferisce alla programmazione a oggetti, ma io sono convinto che questi passi possono essere seguiti per qualsiasi tipo di programmazione, anche futura), un momento brevissimo che getterà le fondamenta su ciò che verrà fatto. Potrà certamente essere aggiornata mano a mano che sviluppa il nostro software, in base a determinate esigenze e nuove idee. In un team di sviluppo potrebbe esserci anche una persona designata allo scopo di proteggere e aggiornare l'idea e controllare che tutto ciò che ne segue venga fatto seguendo l'intuizione originale. Può essere una frase, un paragrafo, o un'idea che descrive brevemente ma in modo dettagliato cosa dovrà fare il nostro progetto e perchè. Il rispondere ad una delle domande che scrivevo poco sopra ad esempio potrebbe essere un buon inizio per questa fase d'intuizione.
Bene, ma allora cosa vogliamo fare con questo algoritmo che già esiste? Semplice. L'idea di sviluppo di questo algoritmo sarà "creare un programma che sarà disponibile alla consultazione online, registrerà un log di utilizzo, memorizzerà i dati ricercati in un db, invierà il risultato via mail o sarà pronto per essere stampato". La ricerca consisterà nel calcolo del codice fornendo i dati della persona, tenendo presente che comunque ci sono alcune variazioni che solo il ministero può decidere e che non sono conosciute a noi comuni mortali! L'esempio più calzante, è che in caso di forte omonimia prevista dal decreto legge, si faccia ciò che viene descritto nell'articolo 6 del D.M. n° 345 del 23/12/1976, che non possiamo fare dall'esterno, ma solo emularlo, in quanto non possiamo avere a disposizione l'intero archivio del C.F. registrato in Italia.

CONCLUSIONE

Bene, ci siamo!
Con questo primo passo abbiamo dato il via al nostro programma. Non abbiamo ancora scritto una riga di codice e alcune ricerche dovranno esser fatte, ma questa sarà la parte di Analisi che non è altro che il secondo passo relativo alla programmazione. Effettivamente, quando si parla di scrivere un programma, la scrittura del codice che poi eseguirà il programma è solo uno dei 6 passi descritti sopra. Questa è l'informatica, ovvero la gestione automatica delle informazioni che senza un preciso scopo, un'analisi e molti test anche prima di scrivere il codice di un programma, non avrebbe molto senso chiamarla così.

Nessun commento:

Posta un commento

Stampa