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 d...
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 in...
Programación Modular
➲ Es un método de resolución de
problemas que consiste en resolver de
forma independiente los sub-
pr...
Programación Modular
➲ La base fundamental de este
paradigma de programación es el
módulo
➲ Un módulo en un conjunto de ru...
Programación Modular
➲ Decimos que algo es modular si es
construido de manera tal que se
facilite su ensamblaje,
acomodami...
Programación Modular
➲ La modularidad da una mejor
compresión del problema y reduce el
tamaño del código
➲ Generalmente se...
Funciones y Procedimientos
➲ En la programación modular se debe
asegurar los siguientes preceptos
● máxima cohesión
● míni...
Modularidad: Cohesión
➲ Un módulo debe ofrecer un grupo de
servicios que sin lugar a dudas deben
ir juntos, por ejemplo:
●...
Ventajas de los Módulos
➲ Facilitan la escritura y depuración de
un programa
➲ Localización rápida de errores
➲ La modific...
Diseño Descendente
➲ En us proceso de refinamiento por
pasos, etapas o capas. Se comienza
desde lo más general hasta lo má...
Diseño Descendente
➲ Se inicia desde lo más general, luego
dividir y vencer
➲ Asegurarse de las capacidades y
especificaci...
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 proble...
Diseño de Rutinas
➲ Establecer mecanismos de prueba
para la rutina. Revisar cualquier caso
que genere un error.
➲ Pruebe c...
Codificación de Rutinas
➲ El diseño de una rutina equivale al
plano de una casa.
➲ La construcción de la casa equivale a
l...
Codificación de Rutinas
➲ Complete cada frase de alto nivel con
una o más líneas de código.
➲ Cheque el código informalmen...
Chequeo Formal de Código
➲ Haga una inspección mental de
código. Repase los algoritmos que se
han inventado para la soluci...
Reutilización de un Módulo
➲ Generalmente los algoritmos de cada
modulo sólo se escriben una sola vez
➲ La reutilización d...
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...
Función
Int funcion1 ( arg1, arg2 ...){
sentencias
}
int funcion2 (arg1, arg2 ...){
sentencias
funcion1(a,b...)
}
int main...
Tipo de Funciones en C
➲ Funciones de biblioteca (módulos): C
tiene su propio conjunto de bibliotecas
de funciones básicas...
Biblioteca Estándar de C
➲ Contiene una amplia colección de
funciones para llevar a cabo:
● cálculos matemáticos comunes,
...
Biblioteca Estándar de C
➲ Entrada salida
● Operaciones sobre archivos
● Entrada – Salida
➲ Cadenas de caracteres: string....
Ejercicios
➲ Escriba una función que devuelva el
mayor de dos números que se le
pasan como entrada.
➲ Escriba una función ...
Próxima SlideShare
Cargando en…5
×

12 programacion modular

138 visualizaciones

Publicado el

Programación modular

Publicado en: Ingeniería
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
138
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
1
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

12 programacion modular

  1. 1. Programación Modular Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
  2. 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. 3. Programación Modular ➲ Es más fácil resolver un problema complejo cuando se rompe en piezas manejables. ¡Divide y Vencerás!
  4. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 14. Diseño Descendente Sistema Mod 1 Mod 2 Mod 1.1 Mod 1.2 Mod 1.2.1
  15. 15. Diseño Descendente Proc de Palabras Visualiz Ortogra Color Fuente Itálica Negrita
  16. 16. Diseño de Rutinas comienzo Diseño de la Rutina Chequeo del código Chequeo del diseño Codificar la rutina Listo
  17. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×