Diseño Estructurado en Programación: Modularidad y Optimización

Clasificado en Informática

Escrito el en español con un tamaño de 2,96 KB

Diseño Estructurado en Programación

En programación y diseño de algoritmos, el diseño estructurado persigue elaborar algoritmos que cumplan la propiedad de modularidad. Para ello, dado un problema que se pretende resolver mediante la elaboración de un programa de ordenador, se busca dividir dicho programa en módulos siguiendo los principios de diseño de descomposición por refinamientos sucesivos, creación de una jerarquía modular y elaboración de módulos independientes.

¿Por qué descomponer un problema en partes?

Experimentalmente está comprobado que:

  • Un problema complejo cuesta más de resolver que otro más sencillo.
  • La complejidad de un problema global es mayor que la suma de las complejidades de cada una de sus partes por separado.

Ahora la cuestión es: ¿cómo realizar la descomposición? Realizando un estudio descendente (top-down) que nos lleve desde la concepción del problema (programa o algoritmo) global hasta identificar sus partes (módulos).

Jerarquía de Módulos

Esta es una consecuencia directa de la descomposición del problema mediante refinamientos sucesivos. El resultado será un conjunto de módulos estratificados.

Evaluando el Diseño

Para evaluar o determinar cómo de bueno es un diseño estructurado se utilizan los conceptos de acoplamiento y cohesión.

Acoplamiento

Se define como el grado de dependencia que hay entre los distintos módulos de un programa. Los niveles de acoplamiento, ordenados de menor (más deseable) a mayor (menos deseable) son:

  • Acoplamiento normal: Un módulo llama a otro de un nivel inferior y tan solo intercambian datos (parámetros de entrada y salida).
  • Acoplamiento común: Dos módulos acceden a un mismo recurso común, típicamente memoria compartida, una variable global o un fichero.
  • Acoplamiento de contenido: Ocurre cuando un módulo necesita acceder a una parte de otro módulo.

Cohesión

Se define como la medida de fuerza o relación funcional existente entre las sentencias o grupos de sentencias de un mismo módulo.

Un módulo coherente ejecutará una única tarea sencilla.

Bases de Datos

Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), y por ende se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.

Entradas relacionadas: