clase 09a frameworks

19

Click here to load reader

Upload: demian-gutierrez

Post on 28-Jun-2015

464 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Clase 09a frameworks

1

Frameworks(... ¡¡¡reutilizar, reutilizar, reutilizar!!! ...)

(Arquitectura de Software para Practicantes)

Universidad de los AndesDemián Gutierrez

Marzo 2013

Page 2: Clase 09a frameworks

Diseño Arquitectónico

Diseño Arquitectónico

Arquitectura del Software

Bibliotecas /Componentes

Patrones de Diseño

Clases / Funciones

Frameworks(Marcos)

EstilosArquitectónicos

Page 3: Clase 09a frameworks

3

¿Qué es un framework?

¿A quienes les gusta la TV?

¿Telenovelas?¿Series de TV?

¿qué tiene que ver esto con el uso/desarrollo de frameworks?

Page 4: Clase 09a frameworks

4

¿Qué es un framework?

¿Telenovelas?¿Series de TV?

En el cine, la TV y la literaturaexiste un concepto similar.

La idea consiste en tomar una plantilla de una historia y reusarla (repetirla) una y otra vez,

en diferentes contextos,con diferentes personajes, en distintas épocas, etc.

Eso se puede ver como un “framework” para escribir historias.

Page 5: Clase 09a frameworks

5

¿Qué es un framework?

Los hijos, niño y niña, de una familia acomodada, en la que por alguna razón (usualmente un villano / villana) la niña

termina criándose con una familia humilde, y luego, cuando los niños crecen y son adultos, la chica por azares de la vida termina trabajando de servicio en la casa de la familia rica de

donde vino, y con el tiempo se enamora y conquista al protagonista, que resulta ser el hijo de la dueña de casa, pero en la etapa de mayor tensión a alguien se le ocurre decir “yo

soy tu madre” (o se vale “yo soy tu hija”) y entonces hay dudas de que los dos enamorados sean hermanos, hasta que finalmente resulta que la chica tiene otra media hermana, que

resulta ser la verdadera hermana del protagonista, que se casa con la protagonista y todos viven felices para siempre...

por cierto, el villano termina muerto, loco o en la cárcel

¿Suena conocido?

Page 6: Clase 09a frameworks

6

¿Qué es un framework?

El término framework se podría traducir al español como

armazón o andamio, que viene a ser una estructura

genérica que se utiliza para colocar diversos elementos

según sean necesarios

Page 7: Clase 09a frameworks

7

¿Qué es un framework?

Un framework (armazón / marco), es una abstracción en la que cierto código común provee una funcionalidad

genérica, que puede ser sobrescrita o especializada de forma selectiva por medio de código provisto por los

clientes del framework(desarrolladores de software / programadores)

Un framework es una solución incompleta(no funcional) pero a diferencia de los estilos

arquitectónicos o los patrones de diseño,es una solución concreta (implementada)

a un problema recurrente (dominio) bien conocido

Page 8: Clase 09a frameworks

8

¿Qué es un framework?

¿beneficios?

Page 9: Clase 09a frameworks

9

¿Cómo ayuda un framework?

Permite a los arquitectos y desarrolladores concentrar su tiempo en lograr los requerimientos de la aplicación, en lugar de tener

que hacerlo en los detalles (infraestructura) de bajo nivel necesarios para obtener un sistema funcional

Todo esto reduce el tiempo total de desarrollo de la aplicación y aumenta la productividad de los desarrolladores

Un framework facilita el desarrollode aplicaciones de software porque:

Un framework generalmente ya ha sido usado y probado en otros sistemas, lo que reduce la probabilidad de introducir

errores accidentales en el sistema a desarrollar

Page 10: Clase 09a frameworks

10

¿Cómo ayuda un framework?

EjemploUn equipo está desarrollando un sistema WEB para

un banco: Al usar un framework de desarrollo WEB, el equipo puede enfocarse en implementar las operaciones de retiro y transferencia de dinero, en

lugar de tener que enfocarse en la mecánica del manejo de las peticiones HTTP, el manejo de las

sesiones de los usuarios, el estado de la aplicación, etc.

Cantidad de trabajo que aporta valor para el clienteversus

Cantidad de trabajo que sólo aporta infraestructura

Page 11: Clase 09a frameworks

11

¿Cómo se hacen? ¿Cómo se usan?Principios Básicos

¿cómo?

Page 12: Clase 09a frameworks

12

Los frameworks están conformados porzonas congeladas (frozen spots) yzonas calientes (hot spots / hooks)*

Las zonas congeladas definen la arquitectura general de un sistema de software: Sus componentes básicos y las

relaciones entre estos. Esas partes permanecen inalteradas (congeladas) en cualquier instanciación del framework

Las zonas calientes representan los puntos en los que es posible añadir funcionalidad especifica de la aplicación.

Los programadores modifican/personalizan el comportamiento del framework añadiendo código en las zonas calientes

*Pree, W (1994), "Meta Patterns-A Means For Capturing the Essentials of Reusable Object-Oriented Design", Proceedings of the 8th European Conference on Object-Oriented

Programming (Springer-Verlag): 150–162

Frameworks, Zonas Frías y Zonas Calientes

Page 13: Clase 09a frameworks

13

Frameworks, Zonas Frías y Zonas Calientes

Los frameworks en si mismos no son usualmente ejecutables

La idea es rellenar los “hot spots” necesarios para satisfacer unos

requerimientos particulares dentro de un contexto de funcionamiento particular

El proceso anterior se llama “instanciación” del framework

La instanciación si es ejecutable

Page 14: Clase 09a frameworks

14

Frameworks, Zonas Frías y Zonas Calientes

Instanciación 1 Instanciación 2

frozen spots

Framework

hot spots(hooks)

funcionalidadañadida (Cliente)

Page 15: Clase 09a frameworks

15

Frameworks, Zonas Frías y Zonas Calientes

Instanciación

IoC / Inversion of Control(Inversión de Control)

...no nos llame,nosotros lo llamamos...

Comportamientopor defecto

Extensibilidad

Page 16: Clase 09a frameworks

16

Frameworks Caja Blanca y Caja Negra

Un framework caja blanca (white box) requiere que los usuarios tengan conocimiento de la estructura y código

interno del framework, generalmente vienen con el código fuente y normalmente su comportamiento se

extiende por medio del uso de subclases y herencia

Un framework caja negra (black box) no requiere un entendimiento o conocimiento profundo del

funcionamiento interno (estructura / código) del framework. Generalmente el framework se extiende por

composición y delegación de comportamiento entre objetos

En el medio están todos los matices posibles...(Caja Blanca y Caja Negra al mismo tiempo -> Caja Gris)

Más fác il d

e usar

Más d

if ícil de p

rog

ra mar (E

n g

ene ral)

¡El ideal, el sueño de todo desarrollador es hacer un framework completamente caja negra!

Page 17: Clase 09a frameworks

17

Un Ejemplo Caja Blanca

Un Framework “Caja Blanca” para desarrollar juegos

¿qué sucede con draw()?

Zonas Frías

Zonas Calientes

Extensiones

La herencia funciona como mecanismo de extensión en

tiempo de “compilación”

Page 18: Clase 09a frameworks

18

Un Ejemplo Caja Negra

Un Framework “Caja Negra” para desarrollar juegos

Zonas Frías

Zonas Calientes

Extensiones

A diferencia de la herencia, la

composición funciona como mecanismo de extensión en “tiempo

de ejecución”

Page 19: Clase 09a frameworks

19

Gracias

¡Gracias!