Sunteți pe pagina 1din 73

UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE MADRID FACULTAD DE INFORMTICA

Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos: Una Va para la Gestin del Conocimiento en la Ingeniera del Software
Len Welicki

lwelicki@acm.org

ndice
Introduccin Estado del arte Desarrollo de la investigacin Prototipos desarrollados Conclusiones

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

Introduccin

Contexto
I n t r o d u c c i n
El software es el gran protagonista de los ltimos (y prximos) lustros, estando presente en gran parte de los aspectos de la vida cotidiana

Nuestra civilizacin corre sobre software ideas y los descubrimientos tecnolgicos son los conductores del crecimiento econmico

Las

Sin embargo, la construccin de software es una disciplina moderna que est en constante evolucin, en bsqueda de un estado de madurez que sea comprehensivo respecto a su amplio espectro de aplicacin
La reutilizacin promete ser una de las vas hacia ese

anhelado estado, a travs de una correcta gestin de las experiencias y conocimiento de ingenieros expertos

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

Introduccin

Sobre esta Tesis


I n t r o d u c c i n
En la presente tesis se traza y explora el dominio de la metaespecificacin y catalogacin de patrones como respuesta al problema de describir, catalogar y compartir conocimiento de ingeniera del software La investigacin realizada se inscribe en un marco interdisciplinario
Ingeniera del Software Gestin del Conocimiento Ingeniera Web Ciencias de la Computacin

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

Introduccin

Soporte de la Hiptesis
I n t r o d u c c i n
La construccin de software es una disciplina compleja, con un extrao balance entre arte y ciencia donde la experiencia tiene un rol determinante Los patrones son el medio idneo para compartir experiencia

Compartir patrones es compartir conocimiento


La falta de un modelo para describir, clasificar y compartir patrones dificulta la transmisin del conocimiento que el patrn intenta expresar

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

Introduccin

Hiptesis
I n t r o d u c c i n
Es posible codificar en forma abstracta a los patrones y a sus conceptos de soporte a un alto nivel de abstraccin en forma flexible y extensible abarcando todos los modelos de descripcin posibles, catalogarlos y compartirlos con la comunidad para gestionar y transmitir adecuadamente el conocimiento que intentan expresar

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

Introduccin

Objetivos Principales
I n t r o d u c c i n
1. Crear un lenguaje de meta-especificacin que permita describir a los patrones a un alto nivel de abstraccin 2. Utilizar este lenguaje para construir un catlogo que incluya tambin todos los conceptos necesarios para poder realmente entender al patrn 3. Exponer toda esta informacin haciendo este conocimiento accesible para el pblico general, con independencia del fin para el que quiera utilizarlo

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

Introduccin

Objetivos Parciales
I n t r o d u c c i n
1. Crear un lenguaje de representacin de patrones 2. Dotar al lenguaje de expresividad para describir conceptos 3. Dotar al lenguaje de capacidades relacionales 4. Dotar al lenguaje de capacidades de anotacin 5. Construir un catlogo de patrones 6. Crear la infraestructura de catalogacin 7. Crear una herramienta de visualizacin del catlogo 8. Establecer un mecanismo de visualizacin de entidades 9. Habilitar el trabajo colaborativo para evolucionar a los patrones 10. Convertir al catlogo en un proveedor de servicios de informacin

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

Introduccin

Metodologa de la Investigacin
I n t r o d u c c i n
Metodologa iterativa e incremental En cada iteracin

Se estableca un modelo terico Se creaban prototipos Se publicaban los resultados parciales Se discuta y contrastaban con la comunidad cientfica internacional

El feedback obtenido serva como realimentacin del proceso y se utilizaba en la siguiente iteracin Varios hitos de verificacin

COMPSAC 2007, OOPSLA 2006, PLoP 2006, EuroPLoP 2006, PLoP 2005, W3C JSWEB 2005, etc.

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

ndice
Introduccin Estado del arte Desarrollo de la investigacin Prototipos desarrollados Conclusiones

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

10

Estado del arte

E s t a d o d e l A r t e

Estado del Arte


Herramientas Conceptuales

Patrones El nivel Meta Lenguajes de Dominio Especfico Modelos de Objetos Adaptativos Sistemas Emergentes

Soluciones Parciales Existentes Problemas Recurrentes Conclusin de los Problemas Recurrentes

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

11

Estado del arte

E s t a d o d e l A r t e

Patrones
Un patrn es una solucin a un problema en un contexto Cada patrn describe un problema que ocurre una y otra vez en nuestro entorno, para describir despus el ncleo de la solucin a ese problema, de tal manera que esa solucin pueda ser usada ms de un milln de veces sin hacerlo ni siquiera dos veces de la misma forma
Cristopher Alexander, A Pattern Language (1977)

