domingo, 26 de septiembre de 2010

1.1.3 Las técnicas de procesamiento, de programación y de diseño en la informática


Procesamiento de datos





Diferentes Técnicas de programación
•La programación estructurada es escribir un programa en base a lo siguiente: el programa tiene un diseño modular, los módulos son diseñados de forma descendente; y cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección y repetición. Este término se refiere a un conjunto de técnicas que han ido evolucionando desde los primeros trabajos de Edsger Dijkstra. Estas técnicas aumentan considerablemente la productividad del programa reduciendo en elevado grado el tiempo requerido para escribir, verificar, depurar y mantener los programas. La programación estructurada utiliza un número limitado de estructuras de control que minimiza la complejidad de los programas y, por consiguiente, reducen los errores; hace los programas más fáciles de escribir, verificar, leer y mantener. Los programas deberán estar dotados de una estructura, incorporando: a) recursos abstractos (esto consiste en descomponer una determinada acción compleja en términos de un número de acciones más simples capaces de ejecutarlas o que constituyan instrucciones de computadoras disponibles); b) diseños descendentes (top-down). (descomponer el problema en una serie de niveles o pasos sucesivos de refinamiento - stepwise -, efectuando una relación entre las diferentes etapas de estructuración de modo que se relacionasen unas con otras mediante entradas y salidas de información, es decir, considerando cada estructura desde dos puntos de vista: ¿qué hace? y ¿cómo lo hace?.; y el uso de estructuras de control básicas (secuencia, selección y repetición).




•Programación modular se refiere al mejoramiento más flexible y eficiente del programa. El programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifica independientemente de otros módulos. Cada uno de estos módulos se analizan, codifican y ponen a punto por separado. Cada programa contiene un módulo llamado programa principal, que controla todo lo que sucede; se transfiere el control a submódulos (posteriormente se denominarán subprogramas), de modo que ellos pueden ejecutar sus funciones; sin embargo, cada submódulo devuelve el control al módulo principal cunado se haya completado su tarea. Si la tarea asignada a cada submódulo es demasiado compleja, éste deberá romperse en otros módulos más pequeños. Los módulos son independientes en el sentido en que ningún módulo puede tener acceso directo a cualquier otro módulo, excepto el módulo al que llama y a sus propios submódulos. Sin embargo, los resultados producidos por un módulo pueden ser utilizados por cualquier otro módulo cuando se transfiera a ellos el control. Dado que los módulos son independientes, diferentes programadores pueden trabajar simultáneamente en diferentes partes del mismo programa. Esto reducirá el tiempo de diseño del algoritmo y posterior codificación del programa. Además, un módulo se puede modificar radicalmente sin afectar a los otros módulos, incluso sin alterar su función principal. La descomposición de un programa en módulos independientes más simples se conoce también como el método «divide y vencerás» (divide and conquer). Se diseña cada módulo con independencia de los demás, y siguiendo un método ascendente o descendente se llegará hasta la descomposición final del problema en módulos en forma jerárquica.



•Para llegar a programar de modo orientado a objetos, se basa en los conceptos de modularidad, abstracción procedimental, abstracción de datos y ocultación de la información de acuerdo al módulo o tipo de dato objeto. Las prioridades fundamentales de un tipo son: encapsulamiento (combinar datos y operaciones que se puedan ejecutar sobre esos datos en un objeto. En C++/Java el encapsulamiento en un objeto se codifica mediante una clase), herencia (es la propiedad que permite a un objeto transmitir sus propiedades a otros objetos denominados descendientes; la herencia permite la reutilización de objetos que se hayan definido con anterioridad) y polimorfismo (es la propiedad que permite decidir en tiempo de ejecución la función a ejecutar, al contrario que sucede cuando no existe polimorfismo, en el que la función ejecutar se decide previamente y sin capacidad de modificación, en tiempo de compilación).



•La orientada a eventos no es programar de forma tradicional, donde se sigue un patrón que controla el propio flujo del programa, solamente cambia algunas veces cuando se llega a una posición donde existen dos caminos, el control del flujo de un programa orientado a eventos es extremadamente conducido por eventos externos. En vez de esperar por un comando el cual ordene que se procede determinada información, el sistema esta pre-programado para realizar un ciclo de forma repetida, para verla y realizar una función que desencadena en su procesamiento. Por lo tanto, cuando se desencadena la función previamente definida, corresponderá al comportamiento requerido.



•Funcional trata a la computación como una evaluación de funciones matemáticas. Aquí se enfatiza en la definición de funciones que implementen estados de la máquina, en contraparte con la programación basada en procedimientos, la cual está basada en la ejecución de comandos de forma secuencial. Un programa puramente funcional no usa la mutación, cuando modifica el valor de un estado para producir valores, construye nuevos valores, sin sobre escribirlos, de los existentes.



•La lógica hace uso de patrones de invocaciones directas de procedimientos por afirmaciones y objetivos.

 
 

No hay comentarios:

Publicar un comentario