frameworks y componentes
play

Frameworks y Componentes (... reutilizar, reutilizar, reutilizar!!! - PowerPoint PPT Presentation

Frameworks y Componentes (... reutilizar, reutilizar, reutilizar!!! ...) Universidad de los Andes Demin Gutierrez Abril 2010 1 Frameworks Diseo Arquitectnico Arquitectura del Software Diseo Arquitectnico Frameworks


  1. Frameworks y Componentes (... ¡¡¡reutilizar, reutilizar, reutilizar!!! ...) Universidad de los Andes Demián Gutierrez Abril 2010 1

  2. Frameworks

  3. Diseño Arquitectónico Arquitectura del Software Diseño Arquitectónico Frameworks Estilos (Marcos) Arquitectónicos Patrones de Bibliotecas / Diseño Componentes Clases / Funciones

  4. ¿Qué es un Framework? ¿A quienes les gusta la TV? ¿Telenovelas? ¿Series de TV? ¿Qué tiene que ver esto con el uso de frameworks o componentes? 4

  5. ¿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 5

  6. ¿Qué es un Framework? ¿Telenovelas? ¿Series de TV? En el cine, la TV y la literatura existe un concepto similar, la idea es que es posible tomar una plantilla particular 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. 6

  7. ¿Qué es un Framework? Un framework (armazon), 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 con funcionalidad específica provisto por los clientes del framework (desarrolladores de software / programadores) Un framework es una solución incompleta (no funcional) pero concreta (a diferencia de los estilos arquitectónicos o los patrones de diseño) a un problema recurrente bien conocido ¡La Búsqueda de la Generalidad y la Reusabilidad! 7

  8. ¿Cómo ayuda un framework al desarrollo de software? Un framework facilita el desarrollo de software permitiendo a los diseñadores y programadores dedicar su tiempo a lograr los requerimientos de software en lugar de lidiar con los detalles de bajo nivel necesarios para obtener un sistema funcional De esta forma se puede reducir el tiempo total de desarrollo de la aplicación 8

  9. ¿Cómo ayuda un framework al desarrollo de software? Por ejemplo, un equipo que esta desarrollando un sistema WEB bancario al usar un framework de desarrollo WEB puede enfocarse en el desarrollo de las operaciones de retiro y transferencias de dinero en lugar de tener que enfocarse en la mecánica del manejo de las peticiones HTTP o el manejo de las sesiones de los usuarios y el estado de la aplicación 9

  10. ¿Frameworks y Arquitectura de Software? Un framework es una forma de reutilizar una arquitectura de software ¿Qué relación tiene un framework con los estilos arquitectónicos? ¿Qué relación tienen un framework con otros aspectos del diseño y Arquitectura de Software? 10

  11. ¿Frameworks y Arquitectura de Software? Visión estructural y/o dinámica de Estilos cómo debería ser un sistema, no Arquitectónicos utilizable o ejecutable directamente (“out of the box”) Menor nivel de abstracción Visión estructural y/o dinámica de cómo se pueden resolver ciertos definen Patrones de Clases / problemas comunes de diseño, no Diseño Funciones utilizable o ejecutable directamente (“out of the box”) Se diseñan usando (entre otras cosas) Implementan Implementación y funcionalidad concreta, Frameworks Bibliotecas / utilizable directamente (Marcos) Componentes desde el código de la aplicación implementada Definen la Utilizan Arquitectura Aplicación implementan

  12. ¿Frameworks, y la teoría de las zonas frías y las zonas calientes? Según Pree, los frameworks están conformados por zonas congeladas (frozen spots) and zonas calientes (hot spots) Las partes congeladas definen la arquitectura general de un sistema de software , es decir, sus componentes básicos y las relaciones entre estos. Esas partes permanecen inalteradas (congeladas) en cualquier instanciación del framework Las partes calientes representan los puntos en los que los programadores pueden añadir su propio código para añadir la funcionalidad especifica de su propio proyecto 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 12 Programming (Springer-V erlag): 150–162

  13. ¿Qué es un Framework? Los frameworks en si mismos no son usualmente ejecutables (a diferencia de un programa o una aplicación). La idea es que el framework es utilizado en una aplicación particular, que rellena 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. 13

  14. ¿Frameworks, y la teoría de las zonas frías y las zonas calientes? Framework frozen spots comportamiento por defecto Inversión de Control (IoC) funcionalidad hot spots añadida (Cliente) ( hooks ) Instanciación 1 Instanciación 2 14

  15. ¿Frameworks caja blanca y caja negra? Un framework caja blanca (white box) requiere que los Más difícil de programar (En general) 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 Más fácil de usar En el medio están todos los matices posibles... (Caja Blanca y Caja Negra al mismo tiempo -> Caja Gris) 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 componiendo y delegando comportamiento entre objetos (Muchos de los cuales son las extensiones del usuario) ¡El ideal, el sueño de todo desarrollador es hacer un 15 framework completamente caja negra!

  16. Frameworks: Caja Blanca, Caja Negra y Ejemplos... EJEMPLO: ¡Implementemos un Solitario! 16

  17. ¿Frameworks y Arquitectura de Software? Un solitario es un juego en el que hay: Cartas: Unidades básicas que se mueven de un lado a Pilas: Grupos de otro, bien sea de cartas, generalmente forma separada o en sobre una base (o en grupos movimiento, a modo de un grupo de cartas). Aplican Bases: Lugares reglas sobre que donde poner cartas, cartas se pueden aplican reglas sobre quitar o añadir de/a que cartas se una pila pueden poner / quitar 17

  18. ¿Frameworks y Arquitectura de Software? El objetivo del juego es acomodar las cartas de cierta forma o eliminar todas las cartas de las mesa , siguiendo una serie de reglas predefinidas que dicen que cartas se pueden mover de una pila a otra... 18

  19. ¿Frameworks y Arquitectura de Software? Prácticamente, se pueden definir un conjunto infinito de posibles reglas y juegos distintos usando el mismo principio Sólo acepta una “A” de cualquier color NO O K 19

  20. ¿Frameworks y Arquitectura de Software? Una pila que sólo acepta cartas con valor descendiente y color alterno O N SI N O 20

  21. ¿Frameworks y Arquitectura de Software? Una pila de la que sólo se puede sacar la carta del tope o grupos de cartas que lleguen alternando su SI color con valor descendente al tope O N SI 21

  22. ¿Frameworks y Arquitectura de Software? Si vamos a programar un juego de solitario hay dos opciones: 1) Programar un sólo juego en especifico , con reglas especificas 2) Programar una serie de clases (framework) que permitan luego “configurar” las reglas fácilmente para así poder crear cualquier solitario que se requiera Para la opción 2, a continuación una posible implementación: 22

  23. ¿Frameworks y Arquitectura de Software? MainFrame Utilitarios y clases representan la IU del Es la clase encargada base de Swing solitario de cargar las cartas del disco Panel en el que se dibujan las cartas (o que “contiene” Utilitarios en general el solitario) Objetos del Solitario, Cartas, Pilas, “Dibujables”, etc El código de este ejemplo va adjunto a las transparencias, son los proyectos CardGames01 y CardGames02 23

  24. ¿Frameworks y Arquitectura de Software? Los eventos del ratón se manejan de forma genérica GamePanel se por parte de GamePanel, encarga de dibujar las es decir, las reglas de que pilas de cartas (que a cartas se pueden quitar de su vez dibujan las una pila o poner en otra no cartas individuales) así están implementadas en como de manejar los esta clase eventos del ratón Las reglas de las pilas están implementadas en cada una de las pilas. Por ejemplo borrowCards es invocado para ver si es posible quitar un grupo de cartas de una pila, acceptCards es invocado para ver si es posible poner un grupo de cartas en una pila particular. Toda la lógica y la verificación se implementa en estos dós métodos de las distintas pilas Ver diagramas de secuencia de las siguientes láminas para entender el proceso completo de tomar de una pila y poner en otra 24

  25. ¿Frameworks y Arquitectura de Software? Si el puntero no está sobre una pila srcStack es nulo Si no se permite (por reglas) mover las cartas selecionadas, tmpStack es nulo Lo que sucede cuando el usuario aprieta el ratón (sobre una pila) 25

Recommend


More recommend