Tecnicas de programacion

Solo disponible en BuenasTareas
  • Páginas : 23 (5550 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de mayo de 2011
Leer documento completo
Vista previa del texto
TÉCNICAS DE PROGRAMACIÓN

PROGRAMACIÓN MODULAR

Sub-algoritmo, Sub-programa o Módulo programa que realiza una tarea concreta mediante una serie de instrucciones.
La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. En programación modular el programa se divide en módulos (partes independientes), cada una de lascuales ejecuta una única función o actividad y se codifican independientemente de otros módulos. Cada uno de estos módulos se analiza, codifica y pone a punto por separado.
Cada programa contiene un módulo denominado programa principal que controla todo lo que sucede; se transfiere el control a los sub-módulos o subprogramas. Estos ejecutan su función y una vez completada su tarea, devuelven elcontrol al módulo principal.
Cada sub-módulo se puede descomponer en otros sub-módulo, dependiendo de la complejidad de la tarea a realizar y la subdivisión continúa hasta que cada módulo tenga una sola tarea para ejecutar.
Un sub-módulo puede realizar tareas de distinta naturaleza como: entrada, salida, manipulación de datos, control de otros módulos o una combinación de éstos. Un módulo puedetransferir temporalmente (bifurcar) el control a otro módulo; sin embargo, cada módulo debe eventualmente devolver el control al módulo del cual recibió originalmente el control.

Características

La programación modular persigue que cada módulo y función o procedimiento, cumpla las siguientes características:

* Pequeño tamaño: de esta forma el impacto de un cambio puede ser perfectamenteaislado.
* Independencia modular: cuanto mayor es la independencia de los módulos y los procedimientos y funciones, más sencillo es trabajar con él. El diseño debe reducir la necesidad de compartir ficheros, datos, dispositivos y llamadas desde o hacia otros módulos y procedimientos y funciones.
* Características de caja negra: visión exclusiva de la funcionalidad de un módulo oprocedimiento/función en base a sus entradas y salidas sin tener en cuenta como se realiza el proceso.
* Modelo conceptual: un diseño es más fácil de mantener si el modelo de diseño empleado se ha basado en conceptos lógicos de organización, los cuales sean más familiares y comprensibles para el personal de mantenimiento.
* Aislamiento de los detalles (encapsulación): en un sistema existen partes quereflejan la filosofía y otras que reflejan los detalles. Ambas partes deben diseñarse por separado para evitar que una variación en los detalles afecte a la filosofía del sistema.
* Para conseguir los objetivos marcados se necesitan estrategias de diseño. Una de las principales se basa en la disposición de tareas, es decir, descomponer una tarea en otras más sencillas que se haya identificandoen la tarea de partida. Una vez descompuesto el software en tareas, normalmente cada una de ellas será un procedimiento. Estos procedimientos se agruparán en módulos distintos, conformando grupos que representen las distintas categorías basadas en el tipo de problema que resuelven conceptualmente. La descomposición en tareas persigue la reducción del tamaño de los procedimientos hasta conseguir unsistema más fácil de entender y modificar, minimizando la duplicidad del código, así como la creación de módulos y procedimientos o funciones útiles y reutilizables. De hecho, si se desarrolla un módulo con varios procedimientos y funciones para, por ejemplo, funciones matemáticas, este podrá ser reutilizado en aplicaciones futuras.

Para medir la calidad de un diseño modular se emplean lasmedidas de cohesión y acoplamiento que se pueden aplicar sobre módulos y procedimientos o funciones.

* Cohesión: es la medida de la fuerza o relación funcional de los elementos de un módulo (entendiendo por elementos, los procedimientos o funciones que lo componen, las definiciones de los datos y las llamadas a otros módulos). Un módulo coherente se encarga de una tarea relativamente sencilla...
tracking img