La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

LENGUAJES ESPECÍFICOS DE DOMINIO - DSL. El usar lenguajes generalistas ha tenido bastante aceptación y éxito hasta el día de hoy, de hecho poseen una.

Presentaciones similares


Presentación del tema: "LENGUAJES ESPECÍFICOS DE DOMINIO - DSL. El usar lenguajes generalistas ha tenido bastante aceptación y éxito hasta el día de hoy, de hecho poseen una."— Transcripción de la presentación:

1 LENGUAJES ESPECÍFICOS DE DOMINIO - DSL

2 El usar lenguajes generalistas ha tenido bastante aceptación y éxito hasta el día de hoy, de hecho poseen una ventaja indudable: con dichos lenguajes se puede resolver cualquier tipo de problema. Sin embargo esta ventaja no es gratis, al contrario, hay que pagar un precio, que es que no todos los problemas son igualmente sencillos de resolver. De hecho, dependiendo del lenguaje generalista que se use, un mismo problema es más sencillo o más difícil de resolver.

3 Ejemplo No. 1 Trabajar con listas o hacer algoritmos recursivos es muy simple en LISP, sin embargo en BASIC o COBOL no es tan sencillo. Suponga que en cambio, con COBOL es sencillo definir algoritmos de negocio. Ejemplo No. 2 Generar una página web dinámica es sencillo en PHP pero más complejo en JAVA. y JSP?  JSP no es lenguaje JAVA, es un DSL.

4 Que es mejor? Tener un cuchillo multiuso para cualquier cosa? Tener un set de cuchillo de postre, de carne, de pescado y un bisturí y elegir los cuchillos que mejor se adapten a la situación?.

5 DSL Lenguaje de programación dedicado a un problema de dominio en particular, o una técnica de representación o resolución de problemas específica. a.Lenguajes de programación de propósito general: C o Java. b.Lenguajes de modelado de propósito general: UML. Los DSL tienen metas de diseño importantes que contrastan con aquellas de los lenguajes de propósito general: 1.Tienen menos alcance. 2.Son muchos más expresivos dentro de su dominio.

6 DSL - Características a.Por lo general (no necesariamente) simples: No tiene porque ser Turing Complete b.No está pensado para describir la totalidad del sistema, sino para ser complementado con otros lenguajes c.Ofrece un mayor nivel de abstracción, que los lenguajes de propósito general d.Esconde complejidades innecesarias

7 Ventajas de los DSL a.Los DSL permiten expresar soluciones usando los términos y el nivel de abstracción apropiado para el dominio del problema. En consecuencia, los mismos expertos de dominio pueden comprender, validar, modificar y a menudo desarrollar programas en DSL. b.Es código auto-documentado. c.Los DSL mejoran la calidad, productividad, confianza, mantenibilidad, portabilidad y reusabilidad de las aplicaciones. d.Los DSL permiten validaciones a nivel del dominio. Mientras las construcciones del lenguaje estén correctas, cualquier sentencia escrita puede considerarse correcta.

8 Desventajas de los DSL a.El costo de aprender un nuevo lenguaje vs. su aplicación limitada. b.El costo de diseñar, implementar y mantener un DSL y las herramientas para trabajar con él. c.Encontrar, establecer y mantener el alcance adecuado. d.Dificultad para balancear las ventajas y desventajas entre las construcciones de los DSL y de los lenguajes de propósito general. e.Potencial pérdida de eficiencia y rendimiento en comparación con el software escrito "a mano".

9 DSL Los lenguajes de propósito general se utilizan para hacer variados tipos de aplicaciones. Los lenguajes de domino específico son creados para trabajar en tareas especificas y ambientes bien delimitados

10 Que ejemplos de DSL he usado?

11 DSL - Ejemplos a.SQL para gestionar consultas. b.XML para transportar datos, y/o persistencia. c.HTML para definir interfaces de usuario. (Este DSL se ha ido “extendiendo” para ir convirtiéndolo cada vez más en un lenguaje generalista). d.CSS para definir interfaces de usuario a nivel de presentación pura. e.JSP. Para definir interfaces de usuario web. f.WSDL, para especificar interfaces de datos de servicios web. g.XML de configuración de spring, para definir grafos de objetos. h.XML de hibernate para hacer mapeo entidad/relación. i.jMock para definir Mock Objects.

12 La principal idea compartida por todos los paradigmas englobados dentro del Desarrollo de Software Dirigido por Modelos (DSDM) es la conveniencia de que los programadores empleen lenguajes de más alto nivel de abstracción que los lenguajes de programación, esto es, lenguajes que manejen conceptos más cercanos al dominio de la aplicación - DSL.

13 Para elaborar un DSL debe realizar un análisis de dominio formal. La salida de esta etapa es un modelo de dominio que consiste de: a.Una definición de dominio que describe el alcance del dominio b.Terminología del dominio (vocabulario, ontología) c.Descripciones de los conceptos del dominio d.Modelos característicos que describen las constantes y variables de los conceptos del dominio y sus interdependencias

