Foro de Jianyuan · Observación del modelo 丨 Aplicación industrial del método formal: campo del tránsito ferroviario

Autor |  Wang Yiling, Grupo de modelado de sistemas del Instituto de Investigación de Innovación de Software Confiable Kongan de Shanghai

Sección|  Foro Jianyuan · Ver modelo

Comunidad |  Agregue el ID de WeChat " TICPShanghai " y únase a la "Comunidad de seguridad Shanghai Kongan 51fusa"

Introducción: Los artículos anteriores presentaron la historia del desarrollo y las tecnologías específicas de los métodos formales, e introdujeron la ingeniería de los métodos formales desde una perspectiva general. Este artículo se centrará en el campo del tránsito ferroviario, comenzando con Prema, una herramienta de análisis y redacción de requisitos de dominios específicos, para presentar la aplicación práctica de métodos formales en la industria. 

01

fondo

Con el rápido desarrollo de las ciudades, la construcción y distribución del transporte ferroviario se ha convertido cada vez más en un símbolo importante de la conveniencia del transporte urbano y del desarrollo económico. Durante el período del "13.º Plan Quinquenal", el kilometraje operativo del transporte ferroviario urbano alcanzó los 6.600 kilómetros. Se estima que para 2025, la proporción de viajeros cubiertos por estaciones ferroviarias con un radio de 800 metros en las megaciudades no será menor. del 30%. El software de control del tránsito ferroviario determina la seguridad del funcionamiento del sistema. Si el software de control no funciona como se espera, puede causar daños materiales y víctimas. Por lo tanto, la calidad y seguridad del software de control del tráfico ferroviario es fundamental, y el país también ha emitido estrictas normas de seguridad al respecto.

En el campo del tránsito ferroviario, el sistema de control automático de trenes (Automatic Train Control, ATC) incluye tres partes, ATP (Automatic Train Protection, sistema automático de protección de trenes), ATO (Automatic Train Operation, sistema automático de operación de trenes) y ATS. (Automatic Train Supervision, sistema automático de seguimiento de trenes), que proporciona un alto nivel de seguridad de los trenes al prevenir automáticamente los errores de los maquinistas. Como se muestra en la Figura 1, ATO es un sistema para controlar la operación automática de trenes, el cual está compuesto por equipos a bordo y equipos terrestres; ATP es un sistema para asegurar que el tren frene inmediatamente una vez que excede la velocidad especificada, y También se compone de equipos a bordo y equipos terrestres; el sistema ATS debe completar el sistema de monitoreo automático del tren, que se compone de centro de control, estación, patio y equipos a bordo. La relación entre los tres es que bajo la protección del sistema ATP, el sistema ATO realiza la conducción automática del tren, el ajuste automático de la velocidad y el control automático de la puerta del tren de acuerdo con las instrucciones del ATS.

7311.jpg

Fig.1 Estructura del sistema de control automático de trenes.

El análisis de requisitos es la base del diseño de software y el eslabón más crítico y temprano en las actividades de desarrollo de software. El documento de requisitos contiene la descripción funcional del sistema de control de trenes. Al analizar los requisitos del sistema de control de trenes, se pueden encontrar errores en la descripción funcional del sistema en los requisitos. Después de investigaciones y prácticas a largo plazo, tanto el mundo académico como la industria se dan cuenta de la necesidad de comprobar los requisitos funcionales del sistema de control de trenes desde la etapa de requisitos. Sin embargo, en la industria actual, verificar manualmente los requisitos del sistema de control de trenes descritos en lenguaje natural no solo es ineficiente, sino que tampoco puede garantizar la exactitud de los requisitos funcionales.

02

Una descripción general de los métodos de modelado formal.

Habrá ambigüedad al utilizar el lenguaje natural para describir requisitos, por lo que algunas expresiones que son claras para el escritor pueden ser entendidas por otros como otros significados. Como resultado, diferentes desarrolladores tienen interpretaciones ambiguas de los mismos requisitos y diseños, lo que resulta en una reducción de la eficiencia del desarrollo. Para evitar que esto suceda, utilizamos un formulario estándar para describir los requisitos y diseños. Esta forma estándar se basa generalmente en el lenguaje de las matemáticas. Esta especificación de descripción estandarizada forma la base de los métodos formales.

