UNIVERSIDAD PONTIFICIA DE SALAMANCA
Download
1 / 73

UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE MADRID FACULTAD DE INFORMÁTICA - PowerPoint PPT Presentation


  • 91 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE MADRID FACULTAD DE INFORMÁTICA' - courtney


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

UNIVERSIDAD 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

[email protected]


Ndice
Índice

  • Introducción

  • Estado del arte

  • Desarrollo de la investigación

  • Prototipos desarrollados

  • Conclusiones

2


Contexto

Introducción

Introducción

Contexto

  • 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


Sobre esta tesis

Introducción

Introducción

Sobre esta Tesis

  • 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


Soporte de la hip tesis

Introducción

Introducción

Soporte de la Hipótesis

  • 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


Hip tesis

Introducción

Introducción

Hipótesis

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


Objetivos principales

Introducción

Introducción

Objetivos Principales

  • 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


Objetivos parciales

Introducción

Introducción

Objetivos Parciales

  • 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


Metodolog a de la investigaci n

Introducción

Introducción

Metodología de la Investigació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


Ndice1
Índice

  • Introducción

  • Estado del arte

  • Desarrollo de la investigación

  • Prototipos desarrollados

  • Conclusiones

10


Estado del arte

Es t adodelArte

Estado 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


Patrones

Es t adodelArte

Estado del arte

Patrones

  • 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


Patrones y gesti n del conocimiento

Es t adodelArte

Estado del arte

Patrones y Gestión del Conocimiento

  • 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


El nivel meta

Es t adodelArte

Estado del arte

El Nivel Meta

  • 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


Lenguajes de dominio espec fico

Es t adodelArte

Estado del arte

Lenguajes de Dominio Específico

  • 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


Modelos de objetos adaptativos

Es t adodelArte

Estado del arte

Modelos de Objetos Adaptativos

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

    • “Si algo va variar en un modo predecible, almacenar la 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ódigo…Todo es código, todo son datos”

16


Sistemas emergentes

Es t adodelArte

Estado del arte

Sistemas Emergentes

  • 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


Soluciones parciales existentes

Es t adodelArte

Estado del arte

Soluciones Parciales Existentes

  • Descripción y Catalogación

  • Soporte en Herramientas de Modelado

  • Catálogos Públicos

18


Soluciones parciales existentes1

Es t adodelArte

Estado del arte

Soluciones Parciales Existentes

  • Descripción y Catalogación

    • Wiki

    • HTML

    • PLML / PLMLx

    • XMI

    • ODOL (Proyecto WoP)

    • LatticeBasedClassification

  • Soporte en Herramientas de Modelado

    • BorlandTogheter

    • Rational XDE

    • SparxSystems Enterprise Architect

  • Catálogos Públicos

19


Algunos cat logos p blicos

Es t adodelArte

Estado del arte

Algunos Catálogos Públicos…

  • Portland Pattern Repository

  • Microsoft PatternShare

  • Sun’s Core J2EE Patterns

  • MOUDIL

  • Patterns Almanac

  • Martin Fowler’s EA Catalog

  • EI Patterns Catalog

  • Patterns (Handbook of SA)

  • Patterns in Interaction Design

  • UI Patterns

  • DoFactory GoF Patterns

20


Problemas recurrentes descripci n

Es t adodelArte

Estado del arte

Problemas Recurrentes - Descripción

  • 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


Problemas recurrentes descripci n1

Es t adodelArte

Estado del arte

Problemas Recurrentes - Descripción

  • 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


Problemas recurrentes descripci n2

Es t adodelArte

Estado del arte

Problemas Recurrentes - Descripción

  • 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


Problemas recurrentes conclusi n

Es t adodelArte

Estado del arte

Problemas Recurrentes - Conclusión

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


Ndice2
Índice

  • Introducción

  • Estado del arte

  • Desarrollo de la investigación

  • Prototipos desarrollados

  • Conclusiones

25


Desarrollo de la investigaci n

Desarrollo

Desarrollo 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


Significado del t rmino patr n

Desarrollo

Desarrollo de la investigación

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.

27


Qu hace falta para describir correctamente a los patrones

Desarrollo

Desarrollo de la investigación

¿Qué Hace Falta para Describir Correctamente a los Patrones?

  • 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


C mo describir un patr 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

Desarrollo

Desarrollo de la investigación

¿Cómo Describir un Patrón?

29


Es suficiente describir patrones para transmitir conocimiento

Desarrollo

Desarrollo de la investigación

¿Es Suficiente Describir Patrones para Transmitir Conocimiento?

  • 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


Dominio de definici n de patrones

Desarrollo

Desarrollo de la investigación

Dominio de Definición de Patrones

  • 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


Dominio de definici n de patrones1

Desarrollo

Desarrollo de la investigación

Pattern

PatternLanguage

Category

PatternType

Role

OOPrinciple

AbstractionLevel

Refactoring

Event

Source

Author

Dominio de Definición de Patrones

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


El enfoque de descripci n propuesto s lo es aplicable a los patrones

Desarrollo

Desarrollo de la investigación

¿El enfoque de Descripción Propuesto sólo es Aplicable a los Patrones?

  • 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


Describir correctamente las entidades es suficiente para compartir conocimiento

Desarrollo

Desarrollo de la investigación

¿Describir Correctamente las Entidades es Suficiente para Compartir Conocimiento?

  • 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


Un conjunto de definiciones forma un cat logo

Desarrollo

Desarrollo de la investigación

¿Un Conjunto de Definiciones Forma un Catálogo?

  • 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


Es suficiente el cat logo para exponer sus contenidos

Desarrollo

Desarrollo de la investigación

¿Es Suficiente el Catálogo para Exponer sus Contenidos?

  • 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


Estrategia general de soluci n

Desarrollo

Desarrollo de la investigación

Estrategia General de Solució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


Soluci n desarrollada

Desarrollo

Desarrollo de la investigación

Solución Desarrollada

  • EML (Entity Meta-specification Languaje)

  • Catálogo de Patrones

    • Componente Pasivo

    • Componente Activo

  • Visor del Catalogo

38


Eml el lenguaje de meta especificaci n

Desarrollo

Desarrollo de la investigación

EML: El Lenguaje de Meta-Especificació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


Eml dsls
EML – DSLs

Desarrollo

Desarrollo de la investigación

EML-RDL (Relationship Description Language)Relaciones

EML-AL (Annotation Language)Anotaciones

EML-PDL (Properties Description Language)Propiedades

EML-SDL (Structure Definition Language)Estructura

EML-BDL (Behavior Description Language)Comportamiento

EML(Entity Meta-Specification Language)

40


Cat logo de patrones y conceptos

Desarrollo

Desarrollo de la investigación

Catálogo de Patrones y Conceptos

  • 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


Desarrollo

Desarrollo de la investigación

FREP

  • FREP es el acrónimo de Flexible RuntimeExecutionPlatform

  • 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


Patternsbrowser visor del cat logo

Desarrollo

Desarrollo de la investigación

PatternsBrowser – Visor del Catálogo

  • 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


Consecuencia modificaci n del ciclo de vida de los patrones

Desarrollo

Desarrollo de la investigación

Consecuencia: Modificación del Ciclo de Vida de los 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.

El nuevo ciclo es más dinámico e interactivo, favoreciendo la evolución y refinamiento constante de los patrones

44


Ndice3
Índice

  • Introducción

  • Estado del arte

  • Desarrollo de la investigación

  • Prototipo desarrollado

  • Conclusiones

45


Introducci n

Prototipos

Prototipos

Introducción

  • 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


Arquitectura alto nivel

Prototipos

Prototipos

Arquitectura (Alto Nivel)

47


Componente pasivo repositorio de entidades

Prototipos

Prototipos

Componente Pasivo Repositorio de Entidades

  • 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


Frep representaci n de entidades

Prototipos

Prototipos

FREP – Representación de Entidades

  • 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


Frep representaci n de entidades1

Prototipos

Prototipos

AccountabilityType

EntityType

PropertyType

Accountability

Entity

Property

StringProperty

ImageProperty

ConsequenceProperty

Pattern

CompositeProperty

CodeModule

Participant

CodeGenerationRule

RuleObject

View

Structure

Parameters

Method

CodeProperty

PropertyRenderer

VBNetCodeGen

CSharpCodeGen

JavaCodeGen

FREP – Representación de Entidades

Visualization

Rules / Strategies

Knowledge

Operational

Behavior Description

50


Frep analizador de entidades
FREP – Analizador de Entidades

Prototipos

Prototipos

51


Frep analizador de entidades1

Prototipos

Prototipos

BaseImplParseStep

BasicDataParseStep

ChecksumParseStep

DumpImplParseStep

ImplParseStep

ContextParseStep

RelationshipParseStep

IParseStep

ParsePipeline

ParsePipelineFactory

EntityParser

IEntityParser

PropertiesParseStep

TagsParseStep

FREP – Analizador de Entidades

FREP.parse.config.xml

<< Creates >>

0..n