Los patrones se describen utilizando plantillas


Existe una amplia variedad de plantillas diferentes

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

12

Estado del arte

E s t a d o d e l A r t e

Patrones y Gestin del Conocimiento


Son un gran mecanismo de comunicacin para transmitir experiencias

Permiten establecer un vocabulario comn de diseo, cambiando el nivel de abstraccin a colaboraciones entre entidades y permitiendo comunicar conocimiento sobre problemas y soluciones en un contexto
Ocupan un sitio de privilegio en el modelo de generacin de conocimiento propuesto por Nonaka y Takeuchi

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

13

Estado del arte

E s t a d o d e l A r t e

El Nivel Meta
El prefijo Meta viene del campo de la filosofa e indica un nivel de descripcin ms elevado.

Se refiere a trascender o ir ms all de

Cuando los informticos resuelven un problema tienden a ir al nivel meta

Generalmente, esto significa resolver el problema en forma ms general, a un mayor nivel de abstraccin
Mas flexiblidad y adaptabilidad a expensas de mayor complejidad y menor rendimiento

El paso a un nivel meta debe ser correctamente analizado

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

14

Estado del arte

E s t a d o d e l A r t e

Lenguajes de Dominio Especfico


Un lenguaje de dominio especfico (DSL) es un lenguaje especializado para un problema particular
Es diferente de un lenguaje de propsito general

(GPL) que es creado para resolver cualquier clase de problema

Son lenguajes limitados, diseados para resolver una clase especfica de problemas Cambian expresividad por generalidad en un dominio concreto Pueden ser textuales o grficos
Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

15

Estado del arte

E s t a d o d e l A r t e

Modelos de Objetos Adaptativos


Un modelo de objetos adaptativo (AOM) es un sistema que representa clases, atributos, relaciones y comportamiento como metadatos

Si algo va variar en un modo predecible, almacenar la descripcin de la variacin en una base de datos para hacer que sea fcil de cambiar

El sistema almacena su modelo de objetos en una base de datos y lo interpreta, obteniendo una gran adaptabilidad y flexibilidad

Los usuarios cambian los metadatos (modelo de objetos) para reflejar cambios en el dominio

Son un tipo de arquitectura reflectiva o meta-arquitectura Fuertemente basado en patrones

Type Object, Properties, Accountability, Type Square, Interpreter, Builder, Strategy, Composite, Null Object

El cdigo son datos, los datos son cdigoTodo es cdigo, todo son datos
Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

16

Estado del arte

E s t a d o d e l A r t e

Sistemas Emergentes
Emergencia es lo que ocurre cuando un sistema de elementos relativamente simples se organiza espontneamente y sin leyes explcitas hasta dar lugar a un comportamiento inteligente

Los agentes de un nivel inferior adoptan comportamientos propios de un nivel superior Es lo que sucede cuando el todo es mas inteligente que la suma de sus partes

Los sistemas emergentes tienen las siguientes caractersticas


1. No hay un control jerrquico de arriba hacia abajo que diga al

sistema que es lo que debe hacer

2. Cada una de las entidades involucradas es en s bastante tonta.

Sigue unas pocas reglas sencillas y locales que

slo ella conoce

3. La interaccin de reglas locales simples y azar producen un diseo

emergente global que no es inherente a las partes

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

17

Estado del arte

E s t a d o d e l A r t e

Soluciones Parciales Existentes


Descripcin y Catalogacin Soporte en Herramientas de Modelado Catlogos Pblicos

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

18

Estado del arte

E s t a d o d e l A r t e

Soluciones Parciales Existentes


Descripcin y Catalogacin
Wiki HTML PLML / PLMLx XMI ODOL (Proyecto WoP)

Lattice Based Classification

Soporte en Herramientas de Modelado


Borland Togheter

Rational XDE
Sparx Systems Enterprise Architect

Catlogos Pblicos
Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos Madrid, Junio de 2007 19

Estado del arte

E s t a d o d e l A r t e

Algunos Catlogos Pblicos


Portland Pattern Repository Microsoft PatternShare Suns Core J2EE Patterns MOUDIL Patterns Almanac Martin Fowlers EA Catalog EI Patterns Catalog Patterns (Handbook of SA) Patterns in Interaction Design UI Patterns DoFactory GoF Patterns

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

20

Estado del arte

E s t a d o d e l A r t e

Problemas Recurrentes - Descripcin


Descripcin
Catalogacin Visualizacin

1.
2. 3.

