Sei sulla pagina 1di 41

Frameworks

Continuemos con nuestro ejemplo


3
Diseo general
Diseo general
Diseo general
Diseo general
Seaside bsico
Seaside bsico
Seaside bsico
Seaside bsico
renderContentOn: / Home
Upper toolbar

Users

Lower toolbar
Inv. de control
???
Podemos re-definirlos?
Frozenspot y Hotspots
Hotspots Frozenspot
-Puntos de variabilidad -Lo que no cambia de
-Nos permiten construir aplicacin en aplicacin
distintas aplicaciones -Comportamiento
-Punto de contacto entre cannico
creadores del framework y -Responsabilidad de los
sus usuarios desarrolladores del fwrk
-Donde percibimos la -No podemos modificarlo
inversin de control -Esconde el control loop
Frozenspot y Hotspots
Hotspots Frozenspot
-Puntos de variabilidad -Lo que no cambia de
-Nos permiten construir aplicacin en aplicacin
distintas aplicaciones -Comportamiento
-Punto de contacto entre cannico
creadores del framework y -Responsabilidad de los
sus usuarios desarrolladores del fwrk
-Donde percibimos la -No podemos modificarlo
inversin de control -Esconde el control loop

WAComponent WAHtmlCanvas
WAAnchorTag
SocialNetworkComponent WAToolDecorator
WAToolDecoration

Hotspots / Herencia
Heredamos comportamiento

Debemos implementar algunos mtodos abstractos (p.ej.,


renderContentOn:)

Heredamos colaboradores (p.ej., self session)

Para implementar/instanciar el hotspot:

Implementamos/re-definimos mtodos

Enviamos mensajes a los argumentos

Enviamos mensajes a nuestras v.i. (o accessors)

Enviamos mensajes a objetos que programamos nosotros (p.e., modelo)


Vista de red con Roassal
Roassal es un framework para construir
visualizaciones

Se instancia por composicin en lugar


de herencia
Hotspots / Composicin
Instancio, configuro y
compongo objetos del
framework edges & nodes users & followers

Solo puedo cambiar aquello


que es configurable

No se que pasa dentro del


framework

El framework enva mensajes


a mi modelo (que le paso en
parmetros)
Blanco o Negro
Whitebox vs Blackbox
Los frameworks de caja blanca dependen fuertemente, para proveer
extensibilidad, de caractersticas OO como la herencia y el binding
dinmico

Heredar de clases base

Redefinir mtodos gancho existentes

Los frameworks caja negra soportan extensibilidad va la definicin de


interfaces para componentes que pueden ser enchufados al
framework por composicin de objetos

Definiendo componentes que cumplen con una interfaz determinada

Integrando dichos componentes en el framework


Whitebox vs Blackbox
Los frameworks caja blanca requieren que el
programados conozca ntimamente los detalles de la
estructura interna del framework

Los frameworks de caja negra usan composicin y


delegacin en lugar de herencia. Requieren estudiar
libreras de componentes y sus configuraciones

Como resultado, los frameworks de caja negra son


generalmente mas fciles de usar que los de caja blanca.
Sin embargo, los frameworks de caja negra son mas
difciles de desarrollar y por lo general menos flexibles
Hotspots
Hotspot: son las partes en un framework donde ocurre la
adaptacin.

Whitebox: si ocurre por subclasificacin

Blackbox: si ocurre por composicin

Frozenspots: Son las partes del framework que no cambian

Instanciar/especializar un framework es completar/


configurar sus hotspots para obtener una aplicacin
particular. A esas modificaciones las llamamos
incrementos
Tipos de frameworks
Frameworks de
Infraestructura
Atacan problemas generales del desarrollo de software, que por lo
general no son percibidos completamente por el usuario de la
aplicacin (es decir, resuelven problemas de los programadores,
no de los usuarios)

Algunos de los focos de este tipo de frameworks son: interfaces de


usuario (desktop, web, mviles), seguridad, contenedores de
aplicacin, procesamiento de imgenes, procesamiento de
lenguaje, comunicaciones

Estos frameworks ofrecen una infraestructura portable y eficiente


sobre la cual construir una gran variedad de aplicaciones

Es comn que se los incluya como parte de plataformas de


desarrollo (Java tiene los suyos, al igual de .NET)
Frameworks de Infraestructura
Frameworks de Integracin
Estos frameworks se utilizan comnmente para integrar
componentes de aplicacin distribuidos (p.e., la base de datos
con la aplicacin y sta con su cliente liviano)

Los frameworks de integracin (o frameworks middleware) estn


diseados para aumentar la capacidad de los desarrolladores de
modularizar, reusar y extender su infraestructura de software para
que trabaje transparentemente en un ambiente distribuido

El mercado de los frameworks de integracin es muy activo y, al


igual que ciertos frameworks de infraestructura, se han vuelto
commodities (mercanca de uso comn)

Ejemplos: ORB, Object Relational Mapping, Message Oriented


Middleware
Frameworks de Integracin
Frameworks Enterprise
Estos frameworks atacan dominios de aplicacin amplios que son
pilares fundamentales de las actividades de las empresas

Ejemplos de frameworks enterprise son aquellos en el dominio de los


ERP (Enterprise Resource Planning), CRM (Customer Relationship
Management), Gestin de documentos, Clculos financieros.

Los problemas que atacan derivan directamente de las necesidades


de los usuarios de las aplicaciones y por tanto hacen que el retorno
de la inversin en su desarrollo/adquisicin sea mas evidente y
justificado

Un framework entreprise puede encapsular el conocimiento y


experiencia de muchos aos de una empresa, transformndose en
la clave de su ventaja competitiva y su mas preciado capital
Frameworks Enterprise
Impacto del uso de
frameworks
Modularidad

Los frameworks mejoran la modularidad al


encapsular (esconder) detalles de implementacin
volatiles detrs de un conjunto de interfaces
estables

La modularidad de los frameworks ayuda a mejorar


la calidad del software al localizar el impacto de
cambios de diseo e implementacin
Reusabilidad
Las interfaces estables que provee el framework
aumentan la reusabilidad al definir componentes
genricos que pueden ser utilizados una y otra vez
para crear nuevas aplicaciones

El reuso de componentes de un framework puede


traer un incremento substancial en la
productividad, al mismo tiempo que mejora la
calidad, la performance, la confiabilidad, y la inter-
operabilidad del software.
Extensibilidad
Un framework mejora la extensibilidad al proveer
mtodos gancho (hook methods) explcitos que
permiten a las aplicaciones extender sus interfaces
estables

Los mtodos gancho desacoplan


sistemticamente las interfaces estables y el
comportamiento de la aplicacin de las variaciones
requeridas por distintas instanciaciones de la
aplicacin a contextos particulares
Dificultades
Requieren un esfuerzo
Difcil de desarrollar
adicional de aprendizaje
Es complejo integrar varios de Los componentes abstractos
ellos
son mas difcil de validar
Hay que darles mantenimiento La inversin de control
dificulta la validacin de las
Requiere cdigo fuente y
aplicaciones que usan el Fwrk
conocimiento experto
No se tiene el control
Se espera compatibilidad
hacia atrs No se tiene el cdigo

Potrebbero piacerti anche