Los métodos formales son técnicas basadas en matemáticas para la redacción de especificaciones, el desarrollo de software y la verificación de software para sistemas digitales. Sus fundamentos matemáticos incluyen lógica formal, matemáticas discretas y lenguajes reconocibles por máquinas. Un modelo formal es un modelo inequívoco descrito mediante sintaxis y semántica matemática, y es una expresión abstracta de muchos aspectos del software, que se utiliza para el análisis, la simulación y la generación de código posteriores (en algunas condiciones, es posible que no sea posible generar el código directamente desde el modelo) . La base para aplicar métodos formales es establecer un modelo formal del software a desarrollar.

Los métodos formales incluyen dos ramas principales, tecnología de especificación formal y tecnología de verificación formal, y la tecnología de verificación formal se divide en dos ramas, demostración de teoremas y verificación de modelos, como se muestra en la Figura 2.

7312.jpg

Figura 2 La composición del método formal.

En el mundo académico y la industria, para garantizar la operación segura de los trenes, los académicos e ingenieros investigan principalmente sobre sistemas de control de tránsito ferroviario desde los siguientes aspectos: descripción de requisitos formales, construcción y verificación de modelos, y simulación de sistemas. Estos tres no están aislados y, a menudo, se estudian juntos, como el uso de métodos formales para describir los requisitos del sistema y luego construir modelos, analizarlos y verificarlos.

Para lograr el propósito de utilizar métodos formales para garantizar la seguridad de los sistemas de control de tránsito ferroviario, proponemos un método de ingeniería formal para el modelado de requisitos de los sistemas de control de tránsito ferroviario y desarrollamos una herramienta Prema (edición, modelado y análisis precisos de requisitos). Edición, modelado y análisis de requisitos precisos) se utiliza para ayudar en la aplicación de métodos formales de ingeniería.

03

Prema, una solución en el ámbito del tránsito ferroviario

La aplicación de tecnología formal por parte de Prema incluye principalmente dos aspectos: especificación de requisitos formales y verificación de modelos. Para describir formalmente los requisitos, proponemos el lenguaje CASDL adaptado al ámbito del tránsito ferroviario. Después del modelado de requisitos de los requisitos del sistema descritos en el lenguaje formal, se puede verificar en el modelo de requisitos si las propiedades de restricción descritas por las expresiones booleanas son verdaderas.

La interfaz principal de la herramienta Prema se muestra en la Figura 3 a continuación, que se divide principalmente en la barra de edición a la izquierda y la barra de visualización a la derecha. Los usuarios pueden escribir requisitos en el lado izquierdo, mientras que el estilo del documento final generado se muestra en tiempo real en el área derecha, y hay algunas herramientas de acceso directo encima del área de edición para que los usuarios escriban requisitos.

7313.jpg

Figura 3 Interfaz de la herramienta Prema

3.1 Especificación de requisitos formales

El usuario escribe los requisitos formales en el lenguaje CASDL en la columna de edición de la izquierda. La siguiente es una breve introducción a la especificación del lenguaje CASDL.

Dado que el sistema de control en el campo del tránsito ferroviario generalmente se ejecuta periódicamente, el ciclo en CASDL tiene un significado especial para indicar qué ciclo ha pasado por la operación actual del sistema, y ​​su sintaxis se puede expresar de la siguiente manera: 

● md :: = (ciclo, Bloque, DefBlock, Diccionario de datos)

● Bloque :: = (identificador, Condición previa, inicial, Estado, Transición)

● DefBlock :: = (nombre, identificador, Tareas)

● Tareas :: = CFG

● Transición ::= (Origen, Destino, Condición, Acción)

● Diccionario de datos ::= (V)

