Está en la página 1de 19

Frameworks

[11.1] ¿Cómo estudiar este tema?

[11.2] Concepto de framework

[11.3] Desarrollo mediante frameworks

[11.4] Patrón Model View Controller

[11.5] Framework para diseño de interfaces gráficas de usuario

[11.6] Frameworks para el desarrollo de aplicaciones web

[11.7] Frameworks para la gestión de la persistencia de objetos en


bases de datos

[11.8] Discusión sobre la utilización de


frameworks

[11.9] ¿Qué hemos aprendido?


TEMA
Esquema

TEMA 11 – Esquema
Frameworks

Utilidad Tipos Ejemplos

Definir una arquitectura robusta De infraestructura del sistema Gestión de persistencia de


objetos en bases de datos

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

© Universidad Internacional de La Rioja (UNIR)


Reutilización de Software
Reutilización de Software

Ideas clave

11.1. ¿Cómo estudiar este tema?

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 este tema estudiaremos los siguientes puntos principales:

» 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.

11.2. Concepto de framework

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.

Los frameworks se componen de un conjunto interrelacionado de clases fácilmente


extensibles (de hecho, sus clases están pensadas para ser extendidas, esto es,
especializadas).

TEMA 11 – Ideas clave 3 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

De acuerdo con Larman (2002), las principales características de los frameworks son:

1. Disponen de un conjunto cohesivo de interfaces y clases que colaboran para


proporcionar los servicios de la parte central e invariable de un subsistema lógico.

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.

Fayad y Schmidt (1997) analizan tres clases de frameworks:

1. Frameworks de infraestructura de sistema: Dichos frameworks apoyan el


desarrollo de infraestructuras de sistema como comunicaciones, interfaces de
usuario y compiladores (Fayad y Schmidt, 1997).

2. Frameworks de integración de middleware: Consisten en un conjunto de


estándares y clases de objetos asociados que soportan comunicación de componentes
e intercambio de información. Los ejemplos de este tipo de framework incluyen .NET
de Microsoft y Enterprise Java Beans (EJB). Dichos frameworks brindan soporte
para modelos estandarizados de componentes.

3. Frameworks de aplicación empresarial: Se ocupan de dominios de aplicación


específicos, tales como los sistemas de telecomunicaciones o. El conocimiento del
dominio de la aplicación integra y apoya el desarrollo de aplicaciones de usuario final.

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.

TEMA 11 – Ideas clave 4 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

11.3. Desarrollo mediante frameworks

Para extender un framework no es necesario cambiar el código de este. En su lugar, se


agregan clases concretas que heredan operaciones de clases abstractas en el framework.

También es necesario implementar callbacks.

Callbacks

Son métodos que se ejecutan en respuesta a eventos reconocidos por el framework.

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:

Figura 1. Gestión de eventos del Framework (I.Sommerville, 1992).

TEMA 11 – Ideas clave 5 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

11.4. Patrón Model View Controller

Patrón Model View Controller


Este patrón proporciona un enfoque de diseño de interfaces gráficas de usuario
que permite múltiples presentaciones de un objeto y separaba estilos de interacción con
cada una de estas presentaciones.

En la figura siguiente podemos observar el funcionamiento del patrón Model View


Controller.

Figura 2. Patrón de diseño Modelo-Vista-Controlador (I.Sommerville, 1992).

Un framework Model View Controller permite la presentación de datos en diferentes


formas y admite la interacción con cada una de dichas presentaciones. Cuando los datos
se modifican a través de una de las presentaciones, se modifica el modelo del sistema y
los controladores asociados con cada punto de vista actualizan su presentación.

11.5. Framework para diseño de interfaces gráficas de usuario

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.

TEMA 11 – Ideas clave 6 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

En la figura siguiente podemos ver cómo se implementa un panel de identificación con


un nombre de usuario y una contraseña. Véase cómo mientras el desarrollador
implementa el sistema haciendo uso del asistente visual de su entorno de desarrollo, este
va añadiendo el código correspondiente al aspecto de la ventana, que luego el
programador tendrá que completar.

Figura 3. Ejemplo de desarrollo usando el framework Swing de JAVA.

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.

11.6. Frameworks para el desarrollo de aplicaciones web

De acuerdo con Sommerville (1992), los frameworks de aplicación web, WAF,


proporcionan las siguientes características:

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.

TEMA 11 – Ideas clave 7 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

3. Soporte de base de datos: Los frameworks usualmente no incluyen una base de


datos, sino suponen que se usará una base de datos separada, como MySQL. El
framework puede proporcionar clases que ofrezcan una interfaz abstracta a diferentes
bases de datos.

4. Gestión de sesión: Clases para crear y administrar sesiones (algunas interacciones


con el sistema por parte de un usuario) por lo general son parte de un WAF.

5. Interacción de usuarios: La mayoría de los frameworks web brindan ahora


soporte AJAX, que permite la creación de páginas web más interactivas.

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.

Figura 4. Ejemplo de web de comercio electrónico usando el framework Struts.


Fuente: https://struts.apache.org/.

TEMA 11 – Ideas clave 8 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

Como podemos observar, cada acción se corresponde con un requisito funcional o


caso de uso del sistema. Así pues, Struts es un framework muy útil para llevar a cabo la
migración de aplicaciones de escritorio hacia entornos web, ya que se separa la lógica de
negocio de la interfaz de usuario, favoreciendo la reutilización.

Cuando se ha ejecutado el último interceptor, el motor de ejecución llama al método


execute():String de la acción, que, normalmente, consta de un bloque try, seguido de
uno o más catch. El bloque try se corresponde con el escenario normal del caso de uso
representado por la acción, mientras que cada catch se corresponde con un escenario
alternativo.

11.7. Frameworks para la gestión de la persistencia de objetos en


bases de datos

La gestión de la persistencia de objetos es un problema bien conocido en el


desarrollo de aplicaciones. Los objetos son muy distintos a las tablas de las bases de
datos. Es por ello por lo que se necesitan buenos procedimientos de mapeo entre objetos
y tablas.

Existen varios frameworks que ayudan a resolver este problema, estos frameworks se
conocen como frameworks ORM: Object-Relational Mapping.

Por lo general, estos frameworks proporcionan las siguientes ventajas:

» 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.

TEMA 11 – Ideas clave 9 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

11.8. Discusión sobre la utilización de frameworks

A menudo, los frameworks constan de distintas implementaciones de patrones de


diseño. De hecho el framework MVC incluye el patrón Observer, el patrón Strategy, el
patrón Composite. La naturaleza general de los patrones y el uso que hacen de las clases
abstractas y concretas permite la extensibilidad. Así pues, sin patrones los frameworks
serían muy poco prácticos.

Los frameworks constituyen una herramienta eficaz para la reutilización de software.


Pero resulta costoso introducirlos en procesos de desarrollo de software. Esto es debido
a su complejidad, ya que aprender a usarlos puede llevar de varios meses al
desarrollador. Otra dificultad radica en evaluar los frameworks disponibles para elegir
los más adecuados.

Asimismo, depurar las aplicaciones basadas en frameworks presenta una complejidad


añadida, ya que es difícil comprender cómo interactúan los métodos del framework. De
hecho, este constituye un problema generalizado en ciertas herramientas de reutilización
software de reutilización, ya que las herramientas de depuración ofrecen datos sobre los
componentes del sistema de reutilización que un desarrollador no entiende.

11.9. ¿Qué hemos aprendido?

En este capítulo hemos aprendido los siguientes conceptos principales:

» 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.

TEMA 11 – Ideas clave 10 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

11.10. Referencias

Fayad, M. y Schmidt, D. C. (1997). Object-oriented application frameworks. Commun.


ACM 40, 10 (October 1997), 32-38.

Larman, C. (2002). UML y Patrones. Una introducción al análisis y diseño orientado a


objetos y al proceso unificado. Prentice-Hall.

Sommerville, I. (1992). Software Engineering (8.ª ed.). Addison Wesley.

TEMA 11 – Ideas clave 11 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

Lo + recomendado

No dejes de leer…

¿Qué es un framework?

El siguiente artículo resume el concepto de framework y proporciona nociones acerca de


cuándo utilizarlo y de sus ventajas e inconvenientes.

Accede al artículo desde el aula virtual o a través de la siguiente dirección web:


http://jordisan.net/blog/2006/que-es-un-framework/

Frameworks para Java

El siguiente artículo recoge los principales frameworks que existen para JAVA.

Accede al artículo desde el aula virtual o a través de la siguiente dirección web:


http://daitesrc.wikispaces.com/Frameworks+para+Java

TEMA 11 – Lo + recomendado 12 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

No dejes de ver…

What is a software framework? Advantages and challenges

Breve vídeo que define el concepto de framework y las ventajas e inconvenientes de su


utilización.

Accede al vídeo desde el aula virtual o a través de la siguiente dirección web:


https://www.youtube.com/watch?v=SiIhwbNHAmA

