Mini Specifications

Ogni processo per ora è stato indicato come una "bolla" nel DFD, magari esplosa a più livelli. La descrizione è chiaramente troppo riassuntiva, quindi occorre completarla con una descrizione della logica del processo.

La metodologia ci porta in modo molto naturale a dividere i processi complessi in parti sempre più piccole; per cui, se abbiamo lavorato bene, a questo punto dovremmo trovarci con delle descrizioni molto naturali e semplici, tanto da essere capibili dall’utente e realizzabili dal programmatore.

Vi sono vari modi di descrivere un processo, i più diffusi sono le tabelle decisionali, gli alberi decisionali e l’inglese strutturato.

Una tabella decisionale evidenzia tutte le possibili condizioni in cui può trovarsi il processo. In base ad ogni combinazione di condizioni possono essere intraprese delle azioni.

Un albero decisionale controlla una condizione alla volta, fino a giungere ad un nodo finale dove troviamo le azioni.

L’inglese strutturato è l’anticamera della programmazione vera e propria. Le regole da seguire in modo ferreo sono quelle della programmazione strutturata: poche istruzioni, raggruppate in blocchi con un ingresso e una uscita.

Le istruzioni normalmente accettate sono:

IF ... THEN ... ELSE

REPEAT ... UNTIL

WHILE ... DO

più tutta la serie di costrutti necessari per gestire i dati contenuti nei file, con le operazioni di ricerca, lista, lettura e scrittura:

GET / ACCEPT / READ

PUT / DISPLAY / WRITE

FIND / SEARCH / LOCATE

e le operazione di manipolazione dei dati, sia aritmetiche che sulle stringhe o in generale su ogni tipo di dato che intendiamo supportare.

Un esempio di programma potrebbe essere:

PROCESSO 1.1: EDITA DETTAGLI ORDINE

IF ID-cliente = "nuovo"

ID-cliente = prossimo ID disponibile

limite-credito = 0

cliente = ID-cliente+nome-cliente+ind-cliente+limite-credito

append cliente to CLIENTI

ENDIF

In ogni caso, descrivendo la logica del processo, non bisogna dimenticarsi qual’è lo scopo ultimo di questo lavoro: creare qualcosa di verificabile dall’utente e di costruibile per il programmatore!

Questo criterio deve essere la guida per scegliere quale dei formalismi usare: useremo quello più adatto di volta in volta ad esprimere il problema con la massima chiarezza. Se il problema è soprattutto una serie di decisioni in cascata useremo gli alberi, se è una combinazione di azioni e scelte useremo le tabelle altrimenti l’inglese strutturato.