stringtranslate.com

Conjunto de herramientas de análisis estático del software MALPAS

MALPAS es un conjunto de herramientas de software que proporciona un medio para investigar y probar la corrección del software mediante la aplicación de una forma rigurosa de análisis estático de programas . La herramienta utiliza gráficos dirigidos y álgebra regular para representar el programa bajo análisis. Utilizando las herramientas automatizadas de MALPAS un analista puede describir la estructura de un programa, clasificar el uso que se hace de los datos y proporcionar las relaciones de información entre los datos de entrada y salida. También admite una prueba formal de que el código cumple con su especificación.

MALPAS se ha utilizado para confirmar la exactitud de aplicaciones críticas para la seguridad en las industrias nuclear, [1] aeroespacial [2] y de defensa [3] . También se ha utilizado para proporcionar corrección del compilador en la industria nuclear en Sizewell B. [4] Los lenguajes que se han analizado incluyen: Ada , C , PLM e Intel Assembler .

MALPAS se adapta bien al análisis estático independiente requerido por la guía ejecutiva de salud y seguridad del Reino Unido para sistemas de protección basados ​​en computadora para reactores nucleares debido a su rigor y flexibilidad en el manejo de muchos lenguajes de programación. [5]

Resumen técnico

El conjunto de herramientas MALPAS comprende cinco herramientas de análisis específicas que abordan diversas propiedades de un programa. La entrada a los analizadores debe estar escrita en MALPAS Intermediate Language (IL); esto puede estar escrito a mano o producido mediante una herramienta de traducción automática a partir del código fuente original. Existen traductores automáticos para lenguajes de programación comunes de alto nivel como Ada , C y Pascal , así como lenguajes ensambladores como Intel 80*86 , PowerPC y 68000 . El texto IL se ingresa en MALPAS a través del "IL Reader", que construye un gráfico dirigido y la semántica asociada para el programa bajo análisis. El gráfico se reduce utilizando una serie de técnicas de reducción de gráficos.

El conjunto de herramientas MALPAS consta de 5 analizadores: [6]

  1. Analizador de flujo de control. Esto examina la estructura del programa, identificando características clave: puntos de entrada/salida, bucles, ramas y código inalcanzable. Proporciona un informe resumido que llama la atención sobre construcciones indeseables y una indicación de la complejidad de la estructura del programa.
  2. Analizador de uso de datos. Esto separa las variables y parámetros utilizados por el programa en clases distintas según su uso. (es decir, datos que se leen antes de escribirse, datos que se escriben sin leerse o datos que se escriben dos veces sin una lectura intermedia). El informe puede identificar errores como datos no inicializados y resultados de funciones que no están escritos en todas las rutas.
  3. Analizador de flujo de información . Esto identifica los datos y las dependencias de rama para cada variable o parámetro de salida. Se pueden revelar dependencias no deseadas o inesperadas para todas las rutas a través del código. También se proporciona información sobre variables no utilizadas y declaraciones redundantes.
  4. Analizador semántico (también conocido como ejecución simbólica ). Esto revela la relación funcional exacta entre todas las entradas y salidas en todas las rutas semánticamente factibles a través del código.
  5. Analizador de Cumplimiento. Esto compara el comportamiento matemático del código con su especificación formal de IL, detallando en qué se diferencia uno del otro. La especificación IL está escrita como Condiciones previas y Condiciones posteriores , así como aserciones de código opcionales. El análisis de cumplimiento se puede utilizar para obtener un nivel muy alto de confianza en la corrección funcional del código en relación con su especificación.

Historia

La investigación original y las generaciones iniciales del conjunto de herramientas fueron creadas por Royal Signals and Radar Establishment (RSRE) del Reino Unido en Malvern, Inglaterra (de ahí la derivación del nombre, MALvern Programming Analysis Suite). Se utilizó ampliamente en el campo de las armas nucleares y civiles en la década de 1980, cuando contó con el apoyo de Rex, Thompson and Partners, quienes crearon el Grupo de Usuarios MALPAS, cuyo primer presidente fue David H Smith (ahora de Frazer-Nash) y luego, posteriormente, Advantage Technical Consulting (comprada por Atkins en 2008).

La primera tarea de análisis estático a gran escala tuvo lugar en el sistema de protección del reactor primario de la central eléctrica Sizewell B. Esta fue la primera central nuclear del Reino Unido que empleó un sistema de protección informático como primera línea de defensa contra un fallo catastrófico. Además, CEZ en la República Checa utilizó MALPAS para aumentar la confianza en el sistema de protección del reactor de la central nuclear de Temelin . En 1995, la Royal Air Force del Reino Unido encargó un análisis independiente del software de aviónica del Lockheed Martin C130J evaluado como crítico para la seguridad. Para el análisis de este software se utilizó MALPAS, además del software Mission Computer, que fue escrito en Spark Ada y verificado con Spark Toolset. [7] MALPAS se está utilizando actualmente para evaluar de forma independiente el software para el sistema de protección del reactor que monitoreará los dos reactores nucleares en Hinkley Point C. [8]

Referencias

  1. ^ Protección programable en la central nuclear del Reino Unido: 10 años después, D Pavey, British Energy. http://entrac.iaea.org/I-and-C/TM_VTT_2005_11/IAEA_papers/051124_Thursday/IAEA_paper_Pavey.pdf
  2. ^ "Análisis de código estático en el software crítico para la seguridad C-130J Hercules, Eur Ing KJ Harrison, BSc CPhys MinstP CEng MRAeS MBCS; Aerosystems International, Reino Unido" (PDF) . Archivado desde el original (PDF) el 27 de septiembre de 2011 . Consultado el 18 de marzo de 2011 .
  3. ^ Un análisis del software de artillería utilizando las herramientas MALPAS, Hayman, K, Defense Sci. Y tecnología. Organ., Salisbury, SA. http://www.dsto.defence.gov.au/publications/scientific_record.php?record=9074
  4. ^ Demostración formal de equivalencia del código fuente y contenidos PROM, Actas de la Conferencia IMA sobre Matemáticas de Sistemas Confiables, Oxford University Press, 1995, pp225248D J Pavey y LA Winsborrow
  5. ^ "Sistemas de seguridad basados ​​en computadora: orientación técnica para evaluar los aspectos del software de los sistemas de protección digitales basados ​​en computadora". Archivado desde el original el 4 de julio de 2011.
  6. ^ Perspectiva industrial del análisis estático. Software Engineering Journal, marzo de 1995: 69-75 Wichmann, BA, AA Canning, DL Clutterbuck, LA Winsbarrow, NJ Ward y DWR Marsh. http://www.ida.liu.se/~TDDC90/papers/industrial95.pdf
  7. ^ Análisis de código estático en el software crítico para la seguridad C-130J Hercules "Copia archivada" (PDF) . Archivado desde el original (PDF) el 27 de septiembre de 2011 . Consultado el 18 de marzo de 2011 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  8. ^ https://www.newcivilengineer.com/latest/atkins-wins-hinkley-point-c-safety-contract-27-04-2020/