Descripcin abstracta de los niveles de conocimiento e implementacin


Soporte para todas las plantillas de patrones existentes Descripcin de patrones y conceptos de soporte

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

21

Estado del arte

E s t a d o d e l A r t e

Problemas Recurrentes - Descripcin


Descripcin
Catalogacin Visualizacin

1.
2. 3.

Gran esfuerzo de produccin para obtener resultados


Mantenimiento complejo y laborioso Relaciones semnticas complejas ad-hoc en forma emergente Abstraccin de tecnologas y modelos Modelos rgidos de navegacin Contenedores pasivos de informacin No son generadores de conocimiento

4. 5. 6. 7.

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

22

Estado del arte

E s t a d o d e l A r t e

Problemas Recurrentes - Descripcin


Descripcin
Catalogacin Visualizacin

Catlogos pblicos en la Web


1. Imponen modelos rgidos de visualizacin en

funcin de los intereses del publicador

2. Capacidades de bsqueda muy bsicas 3. Generalmente slo muestran patrones, dejando de

lado a los conceptos de soporte

4. Relaciones sintcticas

Herramientas de Modelado
1. No incluyen el nivel de conocimiento en forma

adecuada

1. No describen el comportamiento a un nivel de

abstraccin adecuado

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

23

Estado del arte

E s t a d o d e l A r t e

Problemas Recurrentes - Conclusin


Podemos afirmar que no existe un meta-modelo que sirva de gua para la descripcin de patrones y conceptos de soporte a un alto nivel de abstraccin, la gestin y comparticin de estas descripciones y cmo presentarlas a los usuarios finales a travs de la Web o de interfaces de servicios dbilmente acopladas

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

24

ndice
Introduccin Estado del arte Desarrollo de la investigacin Prototipos desarrollados Conclusiones

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

25

Desarrollo de la investigacin

Desarrollo de la Investigacin
D e s a r r o l l o
Definiendo el concepto patrn Derivacin de la Solucin Estrategia de Solucin Solucin Desarrollada Modificacin del Ciclo de Vida de los Patrones

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

26

Desarrollo de la investigacin

Significado del Trmino Patrn


D e s a r r o l l o
una pieza de conocimiento que incluye informacin sobre un problema y su solucin en un contexto, con sus ventajas e inconvenientes y toda la informacin necesaria para poder tener un buen entendimiento de los aspectos relacionados con l. Eventualmente puede contener informacin especfica sobre su comportamiento, la cual permite generar artefactos de software
Fragmento de Welicki et al: A Model for Meta-Specification and Cataloging of Software Patterns. Proceedings of the 12th Pattern Languages of Programming Conference (PLoP 2005), Monticello, Illinois, USA, 2005.

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

27

Desarrollo de la investigacin

Qu Hace Falta para Describir Correctamente a los Patrones?

D e s a r r o l l o

Es necesario crear un lenguaje que permita definir a los patrones en forma estndar y uniforme, a un alto nivel de abstraccin

El lenguaje debe proveer las construcciones sintcticas y semnticas adecuadas para representar los niveles de conocimiento e implementacin en forma homognea

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

28

Desarrollo de la investigacin

Cmo Describir un Patrn?


D e s a r r o l l o
Proponemos describir a los patrones en 2 niveles
Nivel de Conocimiento
Informacin literaria y

metadatos (bsquedas, relaciones, anotaciones, etc.)


Nivel de Implementacin
Informacin sobre el

comportamiento y estructura del patrn Es opcional

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

29

Desarrollo de la investigacin

Es Suficiente Describir Patrones para Transmitir Conocimiento?

D e s a r r o l l o

No, no es suficiente.
Es deseable poder describir otros tipos de entidades

que puedan aumentar la informacin que tenemos sobre el patrn y contribuir a una mejor comprensin de la idea que el patrn intenta transmitir

De esta forma podemos conocer la informacin esencial del patrn, sus orgenes, sobre qu principios de diseo se funda, cmo llegar a l, qu tipo de patrn es, etc.

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

30

Desarrollo de la investigacin

Dominio de Definicin de Patrones


D e s a r r o l l o
Los patrones no existen aislados de un contexto De la misma forma en que una implementacin no es suficiente para transmitir un patrn, un patrn puede no ser suficiente para transmitir el conocimiento que intenta expresar Para subsanar esta situacin hemos definido una ontologa sencilla para formalizar el dominio de la definicin de patrones Existen otras ontologas aplicables a patrones y otras reas de la ingeniera del software Lo que diferencia a la nuestra es que se construye ad hoc en forma emergente

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

31

Desarrollo de la investigacin