CASDL consta de 4 partes. La parte del Bloque describe la transición de estado del sistema. En el Bloque, se identifica mediante un identificador único. La condición previa se utiliza para juzgar si se cumplen las condiciones para la transición del estado del sistema. La inicial se utiliza para indicar el valor antes de la transición del estado del sistema. Almacén de estado Para todos los valores de variables que han cambiado los valores de estado, Transaction describe el proceso específico de transición de estado, y la estructura que describe el proceso también se expresa en lo anterior. Entre ellos, Fuente y Destino representan respectivamente el valor antes del cambio de estado y el valor después del cambio de estado. Condición registra el conjunto de condiciones que deben cumplirse para que ocurra la transición de estado. El último elemento Acción registra cómo ocurre el proceso de transición de estado. . 

DefBlock describe el módulo informático, que incluye el nombre del módulo, el identificador único y las tareas informáticas. Tareas compuestas por flujo de control.

El Diccionario registra las variables que aparecen en el proceso de modelado del documento de requisitos. 

La Figura 4 muestra un ejemplo escrito en CASDL. En este ejemplo, la parte roja representa la parte del Bloque que muestra la transición de estado. No tiene valor de retorno y solo cambia el valor de la variable de estado para cambiar el estado del sistema. Es decir , transición de estado. El (k-1) seguido de Estado indica el ciclo k-1. La parte amarilla muestra la parte defBlock que describe la tarea de cálculo.

7314.jpg

Figura 4 Ejemplos de Bloque y DefBlock

CASDL también define algunas expresiones para describir el proceso de cálculo de tareas orientadas a cálculo en DefBlock. La sintaxis de las expresiones es la siguiente: 

● SExpr :: = Const | Var | f(n)(SExpr) 

● BTerm :: = Verdadero | Falso | p(n)(SExpr) 

● IExpr :: = (después | duración)(BTerm,SExpr)

● BExpr :: = BTerm | ¬BExpr | BExpr ∨ BExpr | BExpr ∧ BExpr

Donde, la expresión de declaración se compone de una constante, una variable o múltiples expresiones de declaración, y el valor de la variable booleana es Verdadero o Falso o se deriva del valor de la expresión de estado. Las expresiones de intervalo se utilizan principalmente para describir fragmentos de demanda relacionados con el tiempo, como un valor booleano o un valor calculado de una expresión de declaración dentro de un cierto período de tiempo o después de un cierto período de tiempo. Las expresiones booleanas, por otro lado, constan de un valor booleano, la negación de un valor booleano, un valor OR o un valor AND. 

Al mismo tiempo, CASDL también define varias estructuras de declaraciones:

● stmts :: = pStmt | cStmt

● pStmt :: = aStmt | saltar

● aStmt :: = x := SExpr

● cStmt :: = stmts | si BExpr entonces stmts else stmts

El conjunto de declaraciones contiene declaraciones compuestas o declaraciones individuales, entre las cuales pStmt se compone de una declaración de asignación o una declaración de omisión, la declaración de asignación se puede expresar como una variable a la que se le asigna el valor de una expresión y la declaración compuesta se compone de un conjunto de declaraciones o constituye una estructura de declaración de selección. 

En términos generales, CASDL se ajusta a los hábitos de uso de los ingenieros y el costo de aprendizaje y comprensión es muy bajo. Este lenguaje similar a Python es fácil de aceptar, pero su semántica aún es diferente de Python. Por ejemplo, k es una letra especial. en CASDL, representa el ciclo de operación del sistema. 

3.2 Verificación del modelo

Una vez escritos los requisitos, la herramienta Prema proporciona funciones como análisis estático, ejecución de simulación de máquina de estado y verificación de la naturaleza de los requisitos para verificar la exactitud de los requisitos escritos. La verificación de la naturaleza de los requisitos es la verificación del modelo.

La verificación de la naturaleza del requisito consiste en verificar el modelo de requisito, como invariante o alcanzabilidad, después de que el requisito se verifica sin errores gramaticales. Su objetivo principal es analizar si los cambios entre ciertas variables que tienen una relación de impacto definitivamente afectarán los cambios de variables relacionadas, lo cual es crucial para comprender y analizar la relación lógica de los requisitos. El diagrama de flujo de verificación de propiedad se muestra en la Figura 5:

