Existem duas técnicas principais de desenho de algoritmos de programação, o Top Down e o Bottom Up.Por Wilder Urbaez
Publicado em: 18/12/08
Top Down
Também conhecida como de cima-abaixo e consiste em estabelecer uma série de níveis de maior a menor complexidade (cima-abaixo) que dêem solução ao problema. Consiste em efetuar uma relação entre as etapas da estruturação de forma que uma etapa hierárquica e seu imediato inferior se relacionem mediante entradas e saídas de informação.
Este desenho consiste em uma série de decomposições sucessivas do problema inicial, que recebe o refinamento progressivo do repertório de instruções que vão fazer parte do programa.
A utilização da técnica de desenho Top-Down tem os seguintes objetivos básicos:
- Simplificação do problema e dos subprogramas de cada decomposição.
- As diferentes partes do problema podem ser programadas de modo independente e inclusive por diferentes pessoas.
- O programa final fica estruturado em forma de bloco ou módulos, o que torna mais simples sua leitura e manutenção.
Bottom Up
O desenho ascendente se refere à identificação daqueles processos que necessitam se computarizar conforme vão aparecendo, sua análise como sistema e sua codificação, ou também, sua aquisição de pacotes de software para satisfazer o problema imediato.
Quando a programação se realiza internamente e fazendo um enfoque ascendente, é difícil chegar a integrar os subsistemas ao grau tal de que o desempenho global, seja fluido. Os problemas de integração entre os subsistemas são sumamente custosos e muitos deles não se solução até que a programação alcança a data limite para a
integração total do sistema. Nesta data, já se conta com muito pouco tempo, orçamento ou paciência dos usuários, como para corrigir aquelas delicadas interfaces, que à princípio, se ignoram.
Embora cada subsistema pareça oferecer o que se requer, quando se contempla ao sistema como uma entidade global, adoece de certas limitações por ter tomado um enfoque ascendente.
Um deles é a duplicação de esforços para acessar o software e mais ainda ao introduzir os dados.
Outro é, que se introduzem ao sistema muitos dados carentes de valor.
Um terceiro e talvez o mais sério inconveniente do enfoque ascendente, é que os objetivos globais da organização não foram considerados e em conseqüência não se satisfazem.
Então…
A diferença entre estas duas técnicas de programação se fundamenta no resultado que apresentam frente a um problema dado.
Imagine uma empresa, a qual se compõe de vários departamentos (contabilidade, administração, …), em cada um deles foram se apresentando problemas aos quais se deram uma solução baseados em um enfoque ascendente (Bottom Up): criando programas que satisfaziam só o problema que se apresentava.
Quando a empresa decidiu integrar um sistema global para suprir todas as necessidades de todos os departamentos se deu conta que cada uma das soluções apresentadas não era compatível uma com a outra, não representava uma globalidade, característica principal dos sistemas.
Como não houve uma análise prévia, desenho de uma solução a nível global em todos seus departamentos, centralização de informação, que são características próprias de um desenho Descendente (Top Down) e características fundamentais dos sistemas; a empresa não pode satisfazer sua necessidade a nível global.
A criação de algoritmos é baseado sobre a técnica descendente, a qual oferece o desenho ideal para a solução de um problema.