Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Programa educativo INGENIERÍA EN SISTEMAS COMPUTACIONALES Grupo 1 “B” Nombre de la materia FUNDAMENTOS DE PROGRAMACIÓN Nombre del alumno CARLOS HUMBERTO GARCIA LIRA Nombre del trabajo MODULARIDAD Unidad # 5 MODULARIDAD Nombre del Profesor ISC JORGE PRADO MERCADO Fecha 11 de diciembre de 2021 2 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN ÍNDICE Introducción 3 Modularidad 3 1. Programación modular 3 1.1. Ventajas 3 1.2 Desventajas 3 1.3 Estructura 4 1.4 Usos 6 2. Diferencias entre función, método y procedimiento 6 2.1. Funciones 6 2.2. Métodos 7 2.3. Procedimientos 7 2.4. Tabla comparativa 7 3. Primer video (POO, Concepto y creación de métodos) 7 3.1. Qué son y sus componentes 8 3.2. Notas y observaciones 8 4. Segundo video (POO, Métodos, parámetros y argumentos) 8 4.1. Qué son y su función 8 4.2. Notas y observaciones 9 5. Ejemplos de métodos 10 5.1. Ejemplo 1 10 5.2. Ejemplo 2 10 5.3. Ejemplo 3 10 Conclusiones 11 Bibliografía 12 (Es un ejemplo, sobrescribir y respetar el formato de estructura, fuente tamaño y colores). 3 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN MODULARIDAD Introducción Gracias a los grandes precursores de la administración, que postularon principios, reglas y El paradigma de la programación modular es parte fundamental de la programación, simplifica tareas y vuelve más legible el código bien utilizada, sin embargo, presenta algunas limitaciones como podemos ver en el presente. Otro punto a destacar de la programación modular, es que tiene similitudes con la Programación Orientada a Objetos. En el presente, se verán las principales ventajas, desventajas de la programación modular, sus componentes, las diferencias entre método, función, procedimiento y algunos ejemplos de métodos en JAVA. 1. Programación modular 1.1. Ventajas Un programa modular es más fácil de escribir y depurar (ejecutar, probar y poner a punto). Se puede profundizar en las pruebas parciales de cada módulo mucho más de lo que se hace un programa mayor. Un programa modular es fácil de mantener y modificar. Un programa modular es fácil de controlar. El desglose de un problema en módulos permite encomendar los módulos más complejos a los programadores más experimentados y los más sencillos a los programadores más noveles. Posibilita el uso repetitivo de las rutinas en el mismo o en diferentes programas. 1.2. Desventajas No permite modelar directamente los conceptos del dominio del problema, por lo que el nivel de abstracción que se puede lograr es menor que en la programación orientada a objetos: mientras que el problema se expresa en la terminología de los usuarios (los conceptos presentes en el dominio del problema), los programadores expresan el programa en su propio léxico. La necesaria traducción desde el dominio del problema al dominio de la solución requiere un mayor esfuerzo de compresión. La separación entre datos (variables) y rutinas (procedimientos y funciones) conduce a la necesidad de utilizar variables globales e implica que las capacidades de encapsulamiento que el paradigma propone sean limitadas: esto conlleva el riesgo 4 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN constante de producir efectos colaterales (modificaciones del estado del programa) no deseados que suelen introducir errores difíciles de encontrar. Inflexibilidad: es más difícil introducir cambios porque ello requiere mayores modificaciones en el código que ya está funcionando. No se dispone de algoritmos formales de modularidad, por lo que a veces los programadores no tienen claras las ideas de los módulos. La programación modular requiere más memoria y tiempo de ejecución. 1.3. Estructura La programación modular se compone de varias técnicas y componentes. Diseño descendente Es una técnica que permite diseñar la solución de un problema con base en la modularización o segmentación dándole un enfoque de arriba hacia abajo (Top Down Design). Esta solución permite dividir el problema en módulos que se estructuran e integran jerárquicamente (Fig. 1), como si fuera el organigrama de una empresa (López Román, 2003). Fig. 1. Concepción de módulos. Módulo 5 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN Es un segmento, rutina, subrutina, subalgoritmo o procedimiento que puede ser definido dentro de un algoritmo mayor con el propósito de ejecutar una tarea específica, pudiendo ser llamado o invocado desde el módulo principal cuando se requiera. Dicha solución se organiza y divide en partes más pequeñas que sean fácilmente manejables y que, lógicamente, puedan ser separadas; así cada una de estas partes se dedica a ejecutar una determinada tarea, lo que redundará en una mayor concentración, entendimiento y capacidad de solución a la hora de diseñar la lógica de cada una de estas. Proceso de modularización o segmentación El proceso de segmentación consiste en hacer una abstracción del problema, del cual se tiene inicialmente el panorama general. Enseguida se procede a “descomponer” o “dividir” el problema en partes pequeñas y simples (Fig. 2). Fig. 2. Descomposición de módulos. Cohesión y acoplamiento Los módulos deben cumplir dos características básicas para ser candidatos a una buena división del problema: Alta cohesión: las instrucciones contenidas dentro de un módulo deben contribuir a la ejecución de la misma tarea. 6 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN Bajo acoplamiento: a dependencia entre módulos debe ser mínima. Lo que implica que no debe haber datos compartidos entre los módulos. La estructura de un programa modular constara de un módulo principal desde el que se llamara al resto de los módulos. El módulo principal recibe el control al inicio de la ejecución del programa. Cuando se invoca un módulo concreto (a través de su nombre y parámetros), el control del programa se pasará al módulo. Este módulo mantendrá el control hasta que no se finalice su ejecución en cuyo momento devolverá el control a la instrucción siguiente a la que realizo la llamada. Cada uno de estos módulos puede hacer a su vez llamadas a otros módulos que siempre devolverán el control al módulo desde el que fueron llamados, pone freno a la redundancia del código, ya que aíslan las secuencias de instrucciones más usadas y que se repiten, se les da un nombre y cuando se quieran usar, simplemente se invocara dicho nombre en el lugar donde sea necesario. 1.4. Usos La programación modular es solo un concepto. Su práctica se puede aplicar en cualquier lenguaje de programación, especialmente los de naturaleza procedimental, que tienen un programa compilado por separado. Entre los lenguajes de programación que admiten el concepto de programación modular se encuentran C, Ada, PL/I, Erlang, Pascal, Algol, COBOL, RPG, Haskell, Python, HyperTalk, IBM/360 Assembler, MATLAB, Ruby, IBM RPG, SmallTalk, Morpho, Java (los paquetes se consideran módulos), Perl, etc. A manera de ejemplo, supongamos que se diseña un programa que calcula el sueldo del trabajador de una empresa. Pensar en el problema de inicio a fin es demasiado complejo, ya que implica cálculos. Por lo tanto, es mejor dividirlo de tal forma que en la etapa de análisis se identifiquen las distintas tareas a resolver para calcular un sueldo: Por ejemplo, cuánto se debe de pagar de IMSS, cuánto de ISPT, cuánto de horas extra, si es que las tuvo, etc. Se podría diseñar una función (o módulo) independiente parea cada una de estas tareas y al final “armar” todas esas funciones en un solo programa. 2. Diferencias entre función, método y procedimiento 2.1. Funciones Las funciones son un conjunto de líneas de código (instrucciones), encapsulados en un bloque,usualmente reciben parámetros, cuyos valores utilizan para efectuar operaciones y adicionalmente retornan un valor. En otras palabras, una función puede recibir parámetros o 7 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN argumentos (algunas no reciben nada), hace uso de dichos valores recibidos como sea necesario y retorna un valor usando la instrucción return, si no retorna algo, entonces no es una función. En java las funciones usan el modificador static. 2.2. Métodos Los métodos y las funciones en Java están en capacidad de realizar las mismas tareas, es decir, son funcionalmente idénticos, pero su diferencia radica en la manera en que hacemos uso de uno u otro (el contexto). Un método también puede recibir valores, efectuar operaciones con estos y retornar valores, sin embargo, en método está asociado a un objeto, siempre, básicamente un método es una función que pertenece a un objeto o clase, mientras que una función existe por sí sola, sin necesidad de un objeto para ser usada. En Java se debe hablar de métodos y no de funciones, pues en Java estamos siempre obligados a crear un objeto para usar el método. Para que sea una función esta debe ser static, para que no requiera de un objeto para ser llamada. 2.3. Procedimientos Los procedimientos son básicamente un conjunto de instrucciones que se ejecutan sin retornar ningún valor, hay quienes dicen que un procedimiento no recibe valores o argumentos, sin embargo, en la definición no hay nada que se lo impida. En el contexto de Java un procedimiento es básicamente un método cuyo tipo de retorno es void que no nos obliga a utilizar una sentencia return. 2.4. Tabla comparativa Funciones Métodos Procedimientos Conjunto de líneas de código Pueden recibir parámetros Retornan un valor Modificador static para ser funciones Conjunto de líneas de código Pueden recibir parámetros Retornan un valor Siempre están asociados a un objeto No deben de llevar el modificador static Conjunto de líneas de código Pueden no recibir parámetros No retornan un valor Es un método void 3. Primer video (62. Programación en Java || POO || Concepto y creación de métodos). 3.1. Qué es un método y sus componentes 8 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN 3.2. Notas y observaciones del video Un atributo es la propiedad o datos de una clase/objeto. Los ejemplos de métodos del video según lo anteriormente visto son procedimientos porque usan el void Se crea una instancia del objeto desde otra clase 4. Segundo video (63. Programación en Java || POO || Métodos - parámetros y argumentos). 4.1. Qué son y su función de los parámetros y argumentos Parámetros: Es una declaración de variable u objeto Argumentos: Es un valor que se envía en un método o función 9 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN 4.2. Notas y observaciones del video Ejemplo de parámetros y argumentos Los argumentos le indica cuanto debe de acelerar a la función acelerar del objeto miAuto Un atributo es la propiedad o datos de una clase/objeto. Los ejemplos de métodos del video según lo anteriormente visto son procedimientos porque usan el void 10 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN 5. Ejemplos de métodos 5.1. Método para obtener el número mayor de dos números public int numeroMayor(int numero1, int numero2){ return numero1 > numero2 ? numero1 : numero2; } 5.2. Método para obtener la suma de un arreglo de números public int sumarNumeros(int[] numeros){ int suma = 0; for (int i = 0; i < numeros.length; i++) { suma += numeros[i]; } return suma; } 5.3. Método para mostrar en forma de tabla los elementos de un arreglo multidimensional public void mostrarNumeros(int[][] numeros){ for (int i = 0; i < numeros.length; i++) { for (int j = 0; j < numeros[i].length; j++) { System.out.print(numeros[i][j] + " "); } System.out.println(""); } } 11 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN Conclusiones Como pudimos ver, la programación modular ofrece varias ventajas contra la programación estructurada y comparte cosas en común con la programación orientada a objetos. En caso de la programación modular se llaman funciones y en la POO métodos según lo expuesto en este documento. Para finalizar, los videos sirven como introducción a la POO, ya que se ven los atributos de una clase u objeto. 12 Unidad 5: MODULARIDAD FUNDAMENTOS DE PROGRAMACIÓN Referencias electrónicas 1.1.3 Programación Modular. (s.f.). Universidad Autónoma del Estado de Hidalgo. Recuperado el 11 de diciembre de 2021, de: http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro32/113_programacin_mo dular.html 2. VENTAJAS Y DESVENTAJAS (s.f.). Recuperado el 11 de diciembre de 2021, de: https://sites.google.com/site/misitiowebprogramacionengambas/home/ventajas-y- desventajas Corvo, H. (2021, 08 de marzo). Programación modular: características, ejemplos, ventajas, aplicaciones. Lifeder. Recuperado el 11 de diciembre de 2021, de: https://www.lifeder.com/programacion-modular/ Chávez, T. (2017 octubre). Programación Modular. Universidad Autónoma del Estado de México. Recuperado el 11 de diciembre de 2021, de: http://ri.uaemex.mx/bitstream/handle/20.500.11799/69946/secme- 19449_1.pdf?sequence=1&isAllowed=y Funciones (Programación modular). (s.f.). Universidad Ámerica Latina. Recuperado el 11 de diciembre de 2021, de: http://ual.dyndns.org/biblioteca/Programacion_Estructurada_I/Pdf/Unidad_08.pdf Meza, J. (2021). Métodos en Java, funciones y procedimientos. Cómo hacerlos y usarlos. ProgramarYa. Recuperado el 11 de diciembre de 2021, de: https://www.programarya.com/Cursos/Java/Funciones PROGRAMACIÓN ESTRUCTURADA Y MODULAR. (2015, 16 de octubre). Centro universitario de San Miguelito. Recuperado el11 de diciembre, de: http://programacion2crusam.blogspot.com/2015/10/programacion-estructurada-y- modular.html
Compartir