SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Programación Modular
Programación digital I
Escuela de Sistemas
Facultad de Ingeniería
Gilberto Diaz
Programación Modular
➲ Un software monolítico no puede ser
entendido fácilmente por un solo
lector. El número de caminos de
control, ámbito de referencia, número
de variables y la complejidad global
harían su comprensión casi imposible.
Programación Modular
➲ Es más fácil resolver un problema
complejo cuando se rompe en piezas
manejables.
¡Divide y Vencerás!
Modularidad: Acoplamiento
➲ Un módulo debe ofrecer un grupo de
servicios diseñados para que el resto
del programa pueda interactuar con él
➲ Por ejemplo, en el procesador de texto
se debe contar con rutinas para:
● Cambiar la letra utilizada: cambiarEstilo()
● Cambiar el color: cambiarColorLetra()
● etc.
Programación Modular
➲ Es un método de resolución de
problemas que consiste en resolver de
forma independiente los sub-
problemas que se obtienen de una
descomposición del problema general
Programación Modular
➲ La base fundamental de este
paradigma de programación es el
módulo
➲ Un módulo en un conjunto de rutinas
que prestan un servicio específico.
➲ Una rutina, subrutina o
subprograma, como idea general, se
presenta como un algoritmo separado
del algoritmo principal, el cual permite
resolver una tarea específica.
Programación Modular
➲ Decimos que algo es modular si es
construido de manera tal que se
facilite su ensamblaje,
acomodamiento flexible y reparación
de sus componentes.
Programación Modular
➲ La modularidad da una mejor
compresión del problema y reduce el
tamaño del código
➲ Generalmente se hace la asociación
de un módulo como una caja negra.
Se sabe que entra y que sale pero no
como se procesa
Funciones y Procedimientos
➲ En la programación modular se debe
asegurar los siguientes preceptos
● máxima cohesión
● mínimo acoplamiento entre módulos
Modularidad: Cohesión
➲ Un módulo debe ofrecer un grupo de
servicios que sin lugar a dudas deben
ir juntos, por ejemplo:
● math.h
● stdio.h
➲ Por ejemplo en un procesador de
texto, todos los módulos tienen como
objetivo cooperar para producir
documentos con estilo y formato
definido (módulo de colores, módulo
de tamaño, etc)
Ventajas de los Módulos
➲ Facilitan la escritura y depuración de
un programa
➲ Localización rápida de errores
➲ La modificación de un módulo no
afecta a los demás
➲ Un grupo de instrucciones que se
repite en varias partes de un
programa puede incluirse en un
módulo y llamarlo en el programa.
Diseño Descendente
➲ En us proceso de refinamiento por
pasos, etapas o capas. Se comienza
desde lo más general hasta lo más
específico.
➲ En la solución de problemas grandes
es conveniente dividirlo en problemas
más pequeños, los cuales a su vez
pueden dividirse en sub-problemas
más pequeños.
Diseño Descendente
➲ Se inicia desde lo más general, luego
dividir y vencer
➲ Asegurarse de las capacidades y
especificaciones del lenguaje. Esto
permite cambiar el lenguaje en medio
del diseño sin ningún trauma.
➲ Postergar lo más posible el trabajo en
los detalles.
➲ Verificar cuidadosamente cada nivel.
Diseño Descendente
Sistema
Mod 1 Mod 2
Mod 1.1 Mod 1.2
Mod 1.2.1
Diseño Descendente
Proc de
Palabras
Visualiz Ortogra
Color Fuente
Itálica
Negrita
Diseño de Rutinas
comienzo
Diseño
de la
Rutina
Chequeo
del código
Chequeo
del diseño
Codificar
la rutina
Listo
Diseño de Rutinas
➲ Chequeo de prerrequisitos. Verificar si
en trabajo de la rutina esta bien
definida
➲ Definir el problema de la rutina en
términos de los datos de entrada,
salida y gestión de errores.
➲ Nombre de la rutina. Debe ser conciso
y representativo de lo que hace la
rutina.
Diseño de Rutinas
➲ Establecer mecanismos de prueba
para la rutina. Revisar cualquier caso
que genere un error.
➲ Pruebe con diferentes formas para
codificar la rutina. La construcción de
programas es iterativa, es decir, se
prueba, se falla y se realiza un nuevo
esfuerzo hasta conseguir la versión
definitiva.
Codificación de Rutinas
➲ El diseño de una rutina equivale al
plano de una casa.
➲ La construcción de la casa equivale a
la codificación de la rutina
➲ Escriba la declaración de la rutina.
Esto se conoce como interfaz
➲ Escriba el algoritmo con frases de muy
alto nivel
Codificación de Rutinas
➲ Complete cada frase de alto nivel con
una o más líneas de código.
➲ Cheque el código informalmente.
➲ Comente y haga una prueba de los
trozos de código nuevo
Chequeo Formal de Código
➲ Haga una inspección mental de
código. Repase los algoritmos que se
han inventado para la solución del
problema.
➲ Compile la rutina. Esto mostrará todos
los errores de sintaxis.
➲ Elimine todas las causas que generen
advertencias
Reutilización de un Módulo
➲ Generalmente los algoritmos de cada
modulo sólo se escriben una sola vez
➲ La reutilización de un módulo por
otros programas implica ahorro de
tiempo. Si el módulo ha sido probado
y verificado previamente, se reduce la
posibilidad de errores.
➲ Fácil compresión del programa
completo.
Función
➲ En C los módulos se llaman funciones.
(unidad básica de los programas)
➲ Una función se define una sola vez
pero puede ser utilizada tantas veces
como sea necesario a través de una
llamada.
Función
Int funcion1 ( arg1, arg2 ...){
sentencias
}
int funcion2 (arg1, arg2 ...){
sentencias
funcion1(a,b...)
}
int main(){
funcion1(arg1, arg2...);
funcion2(arg1, arg2...);
Tipo de Funciones en C
➲ Funciones de biblioteca (módulos): C
tiene su propio conjunto de bibliotecas
de funciones básicas que permiten
realizar las operaciones de entrada
salida, operaciones lógicas,
aritméticas.
➲ Funciones definidas (diseñadas y
codificadas) por el programador para
realizar sus propias tareas.
Biblioteca Estándar de C
➲ Contiene una amplia colección de
funciones para llevar a cabo:
● cálculos matemáticos comunes,
● manipulaciones con cadenas de
caracteres,
● operaciones de entrada salida, etc
➲ Esta biblioteca de funciones comunes
construida una vez, puede ser
reutilizada por diferentes programas.
Biblioteca Estándar de C
➲ Entrada salida
● Operaciones sobre archivos
● Entrada – Salida
➲ Cadenas de caracteres: string.h
➲ Funciones matemáticas: math.h
➲ Funciones varias: stdlib.h (atoi, atof,
calloc, malloc, etc)
➲ Fecha y hora: time.h
Ejercicios
➲ Escriba una función que devuelva el
mayor de dos números que se le
pasan como entrada.
➲ Escriba una función que devuelva el
factorial de un número.

Contenu connexe

Tendances

Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónOver Rattlehead
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++cemayoral
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++Nana Garces
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaMichael de la Cruz
 
Clase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVAClase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVAVictor Hugo Chavez Salazar
 
Generación de codigo c++ a partir de modelos uml
Generación de codigo c++ a partir de modelos umlGeneración de codigo c++ a partir de modelos uml
Generación de codigo c++ a partir de modelos umlBismark Pantaleon Leonardo
 
Metodos de programacion estructurada
Metodos de programacion estructuradaMetodos de programacion estructurada
Metodos de programacion estructuradaDeiver Diaz Contreras
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOFredy Olaya
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++ncrmax
 
Fundamentos de programación Java
Fundamentos de programación JavaFundamentos de programación Java
Fundamentos de programación Javaquesada_diego
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaJosé Antonio Sandoval Acosta
 

Tendances (20)

Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación Estructurada
 
Clase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVAClase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVA
 
Generación de codigo c++ a partir de modelos uml
Generación de codigo c++ a partir de modelos umlGeneración de codigo c++ a partir de modelos uml
Generación de codigo c++ a partir de modelos uml
 
Manual del dev c++
Manual del dev c++Manual del dev c++
Manual del dev c++
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Metodos de programacion estructurada
Metodos de programacion estructuradaMetodos de programacion estructurada
Metodos de programacion estructurada
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Diapositivas fundamentos-de-programacion
Diapositivas fundamentos-de-programacionDiapositivas fundamentos-de-programacion
Diapositivas fundamentos-de-programacion
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
 
Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++
 
Fundamentos de programación Java
Fundamentos de programación JavaFundamentos de programación Java
Fundamentos de programación Java
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
 

Similaire à 12 programacion modular

Nicholas casañas castaño
Nicholas casañas castañoNicholas casañas castaño
Nicholas casañas castañonicholas_333
 
Giseproi curso de programación - sesión 8 - ejemplo de creacion de un programa
Giseproi   curso de programación - sesión 8 - ejemplo de creacion de un programaGiseproi   curso de programación - sesión 8 - ejemplo de creacion de un programa
Giseproi curso de programación - sesión 8 - ejemplo de creacion de un programagiseproi
 
Presentacion info
Presentacion infoPresentacion info
Presentacion infomariopoza00
 
Conceptos básicos para la programación
Conceptos básicos para la programaciónConceptos básicos para la programación
Conceptos básicos para la programaciónErika Sánchez
 
Fundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: ModularidadFundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: ModularidadJosé Antonio Sandoval Acosta
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionlupitagarcia07
 
Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Leslie Diaz
 
Fundamentos del programación de diseño web
Fundamentos del programación de  diseño webFundamentos del programación de  diseño web
Fundamentos del programación de diseño webLaura Valencia
 
Programación modular
Programación modularProgramación modular
Programación modularKareliaRivas
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacionLuis Peralta
 

Similaire à 12 programacion modular (20)

Programacion Funcional
Programacion FuncionalProgramacion Funcional
Programacion Funcional
 
Nicholas casañas castaño
Nicholas casañas castañoNicholas casañas castaño
Nicholas casañas castaño
 
Giseproi curso de programación - sesión 8 - ejemplo de creacion de un programa
Giseproi   curso de programación - sesión 8 - ejemplo de creacion de un programaGiseproi   curso de programación - sesión 8 - ejemplo de creacion de un programa
Giseproi curso de programación - sesión 8 - ejemplo de creacion de un programa
 
Presentacion info
Presentacion infoPresentacion info
Presentacion info
 
Conceptos básicos para la programación
Conceptos básicos para la programaciónConceptos básicos para la programación
Conceptos básicos para la programación
 
Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
Fundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: ModularidadFundamentos de Programación - Unidad V: Modularidad
Fundamentos de Programación - Unidad V: Modularidad
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
 
2do parcial c
2do parcial c2do parcial c
2do parcial c
 
Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)
 
