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 tornar 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 em que cada função é distinta entre si e funciona de forma independente. O conteúdo das funções é coeso de maneira e existe um baixo acoplamento entre os módulos.
Gráfico de comparação
Base para comparação | Abordagem de cima para baixo | Abordagem de baixo para cima |
---|---|---|
Basic | Quebra o enorme problema em subproblemas menores. | Resolve o problema fundamental de baixo nível e integra-os em um problema maior. |
Processo | Submódulos são analisados solitariamente. | Examine quais dados devem ser encapsulados e implica o conceito de ocultação de informações. |
Comunicação | Não é necessário na abordagem de cima para baixo. | Precisa de uma quantidade específica de comunicação. |
Redundância | Contém informações redundantes. | Redundância pode ser eliminada. |
Linguagens de programação | Linguagens de programação orientadas a estrutura / processo (ou seja, C) seguem a abordagem de cima para baixo. | Linguagens de programação orientadas a objetos (como C ++, Java, etc.) seguem a abordagem bottom-up. |
Usado principalmente em | Documentação do módulo, criação de casos de teste, implementação de código e depuração. | Testando |
Definição de Abordagem Top-down
A abordagem top-down basicamente divide um problema ou algoritmo complexo em várias partes menores (módulos). Estes módulos são ainda mais decompostos até que o módulo resultante seja o programa fundamental essencialmente compreendido e não possa ser mais decomposto. Depois de atingir um certo nível de modularidade, a decomposição de módulos é interrompida. A abordagem top-down é o processo passo a passo de quebrar o grande módulo do programa em módulos mais simples e menores para organizar e codificar o programa de maneira eficiente. O fluxo de controle nessa abordagem está 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 o design abstrato e, em seguida, sequencialmente, esse design é refinado para criar níveis mais concretos até que não haja exigência de refinamento adicional.
Definição da abordagem bottom-up
A abordagem bottom-up funciona de maneira oposta à abordagem top-down. Inicialmente, inclui o projeto das partes mais fundamentais que são então 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 é repetidamente executada até que o algoritmo completo requerido seja obtido.
A abordagem bottom-up funciona com camadas de abstração. A principal aplicação da abordagem de baixo para cima é testar como cada módulo fundamental é testado pela primeira vez antes de mesclá-lo ao maior. O teste é realizado usando certas funções de baixo nível.
Principais diferenças entre a abordagem de cima para baixo e de baixo para cima
- A abordagem top-down decompõe a tarefa grande em subtarefas menores, enquanto a abordagem bottom-up primeiro escolhe resolver as diferentes partes fundamentais da tarefa diretamente e então combina essas partes em um programa inteiro.
- Cada submódulo é processado separadamente em uma abordagem de cima para baixo. Em contraste, a abordagem bottom-up implementa o conceito de ocultação de informações examinando os dados a serem encapsulados.
- Os diferentes módulos na abordagem top-down não exigem muita comunicação. Pelo contrário, a abordagem de baixo para cima precisa de interação entre os módulos fundamentais separados para combiná-los mais tarde.
- A abordagem top-down pode produzir redundância, enquanto a abordagem bottom-up não inclui informações redundantes.
- As linguagens procedurais de programação, como Fortran, COBOL e C, seguem uma abordagem de cima para baixo. 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 nos testes. Por outro lado, a abordagem top-down é utilizada na documentação do módulo, criação de casos de teste, depuração, etc.
Conclusão
A abordagem de cima para baixo e a abordagem de baixo para cima 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 a especificação de baixo nível. Por outro lado, a abordagem bottom-up é mais eficiente e funciona de maneira inversa, onde os componentes primitivos são projetados inicialmente e, em seguida, passam 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 reutilização. Embora na abordagem ascendente, a ocultação de informação e a reutilização são os fatores proeminentes.