En aplicaciones habitualmente el programa suele tener cientos de miles de líneas de código fuente. A medida que se van desarrollando y aumentan de tamaño, Se convertirían en sistemas poco manejables si no fuera por la modularización, que consiste en dividir un programa en partes pequeñas y manejables.A estas divisiones se les ha solido denominar de distintas formas (subprogramas, subrutinas, procedimientos, funciones, etc.) según los distintos lenguajes. El lenguaje C hace uso del concepto función (funtion).
Sea cual sea la nomenclatura, la idea es la misma: dividir un programa grande en un conjunto de subprogramas o funciones más pequeñas que son llamadas por el programa principal; éstas a su vez llaman a otras funciones más pequeñas que son llamadas por el programa principal; éstas a su vez llaman a otras funciones más específicas y así sucesivamente.
La división de un programa en unidades más pequeñas o funciones tiene entre otras las siguientes ventajas:
- Modularización: Cada función realiza un trabajo concreto de modo que nunca tiene un número excesivo de líneas y siempre se mantiene dentro de un tamaño manejable. Además, puede ser llamadas muchas veces en un mismo programa, e incluso puede ser reutilizado por otros programas. Cada función puede ser desarrollada y comprobada por separado.
- Ahorro de memoria y tiempo de desarrollo: A medida en la que una misma función es utilizada muchas veces, el número total de líneas de código disminuye, y también lo hace la probabilidad de inducir errores en el programa.
- Independencia de datos y ocultamiento de información: Una de las fuentes más comunes de errores en los programas son los efectos colaterales o perturbaciones que se pueden producir entre distintas partes del programa. Es muy frecuente que al hacer una modificación para añadir una funcionalidad o corregir un error, se introduzcan nuevos errores en partes del programa que antes funcionaban correctamente.
Una función es capaz de mantener una independencia con el resto del programa, manteniendo sus propios datos y definiendo claramente la interfaz o comunicación con la función que la ha llamado y con las funciones a las que llama, y no teniendo ninguna posibilidad de acceso a la información que no le compete.
Javier Garcia; José Ignacio; Rufino Goñi; Alfonso Brazélez; Patxi Funes; Rubén Rodríguez, Aprenda Lenguaje ANSI C, 1998
Blogger Comment
Facebook Comment