Abordagemtop-down vs. bottom-up Os algoritmos são projetados usando duas abordagens que são a abordagem top-down e a abordagem bottom-up. Na abordagem de cima para baixo, o módulo complexo é dividido em submódulos. Por outro lado, a abordagem bottom-up começa com módulos elementares e depois combina-os ainda mais. O objetivo anterior de um algoritmo é operar os dados compreendidos na estrutura de dados. Em outras palavras, um algoritmo é usado para executar as operações sobre os dados dentro das estruturas de dados.

Um algoritmo complicado é dividido em pequenas partes chamadas módulos, e o processo de divisão é conhecido como modularização. A modularização reduz significativamente as complicações de projetar um algoritmo e torna o seu processo mais fácil de projetar e implementar. A programação modular é a técnica de projetar e escrever um programa na forma de funções, onde cada função é distinta uma da outra e funciona de forma independente. O conteúdo das funções é coeso de forma, e existe um baixo acoplamento entre os módulos.

Conteúdo: Abordagem de cima para baixo Vs Abaixo…up Aproximação

    1. Guia de comparação
    2. Definição
    3. Diferenças-chave
    4. Conclusão

    >

Guia de comparação

>

Base de comparação Top-Abordagem para baixo Abordagem de baixo para cima
Basic Quebra o enorme problema em sub-problemas menores. Soluciona o problema fundamental de baixo nível e integra-os num maior.
Processo Submódulos são analisados solitariamente. Examinar que dados devem ser encapsulados, e implica o conceito de ocultação de informação.
Comunicação Não é necessário na abordagem de cima para baixo. Não é necessária uma quantidade específica de comunicação.
Redundância Conter informação redundante. Redundância pode ser eliminada.
Linguagens de programação Linguagens de programação orientadas à estrutura/processo (i.e. C) seguem a abordagem de cima para baixo. Linguagens de programação orientadas ao objeto (como C++, Java, etc.)) segue a abordagem bottom-up.
Mais utilizada em Documentação de módulos, criação de casos de teste, implementação e depuração de código. Teste

Definição da abordagem de cima para baixo

A abordagem de cima para baixo divide basicamente um problema complexo ou algoritmo em várias partes menores (módulos). Estes módulos são decompostos até que o módulo resultante seja o programa fundamental essencialmente compreendido e não pode ser decomposto mais. Após atingir um certo nível de modularidade, a decomposição dos módulos é interrompida. A abordagem de cima para baixo é o processo gradual de decomposição do módulo de programa grande em módulos mais simples e menores para organizar e codificar o programa de uma maneira eficiente. O fluxo de controle nesta abordagem é sempre no sentido descendente. A abordagem top-down é implementada na linguagem de programação “C” usando funções.

Assim, o método top-down começa com um desenho abstrato e então seqüencialmente este desenho é refinado para criar níveis mais concretos até que não haja necessidade de refinamento adicional.

Definição da abordagem bottom-up

A abordagem bottom-up funciona de maneira exatamente oposta à abordagem top-down. Inicialmente, inclui o desenho das partes mais fundamentais que são depois combinadas para fazer o módulo de nível superior. Esta integração de submódulos e módulos no módulo de nível superior é feita repetidamente até que o algoritmo completo necessário seja obtido.

A aproximação bottom-up funciona com camadas de abstracção. A principal aplicação da abordagem bottom-up é o teste, pois cada módulo fundamental é primeiramente testado antes de fundi-lo com o módulo maior. O teste é realizado usando certas funções de baixo nível.

Diferenças entre a abordagem de cima para baixo e de baixo para cima

  1. A abordagem de cima para baixo decompõe a tarefa grande em subtarefas menores enquanto a abordagem de baixo para cima primeiro escolhe resolver as diferentes partes fundamentais da tarefa e depois combina essas partes em um programa inteiro.
  2. Cada submódulo é processado separadamente em uma abordagem de cima para baixo. Ao contrário, a abordagem bottom-up implementa o conceito de esconder a informação examinando os dados a serem encapsulados.
  3. Os diferentes módulos na abordagem top-down não requerem muita comunicação. Pelo contrário, a abordagem bottom-up precisa da interação entre os módulos fundamentais separados para combiná-los posteriormente.
  4. A abordagem top-down pode produzir redundância enquanto a abordagem bottom-up não inclui informações redundantes.
  5. As linguagens de programação de procedimentos como Fortran, COBOL e C seguem uma abordagem top-down. Em contraste, linguagens de programação orientadas a objetos como C++, Java, C#, Perl, Python seguem a abordagem bottom-up.
  6. A abordagem bottom-up é usada anteriormente em testes. Por outro lado, a abordagem top-down é utilizada na documentação do módulo, criação de casos de teste, depuração, etc..

Conclusion

A abordagem top-down e a abordagem bottom-up são os métodos de projeto de algoritmos onde top-down é uma abordagem convencional que decompõe o sistema de especificação de alto nível para especificação de baixo nível. Por outro lado, a abordagem bottom-up é mais eficiente e funciona de forma inversa, onde os componentes primitivos são projetados a princípio e depois prosseguem para o nível superior.

A abordagem top-down enfatiza o isolamento dos submódulos (significa o baixo acoplamento entre os módulos) enquanto ignora a identificação do conceito de comunicação e reusabilidade. Enquanto na abordagem bottom-up, a ocultação da informação e a reusabilidade são os fatores de destaque.