Dominio de Definicin de Patrones


D e s a r r o l l o
Published In
Written By

PatternLanguage

Source
Contained In

Author

Contained In

Published In

Written By

Contained In

Category

Pattern

Presented At

Event

Is A

Refactored By Conforms

PatternType

Targeted To

Refactoring
Represented At

OOPrinciple Role
AbstractionLevel

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

32

Desarrollo de la investigacin

El enfoque de Descripcin Propuesto slo es Aplicable a los Patrones?

D e s a r r o l l o

No, el enfoque propuesto puede ser aplicado a cualquier tipo de concepto


Ejemplos de tipos de conceptos
Lenguajes de Patrones Principios de Orientacin a Objetos

Niveles de Abstraccin
Categoras Libros Eventos Etc.

En adelante utilizaremos el trmino entidad para referirnos a los patrones y a los conceptos de soporte
Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

33

Desarrollo de la investigacin

Describir Correctamente las Entidades es Suficiente para Compartir Conocimiento?

D e s a r r o l l o

No, la mera descripcin de las entidades no garantiza que el conocimiento pueda ser compartido en forma eficiente, aunque es un gran paso hacia su descripcin y formalizacin
Es necesario articular el conocimiento expresado con

el lenguaje de meta-especificacin para que ste pueda ser utilizado por otros

Es necesaria la creacin de un catlogo de entidades descritas con el lenguaje de meta-especificacin

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

34

Desarrollo de la investigacin

Un Conjunto de Definiciones Forma un Catlogo?

D e s a r r o l l o

No, un catlogo es un elemento ms complejo que un conjunto de definiciones almacenadas en forma persistente
Debe proveer la infraestructura necesaria para aadir,

eliminar, modificar, vincular y recuperar entidades


Debe soportar la edicin iterativa e incremental y tener la

capacidad de trabajar con informacin incompleta


Debe proveer tambin un motor de bsquedas que permita

encontrar los elementos alojados en el catlogo

No debe limitarse a ser un repositorio pasivo, proveyendo los mecanismos necesarios para gestionar y exponer sus contenidos
Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

35

Desarrollo de la investigacin

Es Suficiente el Catlogo para Exponer sus Contenidos?

D e s a r r o l l o

No, no es suficiente
El catlogo expone entidades como lenguajes formales El catlogo no tiene estrategias de presentacin

Para que el modelo de comparticin de conocimiento sea

completo, es necesario crear una herramienta de visualizacin

Esta herramienta es el visor del catlogo, al que llamamos PatternsBrowser

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

36

Desarrollo de la investigacin

Estrategia General de Solucin


D e s a r r o l l o
1. Crear un lenguaje de meta-especificacin para representar a las entidades a un alto nivel de abstraccin incluyendo los niveles de conocimiento e implementacin 2. Crear una infraestructura de catalogacin de entidades descriptos con el lenguaje creado en el paso anterior 3. Crear una herramienta de visualizacin que permita navegar por el catlogo mencionado en el punto anterior

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

37

Desarrollo de la investigacin

Solucin Desarrollada
D e s a r r o l l o
EML (Entity Metaspecification Languaje) Catlogo de Patrones
Componente Pasivo Componente Activo

Visor del Catalogo

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

38

Desarrollo de la investigacin

EML: El Lenguaje de Meta-Especificacin


D e s a r r o l l o
EML es el acrnimo de Entity Meta-specification Languaje Modularly composable DSL basado en XML, creado con el objeto de describir todo tipo de entidades
Provee la infraestructura necesaria para describir

los niveles de descripcin e implementacin


Capacidades relacionales y de anotacin

EML se compone de 5 DSLs ms pequeos

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

39

Desarrollo de la investigacin

EML DSLs
D e s a r r o l l o EML (Entity Meta-Specification Language)
EML-RDL (Relationship Description Language) Relaciones EML-AL (Annotation Language) Anotaciones EML-PDL (Properties Description Language) Propiedades

EML-SDL (Structure Definition Language) Estructura


EML-BDL (Behavior Description Language) Comportamiento

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

40

Desarrollo de la investigacin

Catlogo de Patrones y Conceptos


D e s a r r o l l o
El catlogo de patrones es el elemento ms complejo de la solucin No se limita a un contenedor pasivo de informacin Sus componentes se dividen en dos grupos
Pasivos: conjunto de

elementos persistentes

Activos: infraestructura

que permite manipular, exponer y compartir los contenidos del catlogo


FREP es el ncleo

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

41

Desarrollo de la investigacin

FREP
D e s a r r o l l o
FREP es el acrnimo de Flexible Runtime Execution Platform

