Un lenguaje de modelado es cualquier lenguaje artificial que se puede 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 la interpretación del significado de los componentes de la estructura de un lenguaje de programación.
Descripción general
Un lenguaje de modelado puede ser gráfico o textual. [1]
- Los lenguajes de modelado gráfico utilizan una técnica de diagrama con símbolos con nombre que representan conceptos y líneas que conectan los símbolos y representan relaciones y varias otras notaciones gráficas para representar restricciones.
- Los lenguajes de modelado textual pueden utilizar palabras clave estandarizadas acompañadas de parámetros o términos y frases en lenguaje natural para crear expresiones interpretables por computadora.
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.
Tipos de lenguajes de modelado
Tipos gráficos
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:
- Los árboles de comportamiento son un lenguaje de modelado gráfico formal que se utiliza principalmente en sistemas e ingeniería de software . Se utilizan comúnmente para representar de forma inequívoca los cientos o incluso miles de requisitos de lenguaje natural que se utilizan normalmente para expresar las necesidades de las partes interesadas en un sistema integrado de software a gran escala.
- La notación de modelado de procesos de negocio (BPMN y la forma XML BPML) es un ejemplo de un lenguaje de modelado de procesos .
- La teoría CK consiste en un lenguaje de modelado para procesos de diseño.
- DRAKON es un lenguaje de modelado algorítmico de propósito general para especificar sistemas con uso intensivo de software, una representación esquemática de un algoritmo o un proceso paso a paso y una familia de lenguajes de programación .
- EXPRESS y EXPRESS-G (ISO 10303-11) es un lenguaje de modelado de datos de propósito general estándar internacional .
- El lenguaje de modelado empresarial extendido (EEML) se utiliza comúnmente para el modelado de procesos de negocio en varias capas.
- Un diagrama de flujo es una representación esquemática de un algoritmo o de un proceso paso a paso.
- Conceptos Fundamentales de Modelado (FMC), lenguaje de modelado para sistemas con uso intensivo de software.
- IDEF es una familia de lenguajes de modelado , que incluye IDEF0 para modelado funcional, IDEF1X para modelado de información, IDEF3 para modelado de procesos de negocio, IDEF4 para diseño orientado a objetos e IDEF5 para modelado de ontologías.
- Jackson Structured Programming (JSP) es un método de programación estructurada basado en correspondencias entre la estructura del flujo de datos y la estructura del programa.
- LePUS3 es un lenguaje de descripción de diseño visual orientado a objetos y un lenguaje de especificación formal que es adecuado principalmente para modelar programas grandes orientados a objetos ( Java , C++ , C# ) y patrones de diseño .
- Lifecycle Modeling Language es un lenguaje estándar abierto para ingeniería de sistemas que soporta todo el ciclo de vida del sistema : etapas conceptuales, de utilización, de soporte y de retiro.
- El modelado de roles de objetos (ORM) en el campo de la ingeniería de software es un método de modelado conceptual y puede utilizarse como herramienta para el análisis de información y reglas.
- Las redes de Petri utilizan variaciones de exactamente una técnica de diagramación y topología, a saber, el gráfico bipartito . La simplicidad de su interfaz de usuario básica permitió fácilmente un amplio soporte de herramientas a lo largo de los años, particularmente en las áreas de verificación de modelos, simulación orientada gráficamente y verificación de software.
- Southbeach Notation es un lenguaje de modelado visual que se utiliza para describir situaciones en términos de agentes que se consideran útiles o perjudiciales desde la perspectiva del modelador. La notación muestra cómo interactúan los agentes entre sí y si esta interacción mejora o empeora la situación.
- El lenguaje de especificación y descripción (SDL) es un lenguaje de especificación destinado a la especificación y descripción inequívoca del comportamiento de sistemas reactivos y distribuidos.
- SysML es un lenguaje de modelado de dominio específico para ingeniería de sistemas que se define como un perfil UML (personalización).
- El lenguaje de modelado unificado (UML) es un lenguaje de modelado de propósito general que es un estándar de la industria para especificar sistemas que requieren un uso intensivo de software. UML 2.0, la versión actual, admite trece técnicas de diagramación diferentes y tiene un amplio soporte de herramientas.
- El marco de modelado orientado a servicios (SOMF) es un lenguaje holístico para diseñar modelos de arquitectura a nivel empresarial y de aplicación en el espacio de la arquitectura empresarial, la virtualización, la arquitectura orientada a servicios (SOA), la computación en la nube y más. [2]
- El lenguaje de descripción de arquitectura (ADL) es un lenguaje utilizado para describir y representar la arquitectura de sistemas de un sistema .
- El lenguaje de diseño y análisis de arquitectura (AADL) es un lenguaje de modelado que admite análisis tempranos y repetidos de la arquitectura de un sistema con respecto a propiedades críticas para el rendimiento a través de una notación extensible, un marco de herramientas y una semántica definida con precisión.
Ejemplos de lenguajes de modelado gráfico en otros campos de la ciencia.
- EAST-ADL es un lenguaje de modelado de dominio específico dedicado al diseño de sistemas automotrices.
- Energy Systems Language (ESL), un lenguaje que tiene como objetivo modelar la energía ecológica y la economía global.
- IEC 61499 define un lenguaje de modelado de dominio específico dedicado a distribuir sistemas de control y medición de procesos industriales.
Tipos textuales
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 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 del inglés formal Gellish, que utilizan términos del lenguaje natural y frases formalizadas. Por ejemplo, un modelo de información geográfica podría constar de varias expresiones del 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.
Tipos más específicos
En el campo de la informática recientemente han surgido tipos de lenguajes de modelado más específicos.
Algebraico
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.
Conductual
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 .
Específico de la disciplina
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.
Específico del dominio
El modelado específico de dominio (DSM) es una metodología de ingeniería de software para diseñar y desarrollar sistemas, generalmente 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.
Específico del marco
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.
Modelado de información y conocimiento
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.
Orientado a objetos
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.
Realidad virtual
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 cuenta la World Wide Web.
Otros
- Lenguaje de descripción de arquitectura
- Lenguaje de modelado facial
- Lenguaje de modelado generativo
- Lenguaje de modelado Java
- Promesa
- Lenguaje de modelado de Rebeca
- Lenguaje de modelado de servicios
- Lenguaje de modelado de servicios web
- X3D
Aplicaciones
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:
- Requisitos del sistema,
- estructuras y
- comportamientos.
Los lenguajes de modelado están pensados para ser utilizados para especificar sistemas con precisión, 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.
Calidad
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.
Marco de evaluación
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.
Adecuación del dominio
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.
Adecuación del participante
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.
Adecuación del modelador
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.
Comprensibilidad Adecuación
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 las diferentes partes del lenguaje internamente, así como de otros idiomas. Además de esto, 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.
Adecuación de la herramienta
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.
Adecuación organizacional
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.
Véase también
- AltaRica – Lenguaje de modelado
- Modelos analógicos – Relación de los tipos de sistemas con la dinámica correspondiente
- Antropomorfismo – Atribución de rasgos humanos a entidades no humanas
- Modelo de datos – Modelo abstracto
- Modelado de datos : creación de un modelo de los datos de un sistema
- Metamodelado : concepto de ingeniería de software
- Pruebas basadas en modelos (MBT)
- Arquitectura basada en modelos : enfoque de diseño de software
- Ingeniería basada en modelos (MDE)
- Perspectiva de modelado
- Lenguaje de ontología : lenguaje formal utilizado para construir ontologías.
- Pseudocódigo : Descripción de un algoritmo que se parece a un programa de computadora.
- Modelado científico – Actividad científica que produce modelos
- Modelado orientado a servicios : modelado de arquitectura orientada a servicios en sistemas empresariales y de softwarePáginas que muestran descripciones de wikidata como alternativa
- Modelado visual
- Lenguaje visual – Sistema de comunicación mediante elementos visuales
- Lenguaje de programación visual : lenguaje de programación escrito gráficamente por un usuario.
Referencias
- ^ He, Xiao; Ma, Zhiyi; Shao, Weizhong; Li, Ge (julio de 2007). "Un metamodelo para la notación de lenguajes de modelado gráfico". 31.ª Conferencia anual internacional sobre software y aplicaciones informáticas - vol. 1- (COMPSAC 2007) . Vol. 1. págs. 219–224. CiteSeerX 10.1.1.526.5321 . doi :10.1109/COMPSAC.2007.27. ISBN. 978-0-7695-2870-0.
- ^ Bell, Michael (2008). "Introducción al modelado orientado a servicios". Modelado orientado a servicios: análisis, diseño y arquitectura de servicios . Wiley & Sons. ISBN 978-0-470-14111-3.
- ^ * Andries van Renssen, Gellish, Un lenguaje ontológico extensible genérico, Universidad Tecnológica de Delft, 2005.
- ^ Baltes, Sebastian; Diehl, Stephan (11 de noviembre de 2014). "Bocetos y diagramas en la práctica". Actas del 22.º Simposio internacional ACM SIGSOFT sobre fundamentos de la ingeniería de software . FSE 2014. Hong Kong, China: Association for Computing Machinery. págs. 530–541. arXiv : 1706.09172 . doi :10.1145/2635868.2635891. ISBN . 978-1-4503-3056-5.S2CID2436333 .
Lectura adicional
- John Krogstie (2003) "Evaluación de UML utilizando un marco de calidad genérico". SINTEF Telecom and Informatics e IDI, NTNU, Noruega
- Krogstie y Sølvsberg (2003). Ingeniería de sistemas de información: modelado conceptual desde una perspectiva de calidad . Instituto de informática y ciencias de la información.
- Anna Gunhild Nysetvold y John Krogstie (2005). "Evaluación de lenguajes de modelado de procesamiento empresarial utilizando un marco de calidad genérico". Instituto de Ciencias de la Computación y la Información.
Enlaces externos
- Conceptos fundamentales de modelado
- Portal de lenguajes de modelado de software
- BIP - Construcción de sistemas en tiempo real basada en componentes incrementales
- Inglés formal gellish