PDF de programación - Frameworks y Componentes (... ¡¡¡reutilizar, reutilizar, reutilizar!!! ...)

Imágen de pdf Frameworks y Componentes (... ¡¡¡reutilizar, reutilizar, reutilizar!!! ...)

Frameworks y Componentes (... ¡¡¡reutilizar, reutilizar, reutilizar!!! ...)gráfica de visualizaciones

Publicado el 29 de Abril del 2020
165 visualizaciones desde el 29 de Abril del 2020
2,9 MB
72 paginas
Creado hace 10a (30/06/2011)
Frameworks y Componentes

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

Universidad de los Andes

Demián Gutierrez

Abril 2010

1

Frameworks

Diseño Arquitectónico

Diseño

Arquitectónico

Arquitectura
del Software

Estilos

Arquitectónicos

Frameworks

(Marcos)

Patrones de

Diseño

Bibliotecas /
Componentes

Clases /
Funciones

¿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

¿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

¿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

¿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

¿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

¿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

¿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

¿Frameworks y Arquitectura de Software?

Estilos

Arquitectónicos

Visión estructural y/o dinámica de
cómo debería ser un sistema, no
utilizable o ejecutable directamente

(“out of the box”)

M
e
n
o
r

n
v
e

i

l


d
e



a
b
s
t
r
a
c
c
ó
n

i

Patrones de

Diseño

Visión estructural y/o dinámica de
cómo se pueden resolver ciertos
problemas comunes de diseño, no
utilizable o ejecutable directamente

(“out of the box”)

definen

Clases /
Funciones

Se diseñan usando (entre otras cosas)

Frameworks

(Marcos)

Bibliotecas /
Componentes

Definen la
Arquitectura

Utilizan

Implementan

Implementación y

funcionalidad concreta,
utilizable directamente
desde el código de la
aplicación implementada

Aplicación

implementan

¿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-
12

Oriented Design", Proceedings of the 8th European Conference on Object-Oriented

Programming (Springer-Verlag): 150–162

¿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

¿Frameworks, y la teoría de las zonas frías y
las zonas calientes?

Framework

frozen spots

comportamiento

por defecto

)

C
o

I
(

l

i

I



o
r
t
n
o
C
e
d
n
ó
s
r
e
v
n



hot spots
(hooks)

funcionalidad

añadida (Cliente)

Instanciación 1

Instanciación 2

14

¿Frameworks caja blanca y caja negra?



M
á
s
d
i
f
í
c

i
l



d
e
p
r
o
g
r
a
m
a
r

(



E
n
g
e
n
e
r
a
l
)

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

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)

M
á
s


f
á
c

i
l



d
e
u
s
a
r

¡El ideal, el sueño de todo desarrollador es hacer un

framework completamente caja negra!

15

Frameworks: Caja Blanca, Caja Negra
y Ejemplos...

EJEMPLO:

¡Implementemos un

Solitario!

16

¿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

otro, bien sea de

forma separada o en

grupos

Bases: Lugares

donde poner cartas,
aplican reglas sobre

que cartas se
pueden poner /

quitar

Pilas: Grupos de

cartas, generalmente
sobre una base (o en
movimiento, a modo

de un grupo de
cartas). Aplican
reglas sobre que
cartas se pueden
quitar o añadir de/a

una pila

17

¿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

¿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

N O

O

K

19

¿Frameworks y Arquitectura de Software?

Una pila que sólo acepta

cartas con valor

descendiente y color alterno

SI

O

N

N

O

20

¿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

color con valor

descendente al tope

NO

S I

SI

21

¿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

¿Frameworks y Arquitectura de Software?

MainFrame

representan la IU del

solitario

Utilitarios y clases

base de Swing

Es la clase encargada
de cargar las cartas

del disco

Panel en el que se dibujan
las cartas (o que “contiene”

el solitario)

Utilitarios en general

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

¿Frameworks y Arquitectura de Software?

GamePanel se

encarga de dibujar las
pilas de cartas (que a

su vez dibujan las

cartas individuales) así
como de manejar los

eventos del ratón

Los eventos del ratón se

manejan de forma genérica
por parte de GamePanel,
es decir, las reglas de que
cartas se pueden quitar de
una pila o poner en otra no
están implementadas en

esta clase

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

¿Frameworks y Arquitectura de Software?

Si el puntero no está

sobre una pila
srcStack es nulo

Si no se permite (por

tmpStack es nulo

reglas) mover las

cartas selecionadas,

Lo que sucede cuando el usuario
aprieta el ratón (sobre una pila)

25

¿Frameworks y Arquitectura de Software?

Si el ratón no se libera
sobre una pila tgtStack

será nulo

Si acceptCards retorna
falso, quiere decir que
la pila por sus “reglas”
no aceptó las cartas, y

origen

que deben ser

devueltas a la pila de

Lo que sucede cuando el usuario libera el ratón (sobre una pila)
26

¿Frameworks y Arquitectura de Software?

Es decir, desde el punto de vista de GamePanel (ver
diagramas anteriores) toda la lógica de si es posible
sacar una o más cartas de una pila o poner una o más
cartas en una pila está implementada en la clase Stack,

específicamente en los mét
  • Links de descarga
http://lwp-l.com/pdf17577

Comentarios de: Frameworks y Componentes (... ¡¡¡reutilizar, reutilizar, reutilizar!!! ...) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad