Cos'è un programma

Nel gergo comune, con "programma" si intendono molte cose. Anche nel gergo tecnico purtroppo c'è lo stesso problema.

In questo manuale cercherò di non usare il temrine "programma", ma quello di funzione.
Anche questo termine è ambiguo, perchè in molti linguaggi di programmazione ha un significato ben distinto, ma è quella che mi "viene" meglio.

Un programma, oops funzione, almeno nel nostro contesto, è qualcosa che permette di realizzare un'attività ben identificata. Quando un sistema applicativo è quidato da menù, una funzione corrisponde normalmente ad un punto di menu. La definizione è ancora abbastanza generica, per cui vedrò di approfondirla ulteriormente.

Tutti i programmatori "gestionali" hanno fatto nella loro vita un "programma" per gestire Fatture. Nella mia ottica, una funzione è quella che consente di "immettere o variare una fattura". Un'altra funzione permetterà di "stampare" una fattura. Se poi la funzione di immissione/modifica è un minimo sofisticata, permetterà anche di cercare la fattura da modificare per data, cliente, ecc. Queste però non sono altre funzioni, ma semplicemente raffinamenti, funzionalità o che dir altro si voglia, che non spostano il fatto che la funzione serve ad immettere o modificare una fattura per volta.

Nella realtà, una funzione non si realizza scrivendo un unico "pezzo" di codice, ma richiede di collegare opportunamente diversi componenti:

Linguaggio UML

Non spreco spazio a parlare dell'UML, ampiamente e meglio trattato in altri contesti, ma lo introduco già a questo livello per suggerire che normalmente una funzione si può identificare con uno use case:

In questo diagramma è rappresentato il fatto che l'Actor "Utente" deve fare due cose:

ed entrambe queste attività includono l'uso del programma di gestione fatture.

(segue)