L’approccio top-down
UNITà DI APPRENDIMENTO 1
73
LEZIONE 1
Top-down e bottom-up
Dettagli
Top
Down
Up
Bottom
Nel modello top-down si affronta il problema osservandolo più in generale e
poi rifinendo ogni sua parte. Ad esempio, creo un modello di automobile e poi
scendo nel dettaglio rifinendo ruote, motore e così via. Un approccio informatico
è quello di servirsi di sottoprogrammi da definire in un secondo momento. È il
classico approccio della
programmazione procedurale
.
Nel modello bottom-up si affronta il problema preoccupandosi prima dei det
tagli più semplici, fino ad arrivare al modello più complesso (esattamente il
contrario del modello top-down). Ad esempio, creo una ruota, poi un motore
e le altre parti e solo alla fine ottengo il modello complesso di un’automobile.
Nella
programmazione ad oggetti
è utilizzato questo metodo, in quanto si ha la
possibilità di creare singoli oggetti indipendenti e quindi tramite questo approc
cio si sviluppa cominciando dalle classi base che poi si estendono o si collegano
insieme a creare un programma complesso.
Nel processo di sviluppo software, gli approcci top-down e bottom-up giocano un
ruolo fondamentale. L’approccio top-down enfatizza la pianificazione e una com
pleta comprensione del sistema. È ovvio che la fase di codifica non può iniziare
finché non si è raggiunto almeno un sufficiente livello di dettaglio nella progetta
zione di una parte significante del sistema. Questo, comunque, ritarda la fase di
test delle ultime unità funzionali di un sistema fino a quando una parte rilevante
della progettazione non è stata completata.
Al contrario, l’approccio bottom-up enfatizza la codifica e la fase di test precoce,
che può iniziare appena il primo modulo è stato specificato. Questo approccio,
comunque, induce il rischio che i moduli possano essere codificati senza avere
una chiara idea di come dovranno essere connessi ad altre parti del sistema.
L’importante principio di riusabilità del codice è una delle muse ispiratrici di
questo metodo. I moderni approcci alla progettazione software comunemente
combinano sia la tecnica top-down sia quella bottom-up. Benché l’analisi e la
comprensione del sistema completo sia tipicamente considerata necessaria per
una buona progettazione (e quindi tramite l’approccio top-down), nella maggior
parte dei progetti software si cerca di fare uso di codice già esistente ad alcuni
livelli (tendenza bottom-up).
La tecnica
top-down
, quindi, parte dall’obiettivo e da esso fa scaturire la strategia
più adatta a raggiungere l’obiettivo stesso; valorizza, quindi, il
perché
e da esso
fa dipendere il
come
, ossia la strategia. Individua, pertanto, le risorse necessarie,
precisa quelle disponibili e identifica quelle mancanti, propone successivamente
ogni risorsa mancante come sotto-obiettivo, ovvero come sottoproblema in cui
ciascun sotto-obiettivo richiede una sotto-strategia risolutiva.
La metodologia
bottom-up
, ossia “dal basso verso l’alto”, privilegia invece
l’aspetto esecutivo rispetto a quello funzionale, procedendo dal particolare verso
il generale. Il metodo bottom-up è una
strategia induttiva
e consente di con
centrarsi subito sui punti cardine del problema che, però, potrebbero essere di
difficile individuazione iniziale.
?
Problema