Un framework es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado o desarrollado.
El framework representa una arquitectura de software que modela relaciones generales de las entidades del dominio, el cual provee una estructura y una metodología de trabajo la que extiende o utilizan las aplicaciones.
FreeDictionary extrae una definición de framework de Jonhson y Foote 1988 [1]
“Un Framework es un diseño reutilizable de un sistema (o subsistema). Está expresado por un conjunto de clases abstractas y el modo en que sus instancias colaboran para un tipo específico de software. Todos los frameworks de software son diseños orientados a objetos".
Estos componentes son diseñados, con el afán de facilitar los desarrollos a los programadores, para poder pasar más tiempo buscando soluciones a los problemas dados, que ocuparse de las funcionalidades de bajo nivel, como los son: validaciones, conexiones a bases de datos, formateo de números o de strings, etc.
Los frameworks suelen ser implementaciones de patrones de diseño conocidos, con algunas funciones, métodos o librerías que asisten a los desarrolladores.
En general, un Framework en el contexto de la programación es un set de funciones o código genérico el cual se encarga de llevar a cabo tareas comunes.
2. Arquitectura de implementación
En cuanto a la arquitectura de los frameworks el patrón diseño, más implementado para la creación de cualquier framework tenemos al conocido modelo MVC.
Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El patrón MVC se ve frecuentemente en aplicaciones Web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página, el modelo es el Sistema de Gestión de Base de Datos y el controlador representa la Lógica de negocio. [8]
El modelo MVC es un patrón de arquitectura creado por gente de la comunidad Smalltalk que consiste en separar una aplicación en tres componentes principales. Como muestra la figura 1.1.
• El Controlador, es el responsable de recibir las peticiones requests de los clientes. Construyendo un modelo apropiado y enviarlo a la vista para su correcta visualización. Para el caso de una aplicación Web basada en java, el controlador generalmente es un servlet.
• El Modelo, que posee el estado interno de la aplicación (determinado por el estado de sus entidades) y las reglas del negocio.
• La Vista, es la responsable de transformar correctamente lo que el modelo, intenta representar al usuario de manera visual o como archivo, por ejemplo HTML, XML, etc.
La mayoría de los frameworks Web buscan separar estos tres componentes por lo que en muchos manuales y tutoriales se podrá ver escrito que fueron desarrollados siguiendo el patrón MVC. Sin embargo, los amantes de smalltalk dirán que dichos frameworks no tienen una implementación pura de MVC sino una adaptación realizada para adecuarse a las características propias de la Web (Ej. sincronismo de mensajes). Una de las formas que utilizan para implementar el patrón MVC es a través del patrón FrontController en el cual el servlet que procesa todas las peticiones se encarga de comunicarse con el modelo y seleccionar la siguiente vista proveyendo abstracción entre los componentes.
3. Ventajas y desventajas de los frameworks en general
Las ventajas y desventajas de los frameworks son variadas y se pueden sub-dividir en utilización y desarrollo, esto quiere decir que, un framework posee ciertas características favorables en su implementación o bien la creación de uno propio. Ver tabla adjunta.
4. Ventajas y Desventajas de Frameworks actuales
Las ventajas y desventajas entre frameworks, son variadas pero para efectos de este proyecto de título, solo se analizan las siguientes como muestra la tabla:
No hay comentarios:
Publicar un comentario