TEMA 11 – Lo + recomendado 13 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

+ Información

Enlaces relacionados

Swing

Web del framework de desarrollo de interfaces gráficas de usuario Swing.

Accede a la página desde el aula virtual o a través de la siguiente dirección web:


http://docs.oracle.com/javase/tutorial/uiswing/

Ruby on rails

Web del framework de desarrollo web Ruby on rails.

Accede a la página desde el aula virtual o a través de la siguiente dirección web:


http://guides.rubyonrails.org/

TEMA 11 – + Información 14 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

Apache Struts

Web del framework de desarrollo Struts on rails.

Accede a la página desde el aula virtual o a través de la siguiente dirección web:


https://struts.apache.org/

TEMA 11 – + Información 15 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

Actividades

Trabajo: Frameworks

Objetivos

Que el estudiante asimile el concepto de framework y sea capaz de proporcionar un


ejemplo real de utilización del mismo. Asimismo el estudiante debe de ser capaz de
realizar un análisis crítico de las ventajas e inconvenientes que el uso de un frameworks
conlleva.

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.

Entrega del trabajo

La entrega consistirá en un único fichero comprimido que debe contener lo siguiente:

» 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.

TEMA 11 – Actividades 16 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

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.

2. Selecciona la respuesta verdadera:


A. Los frameworks se componen de un conjunto interrelacionado de clases
fácilmente extensibles (de hecho, sus clases están pensadas para ser extendidas,
esto es, especializadas).
B. El uso de metodologías de reutilización de software no supone mayor trabajo en
diseño y documentación de código.
C. El uso de metodologías de reutilización no supone una inversión mayor al inicio
del proyecto.
D. Los componentes genéricos suelen ser más eficientes en término de consumo de
memoria.

3. Cómo se extiende la funcionalidad de un framework:


A. Los frameworks disponen de una API de programación parametrizable.
B. No se puede extender su funcionalidad. Hay que buscar el framework concreto
que se adapte a los requerimientos.
C. Para extender un framework no es necesario cambiar el código de este. En su
lugar se agregan clases concretas que heredan operaciones de clases abstractas en
el framework.
D. El código del framework está disponible, solo hay que reprogramar sus métodos
para implementar la funcionalidad deseada.

TEMA 11 – Test 17 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

4. ¿Qué son los callbacks?


A. Es el nombre genérico de los objetos que componen el framework.
B. Son funciones que se ejecutan en respuesta a los eventos concretos de nuestro
sistema. Son atendidas por los objetos propios de nuestro sistema y no por el
framework.
C. Son funciones que se ejecutan en respuesta a los eventos concretos de nuestro
sistema. Son atendidas por los objetos del framework, que a su vez invocan a las
funciones de nuestro sistema que son las que realmente implementan la
funcionalidad.
D. Es el nombre genérico de los métodos que componen el framework y que
implementan la funcionalidad del sistema.

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.

6. ¿Qué hace el patrón de diseño Modelo-Vista-Controlador o Model View Controller?


A. Este patrón realiza las funciones genéricas del framework llamadas callback.
B. Este patrón lleva a cabo el control del framework mediante bloques de código de
tipo try-catch.
C. Es un patrón de diseño creacional que se encarga de la generación de objetos.
D. El patrón Model View Controller proporciona un enfoque de diseño de
interfaces gráficas de usuario que permite múltiples presentaciones de un objeto y
separaba estilos de interacción con cada una de estas presentaciones.

7. ¿Qué tipos de frameworks existen?


A. Frameworks de creación, estructurales y de comportamiento.
B. Frameworks de creación y de comportamiento.
C. Frameworks de infraestructura, de integración, de aplicación y de aplicación
web.
D. Los frameworks son patrones de diseño ya programados, por tanto existen
tantos como patrones de diseño hay.

TEMA 11 – Test 18 © Universidad Internacional de La Rioja (UNIR)


Reutilización de Software

8. ¿Qué es Java Swing?


A. Es un framework de desarrollo de interfaces gráficas de usuario en Java.
B. Es un baile típico de la isla de Java.
C. Es un framework de desarrollo web.
D. Es un framework para gestión de persistencia de objetos en Java.

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.

10. ¿Qué características proporcionan los frameworks web?


A. Páginas web dinámicas.
B. Gestión de sesión.
C. Interacción de usuarios.
D. Todas las anteriores junto con soporte de bases de datos.

TEMA 11 – Test 19 © Universidad Internacional de La Rioja (UNIR)

También podría gustarte