Un lenguaje de modelado es cualquier lenguaje artificial que se pueda utilizar para expresar datos , información o conocimientos o sistemas en una estructura definida por un conjunto coherente de reglas. Las reglas se utilizan para interpretar el significado de los componentes de la estructura de un lenguaje de programación.
Un lenguaje de modelado puede ser gráfico o textual. [1]
Un ejemplo de un lenguaje de modelado gráfico y un lenguaje de modelado textual correspondiente es EXPRESS .
No todos los lenguajes de modelado son ejecutables y, en el caso de los que lo son, su uso no implica necesariamente que los programadores ya no sean necesarios. Por el contrario, los lenguajes de modelado ejecutables tienen como objetivo aumentar la productividad de los programadores expertos, de modo que puedan abordar problemas más complejos, como la computación paralela y los sistemas distribuidos .
En la literatura aparecen numerosos lenguajes de modelado.
Ejemplos de lenguajes de modelado gráfico en el campo de la informática, la gestión de proyectos y la ingeniería de sistemas:
Ejemplos de lenguajes de modelado gráfico en otros campos de la ciencia.
Los modelos de información también pueden expresarse en lenguajes naturales formalizados, como el Gellish. [3] El Gellish tiene variantes de lenguaje natural como el inglés formal Gellish y el holandés formal Gellish (Gellish Formeel Nederlands), etc. El inglés formal Gellish es un lenguaje de representación de información o lenguaje de modelado semántico que se define en el Diccionario-Taxonomía del Inglés Gellish, que tiene la forma de una Taxonomía-Ontología (similar al holandés). El inglés formal Gellish no solo es adecuado para expresar conocimiento, requisitos y diccionarios, taxonomías y ontologías, sino también información sobre cosas individuales. Toda esa información se expresa en un solo idioma y, por lo tanto, se puede integrar, independientemente de la cuestión de si se almacena en bases de datos centrales, distribuidas o federadas. Los modelos de información en inglés formal Gellish consisten en colecciones de expresiones en inglés formal Gellish, que utilizan términos de lenguaje natural y frases formalizadas. Por ejemplo, un modelo de información geográfica podría constar de varias expresiones en inglés formal Gellish, como:
- La Torre Eiffel <se encuentra en> París- París <está clasificada como> ciudad
Considerando que las necesidades de información y conocimientos pueden expresarse, por ejemplo, de la siguiente manera:
- la torre <estará ubicada en un> área geográfica- ciudad <es un tipo de> área geográfica
Estas expresiones del inglés formal Gellish utilizan nombres de conceptos (como "ciudad") y frases que representan tipos de relación (como ⟨se encuentra en⟩ y ⟨está clasificado como⟩ ) que deben seleccionarse del Diccionario-Taxonomía de Inglés Gellish (o de su propio diccionario de dominio). El Diccionario-Taxonomía de Inglés Gellish permite la creación de modelos de información semánticamente ricos, porque el diccionario contiene más de 600 tipos de relación estándar y contiene definiciones de más de 40000 conceptos. Un modelo de información en Gellish puede expresar hechos o hacer afirmaciones, consultas y respuestas.
En el campo de la informática recientemente han surgido tipos de lenguajes de modelado más específicos.
Los lenguajes de modelado algebraico (AML) son lenguajes de programación de alto nivel para describir y resolver problemas de alta complejidad para cálculos matemáticos a gran escala (es decir, problemas de tipo optimización a gran escala). Una ventaja particular de los AML como AIMMS , AMPL , GAMS , Gekko , Mosel , OPL , MiniZinc y OptimJ es la similitud de su sintaxis con la notación matemática de los problemas de optimización. Esto permite una definición muy concisa y legible de los problemas en el dominio de la optimización, que está respaldada por ciertos elementos del lenguaje como conjuntos, índices, expresiones algebraicas, potentes variables de manejo de datos e índices dispersos, restricciones con nombres arbitrarios. La formulación algebraica de un modelo no contiene ninguna pista sobre cómo procesarlo.
Los lenguajes de comportamiento están diseñados para describir el comportamiento observable de sistemas complejos que constan de componentes que se ejecutan simultáneamente. Estos lenguajes se centran en la descripción de conceptos clave como: concurrencia, no determinismo, sincronización y comunicación. Los fundamentos semánticos de los lenguajes de comportamiento son el cálculo de procesos o el álgebra de procesos .
Un lenguaje de modelado específico de una disciplina (DspM) se centra en los resultados asociados a una etapa específica del ciclo de vida del desarrollo de software. Por lo tanto, dicho lenguaje ofrece un vocabulario, una sintaxis y una notación distintos para cada etapa, como descubrimiento, análisis, diseño, arquitectura, contracción, etc. Por ejemplo, para la fase de análisis de un proyecto, el modelador emplea una notación de análisis específica para entregar un diagrama de propuesta de análisis. Sin embargo, durante la fase de diseño, se utiliza la notación de diseño lógica para representar la relación entre las entidades del software. Además, las mejores prácticas del lenguaje de modelado específico de una disciplina no impiden que los profesionales combinen las distintas notaciones en un solo diagrama.
El modelado específico de dominio (DSM) es una metodología de ingeniería de software para diseñar y desarrollar sistemas, en la mayoría de los casos sistemas de TI como software de computadora. Implica el uso sistemático de un lenguaje gráfico específico de dominio (DSL) para representar las diversas facetas de un sistema. Los lenguajes DSM tienden a admitir abstracciones de nivel superior que los lenguajes de modelado de propósito general, por lo que requieren menos esfuerzo y menos detalles de bajo nivel para especificar un sistema determinado.
Un lenguaje de modelado específico de un marco (FSML) es un tipo de lenguaje de modelado específico de dominio que está diseñado para un marco de aplicación orientado a objetos. Los FSML definen abstracciones proporcionadas por el marco como conceptos FSML y descomponen las abstracciones en características. Las características representan pasos o elecciones de implementación.
Un concepto FSML se puede configurar seleccionando características y proporcionando valores para las características. Esta configuración de concepto representa cómo se debe implementar el concepto en el código. En otras palabras, la configuración de concepto describe cómo se debe completar el marco para crear la implementación del concepto.
Los datos vinculados y la ingeniería de ontologías requieren "lenguajes anfitriones" para representar entidades y las relaciones entre ellas , restricciones entre las propiedades de las entidades y las relaciones, y atributos de metadatos . JSON-LD y RDF son dos lenguajes importantes (y semánticamente casi equivalentes) en este contexto, principalmente porque admiten la reificación y contextualización de declaraciones , que son propiedades esenciales para respaldar la lógica de orden superior necesaria para razonar sobre los modelos. La transformación de modelos es un ejemplo común de dicho razonamiento.
Los lenguajes de modelado de objetos son lenguajes de modelado basados en un conjunto estandarizado de símbolos y formas de organizarlos para modelar (parte de) un diseño de software orientado a objetos o un diseño de sistema.
Algunas organizaciones los utilizan ampliamente en combinación con una metodología de desarrollo de software para avanzar desde la especificación inicial hasta un plan de implementación y comunicar dicho plan a todo un equipo de desarrolladores y partes interesadas. Debido a que un lenguaje de modelado es visual y tiene un nivel de abstracción más alto que el código, el uso de modelos fomenta la generación de una visión compartida que puede evitar problemas de interpretación divergente más adelante en el desarrollo. A menudo, se utilizan herramientas de modelado de software para construir estos modelos, que luego pueden traducirse automáticamente a código.
El lenguaje de modelado de realidad virtual (VRML), antes de 1995 conocido como lenguaje de marcado de realidad virtual, es un formato de archivo estándar para representar gráficos vectoriales interactivos tridimensionales (3D), diseñado particularmente teniendo en mente la World Wide Web.
Se aplican varios tipos de lenguajes de modelado en diferentes disciplinas, incluidas la informática , la gestión de la información , el modelado de procesos empresariales , la ingeniería de software y la ingeniería de sistemas . Los lenguajes de modelado se pueden utilizar para especificar:
Los lenguajes de modelado están pensados para ser utilizados para especificar con precisión los sistemas de modo que las partes interesadas (por ejemplo, clientes, operadores, analistas, diseñadores) puedan comprender mejor el sistema que se está modelando.
Los lenguajes de modelado más maduros son precisos, consistentes y ejecutables. Se espera que las técnicas de diagramación informal aplicadas con herramientas de dibujo produzcan representaciones pictóricas útiles de los requisitos, estructuras y comportamientos del sistema, que pueden ser útiles para la comunicación, el diseño y la resolución de problemas, pero no se pueden usar de manera programática. [4] : 539 Sin embargo, se espera que los lenguajes de modelado ejecutables aplicados con el soporte de herramientas adecuado automaticen la verificación y validación del sistema , la simulación y la generación de código a partir de las mismas representaciones.
Una revisión de los lenguajes de modelado es esencial para poder determinar qué lenguajes son apropiados para diferentes entornos de modelado. En el término entornos incluimos las partes interesadas, el dominio y el conocimiento relacionado. Evaluar la calidad del lenguaje es un medio que apunta a lograr mejores modelos.
En este trabajo se define la calidad del lenguaje de acuerdo con el marco SEQUAL para la calidad de los modelos desarrollado por Krogstie, Sindre y Lindland (2003), ya que se trata de un marco que conecta la calidad del lenguaje con un marco para la calidad general del modelo. En este marco se utilizan cinco áreas para describir la calidad del lenguaje y se supone que estas expresan tanto la notación conceptual como la visual del lenguaje. No entraremos en una explicación exhaustiva del marco de calidad subyacente de los modelos, sino que nos concentraremos en las áreas utilizadas para explicar el marco de calidad del lenguaje.
El marco de trabajo establece la capacidad de representar el dominio como adecuación al dominio. La declaración adecuación puede ser un poco vaga, pero en este contexto particular significa poder expresar . Lo ideal sería que solo se pudieran expresar cosas que están en el dominio, pero que se fuera lo suficientemente potente como para incluir todo lo que está en el dominio. Este requisito puede parecer un poco estricto, pero el objetivo es obtener un modelo expresado visualmente que incluya todo lo relevante para el dominio y excluya todo lo que no sea apropiado para el dominio. Para lograr esto, el lenguaje debe tener una buena distinción de qué notaciones y sintaxis es ventajoso presentar.
Para evaluar la idoneidad de los participantes, tratamos de identificar en qué medida el lenguaje expresa el conocimiento de las partes interesadas. Esto implica desafíos, ya que el conocimiento de las partes interesadas es subjetivo. El conocimiento de las partes interesadas es tanto tácito como explícito. Ambos tipos de conocimiento son de carácter dinámico. En este marco, solo se tiene en cuenta el tipo explícito de conocimiento. El lenguaje debe expresar en gran medida todo el conocimiento explícito de las partes interesadas que sea relevante para el dominio.
El último párrafo afirma que el conocimiento de las partes interesadas debe presentarse de forma adecuada. Además, es imperativo que el lenguaje pueda expresar todo el conocimiento explícito posible de las partes interesadas. Ningún conocimiento debe quedar sin expresar por deficiencias en el lenguaje.
La adecuación a la comprensión garantiza que los actores sociales comprendan el modelo gracias a un uso coherente del lenguaje. Para lograrlo, el marco incluye un conjunto de criterios. La importancia general que estos expresan es que el lenguaje debe ser flexible, fácil de organizar y fácil de distinguir entre las diferentes partes del lenguaje internamente y de otros lenguajes. Además, el objetivo debe ser lo más simple posible y que cada símbolo del lenguaje tenga una representación única.
Esto también está relacionado con la estructura de los requisitos de desarrollo.
Para garantizar que el dominio realmente modelado sea utilizable para el análisis y el procesamiento posterior, el lenguaje debe garantizar que sea posible razonar de manera automática. Para lograrlo, debe incluir sintaxis y semántica formales. Otra ventaja de la formalización es la capacidad de descubrir errores en una etapa temprana. No siempre ocurre que el lenguaje más adecuado para los actores técnicos sea el mismo que para los actores sociales.
El lenguaje utilizado es apropiado para el contexto organizacional, por ejemplo, que el lenguaje esté estandarizado dentro de la organización o que esté respaldado por herramientas elegidas como estándar en la organización.