Trataremos de llevar la ingeniería de software a una necesidad real, aportando un DSL y una herramienta visual que permita facilitar el desarrollo de aplicaciones colaborativas y la obtención del diseño de aplicaciones existentes mediante ingeniería inversa.
En esta etapa escribiré algunas notas de interés sobre el tema.
Un lenguaje de dominio específico (Domain-Specific Language: DSL) es un lenguaje que permite a través de notaciones apropiadas y abstracciones, expresar un dominio de problemas específico [1]. Muchos lenguajes son de un dominio específico más que de propósito general. [2] Existen otros nombres para un DSL [3] como:
- Pequeños lenguajes
- Macros
- Lenguajes de aplicación
- Lenguajes orientados a problemas
- Expresar en un nivel de abstracción el dominio del problema
- Son concisos, autodocumentados y reutilizables para diferentes propósitos
- Aumentan la productividad, lectura, mantenimiento y portabilidad
- Describe un dominio de conocimiento, conservándolo y reutilizándolo
En el modelado de un dominio específico se pueden distinguir al menos cuatro direcciones: [5]
- Conceptos del desarrollador o del experto del dominio. Cuando el lenguaje es modelado por un experto es más fácil de entender.
- Salida generada. Definición de la estructura de código requerida.
- Look and feel del sistema construido. El modelo debe entenderse claramente cuando es visto por el usuario final.
- Espacio de variabilidad. Definiciones de lenguajes flexibles que puedan extenderse para ser empleadas en futuras variantes
- Una definición de dominio que describe el alcance del dominio
- Terminología del dominio (vocabulario, ontología)
- Descripciones de los conceptos del dominio
- Modelos característicos que describen las constantes y variables de los conceptos del dominio y sus interdependencias
[1] A. v. Deursen, P. Klint, and J. Visser, "Domain-specific languages: an annotated bibliography " SIGPLAN Not., vol. 35, pp. 26-36, 2000.
[2] M. Mernik and A. M. Sloane, "When and how to develop domain-specific languages," ACM Computing Surveys (CSUR), vol. 37, pp. 316-344, 2005.
[3] Wikipedia, "Domain-specific programming language," 2007.
[4] A. Ledeczi, A. Bakay, M. Maroti, P. Volgyesi, G. Nordstrom, J. Sprinkle, and G. Karsai, "Composing domain-specific design environments," Computer, vol. 34, pp. 44-51, 2001.
[5] J. Luoma, S. Kelly, and J. P. Tolvanen, "Defining Domain-Specific Modeling Languages: Collected Experiences," Proceedings of the 4th OOPSLA Workshop on Domain-Specific Modeling (DSM04), 2004.
No hay comentarios.:
Publicar un comentario