steps

52


Iteradores virtuales
Iteradores Virtuales

Prototipos

Prototipos

VirtualIterator

VirtualIteratorBuilder

EntityReference

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


Navegaci n con iteradores virtuales

Prototipos

Prototipos

Navegación con Iteradores Virtuales

54


La interfaz de usuario web

Prototipos

Prototipos

Área de Navegación

Vistas Disponibles

Nombre y Resumen de la Entidad

Inicio de Sesión

Selector de Iterador Virtual

Búsqueda Rápida

La Interfaz de Usuario Web

Visualización de la Vista

55


Motor de vistas

Prototipos

Prototipos

TemplateView

CategoryView

ListView

SourceCodeView

CRCView

TemplateViewConfig

IView

ViewProxy

ViewGroupFactory

ViewGroup

AuthorView

DefaultEntityView

Motor de Vistas

  • 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

<< Creates >>

views

1..n

<< Creates instances of >>

56


Motor de vistas patrones

Prototipos

Prototipos

Motor de Vistas – Patrones

57


Motor de vistas entidades

Prototipos

Prototipos

Motor de Vistas – Entidades

58


Navegaci n por descubrimiento

Prototipos

Prototipos

Navegación por Descubrimiento

Para cada entidad se muestran enlaces a todas las entidades relacionadas, lo cual permite este tipo de navegación

59


Ndice4
Índice

  • Introducción

  • Estado del arte

  • Desarrollo de la investigación

  • Prototipos desarrollados

  • Conclusiones

60


Evaluaci n de los objetivos

Conclusiones

Conclusiones

Evaluación de los Objetivos

  • 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


Evaluaci n de los objetivos1
Evaluación de los Objetivos

Conclusiones

Conclusiones

62


Evaluaci n de los objetivos2
Evaluación de los Objetivos

Conclusiones

Conclusiones

63


Reflexi n y s ntesis del modelo
Reflexión y Síntesis del Modelo

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

Conclusiones

Conclusiones

64


Conclusiones

Conclusiones

Reflexión y Síntesis del Modelo

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

65


Aportaciones originales principales

Conclusiones

Conclusiones

Aportaciones Originales Principales

  • 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


Trabajos derivados de la investigaci n

Conclusiones

Conclusiones

Trabajos Derivados de la Investigación

  • 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

  • The Configuration Data Caching Pattern

    León Welicki

    13th Pattern Languages of Programs Conference (PLoP 2006); Portland, Oregon, Estados Unidos, 21 al 23 de Octubre de 2006

  • Patterns for Factoring Responsibilities when Working with Objects and Relational Databases León Welicki

    12th European Conference on Pattern Languages of Programming Conference (EuroPLoP 2007); Irsee, Alemania, 4 al 8 de Julio de 2007

67


Trabajos derivados de la investigaci n1

Conclusiones

Conclusiones

Trabajos Derivados de la Investigación

  • 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

    León E. Welicki, Juan Manuel Cueva Lovelle, Luis Joyanes Aguilar

    IV Simposio Internacional de Sistemas de Información e Ingeniería de Software en la Sociedad del Conocimiento (SISOFTW 2006); Cartagena, Colombia, 23 al 26 de Agosto de 2006.

  • Una Plataforma Basada en Sistemas Multiagentes y Servicios Web para Monitorización de Aplicaciones en Entornos Heterogéneos

    León Welicki, Juan Manuel Cueva Lovelle

    II Taller en Desarrollo de Sistemas Multiagente (DESMA 2005); Granada, España, 13 de Septiembre de 2005.

68


Trabajos derivados de la investigaci n2

Conclusiones

Conclusiones

Trabajos Derivados de la Investigación

  • 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.

  • El Precio de las Palabras en la Sociedad de la Información.

    León Welicki, Sergio Berman

    V Jornadas de Informática y Sociedad (JIS 2004). Bilbao, España, 25 al 26 de Marzo de 2004, Universidad de Deusto.

  • Modificación de la Semántica de Textos Mediante Algoritmos Genéticos.

    León Welicki

    III Congreso Español de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (MAEB 2004). Córdoba, España, 3 al 5 de Febrero de 2004.

69


Trabajos derivados de la investigaci n3

Conclusiones

Conclusiones

Trabajos Derivados de la Investigación

  • 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


Trabajos en curso

Conclusiones

Conclusiones

Trabajos en Curso

  • 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


Futuras l neas de investigaci n

Conclusiones

Conclusiones

Futuras Líneas de Investigación

  • 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


UNIVERSIDAD 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

[email protected]


ad