Plataforma de ejecucin de entidades del catlogo


Contenedor de entidades EML en tiempo de ejecucin (AOM) Analizador de EML (AOM Builder)

Combina DSLs y AOMs para crear una solucin flexible, extensible y gil

Expresividad de los DSLs para describir a las entidades Flexibilidad, agilidad y potencia de AOM para ofrecer una plataforma de ejecucin para las entidades

FREP soporta a todas las plantillas existentes para describir patrones y permitir crear nuevas dinmicamente manteniendo una estructura formal

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

42

Desarrollo de la investigacin

PatternsBrowser Visor del Catlogo


D e s a r r o l l o
El visor del catlogo (PatternsBrowser) es una aplicacin Web que permite navegar por los contenidos del catlogo Permite interactuar con los elementos del catlogo en forma sencilla, siguiendo estndares de usabilidad e interaccin

Caractersticas
Vistas dinmicas vinculables Navegacin por el Catlogo Escritura n-Dimensional

Interface Web
Buscador Soporte para comunidad/colaboracin

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

43

Desarrollo de la investigacin

Consecuencia: Modificacin del Ciclo de Vida de los Patrones


Welicki et al 2006: Meta-Specification and

D e s a r r o l l o

Cataloging of Software Patterns: Towards Knowledge Management in Software Engineering.


Companion of the 31st ACM SIGPLAN Object Oriented Programming, Systems and Applications Conference (OOPSLA 2006), Portland, Oregon, USA, 2006.

El nuevo ciclo es ms dinmico e interactivo, favoreciendo la evolucin y refinamiento constante de los patrones

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

44

ndice
Introduccin Estado del arte Desarrollo de la investigacin Prototipo desarrollado Conclusiones

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

45

Prototipos

Introduccin
P r o t o t i p o s
Se ha desarrollado un prototipo a efectos de validar el modelo propuesto en forma emprica y pragmtica
Implementacin de referencia del modelo

Especificacin del Lenguaje de Descripcin (EML 1.0) Catlogo (Pasivo) Catlogo (Activo)

Visor del Catlogo

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

46

Prototipos

Arquitectura (Alto Nivel)


P r o t o t i p o s

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

47

Prototipos

Componente Pasivo Repositorio de Entidades

P r o t o t i p o s

Parte principal del componente pasivo del catlogo Contiene a todas las entidades Se compone de una base de datos relacional y de un sistema de ficheros El registro se manipula a travs del componente activo del catlogo

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

48

Prototipos

FREP Representacin de Entidades


P r o t o t i p o s
La representacin de entidades en tiempo de ejecucin es parte de FREP
AOM extendido para representacin de entidades en

tiempo de ejecucin
Nivel de visualizacin Inyeccin dinmica de propiedades Construccin dinmica de instancias (utilizando metadatos)

Diseo con alta densidad de patrones (pattern dense)


Type Object, Property, Type Square, Accountability,

Composite, Smart Property, Dependency Injection, Rule Object, Strategy, MVC


Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

49

Prototipos

FREP Representacin de Entidades


Visualization

P r o t o t i p o s

PropertyRenderer

View

Rules / Strategies
RuleObject

Knowledge
PropertyType EntityType

AccountabilityType
CodeGenerationRule

Operational
Property Entity Accountability CSharpCodeGen JavaCodeGen VBNetCodeGen

Behavior Description
CompositeProperty Pattern Structure Participant CodeProperty StringProperty CodeModule ImageProperty Method

ConsequenceProperty

Parameters

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

50

Prototipos

FREP Analizador de Entidades


P r o t o t i p o s

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

51

Prototipos

FREP Analizador de Entidades


P r o t o t i p o s
FREP.parse.config.xml
IEntityParser

ParsePipelineFactory

<< Creates >>

EntityParser

ParsePipeline

0..n

steps

IParseStep

TagsParseStep

ContextParseStep

PropertiesParseStep

ImplParseStep

RelationshipParseStep

DumpImplParseStep

ChecksumParseStep

BasicDataParseStep

BaseImplParseStep

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

52

Prototipos

Iteradores Virtuales
P r o t o t i p o s
virtualIterators.config.xml
VirtualIteratorBuilder

children VirtualIterator 0..n EntityReference

children 0..n

Extensin al patrn Iterator Recorrer el catlogo a partir de reglas codificadas en metadatos DSL para especificar reglas de recorrido

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

53

Prototipos

Navegacin con Iteradores Virtuales


P r o t o t i p o s

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

54

Prototipos

La Interfaz de Usuario Web


P r o t o t i p o s

rea de Navegacin

