Universal Systems Language ( USL ) es un lenguaje de modelado de sistemas y un método formal para la especificación y el diseño de software y otros sistemas complejos. Fue diseñado por Margaret Hamilton basándose en sus experiencias escribiendo software de vuelo para el programa Apollo . [1] El lenguaje se implementa a través del software 001 Tool Suite de Hamilton Technologies, Inc. [2] USL evolucionó a partir de 001AXES que a su vez evolucionó a partir de AXES, todos los cuales se basan en los axiomas de control de Hamilton. 001 Tool Suite utiliza el concepto preventivo de Desarrollo antes del hecho (DBTF) para su proceso de desarrollo del ciclo de vida. DBTF elimina los errores lo antes posible durante el proceso de desarrollo, eliminando la necesidad de buscar errores después del hecho.
Filosofía
USL se inspiró en el reconocimiento de Hamilton de patrones o categorías de errores que ocurrieron durante el desarrollo del software Apollo. [3] [4]
Ciertas garantías de corrección están incorporadas en la gramática USL. [5]
Algunos usuarios consideran que USL es más fácil de usar que otros sistemas formales. [6] No es solo un formalismo para software, sino que también define ontologías para elementos comunes de dominios de problemas, como el espacio físico y el tiempo de eventos.
Formalismo para una teoría del control
[7] [8]
Las estructuras primitivas son universales en el sentido de que se pueden utilizar para derivar nuevas estructuras, funciones o tipos universales abstractos. El proceso de derivación de nuevos objetos (es decir, estructuras, tipos y funciones) es equivalente al proceso de derivación de nuevos tipos en una teoría de tipos constructiva.
Implementación
El proceso de desarrollo de un sistema de software con USL junto con su automatización, la Suite de herramientas 001 (001), es el siguiente: definir el sistema con USL, analizar automáticamente la definición con el analizador de 001 para asegurar que USL se utilizó correctamente, generar automáticamente gran parte del diseño y todo el código de implementación con el generador de 001. [9] [10] [11] [12] USL puede utilizarse para prestar su soporte formal a otros lenguajes. [13]
^ M. Hamilton y W. R. Hackler, "Lenguaje de sistemas universales: lecciones aprendidas de Apollo", IEEE Computer, diciembre de 2008.
^ 001 Conjunto de herramientas (1986-2020)
^ Margaret H. Hamilton, Hamilton Technologies (27 de septiembre de 2012). ""Lenguaje de sistemas universal y su automatización, la suite de herramientas 001, para el diseño y la construcción de sistemas y software" Serie de seminarios web de Lockheed Martin/IEEE Computer Society".
^ Hamilton, Margaret H. (2018). "Lo que nos dicen los errores". IEEE Software . 35 (5): 32–37. doi : 10.1109/MS.2018.290110447 . ISSN 0740-7459. S2CID 52896962.
^ Dolha, Steve, Chiste, Dave, "Un sistema de consulta remota para la Web: gestión del desarrollo de sistemas distribuidos", Capítulo 32, Gestión de Internet, Editor Jessica Keyes, Auerbach, 2000.
^ Krut, Jr., B., "Integración del soporte de la herramienta 001 en la metodología de análisis de dominio orientado a características" (CMU/SEI-93-TR-11, ESC-TR-93-188), Pittsburgh, SEI, Carnegie Mellon University, 1993.
^ Hamilton, M. , "Inside Development Before the Fact", artículo de portada, Suplemento editorial especial, 8ES-24ES. Electronic Design, abril de 1994.
^ Hamilton, M. , "001: UN ENTORNO DE DESARROLLO DE SOFTWARE E INGENIERÍA DE SISTEMAS DE CICLO DE VIDA COMPLETO Development Before The Fact In Action", artículo de portada, Suplemento editorial especial, 8ES-24ES. Electronic Design, abril de 1994.
^ Ouyang, M., Golay, MW 1995, Un enfoque formal integrado para el desarrollo de software de alta calidad de sistemas críticos para la seguridad , Instituto Tecnológico de Massachusetts, Cambridge, Massachusetts, Informe No. MIT-ANP-TR-035.
^ Software Productivity Consortium, (SPC) (1998), Encuesta sobre métodos y herramientas orientados a objetos , Herndon, VA.SPC-98022-MC, versión 02.00.02, diciembre de 1998.
^ Max Schindler (1990) Diseño de software asistido por computadora , John Wiley & Sons, 1990.
^ * Departamento de Defensa (1992). Experimento de herramientas de ingeniería de software: informe final , vol. 1, resumen del experimento, tabla 1, pág. 9. Strategic Defense Initiative, Washington, DC
^ Hamilton, M. Hackler, WR, "Una semántica formal de sistemas universales para SysML", 17º Simposio Internacional Anual, INCOSE 2007, San Diego, CA, junio de 2007.
Lectura adicional
Hamilton, M., Zeldin, S. (1976), "Software de orden superior: una metodología para definir software", IEEE Transactions on Software Engineering, vol. SE-2, núm. 1, marzo de 1976.
Hamilton, M. (abril de 1994). "Inside Development Before the Fact" (El desarrollo desde dentro antes de los hechos). (Artículo de portada). Suplemento editorial especial. 8ES-24ES. Diseño electrónico .
Hamilton, M. (junio de 1994). "001: Un entorno de desarrollo de software e ingeniería de sistemas de ciclo de vida completo". (Artículo de portada). Suplemento editorial especial. 22ES-30ES. Diseño electrónico .
Hamilton, M., Hackler, WR. (2004), Principios de arquitectura de software común de la Unidad de navegación y guía profundamente integrada (DI-GNU) (revisado el 29 de diciembre de 2004), DAAAE30-02-D-1020 y DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003-2004.
Hamilton, M. y Hackler, WR (2007), "Lenguaje de sistemas universal para ingeniería de sistemas preventivos", Proc. 5th Ann. Conf. Systems Eng. Res. (CSER), Stevens Institute of Technology, marzo de 2007, artículo n.° 36.
Hamilton, M.; Hackler, WR (2007). "Una semántica formal universal de sistemas para SysML". 17.° Simposio internacional anual, INCOSE 2007, San Diego, CA, junio de 2007.
Enlaces externos
Wikimedia Commons alberga una categoría multimedia sobre Lenguaje de sistemas universales .