Preguntas frecuentes

¿Qué es lo más importante de la asignatura?

  1. Especificar con máquinas de estados
  2. Verificar con model checking. Mínimo con LTL.
  3. Implementar la máquina de estados con un lenguaje de implementación. Usamos C.
  4. Análisis del tiempo de respuesta en ejecutivo cíclico, con tareas con prioridades fijas y desalojo, y en multitarea cooperativa.

¿Por qué una asignatura de TIC en 4º?

El plan de UCLM-EIIA no tiene optatividad. ESC es una asignatura finalista (no se usa como base para ninguna otra). Por tanto el único emplazamiento posible es 4º. Las prácticas se orientan a desarrollo de software por un motivo práctico, pero la metodología es aplicable a sistemas puramente hardware (mecánicos o electrónicos).

¿Por qué métodos formales en un grado?

Porque el campo de la Ingeniería Aeronáutica lo necesita. Lee los periódicos.

¿Por qué C y no Python?

Porque no existe ninguna implementación de Python de tiempo real estricto. Y porque C es el más simple de los lenguajes de programación utilizables para tiempo real. Otras opciones populares podrían ser Ada y C++ pero su complejidad es mucho mayor. Plantearemos estas opciones en el postgrado.

Por qué máquinas de estados finitos

Porque es el método de modelado de sistemas reactivos más sencillo e intuitivo que existe. Otra opción es usar Redes de Petri, pero pensamos que es una mejor opción para un postgrado.

¿Por qué FreeRTOS?

Porque es un sistema operativo de tiempo real relativamente sencillo certificado
IEC 61508,
EN 50128,
FDA 510(k),
IEC 62304,
IEC 61513,
IEC 62061,
ISO 26262,
DO 178C.
Eso implica que puede usarse para aplicaciones médicas, industriales, de automoción y aeroespaciales.

¿Por qué SMV?

Porque es el lenguaje de especificación formal más sencillo que hemos encontrado.

¿Por qué LTL?

Para una utilidad razonable deberíamos incluir LTL y CTL como mínimo. Nos limitamos a LTL exclusivamente para reducir la carga del estudiante. Mejor LTL que CTL porque casi todas las herramientas de model checking soportan LTL o una variante.

¿Por qué RTA y no Timed Transition Systems?

La inmensa mayoría de los fabricantes de sistemas de tiempo real utiliza RTA. Timed transition systems es una adición relativamente reciente a nuXmv, que no es soportada por nuSMV.

¿Qué otros cursos de métodos formales en un grado de ingeniería existen?

El siguiente texto introduce muy bien las razones para la inclusión de métodos formales en el Grado en Ingeniería Aeroespacial.

Kristin Yvonne Rozier. On Teaching Applied Formal Methods in Aerospace Engineering. Formal Methods Teaching, 2019. Este artículo es muy didáctico en cuanto a la necesidad de incluir métodos formales en los curricula de ingeniería como una habilidad fundamental para cualquier ingeniero. Explica la experiencia de Iowa State University con un curso mixto de grado/postgrado, cuatrimestral de 48 horas, en el que se utiliza Spin, SPOT, nuXmv, Isabelle, PVS, PRISM, R2U2, Dafny, Z3, CBMC, y Coq. La asignatura la imparte el departamento de Ingeniería Aeroespacial de Iowa State University.

Los siguientes cursos de grado forman parte de programas en Ingeniería Aeroespacial o Ingeniería Aeronáutica. En modo alguno se trata de una lista exhaustiva. Se extenderá esta tabla más adelante. Nótese que Berkeley no tenía un Major en Aerospace Engineering hasta ahora y no se dispondrá de información hasta después del verano.

CódigoNombreUniversidad
AERE 407Applied Formal MethodsIowa State University
16.332Formal Methods for Safe Autonomous SystemsMassachusetts Institute of Technology
AAE 66800Hybrid Systems: Theory And AnalysisPurdue University

En otras ingenierías relacionadas también se incluyen asignaturas sobre métodos formales.

CódigoNombreUniversidadGrado
15-424/624/824Logical Foundations of Cyber-Physical SystemsCarnegie Mellon UniversityComputer Science
6B162002LAdvanced Software EngineeringNanjing University of Aeronautics and AstronauticsElectrical and Computer Engineering
18-341Logic Design and VerificationCarnegie Mellon UniversityElectrical and Computer Engineering
19CSE441INTRODUCTION TO CYBER-PHYSICAL SYSTEMSAmrita Vishwa VidyapeethamComputer Science and Engineering
ECE 659Digital Systems VerificationUniversity of Tennessee, KnoxvilleElectrical and Computer Engineering

¿Quién usa métodos formales en la industria aeronáutica?

Todas las grandes compañías han investigado de una manera u otra la introducción de métodos formales, aunque aún está en un estado incipiente, más por la falta de formación de su personal que por la necesidad.

Boeing es conocida por haber utilizado métodos formales en numerosas ocasiones (el Max es otra historia). Incluso tiene colaboraciones con los creadores de nuXmv.

Airbus ha publicado un gran número de artículos en revistas especializadas sobre la aplicación de métodos formales en el desarrollo de software para aviónica. Merece la pena explorar sus propias conclusiones o la experiencia en el programa del A380. Incluso hay un video sobre la apliación de abstract interpretation y theorem proving en Airbus.

NASA integra la verificación formal como uno de los procesos de desarrollo de su Systems Engineering Handbook. Es conocido que utilizó theorem proving en el desarrollo del software del transbordador espacial.