Page 33 - 120900030870_gallo_informatica2

Basic HTML Version

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