Clase 09a frameworks

  • 380 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
380
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
32
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 1Frameworks(... ¡¡¡reutilizar, reutilizar, reutilizar!!! ...)(Arquitectura de Software para Practicantes)Universidad de los AndesDemián GutierrezMarzo 2013
  • 2. Diseño ArquitectónicoDiseñoArquitectónicoArquitecturadel SoftwareBibliotecas /ComponentesPatrones deDiseñoClases /FuncionesFrameworks(Marcos)EstilosArquitectónicos
  • 3. 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?
  • 4. 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 unahistoria y reusarla (repetirla) una y otra vez,en diferentes contextos,con diferentes personajes, en distintas épocas, etc.Eso se puede ver como un “framework” paraescribir historias.
  • 5. 5¿Qué es un framework?Los hijos, niño y niña, de una familia acomodada, en la quepor alguna razón (usualmente un villano / villana) la niñatermina criándose con una familia humilde, y luego, cuandolos niños crecen y son adultos, la chica por azares de la vidatermina trabajando de servicio en la casa de la familia rica dedonde vino, y con el tiempo se enamora y conquista alprotagonista, que resulta ser el hijo de la dueña de casa, peroen la etapa de mayor tensión a alguien se le ocurre decir “yosoy tu madre” (o se vale “yo soy tu hija”) y entonces haydudas de que los dos enamorados sean hermanos, hasta quefinalmente resulta que la chica tiene otra media hermana, queresulta ser la verdadera hermana del protagonista, que secasa con la protagonista y todos viven felices para siempre...por cierto, el villano termina muerto, loco o en la cárcel¿Suena conocido?
  • 6. 6¿Qué es un framework?El término framework se podríatraducir al español comoarmazón o andamio, queviene a ser una estructuragenérica que se utiliza paracolocar diversos elementossegún sean necesarios
  • 7. 7¿Qué es un framework?Un framework (armazón / marco), es una abstracción en laque cierto código común provee una funcionalidadgenérica, que puede ser sobrescrita o especializada deforma selectiva por medio de código provisto por losclientes del framework(desarrolladores de software / programadores)Un framework es una solución incompleta(no funcional) pero a diferencia de los estilosarquitectónicos o los patrones de diseño,es una solución concreta (implementada)a un problema recurrente (dominio) bien conocido
  • 8. 8¿Qué es un framework?¿beneficios?
  • 9. 9¿Cómo ayuda un framework?Permite a los arquitectos y desarrolladores concentrar su tiempoen lograr los requerimientos de la aplicación, en lugar de tenerque hacerlo en los detalles (infraestructura) de bajo nivelnecesarios para obtener un sistema funcionalTodo esto reduce el tiempo total de desarrollo de la aplicación yaumenta la productividad de los desarrolladoresUn framework facilita el desarrollode aplicaciones de software porque:Un framework generalmente ya ha sido usado y probado enotros sistemas, lo que reduce la probabilidad de introducirerrores accidentales en el sistema a desarrollar
  • 10. 10¿Cómo ayuda un framework?EjemploUn equipo está desarrollando un sistema WEB paraun banco: Al usar un framework de desarrolloWEB, el equipo puede enfocarse en implementar lasoperaciones de retiro y transferencia de dinero, enlugar de tener que enfocarse en la mecánica delmanejo de las peticiones HTTP, el manejo de lassesiones de los usuarios, el estado de la aplicación,etc.Cantidad de trabajo que aporta valor para el clienteversusCantidad de trabajo que sólo aporta infraestructura
  • 11. 11¿Cómo se hacen? ¿Cómo se usan?Principios Básicos¿cómo?
  • 12. 12Los frameworks están conformados porzonas congeladas (frozen spots) yzonas calientes (hot spots / hooks)*Las zonas congeladas definen la arquitectura general de unsistema de software: Sus componentes básicos y lasrelaciones entre estos. Esas partes permanecen inalteradas(congeladas) en cualquier instanciación del frameworkLas zonas calientes representan los puntos en los que esposible añadir funcionalidad especifica de la aplicación.Los programadores modifican/personalizan el comportamientodel framework añadiendo código en las zonas calientes*Pree, W (1994), "Meta Patterns-A Means For Capturing the Essentials of ReusableObject-Oriented Design", Proceedings of the 8th European Conference on Object-OrientedProgramming (Springer-Verlag): 150–162Frameworks,Zonas Frías y Zonas Calientes
  • 13. 13Frameworks,Zonas Frías y Zonas CalientesLos frameworks en si mismos no sonusualmente ejecutablesLa idea es rellenar los “hot spots”necesarios para satisfacer unosrequerimientos particulares dentro de uncontexto de funcionamiento particularEl proceso anterior se llama “instanciación”del frameworkLa instanciación si es ejecutable
  • 14. 14Frameworks,Zonas Frías y Zonas CalientesInstanciación 1 Instanciación 2frozen spotsFrameworkhot spots(hooks)funcionalidadañadida (Cliente)
  • 15. 15Frameworks,Zonas Frías y Zonas CalientesInstanciaciónIoC / Inversion of Control(Inversión de Control)...no nos llame,nosotros lo llamamos...Comportamientopor defectoExtensibilidad
  • 16. 16Frameworks Caja Blanca y Caja NegraUn framework caja blanca (white box) requiere que losusuarios tengan conocimiento de la estructura y códigointerno del framework, generalmente vienen con elcódigo fuente y normalmente su comportamiento seextiende por medio del uso de subclases y herenciaUn framework caja negra (black box) no requiere unentendimiento o conocimiento profundo delfuncionamiento interno (estructura / código) delframework. Generalmente el framework se extiende porcomposición y delegación de comportamiento entreobjetosEn el medio están todos los matices posibles...(Caja Blanca y Caja Negra al mismo tiempo -> Caja Gris)MásfácildeusarMásdifícildeprogramar(Engeneral)¡El ideal, el sueño de todo desarrollador es hacer unframework completamente caja negra!
  • 17. 17Un Ejemplo Caja BlancaUn Framework “Caja Blanca” para desarrollar juegos¿qué sucede condraw()?Zonas FríasZonas CalientesExtensionesLa herenciafunciona comomecanismo deextensión entiempo de“compilación”
  • 18. 18Un Ejemplo Caja NegraUn Framework “Caja Negra” para desarrollar juegosZonas FríasZonas CalientesExtensionesA diferencia de laherencia, lacomposición funcionacomo mecanismo deextensión en “tiempode ejecución”
  • 19. 19Gracias¡Gracias!