Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA 11 – Esquema
Frameworks
2
Proporcionar clases para De integración de middleware
resolución de problemas Desarrollo de aplicaciones web
frecuentes
Aplicación empresarial
Desarrollo de interfaces gráficas
de usuario
Aplicación web
Plantilla
Ideas clave
Para estudiar este tema lee las Ideas clave que encontrarás a continuación.
En este tema vamos a estudiar en profundidad los frameworks como herramienta para
la reutilización de código.
» En qué consisten los frameworks, para qué sirven y cuáles son sus principales casos
de uso.
» Panorámica general los frameworks existentes.
» Frameworks para el desarrollo de interfaces gráficas de usuario (GUI).
» Frameworks de desarrollo web.
» Frameworks para la gestión de la persistencia de objetos en bases de datos.
» Discusión sobre las ventajas e inconvenientes de la utilización de frameworks.
Framework
Un framework proporciona un conjunto de clases, abstractas y concretas, así como
interfaces para ayudar a la resolución de problemas frecuentes y que, además, impondrá
(o en todo caso guiará) al desarrollador cierto planteamiento del diseño arquitectónico
del sistema.
De acuerdo con Larman (2002), las principales características de los frameworks son:
2. Contienen clases concretas y abstractas que definen las interfaces a las que
ajustarse, interacciones de objetos en las que participar, y otras invariantes.
3. Normalmente, requieren que el usuario del framework defina subclases de las clases
que se incluyen en él para utilizar, adaptar y extender los servicios del framework.
Estas subclases recibirán mensajes desde las clases predefinidas del framework que,
normalmente, se manejan implementando métodos abstractos heredados de las
clases abstractas del framework y que el usuario habrá tenido que redefinir.
Es posible usar un framework para crear una aplicación completa o implementar parte
de una aplicación, como la interfaz de usuario gráfica.
Los frameworks de aplicación web (WAF) son un tipo de framework más reciente. Ahora
los WAF, que apoyan la construcción de sitios web dinámicos, están muy extendidos.
Callbacks
Los objetos del framework, en lugar de los objetos específicos de aplicación, son los
responsables del control del sistema. Así pues, en respuesta a distintos eventos (de la
interfaz del usuario, la base de datos, etc.), los objetos framework invocan a métodos
intermedios del framework o «métodos gancho», que a su vez ejecutan la
funcionalidad propuesta por el usuario. De esta forma, la funcionalidad específica de la
aplicación responde adecuadamente al evento que la desencadena.
Por ejemplo, supongamos que un framework de interfaz de usuario tiene un método que
gestione un clic de ratón. Este método llama a un método intermedio, que el
desarrollador debe configurar para que invoque a los métodos de aplicación adecuados
de gestión de pulsaciones en el ratón. Este procedimiento se ilustra en la siguiente figura:
Uno de los frameworks de Java para diseño de interfaces gráficas de usuario es Swing,
que incluye un conjunto muy amplio de componentes visuales, como botones y cajas de
texto, etcétera.
Obsérvese cómo, en el código fuente, la clase que se ha creado (JFLogin) es una clase que
hereda de la clase JFrame proporcionada por Swing, es decir, una especialización de esta
que debe ser implementada por el desarrollador para adaptarla a las necesidades
concretas del sistema.
1. Seguridad: Los WAF pueden incluir clases para ayudar a implementar autenticación
de usuario (login) y el control de acceso para garantizar que los usuarios solo puedan
tener acceso a la funcionalidad que permite el sistema.
2. Páginas web dinámicas: Se ofrecen clases para ayudar a definir las plantillas de la
página web y dotar dinámicamente a estas con datos específicos de la base de datos
del sistema.
Un ejemplo de WAF en Java es Struts2, que incluye un conjunto muy amplio de clases
para desarrollar aplicaciones web, evitando así a los desarrolladores la reescritura de
código muy parecido y proporcionando una arquitectura muy robusta.
Este framework requiere de la extensión del servidor web con un motor auxiliar de
ejecución, que recoge las peticiones que llegan desde los clientes. Los parámetros se
reciben en forma de cadenas de caracteres, pero se capturan por una serie de
interceptores que pueden procesarlos de diferentes formas.
La figura siguiente ilustra un fragmento del diseño de una tienda virtual. Como podemos
ver, el usuario interactúa con una serie de páginas web que envían parámetros al
servidor; estos son capturados por una pila de interceptores que pueden, por ejemplo,
validar su formato.
Existen varios frameworks que ayudan a resolver este problema, estos frameworks se
conocen como frameworks ORM: Object-Relational Mapping.
» Una API para gestionar las operaciones de creación, lectura y actualización en base de
datos también conocidas como operaciones CRUD.
» Un lenguaje para especificar las consultas que se refieren a las clases y a sus
propiedades.
» Una forma de definir y especificar los metadatos del mapeo.
» Una técnica para la implementación del mapeo que permita la interacción con objetos
transaccionales soportando diversas funciones.
Algunos ejemplos de frameworks ORM son: Hibernate y NHibernate (para Java y .NET,
respectivamente), Torque y Object-Relational Bridge.
» En qué consisten los frameworks, para qué sirven y cuáles son sus principales casos
de uso.
» Panorámica general los frameworks existentes.
» Frameworks para el desarrollo de interfaces gráficas de usuario.
» Frameworks de desarrollo web.
» Frameworks para la gestión de la persistencia de objetos en bases de datos.
» Discusión de las ventajas e inconvenientes de la utilización de frameworks.
11.10. Referencias
Lo + recomendado
No dejes de leer…
¿Qué es un framework?
El siguiente artículo recoge los principales frameworks que existen para JAVA.
No dejes de ver…
+ Información
Enlaces relacionados
Swing
Ruby on rails
Apache Struts
Actividades
Trabajo: Frameworks
Objetivos
Descripción
Selecciona un framework que te resulte interesante. Puede ser alguno de los que se han
proporcionado como ejemplos en este tema.
Imagina un caso de uso real en el que sea aplicable este framework. Haz un análisis
justificado de las ventajas e inconvenientes que aporta el uso de dicho framework para
resolver el problema. A continuación realiza una implementación en Java del sistema
propuesto.
» Fichero en formato Word cuya extensión no debe exceder las 3 páginas, en el que se
incluya la descripción del problema a resolver, el framework empleado y el diagrama
UML del sistema implementado (Georgia 11, interlineado 1,5).
» Código Java y un método main que permita probar la principal funcionalidad del
sistema.
Test
1. ¿Qué es un framework?
A. Una solución a un problema que se ha presentado en múltiples ocasiones y
constituye la base para la búsqueda de soluciones a problemas de desarrollo
software.
B. Reutilizar clases previamente desarrolladas en otro proyecto que ofrezcan un
conjunto de servicios que, nuevamente, puedan ser útiles; así como reutilizar el
código fuente para, mediante algunas modificaciones, adaptarlo al nuevo
desarrollo.
C. Un conjunto de clases, concretas y abstractas, así como interfaces que ayudan a
la resolución de problemas frecuentes y que guían al desarrollador hacia un cierto
planteamiento del diseño arquitectónico del sistema.
D. Un conjunto de implementaciones funcionales que disponen de una interfaz
bien definida para la funcionalidad que se invoca.
5. ¿Quién lleva el control del sistema en una aplicación que utiliza frameworks?
A. El control lo realizan funciones genéricas del framewok llamadas callback.
B. El control se lleva a cabo mediante bloque de código de tipo try-catch.
C. El control lo llevan funciones que se ejecutan en respuesta a los eventos
concretos de nuestro sistema atendidos por los objetos de nuestro sistema.
D. Los objetos del framework, en lugar de los objetos específicos de aplicación, son
los responsables del control del sistema.
9. ¿Qué es Hibernate?
A. Es un framework de desarrollo de interfaces gráficas de usuario en Java.
B. Es lo que hacen los osos polares en primavera.
C. Es un framework de desarrollo web.
D. Es un framework para gestión de persistencia de objetos en Java.