martes, 3 de febrero de 2009

capitulo 2 Metodologia de la programacion y desarrollo de software



2.2 Programación modular


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




Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver.




Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y vencerás ó análisis descendente (Top-Down).




Un módulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos módulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un módulo necesite de otro, puede comunicarse con éste mediante una interfaz de comunicación que también debe estar bien definida.




2.3 Programación estructurada




La programación estructurada es una forma de escribir programas de ordenador (programación de computadora) de forma clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).




2.32 Diseño descendente (top-down)




La programación descendente o "Top - Down" es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stepwise). La metodología descendente consiste en efectuar una relación entre las sucesivas etapas de estructuración de modo que exista una relación entre ellas mediante entradas y salidas de información. El problema se descompone en varias estructuras jerárquicas, de forma que se pueda considerar cada estructura desde dos puntos de vista: ¿qué hace? y ¿cómo lo hace?


Las estructuras desde los dos puntos de vista se representan de la siguiente forma:



















El diseño descendente se representa así:


2.4 Concepto y Características de Algoritmos
El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema (método), el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.
2.4.1 Características de los algoritmos
1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
4.Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
Representación grafica
a) Descripción Narrada
b) Pseudocódigo
c) Diagramas de Flujo
d) Diagramas N- S (Nassi-Schneiderman o de Chapin)
Descripción Narrada
Este algoritmo es caracterizado porque sigue un proceso de ejecución común y lógico, describiendo textualmente paso a paso cada una de las actividades a realizar dentro de una actividad determinada.
Diagrama de flujo
Es la representación gráfica de flujo o secuencia de rutinas simples, es una forma de especificar los detalles algorítmicos de un proceso mediante la esquematización gráfica para entenderlo mejor. Se basan en la utilización de diversos símbolos para representar operaciones específicas. Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de la operación.
Un diagrama de flujo es la representación gráfica del flujo o secuencia de rutinas simples. Tiene la ventaja de indicar la secuencia del proceso en cuestión, las unidades involucradas y los responsables de su ejecución; en pocas palabras es la representación simbólica o pictórica de un procedimiento administrativo.

No hay comentarios:

Publicar un comentario