1 / 73

UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE MADRID FACULTAD DE INFORMÁTICA

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

courtney
Download Presentation

UNIVERSIDAD PONTIFICIA DE SALAMANCA CAMPUS DE MADRID FACULTAD DE INFORMÁTICA

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 lwelicki@acm.org

  2. Índice • Introducción • Estado del arte • Desarrollo de la investigación • Prototipos desarrollados • Conclusiones 2

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

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

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

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

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

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

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

  10. Índice • Introducción • Estado del arte • Desarrollo de la investigación • Prototipos desarrollados • Conclusiones 10

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

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

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

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

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

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

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

  18. Es t adodelArte Estado del arte Soluciones Parciales Existentes • Descripción y Catalogación • Soporte en Herramientas de Modelado • Catálogos Públicos 18

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

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

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

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

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

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

  25. Índice • Introducción • Estado del arte • Desarrollo de la investigación • Prototipos desarrollados • Conclusiones 25

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  45. Índice • Introducción • Estado del arte • Desarrollo de la investigación • Prototipo desarrollado • Conclusiones 45

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

  47. Prototipos Prototipos Arquitectura (Alto Nivel) 47

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

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

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

More Related