contador gratis Saltar al contenido

Diferencia entre el enfoque de arriba hacia abajo y de abajo hacia arriba

febrero 28, 2020

Los algoritmos están diseñados utilizando dos enfoques, que son el enfoque de arriba hacia abajo y de abajo hacia arriba. En el enfoque de arriba hacia abajo, el módulo complejo se divide en submódulos. Por otro lado, el enfoque ascendente comienza con los módulos elementales y luego los combina más. El propósito anterior de un algoritmo es administrar los datos incluidos en la estructura de datos. En otras palabras, se utiliza un algoritmo para realizar operaciones en datos dentro de estructuras de datos.

Un algoritmo complicado dividido en pequeñas partes llamadas módulos y el proceso de división conocido como modularización . La modularización reduce significativamente las complicaciones de diseñar un algoritmo y hace que el proceso sea más fácil de diseñar e implementar. La programación modular es la técnica de diseñar y escribir un programa en forma de funciones en las que cada función es distinta entre sí y funciona independientemente. El contenido del tipo cohesivo funciona y hay un bajo acoplamiento entre los módulos.

Cuadro comparativo

Bases para la comparación Enfoque descendente Enfoque ascendente
Básico Rompe el gran problema en subproblemas más pequeños. Resuelve el problema básico de bajo nivel y los integra en uno más grande.
procesos Los submódulos se analizan en solitario. Examine qué datos deben encapsularse e implica el concepto de ocultar información.
comunicación No se requiere en el enfoque de arriba hacia abajo. Necesita una cantidad específica de comunicación.
redundancia Contiene información redundante La redundancia puede ser eliminada.
Lenguajes de programación Los lenguajes de programación estructurados / procesales (es decir, C) siguen el enfoque de arriba hacia abajo. Los lenguajes de programación orientados a objetos (como C ++, Java, etc.) siguen el enfoque ascendente.
Utilizado principalmente en Documentación del módulo, creación de casos de prueba, implementación de código y depuración. análisis

Definición de un enfoque de arriba hacia abajo

el enfoque De arriba hacia abajo básicamente divide un problema o un algoritmo complejo en varias partes más pequeñas (módulos). Estos módulos se desglosan aún más, siempre que el módulo resultante sea el programa fundamental esencialmente para ser entendido y no pueda desglosarse aún más. Después de alcanzar un cierto nivel de modularidad, la descomposición de los módulos cesó. El enfoque de arriba hacia abajo es el proceso gradual de dividir el módulo de programa grande en módulos más simples y pequeños para organizar y programar el programa de manera eficiente. El flujo de control en este enfoque siempre hacia abajo. El enfoque de arriba hacia abajo implementado en el lenguaje de programación "C" utilizando funciones.

Por lo tanto, el método de arriba hacia abajo comienza con un dibujo abstracto y luego, en secuencia, este diseño se perfecciona para crear más niveles concretos hasta que no se requiera más refinamiento.

Definición de enfoque ascendente

El enfoque de de abajo hacia arriba funciona al contrario del enfoque de arriba hacia abajo. Inicialmente, incluye el diseño de las partes más básicas que luego se combinan para crear el módulo de nivel superior. Esta integración de submódulos y módulos en el módulo de nivel superior se realiza repetidamente hasta que se obtiene el algoritmo completo requerido.

El enfoque ascendente funciona con niveles de abstracción. La aplicación principal del enfoque ascendente es la prueba, ya que cada módulo fundamental se prueba primero antes de unirlo con el más grande. La prueba se realiza utilizando ciertas funciones de bajo nivel.

Diferencias clave entre el enfoque de arriba hacia abajo y de abajo hacia arriba

  1. El enfoque de arriba hacia abajo descompone actividades grandes en sub-actividades más pequeñas, mientras que el enfoque de abajo hacia arriba primero elige resolver las diferentes partes fundamentales de la actividad, luego combina esas partes en un programa completo
  2. Cada submódulo se procesa por separado en un enfoque de arriba hacia abajo. Por el contrario, el enfoque ascendente implementa el concepto de ocultar información al examinar los datos que se van a encapsular.
  3. Los diferentes módulos en el enfoque de arriba hacia abajo no requieren mucha comunicación. Por el contrario, el enfoque ascendente requiere la interacción entre los módulos principales separados para combinarlos más tarde.
  4. El enfoque de arriba hacia abajo puede producir redundancia, mientras que el enfoque de abajo hacia arriba no incluye información redundante.
  5. Los lenguajes de programación de procedimientos como Fortran, COBOL y C siguen un enfoque de arriba hacia abajo. En contraste, los lenguajes de programación orientados a objetos como C ++, Java, C #, Perl, Python respetan el enfoque ascendente.
  6. El enfoque de abajo hacia arriba se usa previamente en ensayos. Por el contrario, el enfoque de arriba hacia abajo utilizado en la documentación del módulo, la creación de casos de prueba, la depuración, etc.

conclusión

El enfoque de arriba hacia abajo y el enfoque de abajo hacia arriba son los métodos de diseño de algoritmos en los que de arriba hacia abajo un enfoque convencional que descompone el sistema de especificaciones de alto nivel a especificaciones de bajo nivel. Por otro lado, el enfoque ascendente es más eficiente y funciona a la inversa, donde los componentes primitivos se diseñan al principio y luego se mueven al nivel más alto.

El enfoque de arriba hacia abajo enfatiza el aislamiento de los submódulos (indica el bajo acoplamiento entre los módulos) mientras ignora la identificación del concepto de comunicación y reutilización. Mientras que en el enfoque ascendente, la ocultación de la información y la reutilización son los factores principales.