TEMA 1 PROGRAMACIÓN MODULAR.

Slides:



Advertisements
Presentaciones similares
Relaciones de recurrencia
Advertisements

Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Programación de Computadores
Fundamentos de Diseño de Software INFT.1
ESTRUCTURA DE DATOS Unidad 01 RECURSIVIDAD.
Estructura y diseño de subprogramas
ALGORITMOS DE ORDENAMIENTO
Modularidad Estructura de datos.
Conceptos Ing. Marleny Soria Medina1. EN PASCAL Un programa en Pascal consiste de uno o más módulos, los cuales a su vez también pueden estar constituidos.
Seminario de Actualización - Excel Avanzado y Macros
Bucle for.
Tipos de Datos Abstractos Modularidad
1.5 Algoritmos, Pseudocódigo y Diagramas de Flujo
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Tema Función main Elementos básicos del lenguaje.
CS1101X Programming Methodology
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Preguntas tipo test (I)
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Preguntas tipo test (Tema I)
Introducción a la programación
Algoritmos y Estructuras de Datos
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
Evaluación de Productos
METODOLOGIA DE LA PROGRAMACION
2.1 Recursividad El hecho de que una función pueda llamarse a sí misma.
Funciones en lenguaje C
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
IINTRODUCCION A LA CIENCIA DE LA COMPUTACION Y A LA PROGRAMACION
VHDL.
FORMULACIÓN DE ALGORITMOS
Semana 5 Subprogramas..
PROCEDIMIENTOS FUNCIONES
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.
Algoritmos.
Capítulo 1 “Elementos de Programación”

Descomposición Modular. Funciones
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
Lenguajes de programación
LENGUAJE DE PROGRAMACIÓN
Análisis de algoritmos
Diseño de Programas.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Capítulo 7 Gestión de memoria.
TEMAS PRINCIPALES. ALGORITMOS. CONCEPTOS El algoritmo es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.
CONCEPTOS BÁSICOS FUNDACIÓN UNIVERSITARIA LOS LIBERTADORES Fredys Alberto Simanca Herrera Programación Estructurada Semana Bogotá, D.C
SIG. LAURA VELAZQUEZ MORELOS. Hace referencia a un refrán que implica resolver un problema difícil, dividiéndolo en partes más simples tantas veces como.
Tema 6. Introducción a la programación
Estructuras de control Resolución de problemas y algoritmos.
Tema ‧ Comando - while Repeticiones. Comando while ‧ Un ciclo es cualquier construcción de programa que repite una sentencia ó secuencia de sentencias.
Representación de Algoritmos
POR: MÓNICA MARÍA RÚA BLANDÓN
Lenguajes de Programación
Funciones y Procedimientos Profesor: Rodrigo Cruzat.
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Compilador Es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa.
Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 3 Programas.
U3 Subprogramación 1 Probablemente el tema mas importante del curso ¡¡¡A por el reuso!!!
Solución a Ecuaciones de Recurrencia Dr. Rogelio Dávila Pérez División de Posgrado Universidad Autónoma de Guadalajara
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.
Este material ha sido desarrollado para alumnos que cursan la asignatura de Programación Básica impartida en el primer semestre en la Facultad de Ingeniería.
Recursividad.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
PROGRAMACION ORIENTADA A OBJETOS
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
Estructuras de control iterativas
Docente: Ing. Francisco Rodríguez
Transcripción de la presentación:

TEMA 1 PROGRAMACIÓN MODULAR

PROGRAMACION MODULAR Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas o funciones lógicas que pueden ser analizadas, programadas y puesta a punto independientemente. MODULO P M1 M2 M3 M4 M5

PROGRAMACION MODULAR Se basa en diseñar un programa dividiéndolo en módulos que resultan de segmentar el problema en funciones lógicas que son perfectamente diferenciadas Al considerar funciones lógicas constituye un intento para diseñar programas que puedan ser cambiados o reemplazados fácilmente sin afectar en lo posible a ninguna otra parte o módulo del programa

Programación Modular Esta división exige la presencia de un módulo denominado módulo de base o principal a fin de que controle y relacione a todos los módulos.

Modularidad Problema dividido en subproblemas = Modulo A Llama a B • A le pasa control • B hace su tarea • B devuelve el control a A • B devuelve a A dato1 MODULO A C es parte de A Control Dato 1 Dato 2 B C Modulo Predefinido B se reutiliza

¿Qué es Modulo? Un modulo representa una función lógica, que consta de una secuencia continua de instrucciones que se encuentra limitado por elementos de frontera, se caracteriza por disponer de un nombre o identificador. Módulo es un algoritmo autocontenido, que puede ser diseñado independientemente del contexto en el que va a ser usado. MODULO

Ocultación de Información . DISEÑO MODULAR Abstracción Ocultación de Información . Módulo en un Programa: • Sentencias juntas • Límites claros • Tiene estructura • Nombre Propio Entradas Salidas NOMBRE

Ejemplo de un modulo Function factorial (int n) f = 1; For i = 1 to n, inc 1 f = f * i End for Return (f) end

Ej. Modulo Primo en Java static int Primo(int n) { int i=1,cont=0,c; while(cont<=n) { i++; c=0; for(int k=1;k<=i;k++) if (i%k==0) c=c+1; if (c==2) cont++; } return (i); }

Ej. Modulos en Java static int Fibo (int n) static int pow(int base, int e) { int p=1; for(int i=1;i<=e;i++) p=p*base; return(p); } static int Fibo (int n) { int a = -1, b = 1, c = 0; for (int i = 1 ; i <= n ; i++) { c = a + b; a = b; b = c; } return (c); }

Modulo Principal s = s + Alm.factorial (Alm.Primo (n)) * //S=2!(x+1!)^2+3!(x+3!)^4+5!(x+5!)^6+7!(x+7!)^8+……………..+P!(x+(2*n-1)!)^2*n System.out.println("\nIngrese N: "); n = Leer.datoInt (); System.out.println("\nIngrese A: "); a = Leer.datoInt (); for (i = 1 ; i <= n ; i++) { s = s + Alm.factorial (Alm.Primo (n)) * Alm.po((x + (2 * i - 1)), 2 * i); } Mostrar(s);

No usar una metodología de diseño conlleva: PROGRAMACION MODULAR No usar una metodología de diseño conlleva: • Rigidez e inflexibilidad en los programas • Pérdida excesiva de tiempo en corrección de errores • Documentación insuficiente o nula • Imposibilidad de Reutilización

Ventajas de la Programación Modular Simplificación del diseño. • Programación aislada (encapsulamiento). • Conocimiento sobre qué hace el subprograma y no sobre cómo lo hace (Abstracción procedimental o de Operaciones). • Reutilización del módulo en otro contexto. • Simplificación de la comprensión del algoritmo (mantenimiento).

Ventajas de la Programación Modular Transportabilidad, agrupando las operaciones dependientes de la máquina en un módulo. • Trabajo en equipo. Cada programador se encarga de desarrollar un módulo. • Compilación separada. No es necesario recompilar todo el programa sino sólo el módulo que se ha modificado.

Desventajas de la Programación Modular La programación modular exige una mayor cantidad de memoria y un tiempo mayor de medición. a)      Aún a pesar de que esta claro que un módulo debe realizar una función lógica, no está totalmente esclarecido un algoritmo formal para completar la modularidad. b)      La programación modular en general requiere del uso de mayor cantidad de memoria y su tiempo de ejecución en mayor.

Características de los Módulos Los módulos se caracterizan por tener máxima cohesión y mínimo acoplamiento; es decir deben tener la máxima independencia entre ellos. Mínimo acoplamiento - los módulos deben ser tan independientes entre si como sea posible. Máxima cohesión - constituye el segmento que mantiene unidos a los elementos de un modulo, es decir la relación que debe existir entre las diferentes partes internas de un modulo.

Clases de Módulos Módulo Raíz / Principal -Su función es la de coordinar la realización de todas las funciones lógicas. Módulo de Entrada - su función es la captura de datos Módulo de Proceso - Se caracteriza porque en el mismo se realiza un tratamiento o cálculo general Módulo de Salida - Se caracteriza por que su función consiste propiamente en efectuar la salida de la información procesada. Existen módulos secundario que para una clase de funciones lógicas se constituye en su módulo raíz

Descomposición Principios de Diseño Es la división de una tarea en otras que estuvieran contenidas en la primera. Existen dos principales técnicas de diseño: Top Down, Bottom Up

Top Down Principios de Diseño Top Down, también conocida como de arriba-abajo, Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial. - Se establecen una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al problema. - Se efectua una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información.

DISEÑO TOP DOWN

Bottom Up Principios de Diseño Es el diseño ascendente, se refiere a la identificación de aquellos procesos que necesitan computarizarse conforme vayan apareciendo. - Los problemas de integración entre los subsistemas son sumamente costosos - Dificultad en la integración total del sistema. Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente.

Tipos de Estructuras Modulares Estructura en Arbol Estructura en Red MODULO P M5 M5 M5 M1 M2 M3 M M5 M4 M5 M5 M5 M5 M5

Puntualizaciones de la Programación Modular La programación modular se basa en el diseño descendente (top-down) que permite comprobar el funcionamiento de cada modulo mediante módulos ya comprobados. El montaje de la red se hace en modo ascendente(botton-up), por lo que el programador puede estar escribiendo el modulo11, mientras que otro hace el modulo 12. Una vez terminados juntos se puede comprobar su funcionamiento con un modulo ficticio que llama a ambos.

Puntualizaciones de la Programación Modular Los módulos se comunican entre si por las variable externas que técnicamente son las mas importante en el desarrollo del programa. Los módulos tienen que utilizar las variables bien como referencia o como modificador de su valor. El programa principal (modulo principal) coordina las llamadas a procedimientos en módulos separados y pasa los datos apropiados en forma de parámetros.

Puntualizaciones de la Programación Modular Actualmente la modularidad están vigentes podemos comprobar al ver sistemas implementados en plena ejecución, bajo la forma de menús. Los menús antiguamente tenían el formato vertical, luego con los visuales los menús han ido evolucionando al estilo horizontal con sub menús verticales. También con los multimedios y las web, los sistemas usan iconos para ingresar a algunos módulos.

Técnicas de Programación Modular Las fases de Resolución de problemas son las siguientes:     - Estudio de las especificaciones del problema, en esta etapa las tablas de decisión son una herramienta de gran utilidad. -Confección del organigrama o tabla de decisión de cada modulo -Codificación de cada modulo en el lenguaje adecuado -Pruebas parciales de cada modulo en el lenguaje adecuado. - Prueba final de los módulos enlazados.

Implementación de los módulos Los módulos reciben el nombre de funciones, procedimientos, Metodos y clases. La programación modular exige una comunicación entre el modulo llamador (modulo principal) y el modulo llamado ( el subprograma) que es función o procedimiento. Esta comunicación se realiza a través de una variable de enlace que se denomina parámetros. Un modulo contiene operaciones ocultas para el mundo exterior y solo se puede acceder a él por la llamada en ejecución ya sea introduciendo parámetros o simplemente ejecutándolos.

Continuamos