14 Metamodelado: análisis, diseño y construcción de los metamodelos necesarios para cubrir un determinado tipo de problema, así como las reglas y las restricciones aplicables. Metamodelo: conjunto de conceptos del dominio a modelar (metaclases) y las relaciones entre ellas (meta asociaciones) Objetivo: definir los conceptos y relaciones del dominio del problema que se quiere abordar mediante un diagrama de clases,. Estos se definen de forma abstracta, independientemente del formato de representación deseado. Los metamodelos definirán las sintaxis abstractas del leguaje FASES EN EL DESARROLLO DE DSL EXTERNO 1.Diseño de un metamodelo 2.Desarrollo dl formato de representación 3.Generación de transformaciones 4.Construcción de un IDE

15  Las ontologías proveen todas las características de vocabulario y taxonomía que se necesitan para especificar un dominio del conocimiento.  El metamodelo es un mecanismo para definir la sintaxis abstracta de un lenguaje de modelamiento, que determina la validez de los modelos en esos lenguajes. Web Semántica, Ontologías y la relación con los metamodelos

16 JESS (Java ExpertSystem Shell) Es un lenguaje de programación basado en CLIPS. Fue creado por Ernest Friedman-Hill de Sandia National Laboratories en Livermore, CA. Se puede usar de dos modos: 1.Por un lado se puede usar como un Sistema Experto (Sistema Basado en Conocimiento). Un Sistema Experto es un programa que emula al razonamiento humano, de manera que ejecuta ciertas reglas (definidas por el programador) sobre el conocimiento que se tiene. Este uso se aplica a los agentes inteligentes, por lo que es donde profundizaremos más. 2.Por otro lado, JESS se ha escrito en JAVA y se puede integrar perfectamente en él accediendo directamente en sus clases y librerías para conseguir un desarrollo más rápido de las aplicaciones. JESS también puede tener otros usos como incluirse en navegadores o en applets (con la clase jess.ConsoleApplet), pero no es aconsejable porque suele ocupar bastante, es mejor dejarlo en el servidor.

17 JESS vs. Prolog JESS y Prolog son lenguajes declarativos, es decir, basados en las matemáticas y en la lógica, en oposición a otros tipos de lenguajes más comprensibles para el razonamiento humano. Por ser del mismo tipo, el hecho de conocer uno de estos lenguajes puede ayudar mucho a la hora de empezar a estudiar el otro.

18 OWL Protégé Ruby http://nereida.deioc.ull.es/~lpp/perlexamples/node751.html Aplicación de una ontología para la estructuración semántica de la física estática utilizada en ingeniería civil http://biblioteca.uniminuto.edu/ojs/index.php/Inventum/article/viewFile/479/4 52

19 MakeUrExam Domain Specific Language - MakeUrExam es un DSL (lenguaje de dominio específico) utilizado para la creación y realización de exámenes. Fuente: https://github.com/alu0100697063/PL_ProyectoFinal_MakeUrExa m/wiki

20 Referencias: 1.Un Lenguaje Específico de Dominio para la Generación Automática de Código en Sistemas de Monitoreo Inalámbrico de Silos Bolsa. Fuente: http://caeti.uai.edu.ar/archivos/305_PAPER_LACCEI_2011.PDFhttp://caeti.uai.edu.ar/archivos/305_PAPER_LACCEI_2011.PDF 2.Aplicando herramientas MDE en la definición de un lenguaje especifico de dominio para la gestión de modelos. Fuente: http://41jaiio.sadio.org.ar/sites/default/files/336_ASSE_2012.pdfhttp://41jaiio.sadio.org.ar/sites/default/files/336_ASSE_2012.pdf 3.Aplicación del Modelado Específico de Dominio a las Redes de Sensores Inalámbricos. Fuente: http://repositorio.bib.upct.es/dspace/bitstream/10317/117/1/pfc2535.pdf http://repositorio.bib.upct.es/dspace/bitstream/10317/117/1/pfc2535.pdf 4.Lenguaje especifico de dominio para obtener indicadores del desarrollo de competencias a través de un LMS. Fuente: http://rodin.uca.es/xmlui/bitstream/handle/10498/15529/memoria.pdf?sequence=1http://rodin.uca.es/xmlui/bitstream/handle/10498/15529/memoria.pdf?sequence=1 5.Interpretación dinámica de múltiples lenguajes de dominio específico. Fuente: http://www.iiis.org/CDs2012/CD2012ADII/ATIC_2012/PapersPdf/AT342PL.pdf http://www.iiis.org/CDs2012/CD2012ADII/ATIC_2012/PapersPdf/AT342PL.pdf 6.Definición de Lenguajes de Modelos MDA vs DSL. Fuente: https://www.uclm.es/dep/tsi/pdf/Informe_T.pdf https://www.uclm.es/dep/tsi/pdf/Informe_T.pdf


Descargar ppt "LENGUAJES ESPECÍFICOS DE DOMINIO - DSL. El usar lenguajes generalistas ha tenido bastante aceptación y éxito hasta el día de hoy, de hecho poseen una."

Presentaciones similares


Anuncios Google