2.2. Metodología para el diseño de software: Top down, Bottom up

ACTIVIDAD: Realice los diseños para un Sotware de una empresa, debe considerar los diferentes departamentos de cada empresa.

  1. Top down para productos de El Fuerte
  2. Botton up para Samsung

TOP DOWN

Este tipo de diseño se encarga de crear una serie de niveles generando un bloque, empezando con el problema más difícil hasta llegar a los niveles inferiores (de forma descendente). Se trata de generar una relación entre todas las etapas del programa mediante las entradas de información y las salidas.

Para comenzar con el diseño se debe generar una visión estructural sin hacer especificaciones, después se realiza una descomposición de los componentes donde se genera un refinamiento. Mediante la descomposición del problema lo que se desea es llegar a un análisis más detallado de las instrucciones que forman parte del programa.

El diseño Top-Down tiene como objetivo:

  • Generar una simplificación del problema.
  • Al generar una descomposición de las partes del problema se puede programar de forma independiente, sin importar qué persona lo realice.
  • La finalidad es que el programa quede estructurado en un módulo, esto quiere decir que se generan grupos de instrucciones que realizan funciones, esto permitirá una lectura más sencilla y un mejor mantenimiento.
  • Cada módulo debe ser tratado en la misma manera que el problema general, el diseño top-down hace que el problema general se convierta en problemas más específicos y en general más fáciles de resolver (Abdiel Cáceres González. 2009).

BOTTOM UP

A diferencia del diseño Top-Down, el diseño Bottom Up es formado a través de una estructura ascendente; se basa en la identificación de los procesos que necesitan transcribirse según aparezca el análisis y su configuración. Aquí se consideran todas las partes por separado y se diseñan con cuidado, después se enlazan hasta formar el programa completo.

Las estrategias de este diseño se basan en un conocimiento detallado de todas las variables que puedan afectar el programa. Se puede comenzar desde que se ha especificado el primer módulo, pero tiene un gran beneficio, ya que puede ser reusado el código. Se puede decir que en este diseño se brincan los primeros pasos como la definición del problema, la planeación de los objetivos, etcétera.

Pasos para el diseño:

  • Se planifican los últimos niveles que se necesiten.
  • Se detallan desde el principio las partes más difíciles.
  • Se realiza el diseño del problema final, ajustándolos con los primeros diseños.

Se debe tener en cuenta que utilizando este diseño pueden existir riesgos, porque desde el principio no se tiene una idea clara de cómo se conectarán todos los procesos y puede no ser tan sencillo, debido a que no se consideran los objetivos, ya que estos no permiten un buen resultado.

¿Cuál es la mejor técnica de diseño?

Existen diferencias claras entre los dos tipos de diseño tratados en esta sesión, cada una genera un resultado diferente ante un problema. Pongamos un ejemplo práctico:

Sabemos que una empresa cuenta con una estructura interna, una de ellas es que está dividida en varios departamentos como: recursos humanos, mantenimiento, ventas, mercadeo, contabilidad, etcétera. Supongamos que existen problemas en los departamentos, podríamos aplicar una técnica de diseño para llegar a una solución. Primero ocuparemos el diseño Bottom Up, creando un programa que sólo solucione el problema generado.

Si la empresa después de un tiempo integra un sistema global que permita la solución de los problemas de todos los departamentos, se notará que las soluciones no coinciden, esto pasa porque con éste no hay un análisis previo. Sin embargo, si para llegar a la solución del problema se utiliza el diseño TopDown se obtendrá el diseño ideal que cubra todas las necesidades, toda vez que existirá un análisis que permita un buen mantenimiento.

https://mimateriaenlinea.unid.edu.mx/dts_cursos_mdl/lic/IC/EA/S06/EA06_Lectura.pdf

PROGRAMACIÓN MODULAR

La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.

De los métodos más conocidos para resolver un problema, es dividirlo en problemas más pequeños, llamados subproblemas. De esta manera, en lugar de resolver una tarea compleja y tediosa, resolvemos otras más sencillas y a partir de ellas llegamos a la solución. Esta técnica se usa mucho en programación ya que programar no es más que resolver problemas, y se le suele llamar diseño descendente, metodología del divide y vencerás o programación top-down.

Es evidente que si esta metodología nos lleva a tratar con subproblemas, entonces también tengamos la necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele llamar módulos, de ahí viene el nombre de programación modular. En Pascal disponemos de dos tipos de módulos: los procedimientos y las funciones.