Un lenguaje de modelado es una notación para expresar datos , información , conocimientos o sistemas en una estructura definida por un conjunto coherente de reglas.
Un lenguaje de modelado puede ser gráfico o textual. [ 1 ] Un lenguaje de modelado gráfico utiliza una técnica de diagramación con símbolos con nombre que representan conceptos y líneas que conectan los símbolos y representan relaciones, además de diversas notaciones gráficas para representar restricciones. Un lenguaje de modelado textual puede 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 su correspondiente lenguaje de modelado textual es EXPRESS .
No todos los lenguajes de modelado son ejecutables, y para aquellos que sí lo son, su uso no implica necesariamente que los programadores ya no sean necesarios. Al contrario, los lenguajes de modelado ejecutables están diseñados para 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 aparece un gran número de 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 la ingeniería de sistemas y software . Se emplean habitualmente para representar de forma inequívoca los cientos o incluso miles de requisitos en lenguaje natural que suelen utilizarse para expresar las necesidades de las partes interesadas en un sistema integrado de software a gran escala.
- La notación para el modelado de procesos de negocio (BPMN, y su formato XML BPML) es un ejemplo de 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 gran cantidad 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) son lenguajes de modelado de datos de propósito general, estándar internacional .
- El lenguaje de modelado empresarial extendido (EEML) se utiliza habitualmente para el modelado de procesos de negocio en varias capas.
- Un diagrama de flujo es una representación esquemática de un algoritmo o un proceso paso a paso.
- Lenguaje de modelado de Conceptos Fundamentales de Modelado (FMC) para sistemas con uso intensivo de software.
- IDEF es una familia de lenguajes de modelado , que incluye IDEF0 para el modelado funcional, IDEF1X para el modelado de información, IDEF3 para el modelado de procesos de negocio, IDEF4 para el diseño orientado a objetos e IDEF5 para el modelado de ontologías.
- La Programación Estructurada de Jackson (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 adecuado principalmente para modelar grandes programas orientados a objetos ( Java , C++ , C# ) y patrones de diseño .
- El lenguaje de modelado del ciclo de vida (Lifecycle Modeling Language) es un lenguaje de estándar abierto para la ingeniería de sistemas que admite el ciclo de vida completo del sistema : etapas conceptual, de utilización, de soporte y de retirada.
- El modelado de objetos y roles (ORM, por sus siglas en inglés) en el campo de la ingeniería de software es un método para el modelado conceptual y puede utilizarse como herramienta para el análisis de información y reglas.
- Las redes de Petri utilizan variaciones de una única técnica de diagramación y topología: el grafo bipartito . La sencillez de su interfaz de usuario básica facilitó un amplio soporte de herramientas a lo largo de los años, especialmente en las áreas de verificación de modelos, simulación gráfica y verificación de software.
- La notación de Southbeach es un lenguaje de modelado visual que se utiliza para describir situaciones en términos de agentes que, desde la perspectiva del modelador, se consideran útiles o perjudiciales. Esta notación muestra cómo interactúan los agentes entre sí y si dicha interacción mejora o empeora la situación.
- El Lenguaje de Especificación y Descripción (SDL, por sus siglas en inglés) es un lenguaje de especificación destinado a la especificación y descripción inequívocas del comportamiento de sistemas reactivos y distribuidos.
- SysML es un lenguaje de modelado específico de dominio para la ingeniería de sistemas que se define como un perfil UML (personalización).
- El Lenguaje Unificado de Modelado (UML) es un lenguaje de modelado de propósito general que constituye un estándar industrial para la especificación de sistemas con gran cantidad de software. UML 2.0, la versión actual, admite trece técnicas de diagramación diferentes y cuenta con un amplio soporte de herramientas.
- FLINT — lenguaje que permite una descripción de alto nivel de los sistemas normativos. [ 2 ]
- 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 ámbito de la arquitectura empresarial, la virtualización, la arquitectura orientada a servicios (SOA), la computación en la nube y más. [ 3 ]
- 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 análisis y diseño de arquitectura (AADL, por sus siglas en inglés) 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 específico de dominio dedicado al diseño de sistemas automotrices.
- El Lenguaje de Sistemas Energéticos (ESL, por sus siglas en inglés) es un lenguaje que busca modelar la energética ecológica y la economía global.
- La norma IEC 61499 define un lenguaje de modelado específico de dominio dedicado a los sistemas distribuidos de medición y control de procesos industriales.
Tipos de texto
Los modelos de información también pueden expresarse en lenguajes naturales formalizados, como el Gellish. [ 4 ] El Gellish tiene variantes de lenguaje natural como el Gellish Formal English y el Gellish Formal Dutch ( Gellish Formeel Nederlands ), etc. El Gellish Formal English es un lenguaje de representación de información o lenguaje de modelado semántico que se define en el Gellish English Dictionary-Taxonomy, que tiene la forma de una taxonomía-ontología (similar para el holandés). El Gellish Formal English 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 lenguaje y, por lo tanto, puede integrarse, independientemente de si se almacena en bases de datos centrales, distribuidas o federadas. Los modelos de información en Gellish Formal English consisten en colecciones de expresiones en Gellish Formal English, 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 Gellish Formal English, como:
- La Torre Eiffel <está ubicada en> París - París <está clasificada como> ciudad
mientras que los requisitos de información y el conocimiento pueden expresarse, por ejemplo, de la siguiente manera:
- la torre <deberá estar ubicada en un> área geográfica - ciudad <es un tipo de> área geográfica
Estas expresiones en inglés formal Gellish utilizan nombres de conceptos (como «ciudad») y frases que representan tipos de relaciones (como « está ubicada en » y « está clasificada 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, ya que contiene más de 600 tipos de relaciones estándar y definiciones de más de 40 000 conceptos. Un modelo de información en Gellish puede expresar hechos o formular afirmaciones, consultas y respuestas.
Tipos más específicos
En el campo de la informática, recientemente han surgido tipos más específicos de lenguajes de modelado.
Algebraico
Los lenguajes de modelado algebraico (AML) son lenguajes de programación de alto nivel para describir y resolver problemas de alta complejidad en computación matemática a gran escala (es decir, problemas de 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 ámbito de la optimización, lo cual se apoya en ciertos elementos del lenguaje como conjuntos, índices, expresiones algebraicas, potentes variables de manejo de datos e índices dispersos, y restricciones con nombres arbitrarios. La formulación algebraica de un modelo no contiene ninguna indicación sobre cómo procesarlo.
Conductual
Los lenguajes de comportamiento están diseñados para describir el comportamiento observable de sistemas complejos compuestos por componentes que se ejecutan simultáneamente. Estos lenguajes se centran en la descripción de conceptos clave como la concurrencia, el no determinismo, la sincronización y la 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 la disciplina (DspM) se centra en los entregables 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 propios para cada etapa, como descubrimiento, análisis, diseño, arquitectura, contracción, etc. Por ejemplo, en la fase de análisis de un proyecto, el modelador emplea una notación de análisis específica para generar un diagrama de proposición de análisis. En la fase de diseño, sin embargo, se utiliza una notación de diseño lógico para representar la relación entre las entidades de software. Además, las mejores prácticas del lenguaje de modelado específico de la disciplina no impiden que los profesionales combinen las distintas notaciones en un mismo diagrama.
Específico del dominio
El modelado específico de dominio (DSM, por sus siglas en inglés) es una metodología de ingeniería de software para el diseño y desarrollo de sistemas, principalmente sistemas de TI como el software. Implica el uso sistemático de un lenguaje gráfico específico de dominio (DSL, por sus siglas en inglés) para representar las diversas facetas de un sistema. Los lenguajes DSM suelen admitir abstracciones de nivel superior a las de 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 marco (FSML) es un tipo de lenguaje de modelado específico de dominio diseñado para un marco de aplicación orientado a objetos. Los FSML definen abstracciones proporcionadas por el marco como conceptos FSML y descomponen dichas abstracciones en características. Estas características representan pasos o decisiones de implementación.
Un concepto FSML se puede configurar seleccionando características y asignando valores a dichas características. Esta configuración de concepto representa cómo debe implementarse el concepto en el código. En otras palabras, la configuración del concepto describe cómo debe completarse el marco de trabajo para crear la implementación del concepto.
Modelado de información y conocimiento
Los datos enlazados 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 de enunciados y la contextualización , propiedades esenciales para sustentar la lógica de orden superior necesaria para razonar sobre los modelos. La transformación de modelos es un ejemplo común de este razonamiento.
Orientado a objetos
Un lenguaje para modelado orientado a objetos (OOM, por sus siglas en inglés) es una notación para modelar un sistema como orientado a objetos. Una organización puede usar OOM para documentar y describir la arquitectura y el diseño del sistema tanto para desarrolladores como para las partes interesadas. Dado que un lenguaje de modelado es visual y se encuentra en un nivel de abstracción superior al del código, el uso de modelos fomenta la generación de una visión compartida que puede prevenir problemas derivados de diferentes interpretaciones durante el desarrollo. A menudo, se utilizan herramientas de modelado de software para construir estos modelos, los cuales pueden luego traducirse automáticamente a código.
Realidad virtual
El lenguaje de modelado de realidad virtual (VRML), conocido antes de 1995 como lenguaje de marcado de realidad virtual, es un formato de archivo estándar para representar gráficos vectoriales interactivos tridimensionales (3D), diseñado especialmente pensando en la World Wide Web.
Otros
Aplicaciones
En diversas disciplinas, como la informática , la gestión de la información , el modelado de procesos de negocio , la ingeniería de software y la ingeniería de sistemas , se aplican distintos tipos de lenguajes de modelado. Estos lenguajes pueden utilizarse para especificar:
- requisitos del sistema,
- estructuras y
- comportamientos.
Los lenguajes de modelado están diseñados 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 informales aplicadas con herramientas de dibujo produzcan representaciones gráficas ú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 pueden usarse programáticamente. [ 5 ] : 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
Es fundamental revisar los lenguajes de modelado para determinar cuáles son los más adecuados para cada contexto. En este contexto, entendemos a las partes interesadas, el dominio y el conocimiento asociado. Evaluar la calidad del lenguaje es un medio para lograr mejores modelos.
Marco de evaluación
Aquí, la calidad del lenguaje se define según el marco SEQUAL para la calidad de los modelos, desarrollado por Krogstie, Sindre y Lindland (2003). Este marco vincula la calidad del lenguaje con un marco general para la calidad de los modelos. Se utilizan cinco áreas para describir la calidad del lenguaje, las cuales expresan tanto la notación conceptual como la visual del mismo. No profundizaremos en la explicación del marco de calidad subyacente de los modelos, sino que nos centraremos en las áreas utilizadas para explicar el marco de calidad del lenguaje.
Adecuación del dominio
El marco de trabajo define la capacidad de representar el dominio como adecuación al dominio. El término " adecuación" puede resultar algo vago, pero en este contexto particular significa ser capaz de expresarlo . Idealmente, solo debería poder expresar elementos que pertenecen al dominio, pero con la potencia suficiente para incluir todo lo que contiene. Este requisito puede parecer algo estricto, pero el objetivo es obtener un modelo visualmente expresado que incluya todo lo relevante para el dominio y excluya todo lo que no sea apropiado. Para lograrlo, el lenguaje debe distinguir claramente qué notaciones y sintaxis son ventajosas para su presentación.
Adecuación del participante
Para evaluar la idoneidad de los participantes, intentamos identificar qué tan bien el lenguaje expresa el conocimiento que poseen las partes interesadas. Esto presenta 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, y ambos tipos son dinámicos. En este marco, solo se considera el conocimiento explícito. El lenguaje debe expresar, en gran medida, todo el conocimiento explícito de las partes interesadas relevante para el dominio.
Adecuación del modelo
El último párrafo indicaba que el conocimiento de las partes interesadas debía presentarse de forma adecuada. Además, es fundamental que el lenguaje permita expresar todo el conocimiento explícito posible de dichas partes. Ningún conocimiento debe quedar sin expresar por deficiencias en el lenguaje.
Adecuación de la comprensibilidad
La comprensibilidad y la adecuación garantizan que los actores sociales entiendan el modelo gracias al uso coherente del lenguaje. Para ello, el marco incluye un conjunto de criterios. La importancia general que estos criterios expresan radica en que el lenguaje debe ser flexible, fácil de organizar y permitir la distinción clara de sus diferentes partes, tanto internamente como en comparación con otros idiomas. Además, el objetivo debe ser lo más sencillo posible y cada símbolo del lenguaje debe tener 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 modelado sea útil para el análisis y el procesamiento posterior, el lenguaje debe permitir el razonamiento automático. Para ello, debe incluir sintaxis y semántica formales. Otra ventaja de la formalización es la capacidad de detectar errores en una etapa temprana. El lenguaje más adecuado para los actores técnicos no siempre coincide con el más apropiado 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 entre los tipos de sistemas y sus dinámicas correspondientes.
- 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 en 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 ontológico : lenguaje formal utilizado para construir ontologías.
- Pseudocódigo : descripción de un algoritmo que se asemeja a un programa informático.
- Modelización científica : actividad científica que produce modelos.
- Modelado orientado a servicios
- Modelado visual
- Lenguaje visual : sistema de comunicación que utiliza 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 Internacional Anual 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.
- ^ Breteler, Jeroen; van Gessel, Thom; Biagioni, Giulia; van Doesburg, Robert (11 de septiembre de 2023), "La ontología FLINT: un modelo de relaciones jurídicas basado en actores", en Acosta, Maribel; Peroni, Silvio; Vahdati, Sahar; Gentile, Anna-Lisa (eds.), Estudios sobre la web semántica , IOS Press, doi : 10.3233/ssw230016 , ISBN 978-1-64368-424-6
- ↑ 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 genérico extensible. Archivado el 2 de marzo de 2024 en la Wayback Machine , 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. pp. 530–541 . arXiv : 1706.09172 . doi : 10.1145/2635868.2635891 . ISBN 978-1-4503-3056-5. S2CID 2436333 .
Lecturas adicionales
- John Krogstie (2003) "Evaluación de UML mediante 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 Ciencias de la Computación e Información.
- Anna Gunhild Nysetvold y John Krogstie (2005). "Evaluación de lenguajes de modelado de procesos de negocio mediante un marco de calidad genérico" . Instituto de Ciencias de la Computación e Información.
Enlaces externos
- Conceptos fundamentales de modelado
- Portal de lenguajes de modelado de software
- BIP: Construcción incremental basada en componentes de sistemas en tiempo real.
- Inglés formal Gellish
- Lenguajes de modelado
- Lenguajes de especificación