7315.jpg

Figura 5 Diagrama de flujo de verificación de propiedad

La interfaz de verificación de propiedades de Prema se muestra en la Figura 6. El usuario puede seleccionar las opciones de configuración utilizadas anteriormente o volver a seleccionarlas. En la interfaz de verificación, el usuario selecciona qué elementos de requisitos deben verificarse. Una vez completada la selección, haga clic en el botón Ir para generar una interfaz de verificación completa.

7316.jpg

Figura 6 Diagrama esquemático de la interfaz de verificación de propiedad.

La herramienta generará un diagrama de relación variable según el elemento de requisito seleccionado por el usuario, recordando al ingeniero de requisitos el contenido descrito en el elemento de requisito y también evitando verificar incorrectamente el elemento de requisito. Después de confirmar que se ha seleccionado el elemento de requisito correcto, escriba la propiedad a verificar en el área de escritura de propiedades. Actualmente, la propiedad a verificar solo admite expresiones booleanas. Después de completar el estado inicial (opcional) y las propiedades, puede hacer clic en el botón de verificación para verificar si las propiedades completadas son expresiones booleanas.

Después de que el usuario selecciona el elemento del requisito y la naturaleza a verificar y hace clic en el botón Verificar, la interfaz muestra el resultado de la verificación. Los ingenieros de requisitos pueden verificar si el requisito satisface la propiedad de acuerdo con la información de retroalimentación y, si la propiedad no se cumple, se dará un contraejemplo cuando la propiedad no se cumpla. 

Al utilizar la herramienta Prema, la ambigüedad y la ambigüedad de la declaración de requisitos se pueden eliminar de manera efectiva y se puede garantizar la exactitud del requisito.

04

Resumir

Gracias a esfuerzos continuos en los últimos años, los métodos formales no solo han logrado un gran desarrollo en el mundo académico, sino que también han sido ampliamente utilizados en la industria. Los métodos formales primero deben definir un lenguaje de descripción de requisitos relacionados con el dominio, que pueda cubrir completamente todas las características de los requisitos en este dominio. En segundo lugar, describa y describa el modelo de demanda a través del lenguaje de descripción establecido y proporcione algoritmos de coincidencia para analizar y verificar el modelo de demanda. Dado que el ámbito del tránsito ferroviario tiene requisitos estrictos para el sistema de control, esto constituye un requisito previo para la aplicación de métodos formales. En el futuro, los métodos formales se integrarán mejor con las prácticas industriales para proteger la seguridad industrial.

referencia principal:

[1] Guangming.com: Se publicó el 14º Plan Quinquenal para la Construcción de Infraestructura Urbana Nacional [EB/OL].(2022-08-03)[2022-8-16].https://m.gmw .cn /baijia/2022-08/03/35929147.html. 

[2] Wang Xiuchao. Extracción de modelos y análisis de documentos de requisitos del sistema de control de trenes [D] Guiyang: Universidad de Guizhou, 2017 

[3] Wei Qun, Wang Yu. Análisis de defectos de software y su impacto en la confiabilidad del software [J] Aplicaciones informáticas y software, 2011, 28(1): 145-149. 

[4] Bao Danzhu, Análisis de requisitos del sistema de tránsito ferroviario y prueba de coherencia [D], Shanghai: Universidad Normal del Este de China, 2016

[5] Liu Yang. Análisis y verificación del modelo de demanda para el sistema de control de tránsito ferroviario [D] Shanghai: Universidad Normal del Este de China, 2017

[6] Zheng Hanyue, Investigación sobre la generación automática de casos de prueba basada en requisitos en el campo del control del tránsito ferroviario [D], Shanghai: Universidad Normal del Este de China, 2021

[7] Huang Y, Feng J, Zheng H, et al. Prema: una herramienta para la edición, modelado y análisis de requisitos precisos [J]. 2019.DOI:10.1109/ASE.2019.00128.

Supongo que te gusta

Origin blog.csdn.net/TICPSH/article/details/132165520
Recomendado
Clasificación