Fundamentos del programación de diseño web
Fundamentos del programación de  diseño webFundamentos del programación de  diseño web
Fundamentos del programación de diseño web
 
Unidad 3 margie
Unidad 3 margieUnidad 3 margie
Unidad 3 margie
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
 
TEMA 01 PROGRAMACION .pdf
TEMA 01 PROGRAMACION .pdfTEMA 01 PROGRAMACION .pdf
TEMA 01 PROGRAMACION .pdf
 
ALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWAREALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWARE
 
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓNNIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
 

Dernier

Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralsantirangelcor
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 

Dernier (20)

Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 

12 programacion modular

  • 1. Programación Modular Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
  • 2. Programación Modular ➲ Un software monolítico no puede ser entendido fácilmente por un solo lector. El número de caminos de control, ámbito de referencia, número de variables y la complejidad global harían su comprensión casi imposible.
  • 3. Programación Modular ➲ Es más fácil resolver un problema complejo cuando se rompe en piezas manejables. ¡Divide y Vencerás!
  • 4. Modularidad: Acoplamiento ➲ Un módulo debe ofrecer un grupo de servicios diseñados para que el resto del programa pueda interactuar con él ➲ Por ejemplo, en el procesador de texto se debe contar con rutinas para: ● Cambiar la letra utilizada: cambiarEstilo() ● Cambiar el color: cambiarColorLetra() ● etc.
  • 5. Programación Modular ➲ Es un método de resolución de problemas que consiste en resolver de forma independiente los sub- problemas que se obtienen de una descomposición del problema general
  • 6. Programación Modular ➲ La base fundamental de este paradigma de programación es el módulo ➲ Un módulo en un conjunto de rutinas que prestan un servicio específico. ➲ Una rutina, subrutina o subprograma, como idea general, se presenta como un algoritmo separado del algoritmo principal, el cual permite resolver una tarea específica.
  • 7. Programación Modular ➲ Decimos que algo es modular si es construido de manera tal que se facilite su ensamblaje, acomodamiento flexible y reparación de sus componentes.
  • 8. Programación Modular ➲ La modularidad da una mejor compresión del problema y reduce el tamaño del código ➲ Generalmente se hace la asociación de un módulo como una caja negra. Se sabe que entra y que sale pero no como se procesa
  • 9. Funciones y Procedimientos ➲ En la programación modular se debe asegurar los siguientes preceptos ● máxima cohesión ● mínimo acoplamiento entre módulos
  • 10. Modularidad: Cohesión ➲ Un módulo debe ofrecer un grupo de servicios que sin lugar a dudas deben ir juntos, por ejemplo: ● math.h ● stdio.h ➲ Por ejemplo en un procesador de texto, todos los módulos tienen como objetivo cooperar para producir documentos con estilo y formato definido (módulo de colores, módulo de tamaño, etc)
  • 11. Ventajas de los Módulos ➲ Facilitan la escritura y depuración de un programa ➲ Localización rápida de errores ➲ La modificación de un módulo no afecta a los demás ➲ Un grupo de instrucciones que se repite en varias partes de un programa puede incluirse en un módulo y llamarlo en el programa.
  • 12. Diseño Descendente ➲ En us proceso de refinamiento por pasos, etapas o capas. Se comienza desde lo más general hasta lo más específico. ➲ En la solución de problemas grandes es conveniente dividirlo en problemas más pequeños, los cuales a su vez pueden dividirse en sub-problemas más pequeños.
  • 13. Diseño Descendente ➲ Se inicia desde lo más general, luego dividir y vencer ➲ Asegurarse de las capacidades y especificaciones del lenguaje. Esto permite cambiar el lenguaje en medio del diseño sin ningún trauma. ➲ Postergar lo más posible el trabajo en los detalles. ➲ Verificar cuidadosamente cada nivel.
  • 14. Diseño Descendente Sistema Mod 1 Mod 2 Mod 1.1 Mod 1.2 Mod 1.2.1
  • 15. Diseño Descendente Proc de Palabras Visualiz Ortogra Color Fuente Itálica Negrita
  • 16. Diseño de Rutinas comienzo Diseño de la Rutina Chequeo del código Chequeo del diseño Codificar la rutina Listo
  • 17. Diseño de Rutinas ➲ Chequeo de prerrequisitos. Verificar si en trabajo de la rutina esta bien definida ➲ Definir el problema de la rutina en términos de los datos de entrada, salida y gestión de errores. ➲ Nombre de la rutina. Debe ser conciso y representativo de lo que hace la rutina.
  • 18. Diseño de Rutinas ➲ Establecer mecanismos de prueba para la rutina. Revisar cualquier caso que genere un error. ➲ Pruebe con diferentes formas para codificar la rutina. La construcción de programas es iterativa, es decir, se prueba, se falla y se realiza un nuevo esfuerzo hasta conseguir la versión definitiva.
  • 19. Codificación de Rutinas ➲ El diseño de una rutina equivale al plano de una casa. ➲ La construcción de la casa equivale a la codificación de la rutina ➲ Escriba la declaración de la rutina. Esto se conoce como interfaz ➲ Escriba el algoritmo con frases de muy alto nivel
  • 20. Codificación de Rutinas ➲ Complete cada frase de alto nivel con una o más líneas de código. ➲ Cheque el código informalmente. ➲ Comente y haga una prueba de los trozos de código nuevo
  • 21. Chequeo Formal de Código ➲ Haga una inspección mental de código. Repase los algoritmos que se han inventado para la solución del problema. ➲ Compile la rutina. Esto mostrará todos los errores de sintaxis. ➲ Elimine todas las causas que generen advertencias
  • 22. Reutilización de un Módulo ➲ Generalmente los algoritmos de cada modulo sólo se escriben una sola vez ➲ La reutilización de un módulo por otros programas implica ahorro de tiempo. Si el módulo ha sido probado y verificado previamente, se reduce la posibilidad de errores. ➲ Fácil compresión del programa completo.
  • 23. Función ➲ En C los módulos se llaman funciones. (unidad básica de los programas) ➲ Una función se define una sola vez pero puede ser utilizada tantas veces como sea necesario a través de una llamada.
  • 24. Función Int funcion1 ( arg1, arg2 ...){ sentencias } int funcion2 (arg1, arg2 ...){ sentencias funcion1(a,b...) } int main(){ funcion1(arg1, arg2...); funcion2(arg1, arg2...);
  • 25. Tipo de Funciones en C ➲ Funciones de biblioteca (módulos): C tiene su propio conjunto de bibliotecas de funciones básicas que permiten realizar las operaciones de entrada salida, operaciones lógicas, aritméticas. ➲ Funciones definidas (diseñadas y codificadas) por el programador para realizar sus propias tareas.
  • 26. Biblioteca Estándar de C ➲ Contiene una amplia colección de funciones para llevar a cabo: ● cálculos matemáticos comunes, ● manipulaciones con cadenas de caracteres, ● operaciones de entrada salida, etc ➲ Esta biblioteca de funciones comunes construida una vez, puede ser reutilizada por diferentes programas.
  • 27. Biblioteca Estándar de C ➲ Entrada salida ● Operaciones sobre archivos ● Entrada – Salida ➲ Cadenas de caracteres: string.h ➲ Funciones matemáticas: math.h ➲ Funciones varias: stdlib.h (atoi, atof, calloc, malloc, etc) ➲ Fecha y hora: time.h
  • 28. Ejercicios ➲ Escriba una función que devuelva el mayor de dos números que se le pasan como entrada. ➲ Escriba una función que devuelva el factorial de un número.