Upload
courtney
View
34
Download
1
Embed Size (px)
DESCRIPTION
UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE MADRID FACULTAD 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 - PowerPoint PPT Presentation
Citation preview
UNIVERSIDAD PONTIFICIA DE SALAMANCA UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE MADRIDCAMPUS DE MADRID
FACULTAD DE INFORMÁTICAFACULTAD DE INFORMÁTICA
Meta-Especificación y Catalogación de Meta-Especificación y Catalogación de Patrones de Software con Lenguajes de Patrones de Software con Lenguajes de
Dominio Específico y Modelos de Objetos Dominio Específico y Modelos de Objetos Adaptativos: Adaptativos:
Una Vía para la Gestión del Conocimiento en Una Vía para la Gestión del Conocimiento en la Ingeniería del Softwarela Ingeniería del Software
León WelickiLeón [email protected]@acm.org
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Índice
IntroducciónIntroducción
Estado del arteEstado del arte
Desarrollo de la investigaciónDesarrollo de la investigación
Prototipos desarrolladosPrototipos desarrollados
ConclusionesConclusiones
2
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Contexto El software es el gran protagonista de los últimos (y El software es el gran protagonista de los últimos (y
próximos) lustros, estando presente en gran parte de los próximos) lustros, estando presente en gran parte de los aspectos de la vida cotidianaaspectos 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 Sin embargo, la construcción de software es una disciplina moderna que está en constante evolución, en búsqueda de moderna que está en constante evolución, en búsqueda de un estado de madurez que sea comprehensivo respecto a un estado de madurez que sea comprehensivo respecto a su amplio espectro de aplicaciónsu 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
Introducción
Introducción
3
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Sobre esta Tesis En la presente tesis se traza y explora el dominio de En la presente tesis se traza y explora el dominio de
la meta-especificación y catalogación de patrones la meta-especificación y catalogación de patrones como respuesta al problema de describir, catalogar y como respuesta al problema de describir, catalogar y compartir conocimiento de ingeniería del softwarecompartir conocimiento de ingeniería del software
La investigación realizada se inscribe en un marco La investigación realizada se inscribe en un marco interdisciplinariointerdisciplinario
Ingeniería del Software Gestión del Conocimiento Ingeniería Web Ciencias de la Computación
Introducción
Introducción
4
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Soporte de la Hipótesis La construcción de software es una disciplina La construcción de software es una disciplina
compleja, con un extraño balance entre arte y compleja, con un extraño balance entre arte y ciencia donde la experiencia tiene un rol ciencia donde la experiencia tiene un rol determinantedeterminante
Los patrones son el medio idóneo para compartir Los patrones son el medio idóneo para compartir experienciaexperiencia
Compartir patrones es compartir conocimientoCompartir patrones es compartir conocimiento
La falta de un modelo para describir, clasificar y La falta de un modelo para describir, clasificar y compartir patrones dificulta la transmisión del compartir patrones dificulta la transmisión del conocimiento que el patrón intenta expresarconocimiento que el patrón intenta expresar
Introducción
Introducción
5
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
HipótesisIntroducción
Es posible codificar en forma abstracta a los patrones y Es posible codificar en forma abstracta a los patrones y a susa sus
conceptos de soporte a un alto nivel de abstracción en conceptos de soporte a un alto nivel de abstracción en formaforma
flexible y extensible abarcando todos los modelos deflexible y extensible abarcando todos los modelos dedescripción posibles, catalogarlos y compartirlos con ladescripción posibles, catalogarlos y compartirlos con lacomunidad para gestionar y transmitir adecuadamente comunidad para gestionar y transmitir adecuadamente
elelconocimiento que intentan expresarconocimiento que intentan expresar
Introducción
6
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Objetivos Principales1.1. Crear un lenguaje de meta-especificación que Crear un lenguaje de meta-especificación que
permita describir a los patrones a un alto nivel de permita describir a los patrones a un alto nivel de abstracción abstracción
2.2. Utilizar este lenguaje para construir un catálogo que Utilizar este lenguaje para construir un catálogo que incluya también todos los conceptos necesarios para incluya también todos los conceptos necesarios para poder realmente entender al patrónpoder realmente entender al patrón
3.3. Exponer toda esta información haciendo este Exponer toda esta información haciendo este conocimiento accesible para el público general, con conocimiento accesible para el público general, con independencia del fin para el que quiera utilizarlo independencia del fin para el que quiera utilizarlo
Introducción
Introducción
7
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Objetivos Parciales1.1. Crear un lenguaje de representación de patronesCrear un lenguaje de representación de patrones2.2. Dotar al lenguaje de expresividad para describir Dotar al lenguaje de expresividad para describir
conceptosconceptos3.3. Dotar al lenguaje de capacidades relacionalesDotar al lenguaje de capacidades relacionales4.4. Dotar al lenguaje de capacidades de anotaciónDotar al lenguaje de capacidades de anotación5.5. Construir un catálogo de patronesConstruir un catálogo de patrones6.6. Crear la infraestructura de catalogaciónCrear la infraestructura de catalogación7.7. Crear una herramienta de visualización del catálogo Crear una herramienta de visualización del catálogo 8.8. Establecer un mecanismo de visualización de Establecer un mecanismo de visualización de
entidadesentidades9.9. Habilitar el trabajo colaborativo para evolucionar a los Habilitar el trabajo colaborativo para evolucionar a los
patronespatrones10.10.Convertir al catálogo en un proveedor de servicios de Convertir al catálogo en un proveedor de servicios de
informacióninformación
Introducción
Introducción
8
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Metodología de la Investigación Metodología iterativa e Metodología iterativa e
incrementalincremental
En cada iteración…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 El feedback obtenido servía como realimentación del proceso y se realimentación del proceso y se utilizaba en la siguiente iteraciónutilizaba en la siguiente iteración
Varios “hitos” de verificación…Varios “hitos” de verificación… COMPSAC 2007, OOPSLA 2006, PLoP
2006, EuroPLoP 2006, PLoP 2005, W3C JSWEB 2005, etc.
Introducción
Introducción
9
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Índice
IntroducciónIntroducción
Estado del arteEstado del arte
Desarrollo de la investigaciónDesarrollo de la investigación
Prototipos desarrolladosPrototipos desarrollados
ConclusionesConclusiones
10
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Estado del Arte Herramientas ConceptualesHerramientas Conceptuales
Patrones
El nivel Meta
Lenguajes de Dominio Específico
Modelos de Objetos Adaptativos
Sistemas Emergentes
Soluciones Parciales ExistentesSoluciones Parciales Existentes
Problemas RecurrentesProblemas Recurrentes
Conclusión de los Problemas RecurrentesConclusión de los Problemas Recurrentes
Estado del arte
Es t ado
del
Arte
11
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Patrones Un patrón es una solución a un Un patrón es una solución a un
problema en un contextoproblema en un contexto
““Cada patrón describe un Cada patrón describe un problema que ocurre una y problema que ocurre una y otra vez en nuestro entorno, otra vez en nuestro entorno, para describir después el para describir después el núcleo de la solución a ese núcleo de la solución a ese problema, de tal manera que problema, de tal manera que esa solución pueda ser usada esa solución pueda ser usada más de un millón de veces sin más de un millón de veces sin hacerlo ni siquiera dos veces hacerlo ni siquiera dos veces de la misma formade la misma forma””
Cristopher Alexander, “A Pattern Language” (1977)
Los patrones se describen Los patrones se describen utilizando plantillasutilizando plantillas
Existe una amplia variedad de plantillas diferentes
Estado del arte
Es t ado
del
Arte
12
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Patrones y Gestión del Conocimiento Son un gran mecanismo de comunicación para transmitir Son un gran mecanismo de comunicación para transmitir
experienciasexperiencias
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 Ocupan un sitio de privilegio en el modelo de generación de conocimiento propuesto por Nonaka y Takeuchide conocimiento propuesto por Nonaka y Takeuchi
Estado del arte
Es t ado
del
Arte
13
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
El Nivel Meta El prefijo Meta viene del campo de la filosofía e indica un El prefijo Meta viene del campo de la filosofía e indica un
nivel de descripción más elevado. 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 Cuando los informáticos resuelven un problema tienden a ““ir al nivel metair 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 El paso a un nivel meta debe ser correctamente analizadocorrectamente analizado
Estado del arte
Es t ado
del
Arte
14
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Lenguajes de Dominio Específico Un lenguaje de dominio específico (DSL) es un Un lenguaje de dominio específico (DSL) es un
lenguaje especializado para un problema particular 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 Son lenguajes limitados, diseñados para resolver una clase específica de problemasclase específica de problemas
Cambian expresividad por generalidad en un dominio Cambian expresividad por generalidad en un dominio concretoconcreto
Pueden ser textuales o gráficosPueden ser textuales o gráficos
Estado del arte
Es t ado
del
Arte
15
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Modelos de Objetos Adaptativos Un modelo de objetos adaptativo (AOM) es un sistema que Un modelo de objetos adaptativo (AOM) es un sistema que
representa clases, atributos, relaciones y comportamiento como representa clases, atributos, relaciones y comportamiento como metadatosmetadatos
“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 El sistema almacena su modelo de objetos en una base de datos y lo interpreta, obteniendo una gran adaptabilidad y flexibilidadinterpreta, obteniendo una gran adaptabilidad y flexibilidad Los usuarios cambian los metadatos (modelo de objetos) para reflejar
cambios en el dominio
Son un tipo de “Son un tipo de “arquitectura reflectivaarquitectura reflectiva” o “” o “meta-arquitecturameta-arquitectura””
Fuertemente basado en patronesFuertemente basado en patrones
Type Object, Properties, Accountability, Type Square, Interpreter, Builder, Strategy, Composite, Null Object
““El código son datos, los datos son código…Todo es códigoEl código son datos, los datos son código…Todo es código, todo son , todo son datos”datos”
Estado del arte
Es t ado
del
Arte
16
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Sistemas Emergentes Emergencia es lo que ocurre cuando un sistema de Emergencia es lo que ocurre cuando un sistema de
elementos relativamente simples se organiza elementos relativamente simples se organiza espontáneamente y sin leyes explícitas hasta dar lugar a espontáneamente y sin leyes explícitas hasta dar lugar a un comportamiento inteligenteun 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 Los sistemas emergentes tienen las siguientes característicascaracterísticas1. No hay un control jerárquico 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 sólo ella conoce
3. La interacción de reglas locales simples y azar producen un diseño emergente global que no es inherente a las partes
Estado del arte
Es t ado
del
Arte
17
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Soluciones Parciales Existentes Descripción y CatalogaciónDescripción y Catalogación
Soporte en Herramientas de ModeladoSoporte en Herramientas de Modelado
Catálogos PúblicosCatálogos Públicos
Estado del arte
Es t ado
del
Arte
18
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Soluciones Parciales Existentes Descripción y CatalogaciónDescripción y Catalogación
Wiki HTML PLML / PLMLx XMI ODOL (Proyecto WoP) Lattice Based Classification
Soporte en Herramientas de ModeladoSoporte en Herramientas de Modelado Borland Togheter Rational XDE Sparx Systems Enterprise Architect
Catálogos PúblicosCatálogos Públicos
Estado del arte
Es t ado
del
Arte
19
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Algunos Catálogos Públicos… Portland Pattern RepositoryPortland Pattern Repository Microsoft PatternShareMicrosoft PatternShare Sun’s Core J2EE PatternsSun’s Core J2EE Patterns MOUDILMOUDIL Patterns Almanac Patterns Almanac Martin Fowler’s EA CatalogMartin Fowler’s EA Catalog EI Patterns CatalogEI Patterns Catalog Patterns (Handbook of SA)Patterns (Handbook of SA) Patterns in Interaction Patterns in Interaction
DesignDesign UI PatternsUI Patterns DoFactory GoF PatternsDoFactory GoF Patterns
Estado del arte
Es t ado
del
Arte
20
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Problemas Recurrentes - Descripción
1.1. Descripción abstracta de los niveles de Descripción abstracta de los niveles de conocimiento e implementaciónconocimiento e implementación
2.2. Soporte para todas las plantillas de patrones Soporte para todas las plantillas de patrones existentesexistentes
3.3. Descripción de patrones y conceptos de soporteDescripción de patrones y conceptos de soporte
Estado del arte
Es t ado
del
Arte
DescripciónDescripción
CatalogaciónCatalogación
VisualizaciónVisualización
21
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Problemas Recurrentes - Descripción
1.1. Gran esfuerzo de producción para obtener Gran esfuerzo de producción para obtener resultadosresultados
2.2. Mantenimiento complejo y laboriosoMantenimiento complejo y laborioso
3.3. Relaciones semánticas complejas ad-hoc en forma Relaciones semánticas complejas ad-hoc en forma emergenteemergente
4.4. Abstracción de tecnologías y modelosAbstracción de tecnologías y modelos
5.5. Modelos rígidos de navegaciónModelos rígidos de navegación
6.6. Contenedores pasivos de informaciónContenedores pasivos de información
7.7. No son “generadores” de conocimientoNo son “generadores” de conocimiento
Estado del arte
Es t ado
del
Arte
DescripciónDescripción
CatalogaciónCatalogación
VisualizaciónVisualización
22
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Problemas Recurrentes - Descripción
Catálogos públicos en la WebCatálogos públicos en la Web
1. Imponen modelos rígidos de visualización en función de los intereses del publicador
2. Capacidades de búsqueda muy básicas
3. Generalmente sólo muestran patrones, dejando de lado a los conceptos de soporte
4. Relaciones sintácticas
Herramientas de ModeladoHerramientas de Modelado
1. No incluyen el nivel de conocimiento en forma adecuada
1. No describen el comportamiento a un nivel de abstracción adecuado
Estado del arte
Es t ado
del
Arte
DescripciónDescripción
CatalogaciónCatalogación
VisualizaciónVisualización
23
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Problemas Recurrentes - ConclusiónEstado del arte
Es t ado
del
Arte
Podemos afirmar que no existe un meta-modelo que Podemos afirmar que no existe un meta-modelo que sirva de guía para la descripción de patrones y sirva de guía para la descripción de patrones y
conceptos de soporte a un alto nivel de abstracción, la conceptos de soporte a un alto nivel de abstracción, la gestión y compartición de estas descripciones y cómo gestión y compartición de estas descripciones y cómo
presentarlas a los usuarios finales a través de la Web o presentarlas a los usuarios finales a través de la Web o de interfaces de servicios débilmente acopladasde interfaces de servicios débilmente acopladas
24
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Índice
IntroducciónIntroducción
Estado del arteEstado del arte
Desarrollo de la investigaciónDesarrollo de la investigación
Prototipos desarrolladosPrototipos desarrollados
ConclusionesConclusiones
25
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Desarrollo de la Investigación Definiendo el concepto “patrón”Definiendo el concepto “patrón”
Derivación de la SoluciónDerivación de la Solución
Estrategia de SoluciónEstrategia de Solución
Solución DesarrolladaSolución Desarrollada
Modificación del Ciclo de Vida de los PatronesModificación del Ciclo de Vida de los Patrones
Desarrollo
Desarrollo de la investigación
26
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Significado del Término Patró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.
Desarrollo
Desarrollo de la investigación
27
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
¿Qué Hace Falta para Describir Correctamente a los Patrones?
Desarrollo
Es necesario crear un lenguaje que permita definir a Es necesario crear un lenguaje que permita definir a los patrones en forma estándar y uniforme, a un alto los patrones en forma estándar y uniforme, a un alto nivel de abstracciónnivel de abstracción
El lenguaje debe proveer las construcciones El lenguaje debe proveer las construcciones sintácticas y semánticas adecuadas para representar sintácticas y semánticas adecuadas para representar los niveles de conocimiento e implementación en los niveles de conocimiento e implementación en forma homogéneaforma homogénea
Desarrollo de la investigación
28
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
¿Cómo Describir un Patrón? Proponemos describir a los Proponemos describir a los
patrones en 2 nivelespatrones 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
Desarrollo
Desarrollo de la investigación
29
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
¿Es Suficiente Describir Patrones para Transmitir Conocimiento? NoNo, no es suficiente. , 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 De esta forma podemos conocer la información esencial del patrón, sus orígenes, sobre qué esencial del patrón, sus orígenes, sobre qué principios de diseño se funda, cómo llegar a él, qué principios de diseño se funda, cómo llegar a él, qué tipo de patrón es, etc.tipo de patrón es, etc.
Desarrollo
Desarrollo de la investigación
30
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Dominio de Definición de Patrones Los patrones no existen aislados de un contextoLos patrones no existen aislados de un contexto
De la misma forma en que una implementación no es 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 un patrón, un patrón puede no ser suficiente para transmitir el conocimiento que intenta suficiente para transmitir el conocimiento que intenta expresarexpresar
Para subsanar esta situación hemos definido una ontología Para subsanar esta situación hemos definido una ontología sencilla para formalizar el dominio de la definición de sencilla para formalizar el dominio de la definición de patronespatrones
Existen otras ontologías aplicables a patrones y otras áreas Existen otras ontologías aplicables a patrones y otras áreas de la ingeniería del softwarede la ingeniería del software
Lo que diferencia a la nuestra es que se construye ad hoc en Lo que diferencia a la nuestra es que se construye ad hoc en forma emergenteforma emergente
Desarrollo
Desarrollo de la investigación
31
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Dominio de Definición de Patrones
Desarrollo
Desarrollo de la investigación
PatternLanguagePatternLanguage
CategoryCategory
PatternTypePatternType
RoleRole
OOPrincipleOOPrinciple
AbstractionLevelAbstractionLevel
RefactoringRefactoring
EventEvent
SourceSource AuthorAuthor
PatternPattern
Published In
Written By
Published In
Contained InContained In
Contained In
Written By
Presented At
Refactored By
Represented At
Conforms
Is A
Targeted To
32
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
¿El enfoque de Descripción Propuesto sólo es Aplicable a los Patrones? No,No, el enfoque propuesto puede ser aplicado a el enfoque propuesto puede ser aplicado a
cualquier tipo de conceptocualquier 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 En adelante utilizaremos el término “entidad” para referirnos a los patrones y a los conceptos de referirnos a los patrones y a los conceptos de soportesoporte
Desarrollo
Desarrollo de la investigación
33
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
¿Describir Correctamente las Entidades es Suficiente para Compartir Conocimiento?
Desarrollo
NoNo, la mera descripción de las entidades no , la mera descripción de las entidades no garantiza que el conocimiento pueda ser compartido garantiza que el conocimiento pueda ser compartido en forma eficiente, aunque es un gran paso hacia su en forma eficiente, aunque es un gran paso hacia su descripción y formalizacióndescripció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 Es necesaria la creación de un catálogo de entidades descritas con el lenguaje de meta-especificacióndescritas con el lenguaje de meta-especificación
Desarrollo de la investigación
34
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
¿Un Conjunto de Definiciones Forma un Catálogo?
Desarrollo
NoNo, un catálogo es un elemento más complejo que un , un catálogo es un elemento más complejo que un conjunto de definiciones almacenadas en forma conjunto de definiciones almacenadas en forma persistentepersistente
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, No debe limitarse a ser un repositorio pasivo, proveyendo los mecanismos necesarios para proveyendo los mecanismos necesarios para gestionar y exponer sus contenidosgestionar y exponer sus contenidos
Desarrollo de la investigación
35
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
¿Es Suficiente el Catálogo para Exponer sus Contenidos?
Desarrollo
NoNo, no es suficiente, 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 Esta herramienta es el visor del catálogo, al que llamamos PatternsBrowserllamamos PatternsBrowser
Desarrollo de la investigación
36
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Estrategia General de Solución1.1. Crear un lenguaje de meta-especificación para Crear un lenguaje de meta-especificación para
representar a las entidades a un alto nivel de representar a las entidades a un alto nivel de abstracción incluyendo los niveles de conocimiento e abstracción incluyendo los niveles de conocimiento e implementaciónimplementación
2.2. Crear una infraestructura de catalogación de Crear una infraestructura de catalogación de entidades descriptos con el lenguaje creado en el entidades descriptos con el lenguaje creado en el paso anteriorpaso anterior
3.3. Crear una herramienta de visualización que permita Crear una herramienta de visualización que permita navegar por el catálogo mencionado en el punto navegar por el catálogo mencionado en el punto anterioranterior
Desarrollo
Desarrollo de la investigación
37
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Solución Desarrollada EML (Entity Meta-EML (Entity Meta-
specification Languaje)specification Languaje)
Catálogo de PatronesCatálogo de Patrones
Componente Pasivo
Componente Activo
Visor del CatalogoVisor del Catalogo
Desarrollo
Desarrollo de la investigación
38
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
EML: El Lenguaje de Meta-Especificación EML es el acrónimo de “Entity Meta-specification EML es el acrónimo de “Entity Meta-specification
Languaje”Languaje”
““Modularly composable DSL” basado en XML, creado Modularly composable DSL” basado en XML, creado con el objeto de describir todo tipo de entidadescon el objeto de describir todo tipo de entidades
Provee la infraestructura necesaria para describir Provee la infraestructura necesaria para describir los niveles de descripción e implementaciónlos niveles de descripción e implementación
Capacidades relacionales y de anotaciónCapacidades relacionales y de anotación
EML se compone de 5 DSLs más pequeñosEML se compone de 5 DSLs más pequeños
Desarrollo
Desarrollo de la investigación
39
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
EML – DSLs
Desarrollo
Desarrollo de la investigación
EML-RDL (Relationship Description Language)Relaciones
EML (Entity Meta-Specification Language)
EML-AL (Annotation Language)Anotaciones
EML-PDL (Properties Description Language)Propiedades
EML-SDL (Structure Definition Language)Estructura
EML-BDL (Behavior Description Language)Comportamiento
40
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Catálogo de Patrones y Conceptos El catálogo de patrones es El catálogo de patrones es
el elemento más complejo el elemento más complejo de la soluciónde la solución
No se limita a un No se limita a un contenedor pasivo de contenedor pasivo de informacióninformación
Sus componentes se Sus componentes se dividen en dos gruposdividen 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
Desarrollo
Desarrollo de la investigación
41
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
FREP FREP es el acrónimo de FREP es el acrónimo de Flexible Runtime Execution PlatformFlexible Runtime Execution Platform
Plataforma de ejecución de entidades del catálogoPlataforma 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 Combina DSLs y AOMs para crear una solución flexible, extensible y ágily á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 FREP soporta a todas las plantillas existentes para describir patrones y permitir crear nuevas dinámicamente manteniendo una patrones y permitir crear nuevas dinámicamente manteniendo una estructura formalestructura formal
Desarrollo
Desarrollo de la investigación
42
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
PatternsBrowser – Visor del Catálogo El visor del catálogo (El visor del catálogo (PatternsBrowserPatternsBrowser) es una ) es una
aplicación Web que permite navegar por los contenidos aplicación Web que permite navegar por los contenidos del catálogo del catálogo
Permite interactuar con los elementos del catálogo en Permite interactuar con los elementos del catálogo en forma sencilla, siguiendo estándares de usabilidad e forma sencilla, siguiendo estándares de usabilidad e interaccióninteracción
CaracterísticasCaracterísticas Vistas dinámicas vinculables Navegación por el Catálogo Escritura n-Dimensional Interface Web Buscador Soporte para comunidad/colaboración
Desarrollo de la investigación
Desarrollo
43
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Consecuencia: Modificación del Ciclo de Vida de los Patrones
Desarrollo
Desarrollo de la investigación
El nuevo ciclo es más El nuevo ciclo es más dinámico e interactivo, dinámico e interactivo, favoreciendo la evolución y favoreciendo la evolución y refinamiento constante de refinamiento constante de los patroneslos patrones
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.
44
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Índice
IntroducciónIntroducción
Estado del arteEstado del arte
Desarrollo de la investigaciónDesarrollo de la investigación
Prototipo desarrolladoPrototipo desarrollado
ConclusionesConclusiones
45
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Introducción Se ha desarrollado un prototipo a efectos de validar Se ha desarrollado un prototipo a efectos de validar
el modelo propuesto en forma empírica y el modelo propuesto en forma empírica y pragmáticapragmática
Implementación de referencia del modeloImplementación de referencia del modelo
Especificación del Lenguaje de DescripciónEspecificación del Lenguaje de Descripción (EML 1.0)(EML 1.0)
Catálogo (Pasivo)Catálogo (Pasivo)
Catálogo (Activo)Catálogo (Activo)
Visor del CatálogoVisor del Catálogo
Prototipos
Prototipos
46
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Arquitectura (Alto Nivel)
Prototipos
Prototipos
47
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Componente Pasivo Repositorio de Entidades Parte principal del Parte principal del
componente pasivo del componente pasivo del catálogocatálogo
Contiene a todas las Contiene a todas las entidadesentidades
Se compone de una base Se compone de una base de datos relacional y de un de datos relacional y de un sistema de ficherossistema de ficheros
El registro se manipula a El registro se manipula a través del componente través del componente activo del catálogoactivo del catálogo
Prototipos
Prototipos
48
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
FREP – Representación de Entidades La representación de entidades en tiempo de La representación de entidades en tiempo de
ejecución es parte de FREPejecució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)Diseño con alta densidad de patrones (pattern dense)
Type Object, Property, Type Square, Accountability, Composite, Smart Property, Dependency Injection, Rule Object, Strategy, MVC
Prototipos
Prototipos
49
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
FREP – Representación de Entidades
Prototipos
Prototipos
AccountabilityTypeEntityTypePropertyType
AccountabilityEntityProperty
CompositeProperty
StringProperty
ImageProperty
ConsequenceProperty
Pattern Participant
CodeModule
Structure
CodeProperty
Method
Parameters
PropertyRenderer View
RuleObject
CodeGenerationRule
CSharpCodeGen JavaCodeGen VBNetCodeGen
VisualizationVisualization
KnowledgeKnowledge
OperationalOperational
Rules / StrategiesRules / Strategies
Behavior DescriptionBehavior Description
50
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
FREP – Analizador de Entidades
Prototipos
Prototipos
51
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
FREP – Analizador de Entidades
Prototipos
Prototipos
IEntityParser
EntityParser
ParsePipelineFactory
ParsePipeline
IParseStep
TagsParseStep ContextParseStep PropertiesParseStep ImplParseStep
DumpImplParseStep ChecksumParseStep BasicDataParseStep BaseImplParseStepRelationshipParseStep
steps0..n
<< Creates >>
FREP.parse.config.xmlFREP.parse.config.xml
52
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Iteradores Virtuales
Prototipos
Prototipos
VirtualIterator
VirtualIteratorBuilder
EntityReferencechildren
0..n
Extensión al patrón Iterator Extensión al patrón Iterator
Recorrer el catálogo a partir de Recorrer el catálogo a partir de reglas codificadas en metadatosreglas codificadas en metadatos
DSL para especificar reglas de DSL para especificar reglas de recorrido recorrido
virtualIterators.config.xmlvirtualIterators.config.xml
children
0..n
53
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Navegación con Iteradores Virtuales
Prototipos
Prototipos
54
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
La Interfaz de Usuario Web
Prototipos
Prototipos
55
Área de Navegación
Selector de Iterador Virtual
Vistas Disponibles
Visualización de la Vista
Búsqueda Rápida
Inicio de Sesión
Nombre y Resumen de la Entidad
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Motor de Vistas
Prototipos
Prototipos
ViewGroup
ViewGroupFactory
ViewProxy
IView
DefaultEntityView CRCView SourceCodeView
AuthorView ListView CategoryViewTemplateView
<< Creates instances of >>
views
1..n
<< Creates >>
TemplateViewConfig
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
56
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Motor de Vistas – Patrones
Prototipos
Prototipos
57
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Motor de Vistas – Entidades
Prototipos
Prototipos
58
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Navegación por Descubrimiento
Prototipos
Prototipos
Para cada entidad se muestran enlaces a todas las entidades relacionadas, lo cual permite este tipo de navegación
59
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Índice
IntroducciónIntroducción
Estado del arteEstado del arte
Desarrollo de la investigaciónDesarrollo de la investigación
Prototipos desarrolladosPrototipos desarrollados
ConclusionesConclusiones
60
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Evaluación de los Objetivos Al comienzo de esta tesis, se definieron tres objetivos Al comienzo de esta tesis, se definieron tres objetivos
principales:principales:
1. Crear un lenguaje de meta-especificación que permita describir entidades a un alto nivel de abstracción
2. Construir una infraestructura de catalogación
3. 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 Estos objetivos se han visto realizados por la consecución de sus objetivos parcialesde sus objetivos parciales
Conclusiones
Conclusiones
61
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Evaluación de los ObjetivosConclusiones
Conclusiones
1.1. Crear un lenguaje de Crear un lenguaje de representación de patronesrepresentación de patrones
EML es un lenguaje de meta-especificación que permite representar entidades a un alto nivel de abstracción
2.2. Dotar al lenguaje de expresividad Dotar al lenguaje de expresividad para describir conceptospara describir conceptos
EML puede describir cualquier concepto, soportando la creación de nuevos tipos
3.3. Dotar al lenguaje de capacidades Dotar al lenguaje de capacidades relacionalesrelacionales
EML contiene un DSL orientado a la EML contiene un DSL orientado a la descripción de relaciones entre descripción de relaciones entre entidades (EML-RDL)entidades (EML-RDL)
4.4. Dotar al lenguaje de capacidades Dotar al lenguaje de capacidades de anotaciónde anotación
EML contiene un DSL orientado a la EML contiene un DSL orientado a la anotación de relaciones entre anotación de relaciones entre entidades (EML-AL)entidades (EML-AL)
5.5. Construir un catálogo de patronesConstruir un catálogo de patrones El componente pasivo del catálogo El componente pasivo del catálogo contiene meta-especificaciones de contiene meta-especificaciones de entidades escritas con EMLentidades escritas con EML
62
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Evaluación de los ObjetivosConclusiones
Conclusiones
6.6. Crear la infraestructura de Crear la infraestructura de catalogacióncatalogación
El componente activo del catálogo El componente activo del catálogo contiene los mecanismos para contiene los mecanismos para gestionar los contenidos del catálogogestionar los contenidos del catálogo
7.7. Crear una herramienta de Crear una herramienta de visualización del catálogovisualización del catálogo
PatternsBrowser permite navegar por PatternsBrowser permite navegar por los contenidos del catálogolos contenidos del catálogo
8.8. Establecer un mecanismo de Establecer un mecanismo de visualización de patrones y visualización de patrones y conceptosconceptos
El motor de vistas dinámico permite El motor de vistas dinámico permite registrar vistas y asociarlas a registrar vistas y asociarlas a entidades en tiempo de diseño o entidades en tiempo de diseño o ejecuciónejecución
9.9. Habilitar el trabajo colaborativo Habilitar el trabajo colaborativo para evolucionar a los patronespara evolucionar a los patrones
El modelo contiene funcionalidades El modelo contiene funcionalidades para facilitar el trabajo colaborativopara facilitar el trabajo colaborativo
10.10. Convertir al catálogo en un Convertir al catálogo en un proveedor de servicios de proveedor de servicios de informacióninformación
El catálogo no es un repositorio pasivo El catálogo no es un repositorio pasivo de información: además de proveer la de información: además de proveer la infraestructura necesaria para incluir y infraestructura necesaria para incluir y gestionar entidades puede exponerlas gestionar entidades puede exponerlas en varias formasen varias formas
63
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Reflexión y Síntesis del Modelo El uso conjunto de DSLs y AOMs han permitido la El uso conjunto de DSLs y AOMs han permitido la
creación de una plataforma ágil, flexible y extensible creación de una plataforma ágil, flexible y extensible que resuelve los problemas recurrentes encontrados que resuelve los problemas recurrentes encontrados en otros enfoques existentesen otros enfoques existentes
La aplicación del pensamiento emergente ha La aplicación del pensamiento emergente ha permitido sentar las bases de un modelo de gestión permitido sentar las bases de un modelo de gestión del conocimiento basado en la retroalimentación del conocimiento basado en la retroalimentación positiva que crece a partir de las interacciones entre positiva que crece a partir de las interacciones entre los usuarioslos usuarios
La aplicación del modelo propuesto produce un La aplicación del modelo propuesto produce un cambio significativo en el ciclo de los patrones, cambio significativo en el ciclo de los patrones, haciéndolo más dinámico e interactivo, sentando las haciéndolo más dinámico e interactivo, sentando las bases para la generación de conocimiento a partir de bases para la generación de conocimiento a partir de interacciones entre los miembros de una comunidadinteracciones entre los miembros de una comunidad
Conclusiones
Conclusiones
64
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Conclusiones
Conclusiones
Reflexión y Reflexión y Síntesis del Síntesis del ModeloModelo
Fragmento del trabajo Fragmento del trabajo presentado en presentado en OOPSLA 2006OOPSLA 2006 (Portland, Oregon, USA, (Portland, Oregon, USA, Octubre 2006)Octubre 2006)
65
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Aportaciones Originales Principales Un lenguaje de meta-especificación para describir entidades a Un lenguaje de meta-especificación para describir entidades a
un alto nivel de abstracciónun alto nivel de abstracción
Un modelo de catalogación de entidades para establecer una Un modelo de catalogación de entidades para establecer una base de conocimiento prácticobase de conocimiento práctico
Una herramienta de visualización que resuelve los problemas Una herramienta de visualización que resuelve los problemas recurrentes en las soluciones parciales existentes’recurrentes en las soluciones parciales existentes’
Combinación de DSLs y AOMs para resolver el problema de la Combinación de DSLs y AOMs para resolver el problema de la meta-especificación y catalogación de patrones de softwaremeta-especificación y catalogación de patrones de software
Ciclo de vida de los patrones más dinámico e interactivo, Ciclo de vida de los patrones más dinámico e interactivo, estableciendo las bases para la evolución continua y estableciendo las bases para la evolución continua y generación de conocimientogeneración de conocimiento
Iteradores VirtualesIteradores Virtuales
Inclusión de un nivel de visualización en la arquitectura de Inclusión de un nivel de visualización en la arquitectura de AOMAOM
Conclusiones
Conclusiones
66
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Trabajos Derivados de la Investigación1.1. Patterns Meta-Specification and Cataloging: Towards a More Dynamic Life CyclePatterns Meta-Specification and Cataloging: Towards a More Dynamic Life Cycle
Leon Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes AguilarLeon Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes AguilarFirst IEEE International Workshop on Software Patterns: Addressing Challenges (SPAC 2007) First IEEE International Workshop on Software Patterns: Addressing Challenges (SPAC 2007) – 31st IEEE COMPSAC (COMPSAC – 31st IEEE COMPSAC (COMPSAC 2007)2007), Pekin, China, 23 al 27 de Julio de 2007, Pekin, China, 23 al 27 de Julio de 2007
2.2. Meta-Specification and Cataloging of Software Patterns: Towards Knowledge Management in Software Meta-Specification and Cataloging of Software Patterns: Towards Knowledge Management in Software EngineeringEngineeringLeón Welicki, Luis Joyanes Aguilar, Juan Manuel Cueva LovelleLeón Welicki, Luis Joyanes Aguilar, Juan Manuel Cueva Lovelle21st ACM SIGPLAN Object Oriented Systems, Languages, and Applications Conference (OOPSLA 2006)21st ACM SIGPLAN Object Oriented Systems, Languages, and Applications Conference (OOPSLA 2006); Portland, Oregon, ; Portland, Oregon, Estados Unidos, 22 al 26 de Octubre de 2006Estados Unidos, 22 al 26 de Octubre de 2006
3.3. Meta-Specification and Cataloging of Software Patterns with Domain Specific Languages and Adaptive Object Meta-Specification and Cataloging of Software Patterns with Domain Specific Languages and Adaptive Object Models.Models.León Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes AguilarLeón Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes Aguilar11th European Conference on Pattern Languages of Programming Conference (EuroPLoP 2006)11th European Conference on Pattern Languages of Programming Conference (EuroPLoP 2006); Irsee, Alemania, 5 al 9 de Julio ; Irsee, Alemania, 5 al 9 de Julio de 2006 de 2006
4.4. A Model for Meta-Specification and Cataloging of Software PatternsA Model for Meta-Specification and Cataloging of Software PatternsLeón Welicki, Oscar Sanjuán, Juan Manuel Cueva LovelleLeón Welicki, Oscar Sanjuán, Juan Manuel Cueva Lovelle12th Pattern Languages of Programming Conference (PLoP 2005)12th Pattern Languages of Programming Conference (PLoP 2005); Monticello, Illionois, Estados Unidos, 6 al 10 de Septiembre ; Monticello, Illionois, Estados Unidos, 6 al 10 de Septiembre de 2005de 2005
5.5. Patrones y Antipatrones: una Introducción (Parte I)Patrones y Antipatrones: una Introducción (Parte I)León WelickiLeón WelickiRevista MTJ .Net (Microsoft Developers Network - MSDN)Revista MTJ .Net (Microsoft Developers Network - MSDN), Junio de 2005, Junio de 2005
6.6. The Configuration Data Caching PatternThe Configuration Data Caching PatternLeón WelickiLeón Welicki13th Pattern Languages of Programs Conference (PLoP 2006)13th Pattern Languages of Programs Conference (PLoP 2006); Portland, Oregon, Estados Unidos, 21 al 23 de Octubre de 2006; Portland, Oregon, Estados Unidos, 21 al 23 de Octubre de 2006
7.7. Patterns for Factoring Responsibilities when Working with Objects and Relational Databases Patterns for Factoring Responsibilities when Working with Objects and Relational Databases León WelickiLeón Welicki12th European Conference on Pattern Languages of Programming Conference (EuroPLoP 2007)12th European Conference on Pattern Languages of Programming Conference (EuroPLoP 2007); Irsee, Alemania, 4 al 8 de Julio ; Irsee, Alemania, 4 al 8 de Julio de 2007 de 2007
Conclusiones
Conclusiones
67
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Trabajos Derivados de la Investigación8.8. Improving Performance and Server Resource Usage with Page Fragment Caching in Distributed Web ServersImproving Performance and Server Resource Usage with Page Fragment Caching in Distributed Web Servers
Leon Welicki, Oscar Sanjuan MartinezLeon Welicki, Oscar Sanjuan MartinezInternational Workshop on Scalable Data Management Applications and Systems (SDMAS 07) - WORLDCOMP 2007International Workshop on Scalable Data Management Applications and Systems (SDMAS 07) - WORLDCOMP 2007 , Las , Las Vegas, Nevada, USA, 25 al 28 de Junio de 2007.Vegas, Nevada, USA, 25 al 28 de Junio de 2007.
9.9. Patrones y Antipatrones: una Introducción (Parte II)Patrones y Antipatrones: una Introducción (Parte II)León WelickiLeón WelickiRevista MTJ .Net (Microsoft Developers Network - MSDN)Revista MTJ .Net (Microsoft Developers Network - MSDN), Julio de 2005, Julio de 2005
10.10. Patrones de Fabricación: Fábricas de ObjetosPatrones de Fabricación: Fábricas de ObjetosLeón WelickiLeón WelickiRevista MTJ .Net (Microsoft Developers Network - MSDN)Revista MTJ .Net (Microsoft Developers Network - MSDN), Octubre de 2005, Octubre de 2005
11.11. El Patrón Singleton.El Patrón Singleton.León WelickiLeón WelickiRevista MTJ .Net (Microsoft Developer Network - MSDN)Revista MTJ .Net (Microsoft Developer Network - MSDN), Marzo de 2006, Marzo de 2006
12.12. Una Propuesta de Aplicación del Paradigma Emergente para un Modelo de Agregación Dinámica de Una Propuesta de Aplicación del Paradigma Emergente para un Modelo de Agregación Dinámica de Servicios Basado en SOAServicios Basado en SOALeón Welicki, Juan Manuel Cueva LovelleLeón Welicki, Juan Manuel Cueva LovelleI Jornadas Científico-Técnicas en Servicios Web del W3C (JSWEB 2005)I Jornadas Científico-Técnicas en Servicios Web del W3C (JSWEB 2005); Granada, España, 13 y 14 de Septiembre de 2005. ; Granada, España, 13 y 14 de Septiembre de 2005.
13.13. La Falacia Operacional y los Sistemas EmergentesLa Falacia Operacional y los Sistemas EmergentesLeón E. Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes AguilarLeón E. Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes AguilarIV Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento (SISOFTW IV Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento (SISOFTW 2006)2006); Cartagena, Colombia, 23 al 26 de Agosto de 2006. ; Cartagena, Colombia, 23 al 26 de Agosto de 2006.
14.14. Una Plataforma Basada en Sistemas Multiagentes y Servicios Web para Monitorización de Aplicaciones en Una Plataforma Basada en Sistemas Multiagentes y Servicios Web para Monitorización de Aplicaciones en Entornos HeterogéneosEntornos HeterogéneosLeón Welicki, Juan Manuel Cueva LovelleLeón Welicki, Juan Manuel Cueva LovelleII Taller en Desarrollo de Sistemas Multiagente (DESMA 2005)II Taller en Desarrollo de Sistemas Multiagente (DESMA 2005); Granada, España, 13 de Septiembre de 2005. ; Granada, España, 13 de Septiembre de 2005.
Conclusiones
Conclusiones
68
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Trabajos Derivados de la Investigación15.15. Modificación de la Intención Semántica de Relatos Utilizando Ontologías y Técnicas EvolutivasModificación de la Intención Semántica de Relatos Utilizando Ontologías y Técnicas Evolutivas
Jesús Soto, León E. WelickiJesús Soto, León E. WelickiIII Congreso Español de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (MAEB 2005)III Congreso Español de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (MAEB 2005). Granada, 14 al 14 de . Granada, 14 al 14 de Septiembre de 2005.Septiembre de 2005.
16.16. Hacia la Convergencia entre la Organización Formal y Real en Equipos de Software a Través de un Modelo de Hacia la Convergencia entre la Organización Formal y Real en Equipos de Software a Través de un Modelo de DesarrolloDesarrolloLeón E. Welicki, Juan Manuel Cueva LovelleLeón E. Welicki, Juan Manuel Cueva LovelleIII Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento (SISOFTW III Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento (SISOFTW 2005)2005); Santo Domingo, República Dominicana, 24 al 26 de Agosto de 2005. ; Santo Domingo, República Dominicana, 24 al 26 de Agosto de 2005.
17.17. XText: Un Modelo para Publicación de Textos en Múltiples DispositivosXText: Un Modelo para Publicación de Textos en Múltiples DispositivosLeón WelickiLeón WelickiI Jornadas de Postgrado de Investigación en Ingeniería Informática (JPIII 2004)I Jornadas de Postgrado de Investigación en Ingeniería Informática (JPIII 2004). Salamanca, España, 7 al 8 de Mayo de . Salamanca, España, 7 al 8 de Mayo de 2004. 2004.
18.18. Perception of Software Problems on the Internet WorldPerception of Software Problems on the Internet WorldJorge A. Salido, León E. WelickiJorge A. Salido, León E. WelickiIII Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento (SISOFTW III Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento (SISOFTW 2005)2005). Santo Domingo, República Dominicana, 24 al 26 de Agosto de 2005. . Santo Domingo, República Dominicana, 24 al 26 de Agosto de 2005.
19.19. Las Personas en las Metodologías de Ingeniería del SoftwareLas Personas en las Metodologías de Ingeniería del SoftwareLeón Welicki, Fernando Cano GarcíaLeón Welicki, Fernando Cano GarcíaV Jornadas de Informática y Sociedad (JIS 2004)V Jornadas de Informática y Sociedad (JIS 2004). Bilbao, España, 25 al 26 de Marzo de 2004. Universidad de Deusto.. Bilbao, España, 25 al 26 de Marzo de 2004. Universidad de Deusto.
20.20. El Precio de las Palabras en la Sociedad de la InformaciónEl Precio de las Palabras en la Sociedad de la Información..León Welicki, Sergio BermanLeón Welicki, Sergio BermanV Jornadas de Informática y Sociedad (JIS 2004)V Jornadas de Informática y Sociedad (JIS 2004). Bilbao, España, 25 al 26 de Marzo de 2004, Universidad de Deusto.. Bilbao, España, 25 al 26 de Marzo de 2004, Universidad de Deusto.
21.21. Modificación de la Semántica de Textos Mediante Algoritmos Genéticos.Modificación de la Semántica de Textos Mediante Algoritmos Genéticos.León WelickiLeón WelickiIII Congreso Español de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (MAEB 2004)III Congreso Español de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (MAEB 2004). Córdoba, España, 3 al 5 de . Córdoba, España, 3 al 5 de Febrero de 2004.Febrero de 2004.
Conclusiones
Conclusiones
69
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Trabajos Derivados de la Investigación22.22. Desarrollo Multilenguaje con Patrones de Diseño en .NETDesarrollo Multilenguaje con Patrones de Diseño en .NET
León Welicki, Fernando Cano GarcíaLeón Welicki, Fernando Cano GarcíaII Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento II Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento (SISOFTW 2003)(SISOFTW 2003). Lima, Perú, 20 al 23 de Agosto de 2003). Lima, Perú, 20 al 23 de Agosto de 2003)
23.23. Implementando Extreme Programming en la Plataforma .NETImplementando Extreme Programming en la Plataforma .NETLeón WelickiLeón WelickiII Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento II Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento (SISOFTW 2003)(SISOFTW 2003). Lima, Perú, 20 al 23 de Agosto de 2003). Lima, Perú, 20 al 23 de Agosto de 2003)
24.24. La Gestión del Conocimiento en las Empresas de Consultoría InformáticaLa Gestión del Conocimiento en las Empresas de Consultoría InformáticaLeón WelickiLeón WelickiII Congreso Internacional de la Sociedad de la Información y el Conocimiento - CISIC 2003 (Madrid, España, 7 al 9 de 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)Mayo de 2003)
25.25. Un modelo de compartición de conocimiento en red para integrar comunidades del tercer mundoUn modelo de compartición de conocimiento en red para integrar comunidades del tercer mundoLeón WelickiLeón WelickiII Congreso Internacional de la Sociedad de la Información y el Conocimiento - CISIC 2003 (Madrid, España, 7 al 9 de 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)Mayo de 2003)
Conclusiones
Conclusiones
70
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Trabajos en Curso A Pattern Language for Adaptive Object Models: Part A Pattern Language for Adaptive Object Models: Part
I - Rendering PatternsI - Rendering PatternsLeón Welicki, Joseph W. Yoder, Rebecca Wirfs-BrockLeón Welicki, Joseph W. Yoder, Rebecca Wirfs-Brock
Enviado al PLoP 2007 (14th Conference on Pattern Languages of Enviado al PLoP 2007 (14th Conference on Pattern Languages of Programs), pendiente de aceptaciónPrograms), pendiente de aceptación
Conclusiones
Conclusiones
71
© León WelickiMeta-Especificación y Catalogación de Patrones de Software con Lenguajes de Dominio Específico y Modelos de Objetos Adaptativos
Madrid, Junio de 2007
Futuras Líneas de Investigación Dotar al prototipo de calidades industrialesDotar al prototipo de calidades industriales
Editor de EML (Colaborativo) Editor de EML (Colaborativo)
Combinar EML-PDL con WikiCombinar EML-PDL con Wiki
Combinar EML-RDL con RDFCombinar EML-RDL con RDF
Estudiar integración con CoPE, PPR y WOPEstudiar integración con CoPE, PPR y WOP
Estudiar integración con herramientas de desarrolloEstudiar integración con herramientas de desarrollo
Conclusiones
Conclusiones
72
UNIVERSIDAD PONTIFICIA DE SALAMANCA UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE MADRIDCAMPUS DE MADRID
FACULTAD DE INFORMÁTICAFACULTAD DE INFORMÁTICA
Meta-Especificación y Catalogación de Meta-Especificación y Catalogación de Patrones de Software con Lenguajes de Patrones de Software con Lenguajes de
Dominio Específico y Modelos de Objetos Dominio Específico y Modelos de Objetos Adaptativos: Adaptativos:
Una Vía para la Gestión del Conocimiento en Una Vía para la Gestión del Conocimiento en la Ingeniería del Softwarela Ingeniería del Software
León WelickiLeón [email protected]@acm.org