Title: Tesis Doctoral Leon Welicki
1UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE
MADRIDFACULTAD DE INFORMÁTICA
Meta-Especificación y Catalogación de Patrones de
Software con Lenguajes de Dominio Específico y
Modelos de Objetos Adaptativos Una Vía para la
Gestión del Conocimiento en la Ingeniería del
Software
León Welicki lwelicki_at_acm.org
2Índice
- Introducción
- Estado del arte
- Desarrollo de la investigación
- Prototipos desarrollados
- Conclusiones
2
3Contexto
Introducción
Introducción
- El software es el gran protagonista de los
últimos (y próximos) lustros, estando presente en
gran parte de los aspectos de la vida cotidiana - Nuestra civilización corre sobre software
- Las ideas y los descubrimientos tecnológicos son
los conductores del crecimiento económico - Sin embargo, la construcción de software es una
disciplina moderna que está en constante
evolución, en búsqueda de un estado de madurez
que sea comprehensivo respecto a su amplio
espectro de aplicación - La reutilización promete ser una de las vías
hacia ese anhelado estado, a través de una
correcta gestión de las experiencias y
conocimiento de ingenieros expertos
3
4Sobre esta Tesis
Introducción
Introducción
- En la presente tesis se traza y explora el
dominio de la meta-especificación y catalogación
de patrones como respuesta al problema de
describir, catalogar y compartir conocimiento de
ingeniería del software - La investigación realizada se inscribe en un
marco interdisciplinario - Ingeniería del Software
- Gestión del Conocimiento
- Ingeniería Web
- Ciencias de la Computación
4
5Soporte de la Hipótesis
Introducción
Introducción
- La construcción de software es una disciplina
compleja, con un extraño balance entre arte y
ciencia donde la experiencia tiene un rol
determinante - Los patrones son el medio idóneo para compartir
experiencia - Compartir patrones es compartir conocimiento
- La falta de un modelo para describir, clasificar
y compartir patrones dificulta la transmisión del
conocimiento que el patrón intenta expresar
5
6Hipótesis
Introducción
Introducción
Es posible codificar en forma abstracta a los
patrones y a sus conceptos de soporte a un alto
nivel de abstracción en forma flexible y
extensible abarcando todos los modelos
de descripción posibles, catalogarlos y
compartirlos con la comunidad para gestionar y
transmitir adecuadamente el conocimiento que
intentan expresar
6
7Objetivos Principales
Introducción
Introducción
- Crear un lenguaje de meta-especificación que
permita describir a los patrones a un alto nivel
de abstracción - Utilizar este lenguaje para construir un catálogo
que incluya también todos los conceptos
necesarios para poder realmente entender al
patrón - Exponer toda esta información haciendo este
conocimiento accesible para el público general,
con independencia del fin para el que quiera
utilizarlo
7
8Objetivos Parciales
Introducción
Introducción
- Crear un lenguaje de representación de patrones
- Dotar al lenguaje de expresividad para describir
conceptos - Dotar al lenguaje de capacidades relacionales
- Dotar al lenguaje de capacidades de anotación
- Construir un catálogo de patrones
- Crear la infraestructura de catalogación
- Crear una herramienta de visualización del
catálogo - Establecer un mecanismo de visualización de
entidades - Habilitar el trabajo colaborativo para
evolucionar a los patrones - Convertir al catálogo en un proveedor de
servicios de información
8
9Metodología de la Investigación
Introducción
Introducción
- Metodología iterativa e incremental
- En cada iteración
- Se establecía un modelo teórico
- Se creaban prototipos
- Se publicaban los resultados parciales
- Se discutía y contrastaban con la comunidad
científica internacional - El feedback obtenido servía como realimentación
del proceso y se utilizaba en la siguiente
iteración - Varios hitos de verificación
- COMPSAC 2007, OOPSLA 2006, PLoP 2006, EuroPLoP
2006, PLoP 2005, W3C JSWEB 2005, etc.
9
10Índice
- Introducción
- Estado del arte
- Desarrollo de la investigación
- Prototipos desarrollados
- Conclusiones
10
11Estado del Arte
Estado del arte
- Herramientas Conceptuales
- Patrones
- El nivel Meta
- Lenguajes de Dominio Específico
- Modelos de Objetos Adaptativos
- Sistemas Emergentes
- Soluciones Parciales Existentes
- Problemas Recurrentes
- Conclusión de los Problemas Recurrentes
11
12Patrones
Estado del arte
- Un patrón es una solución a un problema en un
contexto - Cada patrón describe un problema que ocurre una
y otra vez en nuestro entorno, para describir
después el núcleo de la solución a ese problema,
de tal manera que esa solución pueda ser usada
más de un millón 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
12
13Patrones y Gestión del Conocimiento
Estado del arte
- Son un gran mecanismo de comunicación para
transmitir experiencias - Permiten establecer un vocabulario común de
diseño, cambiando el nivel de abstracción a
colaboraciones entre entidades y permitiendo
comunicar conocimiento sobre problemas y
soluciones en un contexto - Ocupan un sitio de privilegio en el modelo de
generación de conocimiento propuesto por Nonaka y
Takeuchi
13
14El Nivel Meta
Estado del arte
- El prefijo Meta viene del campo de la filosofía e
indica un nivel de descripción más elevado. - Se refiere a trascender o ir más allá de
- Cuando los informáticos resuelven un problema
tienden a ir al nivel meta - Generalmente, esto significa resolver el problema
en forma más general, a un mayor nivel de
abstracción - Mas flexiblidad y adaptabilidad a expensas de
mayor complejidad y menor rendimiento - El paso a un nivel meta debe ser correctamente
analizado
14
15Lenguajes de Dominio Específico
Estado del arte
- Un lenguaje de dominio específico (DSL) es un
lenguaje especializado para un problema
particular - Es diferente de un lenguaje de propósito general
(GPL) que es creado para resolver cualquier clase
de problema - Son lenguajes limitados, diseñados para resolver
una clase específica de problemas - Cambian expresividad por generalidad en un
dominio concreto - Pueden ser textuales o gráficos
15
16Modelos de Objetos Adaptativos
Estado del arte
- 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 descripción de la variación en una
base de datos para hacer que sea fácil 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 código son datos, los datos son códigoTodo
es código, todo son datos
16
17Sistemas Emergentes
Estado del arte
- Emergencia es lo que ocurre cuando un sistema de
elementos relativamente simples se organiza
espontáneamente y sin leyes explícitas 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
características - No hay un control jerárquico de arriba hacia
abajo que diga al sistema que es lo que debe
hacer - Cada una de las entidades involucradas es en sí
bastante tonta. Sigue unas pocas reglas sencillas
y locales que sólo ella conoce - La interacción de reglas locales simples y azar
producen un diseño emergente global que no es
inherente a las partes
17
18Soluciones Parciales Existentes
Estado del arte
- Descripción y Catalogación
- Soporte en Herramientas de Modelado
- Catálogos Públicos
18
19Soluciones Parciales Existentes
Estado del arte
- Descripción y Catalogación
- Wiki
- HTML
- PLML / PLMLx
- XMI
- ODOL (Proyecto WoP)
- Lattice Based Classification
- Soporte en Herramientas de Modelado
- Borland Togheter
- Rational XDE
- Sparx Systems Enterprise Architect
- Catálogos Públicos
19
20Algunos Catálogos Públicos
Estado del arte
- 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
20
21Problemas Recurrentes - Descripción
Estado del arte
- Descripción abstracta de los niveles de
conocimiento e implementación - Soporte para todas las plantillas de patrones
existentes - Descripción de patrones y conceptos de soporte
- Descripción
- Catalogación
- Visualización
21
22Problemas Recurrentes - Descripción
Estado del arte
- Gran esfuerzo de producción para obtener
resultados - Mantenimiento complejo y laborioso
- Relaciones semánticas complejas ad-hoc en forma
emergente - Abstracción de tecnologías y modelos
- Modelos rígidos de navegación
- Contenedores pasivos de información
- No son generadores de conocimiento
- Descripción
- Catalogación
- Visualización
22
23Problemas Recurrentes - Descripción
Estado del arte
- Catálogos públicos en la Web
- Imponen modelos rígidos de visualización en
función de los intereses del publicador - Capacidades de búsqueda muy básicas
- Generalmente sólo muestran patrones, dejando de
lado a los conceptos de soporte - Relaciones sintácticas
- Herramientas de Modelado
- No incluyen el nivel de conocimiento en forma
adecuada - No describen el comportamiento a un nivel de
abstracción adecuado
- Descripción
- Catalogación
- Visualización
23
24Problemas Recurrentes - Conclusión
Estado del arte
Podemos afirmar que no existe un meta-modelo que
sirva de guía para la descripción de patrones y
conceptos de soporte a un alto nivel de
abstracción, la gestión y compartición de estas
descripciones y cómo presentarlas a los usuarios
finales a través de la Web o de interfaces de
servicios débilmente acopladas
24
25Índice
- Introducción
- Estado del arte
- Desarrollo de la investigación
- Prototipos desarrollados
- Conclusiones
25
26Desarrollo de la Investigación
Desarrollo de la investigación
- Definiendo el concepto patrón
- Derivación de la Solución
- Estrategia de Solución
- Solución Desarrollada
- Modificación del Ciclo de Vida de los Patrones
26
27Significado del Término Patrón
Desarrollo de la investigación
- una pieza de conocimiento que incluye
información sobre un problema y su solución en un
contexto, con sus ventajas e inconvenientes y
toda la información necesaria para poder tener un
buen entendimiento de los aspectos relacionados
con él. Eventualmente puede contener información
específica 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.
27
28Qué Hace Falta para Describir Correctamente a
los Patrones?
Desarrollo de la investigación
- Es necesario crear un lenguaje que permita
definir a los patrones en forma estándar y
uniforme, a un alto nivel de abstracción - El lenguaje debe proveer las construcciones
sintácticas y semánticas adecuadas para
representar los niveles de conocimiento e
implementación en forma homogénea
28
29 Cómo Describir un Patrón?
Desarrollo de la investigación
- Proponemos describir a los patrones en 2 niveles
- Nivel de Conocimiento
- Información literaria y metadatos (búsquedas,
relaciones, anotaciones, etc.) - Nivel de Implementación
- Información sobre el comportamiento y estructura
del patrón - Es opcional
29
30Es Suficiente Describir Patrones para Transmitir
Conocimiento?
Desarrollo de la investigación
- No, no es suficiente.
- Es deseable poder describir otros tipos de
entidades que puedan aumentar la información que
tenemos sobre el patrón y contribuir a una mejor
comprensión de la idea que el patrón intenta
transmitir - De esta forma podemos conocer la información
esencial del patrón, sus orígenes, sobre qué
principios de diseño se funda, cómo llegar a él,
qué tipo de patrón es, etc.
30
31Dominio de Definición de Patrones
Desarrollo de la investigación
- Los patrones no existen aislados de un contexto
- De la misma forma en que una implementación no es
suficiente para transmitir un patrón, un patrón
puede no ser suficiente para transmitir el
conocimiento que intenta expresar - Para subsanar esta situación hemos definido una
ontología sencilla para formalizar el dominio de
la definición de patrones - Existen otras ontologías aplicables a patrones y
otras áreas de la ingeniería del software - Lo que diferencia a la nuestra es que se
construye ad hoc en forma emergente
31
32Dominio de Definición de Patrones
Desarrollo de la investigación
Written By
Published In
Contained In
Contained In
Written By
Published In
Contained In
Presented At
Is A
Refactored By
Conforms
Targeted To
Represented At
32
33El enfoque de Descripción Propuesto sólo es
Aplicable a los Patrones?
Desarrollo de la investigación
- No, el enfoque propuesto puede ser aplicado a
cualquier tipo de concepto - Ejemplos de tipos de conceptos
- Lenguajes de Patrones
- Principios de Orientación a Objetos
- Niveles de Abstracción
- Categorías
- Libros
- Eventos
- Etc.
- En adelante utilizaremos el término entidad
para referirnos a los patrones y a los conceptos
de soporte
33
34Describir Correctamente las Entidades es
Suficiente para Compartir Conocimiento?
Desarrollo de la investigación
- No, la mera descripción de las entidades no
garantiza que el conocimiento pueda ser
compartido en forma eficiente, aunque es un gran
paso hacia su descripción y formalización - Es necesario articular el conocimiento expresado
con el lenguaje de meta-especificación para que
éste pueda ser utilizado por otros - Es necesaria la creación de un catálogo de
entidades descritas con el lenguaje de
meta-especificación
34
35Un Conjunto de Definiciones Forma un Catálogo?
Desarrollo de la investigación
- No, un catálogo es un elemento más complejo que
un conjunto de definiciones almacenadas en forma
persistente - Debe proveer la infraestructura necesaria para
añadir, eliminar, modificar, vincular y recuperar
entidades - Debe soportar la edición iterativa e incremental
y tener la capacidad de trabajar con información
incompleta - Debe proveer también un motor de búsquedas que
permita encontrar los elementos alojados en el
catálogo - No debe limitarse a ser un repositorio pasivo,
proveyendo los mecanismos necesarios para
gestionar y exponer sus contenidos
35
36Es Suficiente el Catálogo para Exponer sus
Contenidos?
Desarrollo de la investigación
- No, no es suficiente
- El catálogo expone entidades como lenguajes
formales - El catálogo no tiene estrategias de presentación
- Para que el modelo de compartición de
conocimiento sea completo, es necesario crear una
herramienta de visualización - Esta herramienta es el visor del catálogo, al que
llamamos PatternsBrowser
36
37Estrategia General de Solución
Desarrollo de la investigación
- Crear un lenguaje de meta-especificación para
representar a las entidades a un alto nivel de
abstracción incluyendo los niveles de
conocimiento e implementación - Crear una infraestructura de catalogación de
entidades descriptos con el lenguaje creado en el
paso anterior - Crear una herramienta de visualización que
permita navegar por el catálogo mencionado en el
punto anterior
37
38Solución Desarrollada
Desarrollo de la investigación
- EML (Entity Meta-specification Languaje)
- Catálogo de Patrones
- Componente Pasivo
- Componente Activo
- Visor del Catalogo
38
39EML El Lenguaje de Meta-Especificación
Desarrollo de la investigación
- EML es el acrónimo 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 descripción e
implementación - Capacidades relacionales y de anotación
- EML se compone de 5 DSLs más pequeños
39
40EML DSLs
Desarrollo de la investigación
EML (Entity Meta-Specification Language)
40
41Catálogo de Patrones y Conceptos
Desarrollo de la investigación
- El catálogo de patrones es el elemento más
complejo de la solución - No se limita a un contenedor pasivo de
información - Sus componentes se dividen en dos grupos
- Pasivos conjunto de elementos persistentes
- Activos infraestructura que permite manipular,
exponer y compartir los contenidos del catálogo - FREP es el núcleo
41
42FREP
Desarrollo de la investigación
- FREP es el acrónimo de Flexible Runtime Execution
Platform - Plataforma de ejecución de entidades del catálogo
- Contenedor de entidades EML en tiempo de
ejecución (AOM) - Analizador de EML (AOM Builder)
- Combina DSLs y AOMs para crear una solución
flexible, extensible y ágil - Expresividad de los DSLs para describir a las
entidades - Flexibilidad, agilidad y potencia de AOM para
ofrecer una plataforma de ejecución para las
entidades - FREP soporta a todas las plantillas existentes
para describir patrones y permitir crear nuevas
dinámicamente manteniendo una estructura formal
42
43PatternsBrowser Visor del Catálogo
Desarrollo de la investigación
- El visor del catálogo (PatternsBrowser) es una
aplicación Web que permite navegar por los
contenidos del catálogo - Permite interactuar con los elementos del
catálogo en forma sencilla, siguiendo estándares
de usabilidad e interacción - Características
- Vistas dinámicas vinculables
- Navegación por el Catálogo
- Escritura n-Dimensional
- Interface Web
- Buscador
- Soporte para comunidad/colaboración
43
44Consecuencia Modificación del Ciclo de Vida de
los Patrones
Desarrollo de la investigación
Welicki et al 2006 Meta-Specification and
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 más dinámico e interactivo,
favoreciendo la evolución y refinamiento
constante de los patrones
44
45Índice
- Introducción
- Estado del arte
- Desarrollo de la investigación
- Prototipo desarrollado
- Conclusiones
45
46Introducción
Prototipos
- Se ha desarrollado un prototipo a efectos de
validar el modelo propuesto en forma empírica y
pragmática - Implementación de referencia del modelo
- Especificación del Lenguaje de Descripción (EML
1.0) - Catálogo (Pasivo)
- Catálogo (Activo)
- Visor del Catálogo
46
47Arquitectura (Alto Nivel)
Prototipos
47
48Componente Pasivo Repositorio de Entidades
Prototipos
- Parte principal del componente pasivo del
catálogo - Contiene a todas las entidades
- Se compone de una base de datos relacional y de
un sistema de ficheros - El registro se manipula a través del componente
activo del catálogo
48
49FREP Representación de Entidades
Prototipos
- La representación de entidades en tiempo de
ejecución es parte de FREP - AOM extendido para representación de entidades en
tiempo de ejecución - Nivel de visualización
- Inyección dinámica de propiedades
- Construcción dinámica de instancias (utilizando
metadatos) - Diseño con alta densidad de patrones (pattern
dense) - Type Object, Property, Type Square,
Accountability, Composite, Smart Property,
Dependency Injection, Rule Object, Strategy, MVC
49
50FREP Representación de Entidades
Prototipos
Visualization
Rules / Strategies
Knowledge
Operational
Behavior Description
50
51FREP Analizador de Entidades
Prototipos
51
52FREP Analizador de Entidades
Prototipos
FREP.parse.config.xml
ltlt Creates gtgt
steps
0..n
52
53Iteradores Virtuales
Prototipos
virtualIterators.config.xml
children
children
0..n
0..n
- Extensión al patrón Iterator
- Recorrer el catálogo a partir de reglas
codificadas en metadatos - DSL para especificar reglas de recorrido
53
54Navegación con Iteradores Virtuales
Prototipos
54
55La Interfaz de Usuario Web
Prototipos
Visualización de la Vista
55
56Motor de Vistas
Prototipos
- El motor de vistas dinámicas permite vincular
vistas dinámicamente a las entidades en tiempo de
ejecución - Dada una entidad al aplicarle una vista se
obtiene el código de presentación 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 consideración
ltlt Creates gtgt
views
1..n
ltlt Creates instances of gtgt
56
57Motor de Vistas Patrones
Prototipos
57
58Motor de Vistas Entidades
Prototipos
58
59Navegación por Descubrimiento
Prototipos
Para cada entidad se muestran enlaces a todas las
entidades relacionadas, lo cual permite este tipo
de navegación
59
60Índice
- Introducción
- Estado del arte
- Desarrollo de la investigación
- Prototipos desarrollados
- Conclusiones
60
61Evaluación de los Objetivos
Conclusiones
- Al comienzo de esta tesis, se definieron tres
objetivos principales - Crear un lenguaje de meta-especificación que
permita describir entidades a un alto nivel de
abstracción - Construir una infraestructura de catalogación
- Exponer toda esta información haciendo este
conocimiento accesible para el público general,
con independencia del fin para el que quiera
utilizarlo - Estos objetivos se han visto realizados por la
consecución de sus objetivos parciales
61
62Evaluación de los Objetivos
Conclusiones
Crear un lenguaje de representación de patrones EML es un lenguaje de meta-especificación que permite representar entidades a un alto nivel de abstracción
Dotar al lenguaje de expresividad para describir conceptos EML puede describir cualquier concepto, soportando la creación de nuevos tipos
Dotar al lenguaje de capacidades relacionales EML contiene un DSL orientado a la descripción de relaciones entre entidades (EML-RDL)
Dotar al lenguaje de capacidades de anotación EML contiene un DSL orientado a la anotación de relaciones entre entidades (EML-AL)
Construir un catálogo de patrones El componente pasivo del catálogo contiene meta-especificaciones de entidades escritas con EML
62
63Evaluación de los Objetivos
Conclusiones
Crear la infraestructura de catalogación El componente activo del catálogo contiene los mecanismos para gestionar los contenidos del catálogo
Crear una herramienta de visualización del catálogo PatternsBrowser permite navegar por los contenidos del catálogo
Establecer un mecanismo de visualización de patrones y conceptos El motor de vistas dinámico permite registrar vistas y asociarlas a entidades en tiempo de diseño o ejecución
Habilitar el trabajo colaborativo para evolucionar a los patrones El modelo contiene funcionalidades para facilitar el trabajo colaborativo
Convertir al catálogo en un proveedor de servicios de información El catálogo no es un repositorio pasivo de información además de proveer la infraestructura necesaria para incluir y gestionar entidades puede exponerlas en varias formas
63
64Reflexión y Síntesis del Modelo
Conclusiones
- El uso conjunto de DSLs y AOMs han permitido la
creación de una plataforma ágil, flexible y
extensible que resuelve los problemas recurrentes
encontrados en otros enfoques existentes - La aplicación del pensamiento emergente ha
permitido sentar las bases de un modelo de
gestión del conocimiento basado en la
retroalimentación positiva que crece a partir de
las interacciones entre los usuarios - La aplicación del modelo propuesto produce un
cambio significativo en el ciclo de los patrones,
haciéndolo más dinámico e interactivo, sentando
las bases para la generación de conocimiento a
partir de interacciones entre los miembros de una
comunidad
64
65Conclusiones
Reflexión y Síntesis del Modelo
Fragmento del trabajo presentado en OOPSLA 2006
(Portland, Oregon, USA, Octubre 2006)
65
66Aportaciones Originales Principales
Conclusiones
- Un lenguaje de meta-especificación para describir
entidades a un alto nivel de abstracción - Un modelo de catalogación de entidades para
establecer una base de conocimiento práctico - Una herramienta de visualización que resuelve los
problemas recurrentes en las soluciones parciales
existentes - Combinación de DSLs y AOMs para resolver el
problema de la meta-especificación y catalogación
de patrones de software - Ciclo de vida de los patrones más dinámico e
interactivo, estableciendo las bases para la
evolución continua y generación de conocimiento - Iteradores Virtuales
- Inclusión de un nivel de visualización en la
arquitectura de AOM
66
67Trabajos Derivados de la Investigación
Conclusiones
- Patterns Meta-Specification and Cataloging
Towards a More Dynamic Life CycleLeon 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 - León 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. - León 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 - León Welicki, Oscar Sanjuán, 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 Introducción (Parte
I) - León Welicki
- Revista MTJ .Net (Microsoft Developers Network -
MSDN), Junio de 2005
67
68Trabajos Derivados de la Investigación
Conclusiones
- Improving Performance and Server Resource Usage
with Page Fragment Caching in Distributed Web
ServersLeon Welicki, Oscar Sanjuan
MartinezInternational 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 Introducción (Parte
II) - León Welicki
- Revista MTJ .Net (Microsoft Developers Network -
MSDN), Julio de 2005 - Patrones de Fabricación Fábricas de Objetos
- León Welicki
- Revista MTJ .Net (Microsoft Developers Network -
MSDN), Octubre de 2005 - El Patrón Singleton.
- León Welicki
- Revista MTJ .Net (Microsoft Developer Network -
MSDN), Marzo de 2006 - Una Propuesta de Aplicación del Paradigma
Emergente para un Modelo de Agregación Dinámica
de Servicios Basado en SOA - León Welicki, Juan Manuel Cueva Lovelle
- I Jornadas Científico-Técnicas en Servicios Web
del W3C (JSWEB 2005) Granada, España, 13 y 14 de
Septiembre de 2005. - La Falacia Operacional y los Sistemas Emergentes
68
69Trabajos Derivados de la Investigación
Conclusiones
- Modificación de la Intención Semántica de Relatos
Utilizando Ontologías y Técnicas Evolutivas - Jesús Soto, León E. Welicki
- III Congreso Español de Metaheurísticas,
Algoritmos Evolutivos y Bioinspirados (MAEB
2005). Granada, 14 al 14 de Septiembre de 2005. - Hacia la Convergencia entre la Organización
Formal y Real en Equipos de Software a Través de
un Modelo de Desarrollo - León E. Welicki, Juan Manuel Cueva Lovelle
- III Simposio Internacional de Sistemas de
Información e Ingeniería de Software en la
Sociedad del Conocimiento (SISOFTW 2005) Santo
Domingo, República Dominicana, 24 al 26 de Agosto
de 2005. - XText Un Modelo para Publicación de Textos en
Múltiples Dispositivos - León Welicki
- I Jornadas de Postgrado de Investigación en
Ingeniería Informática (JPIII 2004). Salamanca,
España, 7 al 8 de Mayo de 2004. - Perception of Software Problems on the Internet
World - Jorge A. Salido, León E. Welicki
- III Simposio Internacional de Sistemas de
Información e Ingeniería de Software en la
Sociedad del Conocimiento (SISOFTW 2005). Santo
Domingo, República Dominicana, 24 al 26 de Agosto
de 2005. - Las Personas en las Metodologías de Ingeniería
del Software - León Welicki, Fernando Cano García
- V Jornadas de Informática y Sociedad (JIS 2004).
Bilbao, España, 25 al 26 de Marzo de 2004.
Universidad de Deusto.
69
70Trabajos Derivados de la Investigación
Conclusiones
- Desarrollo Multilenguaje con Patrones de Diseño
en .NET - León Welicki, Fernando Cano García
- II Simposio Internacional de Sistemas de
Información e Ingeniería 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 - León Welicki
- II Simposio Internacional de Sistemas de
Información e Ingeniería de Software en la
Sociedad del Conocimiento (SISOFTW 2003). Lima,
Perú, 20 al 23 de Agosto de 2003) - La Gestión del Conocimiento en las Empresas de
Consultoría Informática - León Welicki
- II Congreso Internacional de la Sociedad de la
Información y el Conocimiento - CISIC 2003
(Madrid, España, 7 al 9 de Mayo de 2003) - Un modelo de compartición de conocimiento en red
para integrar comunidades del tercer mundo - León Welicki
- II Congreso Internacional de la Sociedad de la
Información y el Conocimiento - CISIC 2003
(Madrid, España, 7 al 9 de Mayo de 2003)
70
71Trabajos en Curso
Conclusiones
- A Pattern Language for Adaptive Object Models
Part I - Rendering Patterns - León Welicki, Joseph W. Yoder, Rebecca
Wirfs-Brock - Enviado al PLoP 2007 (14th Conference on Pattern
Languages of Programs), pendiente de aceptación
71
72Futuras Líneas de Investigación
Conclusiones
- Dotar al prototipo de calidades industriales
- Editor de EML (Colaborativo)
- Combinar EML-PDL con Wiki
- Combinar EML-RDL con RDF
- Estudiar integración con CoPE, PPR y WOP
- Estudiar integración con herramientas de
desarrollo
72
73UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE
MADRIDFACULTAD DE INFORMÁTICA
Meta-Especificación y Catalogación de Patrones de
Software con Lenguajes de Dominio Específico y
Modelos de Objetos Adaptativos Una Vía para la
Gestión del Conocimiento en la Ingeniería del
Software
León Welicki lwelicki_at_acm.org