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
-
- Guia de comparação
- Definição
- Diferenças-chave
- 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
- 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.
- 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.
- 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.
- A abordagem top-down pode produzir redundância enquanto a abordagem bottom-up não inclui informações redundantes.
- 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.
- 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.
Deixe uma resposta