Vistas Disponibles

Nombre y Resumen de la Entidad

Inicio de Sesin

Selector de Iterador Virtual

Visualizacin de la Vista

Bsqueda Rpida

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

55

Prototipos

Motor de Vistas
P r o t o t i p o s
ViewGroupFactory

El motor de vistas dinmicas permite vincular vistas dinmicamente a las entidades en tiempo de ejecucin Dada una entidad al aplicarle una vista se obtiene el cdigo de presentacin para mostrarla al usuario Cada vista se focaliza en un aspecto concreto de la entidad y es posible tener tantas vistas como aspectos relevantes tengamos en consideracin

<< Creates >> views ViewGroup 1..n << Creates instances of >> ViewProxy

TemplateViewConfig

IView

DefaultEntityView

CRCView

SourceCodeView

TemplateView

AuthorView

ListView

CategoryView

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

56

Prototipos

Motor de Vistas Patrones


P r o t o t i p o s

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

57

Prototipos

Motor de Vistas Entidades


P r o t o t i p o s

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

58

Prototipos

Navegacin por Descubrimiento


P r o t o t i p o s
Para cada entidad se muestran enlaces a todas las entidades relacionadas, lo cual permite este tipo de navegacin

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

59

ndice
Introduccin Estado del arte Desarrollo de la investigacin Prototipos desarrollados Conclusiones

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

60

Conclusiones

Evaluacin de los Objetivos


C o n c l u s i o n e s
Al comienzo de esta tesis, se definieron tres objetivos principales:
1. Crear un lenguaje de meta-especificacin que permita

describir entidades a un alto nivel de abstraccin


2. Construir una infraestructura de catalogacin

3. Exponer toda esta informacin haciendo este

conocimiento accesible para el pblico general, con independencia del fin para el que quiera utilizarlo Estos objetivos se han visto realizados por la consecucin de sus objetivos parciales

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

61

Conclusiones

Evaluacin de los Objetivos


C o n c l u s i o n e s
1. Crear un lenguaje de representacin de patrones EML es un lenguaje de meta-especificacin que permite representar entidades a un alto nivel de abstraccin
EML puede describir cualquier concepto, soportando la creacin de nuevos tipos

2.

Dotar al lenguaje de expresividad para describir conceptos

3.

Dotar al lenguaje de capacidades relacionales

EML contiene un DSL orientado a la descripcin de relaciones entre entidades (EML-RDL) EML contiene un DSL orientado a la anotacin de relaciones entre entidades (EML-AL)

4.

Dotar al lenguaje de capacidades de anotacin

5.

Construir un catlogo de patrones

El componente pasivo del catlogo contiene meta-especificaciones de entidades escritas con EML

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

62

Conclusiones

Evaluacin de los Objetivos


C o n c l u s i o n e s
6. Crear la infraestructura de catalogacin El componente activo del catlogo contiene los mecanismos para gestionar los contenidos del catlogo
PatternsBrowser permite navegar por los contenidos del catlogo

7.

Crear una herramienta de visualizacin del catlogo

8.

Establecer un mecanismo de visualizacin de patrones y conceptos

El motor de vistas dinmico permite registrar vistas y asociarlas a entidades en tiempo de diseo o ejecucin
El modelo contiene funcionalidades para facilitar el trabajo colaborativo El catlogo no es un repositorio pasivo de informacin: adems de proveer la infraestructura necesaria para incluir y gestionar entidades puede exponerlas en varias formas

9.

Habilitar el trabajo colaborativo para evolucionar a los patrones

10. Convertir al catlogo en un proveedor de servicios de informacin

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

63

Conclusiones

Reflexin y Sntesis del Modelo


C o n c l u s i o n e s
El uso conjunto de DSLs y AOMs han permitido la creacin de una plataforma gil, flexible y extensible que resuelve los problemas recurrentes encontrados en otros enfoques existentes La aplicacin del pensamiento emergente ha permitido sentar las bases de un modelo de gestin del conocimiento basado en la retroalimentacin positiva que crece a partir de las interacciones entre los usuarios La aplicacin del modelo propuesto produce un cambio significativo en el ciclo de los patrones, hacindolo ms dinmico e interactivo, sentando las bases para la generacin de conocimiento a partir de interacciones entre los miembros de una comunidad
Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

64

Conclusiones

Reflexin y Sntesis del Modelo

C o n c l u s i o n e s
Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Fragmento del trabajo presentado en OOPSLA 2006 (Portland, Oregon, USA, Octubre 2006)

Madrid, Junio de 2007

65

Conclusiones

Aportaciones Originales Principales


C o n c l u s i o n e s
Un lenguaje de meta-especificacin para describir entidades a un alto nivel de abstraccin Un modelo de catalogacin de entidades para establecer una base de conocimiento prctico Una herramienta de visualizacin que resuelve los problemas recurrentes en las soluciones parciales existentes Combinacin de DSLs y AOMs para resolver el problema de la metaespecificacin y catalogacin de patrones de software Ciclo de vida de los patrones ms dinmico e interactivo, estableciendo las bases para la evolucin continua y generacin de conocimiento Iteradores Virtuales Inclusin de un nivel de visualizacin en la arquitectura de AOM
Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos Madrid, Junio de 2007 66

Conclusiones

Trabajos Derivados de la Investigacin


C o n c l u s i o n e s
1. Patterns Meta-Specification and Cataloging: Towards a More Dynamic Life Cycle Leon Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes Aguilar First IEEE International Workshop on Software Patterns: Addressing Challenges (SPAC 2007) 31st IEEE COMPSAC (COMPSAC 2007), Pekin, China, 23 al 27 de Julio de 2007 Meta-Specification and Cataloging of Software Patterns: Towards Knowledge Management in Software Engineering Len Welicki, Luis Joyanes Aguilar, Juan Manuel Cueva Lovelle 21st ACM SIGPLAN Object Oriented Systems, Languages, and Applications Conference (OOPSLA 2006) ; Portland, Oregon, Estados Unidos, 22 al 26 de Octubre de 2006 Meta-Specification and Cataloging of Software Patterns with Domain Specific Languages and Adaptive Object Models. Len Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes Aguilar 11th European Conference on Pattern Languages of Programming Conference (EuroPLoP 2006); Irsee, Alemania, 5 al 9 de Julio de 2006 A Model for Meta-Specification and Cataloging of Software Patterns Len Welicki, Oscar Sanjun, Juan Manuel Cueva Lovelle 12th Pattern Languages of Programming Conference (PLoP 2005); Monticello, Illionois, Estados Unidos, 6 al 10 de Septiembre de 2005 Patrones y Antipatrones: una Introduccin (Parte I) Len Welicki Revista MTJ .Net (Microsoft Developers Network - MSDN), Junio de 2005

2.

3.

4.

5.

6.

The Configuration Data Caching Pattern Len Welicki 13th Pattern Languages of Programs Conference (PLoP 2006); Portland, Oregon, Estados Unidos, 21 al 23 de Octubre de 2006
Patterns for Factoring Responsibilities when Working with Objects and Relational Databases Len Welicki 12th European Conference on Pattern Languages of Programming Conference (EuroPLoP 2007); Irsee, Alemania, 4 al 8 de Julio de 2007

7.

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

67

Conclusiones

Trabajos Derivados de la Investigacin


C o n c l u s i o n e s
8. Improving Performance and Server Resource Usage with Page Fragment Caching in Distributed Web Servers Leon Welicki, Oscar Sanjuan Martinez International Workshop on Scalable Data Management Applications and Systems (SDMAS 07) - WORLDCOMP 2007, Las Vegas, Nevada, USA, 25 al 28 de Junio de 2007. Patrones y Antipatrones: una Introduccin (Parte II) Len Welicki Revista MTJ .Net (Microsoft Developers Network - MSDN), Julio de 2005 Patrones de Fabricacin: Fbricas de Objetos Len Welicki Revista MTJ .Net (Microsoft Developers Network - MSDN), Octubre de 2005 El Patrn Singleton. Len Welicki Revista MTJ .Net (Microsoft Developer Network - MSDN), Marzo de 2006 Una Propuesta de Aplicacin del Paradigma Emergente para un Modelo de Agregacin Dinmica de Servicios Basado en SOA Len Welicki, Juan Manuel Cueva Lovelle I Jornadas Cientfico-Tcnicas en Servicios Web del W3C (JSWEB 2005); Granada, Espaa, 13 y 14 de Septiembre de 2005. La Falacia Operacional y los Sistemas Emergentes Len E. Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes Aguilar IV Simposio Internacional de Sistemas de Informacin e Ingeniera de Software en la Sociedad del Conocimiento (SISOFTW 2006) ; Cartagena, Colombia, 23 al 26 de Agosto de 2006. Una Plataforma Basada en Sistemas Multiagentes y Servicios Web para Monitorizacin de Aplicaciones en Entornos Heterogneos Len Welicki, Juan Manuel Cueva Lovelle II Taller en Desarrollo de Sistemas Multiagente (DESMA 2005); Granada, Espaa, 13 de Septiembre de 2005.

9.

10.

