Lezione 2: Il ciclo di vita del software
Design
Evolution
Testing
Implementation
Classi terzeScrivere un programma
- La scrittura di un programma in un linguaggio di
programmazione si conclude con la codifica di un
algoritmo nel linguaggio utilizzato dal programmatore
per essere trasformato in formato opportuno
comprensibile al calcolatore.
- La scrittura dell'algoritmo è l'ultimo passo della
progettazione dell'algoritmo che in generale è
un'operazione complessa che richiede più fasi:
Definizione e comprensione del problema (analisi del
problema);
Ricerca della soluzione (strategia risolutiva);
Descrizione/elencazione delle operazioni da eseguire
nel linguaggio "umano" o semiformale dell' algoritmo;
Codifica in un linguaggio di programmazione
Fase di Analisi
- La prima fase, cioè quella definita come fase di analisi
del problema, è forse la più delicata e in essa possiamo
sintetizzare le seguenti operazioni:
Comprensione del problema;
Modellizzazione del problema;
Fase di progettazione
- La seconda fase prende il nome di progettazione: una
volta individuato cosa deve essere fatto nella fase di
analisi, la fase di definizione della strategia individua
la strategia risolutiva, cioè come risolvere il problema
individuando l' "idea", il procedimenti operativo, che
permette di raggiungere la soluzione.
Scrittura dell'algoritmo
- L'algoritmo consiste nella descrizione delle operazioni
che devono essere effettuate indicandone l'ordine di
esecuzione.
- In generale ogni problema ammette molteplici
soluzioni e la strategia risolutiva e il dettaglio con cui
questa viene descritta è anche in funzione di chi dovrà
effettivamente eseguire l'algoritmo: l'esecutore.
- Esecutore umano: operazioni semplici?
- Esecutore come calcolatore: la prima stesura
dell'algoritmo avviene in un linguaggio semiformale,
chiamato linguaggio di progetto.
- Per semplicità spesso si segue proprio un
procedimento costituito dalla riscrittura dell'algoritmo
da uno pseudolinguaggio a un altro, per passare
gradatamente da un linguaggio naturale a un
linguaggio formale.
- Noi inizieremo a codificare gli algoritmi utilizzando i
diagrammi di flusso per poi tradurli in
pseudolinguaggio adottando una tecnica chiamata
top-down.
Linguaggio di progetto
- Il linguaggio di progetto è un linguaggio che "non
esiste": ogni programmatore generalmente, nel corso
degli anni, personalizza il proprio metodo di
descrizione intermedia dell'algoritmo in base alla
propria esperienza maturata sul campo.
Codifica dell'algoritmo
- La fase di codifica è quella che riguarda la
trasformazione dalla pseudocodifica al linguaggio di
programmazione. Questa fase consiste nella semplice
traduzione delle istruzioni scritte nel linguaggio di
progetto nella sintassi specifica del Pascal, C, Visual
Basic, ecc ....
Questa operazione richiede la conoscenza della
sintassi specifica del linguaggio ed è una vera e propria
fase di "conversione", senza momenti di creatività o di
progettazione.
- In seguito il programma viene elaborato
automaticamente per produrre il codice che l'esecutore
è in grado di interpretare: il linguaggio macchina.
Test e debug
- L'obiettivo di questa fase è verificare l'assenza di
errori; dato che è praticamente impossibile
programmare senza errori, è necessaria una specifica
fase , quella di test, nella quale viene verificata la
correttezza dei risultati dell'elaborazione su un
campione di dati di prova: l'eventuale presenza di
errori innesca la fase di debug, cioè la ricerca
dell'istruzione (o segmento di codice) errata per
procedere alla sua correzione e all'eliminazione del
"baco".
Installazione, verifica e collaudo
- E' un'unica fase articolata in 3 momenti:
-
Con installazione si intende la consegna del software
al cliente mediante l'installazione fisica del
programma sul sistema del cliente stesso;
-
La verifica viene effettuata dagli utenti del
programma e consiste nell'accertare che il software
sia corretto rispetto alle specifiche individuate
dall'analista e quindi conforme a quanto specificato
nelle loro richieste.
-
Il collaudo accerta che, eseguendo prove con dati
reali, il programma funzioni correttamente.
Manutenzione
- E' la fase permanente di supporto al sistema dopo la
consegna all'utente; le attività svolte in questo passo
del ciclo di vita di un'applicazione riguardano:
-
L'aspetto correttivo, che consiste nell'eliminare gli
errori individuati;
-
L'aspetto adattativo, che ha l'obiettivo di apportare le
modifiche necessarie per il trasferimento
dell'applicazione informatica su altri sistemi;
-
L'aspetto migliorativo, che si propone di aggiungere
nuove funzionalità o di ottimizzare quelle esistenti.