Método de desarrollo de software
El método B es un método de desarrollo de software basado en B , un método formal soportado por herramientas basado en una notación de máquina abstracta , utilizado en el desarrollo de software de computadora . [1] [2]
Descripción general
B fue desarrollado originalmente en la década de 1980 por Jean-Raymond Abrial [3] [4] en Francia y el Reino Unido . B está relacionado con la notación Z (también originada por Abrial) y admite el desarrollo de código de lenguaje de programación a partir de especificaciones. B se ha utilizado en importantes aplicaciones de sistemas críticos para la seguridad en Europa (como las líneas automáticas 14 y 1 del metro de París y el cohete Ariane 5 ). [5] [6] [7] Tiene un soporte de herramientas sólido y disponible comercialmente para especificación , diseño , prueba y generación de código .
En comparación con Z, B es un poco más de bajo nivel y se centra más en el refinamiento del código que en la mera especificación formal ; por lo tanto, es más fácil implementar correctamente una especificación escrita en B que una en Z. En particular, existe un buen soporte de herramientas para esto. Se utiliza el mismo lenguaje en la especificación, el diseño y la programación. Los mecanismos incluyen la encapsulación y la localización de datos.
Evento-B
Posteriormente, se desarrolló otro método formal llamado Event-B [8] [9] [10] basado en el Método B, con el apoyo de la Plataforma Rodin. [11] [12] Event-B es un método formal destinado al modelado y análisis a nivel de sistema. Las características de Event-B son el uso de la teoría de conjuntos para el modelado, el uso de refinamiento para representar sistemas en diferentes niveles de abstracción y el uso de prueba matemática para verificar la consistencia entre estos niveles de refinamiento.
Los componentes principales
La notación B depende de la teoría de conjuntos y de la lógica de primer orden para especificar diferentes versiones de software que cubren el ciclo completo de desarrollo del proyecto.
Máquina abstracta
En la primera y más abstracta versión, llamada Máquina Abstracta , el diseñador debe especificar el objetivo del diseño.
Refinamiento
- Luego, durante un paso de refinamiento, pueden rellenar la especificación para aclarar el objetivo o hacer que la máquina abstracta sea más concreta agregando detalles sobre estructuras de datos y algoritmos que definen cómo se logra el objetivo.
- Se debe demostrar que la nueva versión, llamada Refinamiento , es coherente e incluye todas las propiedades de la máquina abstracta.
- El diseñador puede hacer uso de las bibliotecas B para modelar estructuras de datos o para incluir o importar componentes existentes.
Implementación
- El refinamiento continúa hasta que se logra una versión determinista: la Implementación .
- Durante todos los pasos de desarrollo se utiliza la misma notación y la última versión puede traducirse a un lenguaje de programación para su compilación.
Software
B-Kit de herramientas
El B-Toolkit [13] [14] es una colección de herramientas de programación diseñadas para respaldar el uso de B-Tool, [15] es un intérprete matemático basado en la teoría de conjuntos, con el propósito de respaldar el B-Method. El desarrollo fue realizado originalmente por Ib Holm Sørensen y otros, en BP Research y luego en B-Core (UK) Limited. [16]
El kit de herramientas utiliza una interfaz Motif X Window personalizada [17] para la gestión de la GUI y se ejecuta principalmente en los sistemas operativos Linux , Mac OS X y Solaris .
El código fuente de B-Toolkit ya está disponible. [18]
Taller B
Desarrollado por ClearSy, Atelier B [19] [20] es una herramienta industrial que permite el uso operativo del Método B para desarrollar software probado y libre de defectos (software formal). Hay dos versiones disponibles: 1) Community Edition disponible para cualquier persona sin ninguna restricción; 2) Maintenance Edition solo para titulares de contratos de mantenimiento. Atelier B se ha utilizado para desarrollar automatismos de seguridad para los diversos metros instalados en todo el mundo por Alstom y Siemens , y también para la certificación Common Criteria y el desarrollo de modelos de sistemas por ATMEL y STMicroelectronics .
Rodin
La plataforma Rodin es una herramienta que soporta Event-B. [8] [21] [11] Rodin se basa en un entorno de desarrollo integrado (IDE) de software Eclipse y proporciona soporte para el refinamiento y la prueba matemática . La plataforma es de código abierto y forma parte del marco Eclipse. Es extensible mediante complementos de componentes de software . El desarrollo de Rodin ha sido apoyado por los proyectos de la Unión Europea DEPLOY (2008-2012), RODIN (2004-2007) y ADVANCE (2011-2014). [8]
BHDL
BHDL proporciona un método para el diseño correcto de circuitos digitales , combinando las ventajas del lenguaje de descripción de hardware VHDL con la formalidad de B. [22]
APCB
APCB ( en francés : Association de Pilotage des Conférences B , Comité Directivo de la Conferencia Internacional B ) ha organizado reuniones asociadas con el Método B. [23] Ha organizado conferencias ZB con el Grupo de Usuarios Z y conferencias ABZ, incluidas las Máquinas de Estados Abstractos (ASM) así como la notación Z.
Libros
- El libro B: Asignar programas a significados , Jean-Raymond Abrial , Cambridge University Press , 1996. ISBN 0-521-49619-5 .
- El método B: una introducción , Steve Schneider, Palgrave Macmillan , serie Cornerstones of Computing, 2001. ISBN 0-333-79284-X .
- Ingeniería de software con B , John Wordsworth, Addison Wesley Longman , 1996. ISBN 0-201-40356-0 .
- El lenguaje y el método B: una guía para el desarrollo formal práctico , Kevin Lano , Springer-Verlag , serie FACIT, 1996. ISBN 3-540-76033-4 .
- Especificación en B: Una introducción utilizando el kit de herramientas B , Kevin Lano , World Scientific Publishing Company , Imperial College Press , 1996. ISBN 1-86094-008-0 .
- Modelado en Event-B: Ingeniería de sistemas y software , Jean-Raymond Abrial , Cambridge University Press , 2010. ISBN 978-0-521-89556-9 .
Conferencias
Las siguientes conferencias han incluido explícitamente el Método B y/o el Evento B:
- Conferencia Z2B, Nantes , Francia , 10-12 de octubre de 1995
- Primera Conferencia B, Nantes, Francia, 25-27 de noviembre de 1996
- Segunda Conferencia B, Montpellier , Francia, 22-24 de abril de 1998
- ZB 2000, York , Reino Unido , 28 de agosto – 2 de septiembre de 2000
- ZB 2002, Grenoble , Francia, 23 a 25 de enero de 2002
- ZB 2003, Turku , Finlandia , 4 a 6 de junio de 2003
- ZB 2005, Guildford , Reino Unido, 2005
- B 2007, Besanzón , Francia, 2007
- B, De la investigación a la enseñanza, Nantes, Francia, 16 de junio de 2008
- B, De la investigación a la enseñanza, Nantes, Francia, 8 de junio de 2009
- B, De la investigación a la enseñanza, Nantes, Francia, 7 de junio de 2010
- ABZ 2008, British Computer Society , Londres , Reino Unido, 16-18 de septiembre de 2008
- ABZ 2010, Orford , Québec , Canadá , 23 a 25 de febrero de 2010
- ABZ 2012, Pisa , Italia , 18 a 22 de junio de 2012
- ABZ 2014, Toulouse , Francia, 2 a 6 de junio de 2014
- ABZ 2016, Linz , Austria , 23 a 27 de mayo de 2016
- ABZ 2018, Southampton , Reino Unido, 2018
- ABZ 2020, Ulm , Alemania , 2021 (retrasado debido a la pandemia de COVID-19 )
- ABZ 2021, Ulm, Alemania, 2021
Véase también
Referencias
- ^ Cansell, Dominique y Dominique Méry. "Fundamentos del método B". Computing and informatics 22, no. 3-4 (2003): 221-256.
- ^ Butler, Michael, Philipp Körner, Sebastian Krings, Thierry Lecomte, Michael Leuschel, Luis-Fernando Mejia y Laurent Voisin. "Los primeros veinticinco años de uso industrial del método B". En la Conferencia Internacional sobre Métodos Formales para Sistemas Críticos Industriales, págs. 189-209. Springer , Cham, 2020.
- ^ Jean-Raymond Abrial (1988). "La herramienta B (Resumen)" (PDF) . En Bloomfield, Robin E.; Marshall, Lynn S.; Jones, Roger B. (eds.). VDM: el camino a seguir, Proc. 2.º Simposio VDM-Europe . Apuntes de conferencias sobre informática . Vol. 328. Springer. págs. 86-87. doi :10.1007/3-540-50214-9_8. ISBN. 978-3-540-50214-2.
- ^ Abrial, JR., Matthew KO Lee, DS Neilson, PN Scharbach y Ib Holm Sørensen. "El método B". En el Simposio Internacional de VDM Europe, págs. 398-405. Springer, Berlín, Heidelberg, 1991.
- ^ Gerhart, Susan, D. Craigen y Ted Ralston. "Estudio de caso: sistema de señalización del metro de París". IEEE Software 11, núm. 1 (1994): 32-28.
- ^ Behm, Patrick, Paul Benoit, Alain Faivre y Jean-Marc Meynadier. "METEOR: Una aplicación exitosa de B en un gran proyecto". En Simposio Internacional sobre Métodos Formales, págs. 369-387. Springer, Berlín, Heidelberg, 1999.
- ^ Lecomte, Thierry. "Aplicación de un método formal en la industria: una trayectoria de 15 años". En Taller internacional sobre métodos formales para sistemas críticos industriales, págs. 26-34. Springer, Berlín, Heidelberg, 2009.
- ^ abc "Event-B y la Plataforma Rodin". Event-B.org .
- ^ Butler, Michael. "Estructuras de descomposición para Event-B". En la Conferencia Internacional sobre Métodos Formales Integrados, págs. 20-38. Springer, Berlín, Heidelberg, 2009.
- ^ Abrial, Jean-Raymond. Modelado en Event-B: ingeniería de sistemas y software. Cambridge University Press , 2010.
- ^ ab Abrial, Jean-Raymond, Michael Butler, Stefan Hallerstede, Thai Son Hoang, Farhad Mehta y Laurent Voisin. "Rodin: un conjunto de herramientas abierto para modelado y razonamiento en Event-B". Revista internacional sobre herramientas de software para transferencia de tecnología 12, n.º 6 (2010): 447-466.
- ^ Hoang, Thai Son, Andreas Fürst y Jean-Raymond Abrial. "Patrones Event-B y sus herramientas de apoyo". Software & Systems Modeling 12, n.º 2 (2013): 229-244.
- ^ "El kit de herramientas B". [B-Core (UK) Limited] . 2004. Archivado desde el original el 12 de octubre de 2004 . Consultado el 22 de febrero de 2012 .
- ^ Haughton, Howard y Kevin Lano. Especificación en B: Una introducción utilizando el conjunto de herramientas B. World Scientific, 1996.
- ^ Abrial, Jean-Raymond. "La herramienta B". En Simposio internacional de VDM Europe, págs. 86-87. Springer, Berlín, Heidelberg, 1988.
- ^ Bowen, Jonathan (julio de 2022). "Ib Holm Sørensen: diez años después" (PDF) . FACS FACTS . N.º 2022–2. BCS-FACS . págs. 41–49 . Consultado el 3 de agosto de 2022 .
- ^ Requisitos de B-Toolkit Archivado el 12 de octubre de 2004 en Wayback Machine.
- ^ Crichton, Edward. "Código fuente de B-Toolkit". GitHub .
- ^ "AtelierB.eu".
- ^ Mentré, David, Claude Marché, Jean-Christophe Filliâtre y Masashi Asuka. "Descarga de obligaciones de prueba de Atelier B utilizando múltiples probadores automatizados". En la Conferencia internacional sobre máquinas de estados abstractos, Alloy, B, VDM y Z, págs. 238-251. Springer, Berlín, Heidelberg, 2012.
- ^ Abrial, JR. "Un proceso de desarrollo de sistemas con Event-B y la plataforma Rodin". En la Conferencia internacional sobre métodos formales de ingeniería, págs. 1-3. Springer, Berlín, Heidelberg, 2007.
- ^ Aljer, Ammar, Philippe Devienne, Sophie Tison, JL. Boulanger y Georges Mariano. "BHDL: Diseño de circuitos en B". En la Tercera Conferencia Internacional sobre la Aplicación de la Concurrencia al Diseño de Sistemas, 2003. Actas, págs. 241-242. IEEE, 2003.
- ^ "Asociación de pilotaje de conferencias B". librairiecosmopolite.com . Consultado el 27 de julio de 2022 .
Enlaces externos
- B Method.com – trabajos y temas relacionados con el método B, un método formal con pruebas
- Atelier B.eu Archivado el 21 de febrero de 2008 en Wayback Machine : Atelier B es un taller de ingeniería de sistemas que permite desarrollar software con garantía de impecabilidad.
- Sitio B Grenoble