11.

12.

13.

14.

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

68

Conclusiones

Trabajos Derivados de la Investigacin


C o n c l u s i o n e s
15. Modificacin de la Intencin Semntica de Relatos Utilizando Ontologas y Tcnicas Evolutivas Jess Soto, Len E. Welicki III Congreso Espaol de Metaheursticas, Algoritmos Evolutivos y Bioinspirados (MAEB 2005) . Granada, 14 al 14 de Septiembre de 2005. Hacia la Convergencia entre la Organizacin Formal y Real en Equipos de Software a Travs de un Modelo de Desarrollo Len E. Welicki, Juan Manuel Cueva Lovelle III Simposio Internacional de Sistemas de Informacin e Ingeniera de Software en la Sociedad del Conocimiento (SISOFTW 2005) ; Santo Domingo, Repblica Dominicana, 24 al 26 de Agosto de 2005. XText: Un Modelo para Publicacin de Textos en Mltiples Dispositivos Len Welicki I Jornadas de Postgrado de Investigacin en Ingeniera Informtica (JPIII 2004). Salamanca, Espaa, 7 al 8 de Mayo de 2004. Perception of Software Problems on the Internet World Jorge A. Salido, Len E. Welicki III Simposio Internacional de Sistemas de Informacin e Ingeniera de Software en la Sociedad del Conocimiento (SISOFTW 2005) . Santo Domingo, Repblica Dominicana, 24 al 26 de Agosto de 2005. Las Personas en las Metodologas de Ingeniera del Software Len Welicki, Fernando Cano Garca V Jornadas de Informtica y Sociedad (JIS 2004). Bilbao, Espaa, 25 al 26 de Marzo de 2004. Universidad de Deusto. El Precio de las Palabras en la Sociedad de la Informacin. Len Welicki, Sergio Berman V Jornadas de Informtica y Sociedad (JIS 2004). Bilbao, Espaa, 25 al 26 de Marzo de 2004, Universidad de Deusto. Modificacin de la Semntica de Textos Mediante Algoritmos Genticos. Len Welicki III Congreso Espaol de Metaheursticas, Algoritmos Evolutivos y Bioinspirados (MAEB 2004) . Crdoba, Espaa, 3 al 5 de Febrero de 2004.

16.

17.

18.

19.

20.

21.

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

69

Conclusiones

Trabajos Derivados de la Investigacin


C o n c l u s i o n e s
22. Desarrollo Multilenguaje con Patrones de Diseo en .NET Len Welicki, Fernando Cano Garca II Simposio Internacional de Sistemas de Informacin e Ingeniera de Software en la Sociedad del Conocimiento (SISOFTW 2003) . Lima, Per, 20 al 23 de Agosto de 2003) Implementando Extreme Programming en la Plataforma .NET Len Welicki II Simposio Internacional de Sistemas de Informacin e Ingeniera de Software en la Sociedad del Conocimiento (SISOFTW 2003) . Lima, Per, 20 al 23 de Agosto de 2003) La Gestin del Conocimiento en las Empresas de Consultora Informtica Len Welicki II Congreso Internacional de la Sociedad de la Informacin y el Conocimiento - CISIC 2003 (Madrid, Espaa, 7 al 9 de Mayo de 2003) Un modelo de comparticin de conocimiento en red para integrar comunidades del tercer mundo Len Welicki II Congreso Internacional de la Sociedad de la Informacin y el Conocimiento - CISIC 2003 (Madrid, Espaa, 7 al 9 de Mayo de 2003)

23.

24.

25.

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

70

Conclusiones

Trabajos en Curso
C o n c l u s i o n e s
A Pattern Language for Adaptive Object Models: Part I Rendering Patterns Len Welicki, Joseph W. Yoder, Rebecca Wirfs-Brock
Enviado al PLoP 2007 (14th Conference on Pattern Languages of Programs), pendiente de aceptacin

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

71

Conclusiones

Futuras Lneas de Investigacin


C o n c l u s i o n e s
Dotar al prototipo de calidades industriales Editor de EML (Colaborativo) Combinar EML-PDL con Wiki Combinar EML-RDL con RDF Estudiar integracin con CoPE, PPR y WOP Estudiar integracin con herramientas de desarrollo

Len Welicki Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos

Madrid, Junio de 2007

72

UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE MADRID FACULTAD DE INFORMTICA

Meta-Especificacin y Catalogacin de Patrones de Software con Lenguajes de Dominio Especfico y Modelos de Objetos Adaptativos: Una Va para la Gestin del Conocimiento en la Ingeniera del Software
Len Welicki

lwelicki@acm.org