programacion

Páginas: 24 (5812 palabras) Publicado: 3 de abril de 2013
JHotDraw

Aplicación de patrones a la construcción de Frameworks

Raúl Izquierdo Castanedo

JHotDraw

Introducción

Raúl Izquierdo Castanedo

JHotDraw



Orígenes
– JHotDraw se ha inspirado en:
• HotDraw. Framework en Smalltalk. Desarrollado por Kent Beck
y Ward Cunningham
• ET++. Framework y librería de clases portable para C++.
Desarrolado por Andre Weinand y Erich Gamma– JHotDraw ha sido desarrollado por Thomas Eggenschwiler y
Erich Gamma y fue presentado en el OOPSLA97
– Fue creado para un seminario como ejemplo de la aplicación
de patrones en la creación de Frameworks, pero sus ideas
son directamente aplicables a las aplicaciones profesionales
– Han colaborado también personas como Uwe Steinmueller,
Doug Lea, Kent Beck, y Ward Cunningham.

RaúlIzquierdo Castanedo
3

Máster de Ingeniería del Software
URL en Java

JHotDraw



Objetivo
– Framework para editores de manipulación directa



Característica
– Distintos tipos de figuras
– Manipulación directa de las figuras
– Conexión de figuras
– Herramientas
– Actualización en pantalla eficiente
– Applets y aplicaciones

Raúl Izquierdo Castanedo
4

Máster deIngeniería del Software
URL en Java

JHotDraw



Framework
– Colaboración de clases adaptables que definen una solución
para un problema dado





Definen las abstracciones fundamentales y sus interfaces
Establecen las interacciones entre los objetos
Adaptación: redefinición
Soluciones por defecto

– Reutilización
• Arquitectura y diseño
• Código

Raúl Izquierdo Castanedo
5Máster de Ingeniería del Software
URL en Java

JHotDraw

Raúl Izquierdo Castanedo
6

Máster de Ingeniería del Software
URL en Java

JHotDraw



Proceso
– Desarrollo de un modelo del dominio (OOD)
• Identificar abstracciones fundamentales y sus
responsabilidades (CRC, Use Cases)

– Diseño flexible y extensible con patrones
• Flexibilidad: Strategy, State, Decorator...
•Independencia: Abstract Factory, Bridge...

– Integrar en una infraestructura existente
• Adapter, Bridge

– Implementación
• Coding Patterns
• Idiomas específicos del lenguaje

Raúl Izquierdo Castanedo
7

Máster de Ingeniería del Software
URL en Java

JHotDraw



Problemas de Diseño
– Abstracciones fundamentales
– Herramientas
– Actualización de pantalla
– Manipulación deFiguras
– Conexiones
– Entorno de Ejecución

Raúl Izquierdo Castanedo
8

Máster de Ingeniería del Software
URL en Java

JHotDraw

Abstracciones fundamentales

Raúl Izquierdo Castanedo

Abstracciones fundamentales



Problemas de Diseño
– Abstracciones fundamentales
– Herramientas
– Actualización de pantalla
– Manipulación de Figuras
– Conexiones
– Entorno de ejecuciónRaúl Izquierdo Castanedo
10

Máster de Ingeniería del Software
URL en Java

Abstracciones fundamentales



Figuras
– Simples y complejas
– Pueden tener un número indeterminado de atributos



Responsabilidades
– dibujarse
– saber su posición y tamaño
– moverse



La abstracción de las figuras debe ser independiente de
cualquier detalle de implementación

RaúlIzquierdo Castanedo
11

Máster de Ingeniería del Software
URL en Java

Abstracciones Fundamentales
interface Figure
{
displayBox
containsPoint
draw
moveBy
...
}

Raúl Izquierdo Castanedo
12

Máster de Ingeniería del Software
URL en Java

Abstracciones Fundamentales



Desarrollo de Frameworks
– Separación de diseño y código:
• “We believe that interface design andfunctional factoring
constitute de key intellectual content of software and that are
far more difficult to create or re-create than code”. Peter
Deutsch

– Por tanto separar diseño e implementación con interfaces

Raúl Izquierdo Castanedo
13

Máster de Ingeniería del Software
URL en Java

Abstracciones Fundamentales




Figura define un interface
La clase abstracta AbstractFigure...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación
  • Programacion
  • Programacion
  • Programación
  • Programacion
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS