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.

Slides:



Advertisements
Presentaciones similares
Implementación ISO 9001:
Advertisements

CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
INSTITUTO TECNOLOGICO DE MINATITLAN
Sistema de Gestión de Base de Datos
Inteligencia artificial
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
FUNDAMENTOS DE PROGRAMACION
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Prof. Flor Narciso Departamento de Computación
Integrantes: Dennys Quintero José Ortega Simón Fagundez Caracas 09 de Febrero de 2015.
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Modelos del Proceso Omar de Jesús Rosales Hernández.
Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede.
Proceso de desarrollo de Software
Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos.
USO DE LAS HERRAMIENTAS CASE MARIA VERA ANGEL CEDEÑO.
INFORMATICA I PROYECTO SIRLA Jorge Walter Sosa Esteban Parra González Juan Camilo Morales.
Accesibilidad web. ¿Qué es la accesibilidad web? Hablar de Accesibilidad Web es hablar de un acceso universal a la Web, independientemente del tipo de.
Bases de datos XML Integrantes: Aaron Siles Anthony Brenes Geudy Marin Gustavo Calderon Sergio Calvo.
UNIVERSIDAD NACIONAL DE LOJA ÁREA DE LA EDUCACIÓN, EL ARTE Y LA COMUNICACIÓN CARRERA DE INFORMÁTICA EDUCATIVA MODULO IV DOCENTE Ing. : Lena Ruiz Rojas.
Ingenieria de Sistemas Juan Gamboa 10a. Tabla de Contenido Deficion Objetivo Social Perfil Profesional Pensum Universidades Semejanzas y diferencias con.
CAPABILITY MATURITY MODEL INTEGRATION Álvarez, Wilsandy V Castillo, Kerwint V García, María F.V
Sistemas EPR,s  Los sistemas ERP son sistemas integrales de gestión para la empresa. Se caracterizan por estar compuestos por diferentes partes integradas.
Yulieth A. Sánchez B. C.I: Exp: to de Mercadeo.
REPUBLICA BOLIVARIANA DE VENEZUELA MARACAIBO ESTADO ZULIA COLEGIO DE INGENIEROS DEL ESTADO ZULIA CURSO BÁSICO: MICROSOFT PROJECT Realizado por: Gabriela.
TEMA 2 PHP. Introducción e Instalación índice 1. Introducción 6. Primera Prueba 2. Requisitos 3. ¿Qué es MySQL? 4. ¿Qué es Apache? 5. WAMPServer Raquel.
TrasguNET, funcionalidades de la web Lola García Escribano Ingeniería de productoo Junio de 2010.
 Modelo de Datos MD  Conjunto de conceptos que permiten describir, a distintos niveles de abstracción, la estructura de una B.D. Que llamaremos ESQUEMA.
LÓGICA COMPUTACIONAL Y PROGRAMACIÓN PROPÓSITO INTRODUCCIÓN USO DE LA PROGRAMACIÓN Programación Lenguajes de Programación Sistema Operativo Elementos para.
Una visión práctica El profesional ante el portal ElRuido.com:
I.E.S. de Ingenio Departamento didáctico de Tecnología Nivel: 2º de Bachillerato Modalidad de Ciencias y Tecnología.
Tema 7: Ingeniería del software Definición de software El software es: 1. instrucciones (programas de computadora) que cuando se ejecutan proporcionan.
M E N U I N I C I A L PARTES PC PERIFERICOS C P U SOFTWARE 1 johnbonilla.es.tl.
Introducción En la ingeniería de software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor.
DOCENTE: MAYERLING SAGREDO Conceptualizando la ADMINISTRACION.
Diagrama de clases Silvia Herzovich Rodrigo Aronas Matias Silversteyn.
CENTRO UNIVERSITARIO UAEM TEXCOCO INGENIERÍA EN COMPUTACIÓN DISEÑO DE SISTEMAS M. En C.C. Ma. Dolores Arévalo Zenteno.
Sistema de gestión de contenidos (Content Management System) Sistema de gestión de contenidos (Content Management System)
ENERGIA TOTAL LIC. ARLEN CONTRERAS PRESENTADO POR :JHEISON XAVIER NAVARRO OCHOA 11° INSITUCION EDUCATIVA NUESTRA SEÑORA DE BELEN SEDE 4 LA DIVINA PASTORA.
1 Introducción a la Programación Estructurada Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006.
WEB 2.0.  La Web 2.0 es la siguiente generación Web en donde las aplicaciones son más interactivas.  El término Web 2.0 fue acuñado por O’Reilly Media.
Una base de datos, a fin de ordenar la información de manera lógica, posee un orden que debe ser cumplido para acceder a la información de manera coherente.
Conceptos de sistemas de información 4 Sistema de información formal –Es un medio informativo organizacionalmente eficaz, que es diseñado con la finalidad.
Entregables del Proyecto
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
CALIDAD Y VALIDACIÓN DE SISTEMAS EXPERTOS Teoría.
Administración de la Producción Administración de la Producción
Representación en espacio de estado
G ESTIÓN DE LA MEMORIA Paginación y segmentación.
Melissa Victoria Mendiola Peralta.  Los algoritmos son las series de pasos por los cuales se resuelven los problemas.
DIAGRAMAS DE FLUJO.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 7 – Funciones y Procedimientos.
Gestión en el Diseño Gráfico En mayor o menor escala todo trabajo de diseño requiere de un planteamiento a nivel de estrategia comunicacional, otro a nivel.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Extendiendo NDT para la catalogación de Requisitos.
Escuela Secundaria Isidro Fabela No. 519 Alumno: Jorge Giovanni Trinidad Montaño Grado: 3° Grupo: E Turno: Vespertino N.L: 46 Maestra: Maestra: Gema Dominga.
Fundamentos al Computador Software Software de Sistema Software de aplicación Software de programación Etapas del proceso de desarrollo de Software LOS.
Tema 3: El contenido de la enseñanza Objetivos Explicar los contenidos específicos y no específicos. Identificar un sistema de habilidades para la enseñanza.
Marco Teórico Referencial
Q UE ES LA PLATAFORMA E - LEARNING. Es un espacio virtual orientado a mejorar el aprendizaje a distancia, por medio del programa nos permite la creación.
1.2 Obtención y análisis de requerimientos Requerimiento Atributo o característica que describe el comportamiento de un sistema. Los requerimientos especifican.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
BASES DE DATOS ¿QUÉ SON LAS BASES DE DATOS?. ANTECEDENTES  El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado.
SOBRE LA DIFERENCIA ENTRE ANÁLISIS Y DISEÑO. Porqué es relevante para la interpretación de los modelos en la ingeniería dirigida por modelos.
Dario A. Montoya Mejia Presentación Formación Titulada Formación Por Proyectos.
Itinerario de Tecnología del Software. Itinerario de Tecnologías del Software Presentación Metodología y Tecnología de la Investigación (6). Tecnologías.
Lenguajes de Programación (Definición, Clasificación y Ejemplos)
Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje.
Tendencias Avanzadas de Ingeniería de Software.  Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora)
Transcripción de la presentación:

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

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.

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

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.

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

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.

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

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

Que ejemplos de DSL he usado?

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.

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.

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

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

 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

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.

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.

OWL Protégé Ruby Aplicación de una ontología para la estructuración semántica de la física estática utilizada en ingeniería civil 52

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: m/wiki

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: 2.Aplicando herramientas MDE en la definición de un lenguaje especifico de dominio para la gestión de modelos. Fuente: 3.Aplicación del Modelado Específico de Dominio a las Redes de Sensores Inalámbricos. Fuente: Lenguaje especifico de dominio para obtener indicadores del desarrollo de competencias a través de un LMS. Fuente: 5.Interpretación dinámica de múltiples lenguajes de dominio específico. Fuente: Definición de Lenguajes de Modelos MDA vs DSL. Fuente: