Lic. Patricia Scalzone patricias@vemn.com.ar Innovaciones de Modelado en una Software Factory Lic. Patricia Scalzone patricias@vemn.com.ar
Temario Antecedentes Lenguaje de Especificación de Dominio (DSL) Pasos para la definición de un DSL Ejemplos http://www.devx.com/enterprise/Article/30550/1954?pf=true
Antecedentes La evolución del modelado y desarrollo de Software Automatización Generación de Código Testing Documentación Integración de equipos Escenarios Software Factories Calidad del Software Grandes Proyectos Áreas de Empresas
Lenguajes de Especificación de Dominio Lenguajes de propósito general UML Otros DSL Permite especificar la solución en un alto nivel de abstracción utilizando conceptos de dominio. Un lenguaje de especificación de dominio es… un lenguaje específico para un dominio.
Pasos para definir un DSL Identificar las abstracciones y cómo trabajan juntas Especificar los conceptos del lenguaje y sus reglas (Metamodelo) Crear una representación visual del lenguaje (Notación) Definir los generadores para la verificación del modelo, generación de código, documentación, etc.
Abstracciones Lo más importante Mapea conceptos al problema del dominio Previene errores tempranos en la fase de diseño Minimiza el trabajo de especificación Hace al lenguaje más adecuado para la generación Permite describir cosas en términos de los problemas del dominio, en vez de conceptos de implementación, es también un buen resguardo para el futuro. Lo importante es lo que la aplicación hace, no cómo lo hace, o qué lenguaje o framework la usa.
Definición del Lenguaje Reglas, Propiedades y Restricciones del modelo Mapeo de los conceptos principales a los objetos de modelado: Conceptos secundarios Propiedades Conexiones Sub-Modelos Links a otros modelos en otros lenguajes
Notación Diagramas Matrices Tablas Texto plano No rectángulos iguales de UML para los diferentes conceptos Next, you need a visual representation of the language, usually a diagram, but sometimes a matrix, table, or plain text. The pictures in this article illustrate representations of different graphical modeling languages where the symbols and icons inside the pictures represent different language concepts. Good DSM tools allow you to define your own notation as it makes models much easier to create, read, and maintain. Using UML-like rectangles for all the different concepts is like trying to understand a foreign language where the only letter is A, with 20 slight variations of inflection
Generación Mapeo de los conceptos a código Lenguajes y Frameworks .NET (C++, C#, Phyton, Haskell, etc.) J2EE (Java) XML
Ejemplos - Modelado de Seguros
Ejemplos - Menú por Voz
Ejemplos
Ejemplos – Sistema Distribuido
Modelado de Colaboración de Ports
Modelado de Sistema Distribuidos
Ejemplo de Workflow de Kepler
Modelado de Workflow
Modelando en términos de dominio vs. modelando su código Idea de Dominio Assembler Mapear a código, implementar Producto Terminado Code Mapear a código, implementar Solucionar Problemas en términos de dominio Modelo UML Mapear a UML Generar, Agregar bloques Componentes y código Modelo DSVL Generación No mapeo!
Sistemas Embebidos
Resumen Antecedentes Domain Specific Language Pasos para la definición de un DSL En un futuro http://www.devx.com/enterprise/Article/30550/1954?pf=true
Referencias Microsoft Domain-Specific Language Tools DOME: GME: http://msdn.microsoft.com/vstudio/DSLTools DOME: http:// www.htc.honeywell.com/dome GME: http:// www.isis.vanderbilt.edu/projects/gme MetaEdit: http:// www.metacase.com OOPSLA Domain Specific Visualization Workshop (2002): http:// www.cis.uab.edu/info/OOPSLA-DSVL2 Meta-Modeling Resources: http:// www.metamodel.com Program-Transformation.Org http:// www.program-transformation.org DSM Forum http:// www.dsmforum.org
Lic. Patricia Scalzone patricias@vemn.com.ar Muchas Gracias !! Lic. Patricia Scalzone patricias@vemn.com.ar