Title: Antonio Vallecillo
12ª ParteMarcos de Trabajo
- Antonio Vallecillo
- GISUM Grupo de Ingeniería del Software
- de la Universidad de Málaga
- Departamento de Lenguajes y Ciencias de la
Computación - Universidad de Málaga. España
- av_at_lcc.uma.es
2Contenido
- Marcos de trabajo (Frameworks) orientados a
objetos y a componentes - Clasificación de los MTs
- Patrones de Diseño su utilidad
3Marcos de Trabajo(Application Frameworks)
- Un MT es un diseño reutilizable de todo o parte
de un sistema, representado por un conjunto de
clases abstractas y la forma en la que sus
instancias interactúan
- Un MT es el esqueleto de una aplicación que debe
ser adaptado a necesidades concretas por el
programador de la aplicación
4Caracterización de los MTs
- Arquitectura especializada para un dominio de
aplicación - Define interfaces de componentes
- Establece reglas de interacción entre ellos
- Implementa alguno de los componentes
- El usuario encaja sus componentes en el marco
5Desarrollo de Software basado en MTs
- Ventajas
- Aumenta la reutilización
- Minimiza riesgos
- Reducción de los costes de producción
- Mejora de la calidad final del producto
6Utilización de un MT
- Valorar la adecuación de un MT a un problema
- Comprender su arquitectura
- Identificar los hot spots
- Adaptar/Extender el MT
- El problema de la documentación
- No existe documentación o es pobre
- No es estándar
- No tiene una semántica formal
- Dirigida a diferentes tipos de usuarios
7Documentación de MT (I)
- Entornos gráficos
- Grafos (Eusel et al. 1997, Florijn et al. 1997)
- Secuencias de mensajes (Lange et al. 1995)
- Aportan conocimiento más profundo del MT
- Sin una metodología para usar ese conocimiento
- Útil sólo en la fase de identificación del MT
- Contratos de Reutilización
- Definen la cooperación entre los diseñadores del
MT y los encargados de extenderlo o adaptarlo
(Steyaert et al. 1996, Codenie et al. 1997)
8Documentación De MT(II)
- Patrones de Diseño (Design Patterns)
- Útil tanto para diseñar la arquitectura de un MT
como para documentar el diseño - Lange y Nakamura, 1995
- Odenthal y Quiebel-Cirkel, 1997
- Meijler y Engel, 1997
- Herramientas visuales
- Enfoque de mayor aceptación actualmente
- Notaciones visuales para representar componentes,
conectores y enlaces - Tendencia Complementar con LDAs
9Extensión de MTs
- Atendiendo a la forma en que un MT puede ser
extendido podemos clasificar éstos en - MTs de caja de cristal
- MTs de caja blanca
- MTs de caja negra
- MTs de caja gris
10Ejemplo de MT MultiTel
Componente
Component
ClassEvent
usp
LocalUSP
type String
type String
from String
args Object
event (e
ClassEvent)
SetLocalUSP (
usp
LocalUSP)
11MultiTel Conectores
Conector
State
Connector
sender Pid
catchEvent (e ClassEvent)
start ()
...
...
public void catchEvent(ClassEvent e) throws
Exception try synchronized(state)
Method m m(state.getClass().getMet
hod(e.type,e.args)) state(State)m.invoke(s
tate,e.args) if (statenull)
finalizeConnector() else
startState() catch (Exception e)
SConn_Prot
Event1 ()
...
SConn_State2
SConn_State1
Event3 ()
Event1 ()
Event4 ()
Event2 ()
Patrón de diseño State
Paquete reflective de Java
12MultiTel Conectores
- Manager","showSchedControl")
- Manager","showClassControl")
- VirtualConnection","emit",arg)
- new SSchedMPTU1_Speaking(
13MultiTel Composición dinámica de componentes y
conectores
cc1Access
P1Participant
AS
USP
P1,P2,cc1,cc2
CA
Búsqueda del contexto
global
C3P
14Extensión de MultiTel programación de un servicio
- participant,local","manager,remote","
- participant,remote","manager,local","
- participant,local","manager,remote","
- participant,local","manager,remote","mtsb.vc.SCAc
cess1")
- participant,remote","manager,local","mtsb.vc.SMAc
cess1")
- handlesEventsFrom("SMAccess",events1,"Manager")
- handlesEventsFrom("SCAccess",events2,"Participant"
)
- participantInitialContext
- SMAccess, SSchedMP, ...")
- loadOrganizationParameters
15Clasificación De Los Marcos De Trabajo (I)
- Horizontales
- Infraestructuras de comunicaciones
- Interfaces de usuario
- Entornos visuales
- Plataformas de componentes distribuidos, etc
- Verticales
- Telecomunicaciones (TINA, MultiTEL)
- Fabricación
- Multimedia (JMF), etc.
16Clasificación De Los Marcos De Trabajo (II)
- Generales
- Programación de GUIs
- Entornos de programación visual
- Programación de redes
- Software de base
- Infraestructuras de comunicaciones
- Plataformas de componentes
- De Empresa
- específicos de un dominio, a medida
17Components Frameworks
- Específicos para el desarrollo de aplicaciones
basadas en componentes reutilizables - Presentan características especiales
- Composición tardía, interconexión dinámica,
extensibilidad black-box, etc - Suelen definirse como implementación concreta de
varios patrones de diseño sobre una plataforma de
componentes concreta
18 Cuándo resulta conveniente definir un MT ?
- Mercado competitivo
- Plazos de desarrollo muy cortos
- Dominio de aplicación complejo
- Solucionar problemas repetitivos
- Ej aplicaciones multimedia distribuidas
19Interacción de MTs
- Problemas
- Cohesión entre las clases de un MT
- Solapamiento de dominio
- Falta de estándares de MT
- Soluciones
- Adaptadores o wrappers
- Patrones de diseño
- Mediadores software
20Patrones de Diseño(Design Patterns)
- Un patrón de diseño ofrece una solución
abstracta a un problema de diseño que aparece muy
frecuentemente, expresada mediante un conjunto de
relaciones e interacciones entre sus componentes
- Complementarios con los MT
- Granularidad más fina que los MT
- Un MT suele estar compuesto por una colección de
patrones de diseño.
21Ventajas e Inconvenientes
- Ventajas
- Permiten reutilizar soluciones de problemas
comunes. - Están probados y son lo suficientemente flexibles
para adaptarse a necesidades específicas. - Inconvenientes
- Su elevado número (falta de catalogación).
- Su complejidad.
- Composición poco definida.
22PD Adaptador
- El PD Adapter o Wrapper se utiliza para
convertir la interfaz de una clase en otra
interfaz, que es la esperada por el objeto
cliente. Adapta interfaces incompatibles
23PD Puente
- El PD Bridge se utiliza para desacoplar la
definición abstracta de un objeto de su
implementación. De esta forma ambas pueden
evolucionar independientemente
24Bibliografía
- M. Fayad, R. Johnson y D. Schmidt, Building
Application Framework, Wiley Sons, 1999. - M. Fayad, R. Johnson y D. Schmidt, Implementing
Application Frameworks, Wiley Sons, 1999. - M. Fayad y R. Johnson, Domain-Specific
Application Frameworks, Wiley Sons, 1999. - M. Fayad, Object-Oriented Application Frameworks,
Communications of the ACM, Vol. 40, No. 10,
Octubre 1997. - E. Gamma et. al., Design Patterns,
Addison-Wesley, 1995. - J. Bosch, Design Patterns Frameworks On the
Issue of Language Support, Actas del Workshop
Language Support for Design Patterns and
Frameworks del ECOOP97.
25Bibliografía
- M. Mattsson, J. Bosch y M. Fayad, Framework
Integration, problems, causes, solutions,
Communication of the ACM, Vol. 42, no. 10,
octubre 1999. - G. Odenthal y K. Quibeldey-Cirkel, Using Patterns
for Design and Documentation, actas del ECOOP97,
pp.511-529, 1997. - D. Schmidt, A Family of Design Patterns For
Flexibly Configuring Network Services in
Distributed Systems, actas del ICCDS96, 1996. - A. Deimel, The SAP R/3 Business Framework,
software - Concepts Tools, Vol. 19, pp.29-36,
1998. - Research on Design Patterns for Concurrent,
Parallel, and Distributed Systems.
http//siesta.cs.wustl.edu/schmidt/patterns.html - http//hillside.net/patterns/
- http//hillside.net/patterns/books/