Frameworks de desarrollo: un método ágil para el desarrollo de software

  17 Noviembre 2010

Alicante, 17 de noviembre de 2010 - La elevada complejidad de muchas de las aplicaciones informáticas de hoy en día hace prácticamente inviable el desarrollo de aplicaciones sin mecanismos de reutilización, los cuales permitan a los programadores evitar partir desde cero en cada proyecto.

Para ello, una solución ampliamente extendida es la utilización de Frameworks de desarrollo.

Podríamos definir un Frameworks como una estructura conceptual y tecnológica, formada por un conjunto de bloques predefinidos de software, cuya utilización permite la organización y el desarrollo de proyectos software de forma mucho más ágil.

Los desarrolladores pueden utilizar, extender o personalizar estos bloques con el fin de ajustarlos a las necesidades de su proyecto. De esta forma los Frameworks actúan como mecanismos de reutilización permitiendo al programador emplear menos tiempo en la escritura de código de bajo nivel.

Los Frameworks se basan en el Modelo Vista Controlador (MVC), un patrón de diseño que separa las aplicaciones en tres componentes:

  • Modelo: son los datos o la información que se manejan en la aplicación.
  • Vista: normalmente representada por una interfaz de usuario, presenta el modelo en un formato elegido.
  • Controlador: es la capa intermedia. Se encarga de gestionar las peticiones recibidas desde la vista, interactuando con la capa de modelo.

Existen Frameworks para la gran mayoría de lenguajes utilizados en el desarrollo de aplicaciones. Algunos de los Frameworks más conocidos son Spring o Struts para aplicaciones en Java; ASP.NET para C# o Zend para PHP.

Ventajas:

  • Los Frameworks utilizan patrones de diseño, lo cual permite que el código resultante sea limpio y extensible para futuras ampliaciones. Entre ellos destaca el Modelo Vista Controlador que comentamos anteriormente.
  • Facilitan servicios genéricos necesarios en la mayoría de proyectos. De esta forma, también se utiliza código ya testeado, evitando así en el futuro la repetición de errores.
  • Favorecen la reutilización de código, simplificando el proceso de desarrollo. Ello provoca una amplia ganancia de tiempo en cuanto a la programación y el diseño.
  • Aumenta la facilidad de depuración del código gracias al MVC.

Desventajas:

  • Posibilidad de generación de código innecesario para nuestra aplicación, ya que los Frameworks tienden a generalizar la funcionalidad de los componentes, provocando una demanda de recursos computacionales innecesaria.
  • Aprendizaje costoso. El tiempo que se gana en dejar de programar puede perderse en aprender el Frameworks si no se va a utilizar para otros proyectos.
  • Existe una alta dependencia del código fuente de la aplicación con respecto al Framework. Además, cada Frameworks tiene su propia convención de código, por lo que no resulta sencillo cambiar de Frameworks.
  • Si una librería falla, la depuración es más complicada al no conocer el programador el código. Por eso es importante utilizar Frameworks y módulos en versiones avanzadas.

Por lo tanto, se debe determinar si se va a rentabilizar el uso de un Frameworks, ya sea porque se va a utilizar en varios proyectos o porque se adapta perfectamente a los requisitos de un proyecto específico. En este estudio se deberá tener en cuenta el estado de madurez del Frameworks, así como la documentación disponible acerca de éste.

Lo que resulta innegable es que el uso de Frameworks bajo unas premisas adecuadas mejorará ampliamente la productividad.

Eduardo Morcillo

Se permite la reproducción de este artículo manteniendo la integridad del mismo, y siempre que se incluya el enlace a esta página como fuente de referencia.