The B method is a method of
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
based on B, a tool-supported
formal method
In computer science, formal methods are mathematically rigorous techniques for the specification, development, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expec ...
based on an
abstract machine notation
Abstract may refer to:
* ''Abstract'' (album), 1962 album by Joe Harriott
* Abstract of title a summary of the documents affecting title to parcel of land
* Abstract (law), a summary of a legal document
* Abstract (summary), in academic publishin ...
, used in the development of computer
software
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
.
Overview
B was originally developed in the 1980s by
Jean-Raymond Abrial
Jean-Raymond Abrial (born 1938) is a French computer scientist and inventor of the Z and B formal methods.
Abrial's 1974 paper ''Data Semantics'' laid the foundation for a formal approach to Data Models; although not adopted directly by practit ...
in
France
France (), officially the French Republic ( ), is a country primarily located in Western Europe. It also comprises of Overseas France, overseas regions and territories in the Americas and the Atlantic Ocean, Atlantic, Pacific Ocean, Pac ...
and the
UK. B is related to the
Z notation
The Z notation is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general.
History
In 1974, Jean-Raymond Abrial ...
(also originated by Abrial) and supports development of
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
code from specifications. B has been used in major
safety-critical system
A safety-critical system (SCS) or life-critical system is a system whose failure or malfunction may result in one (or more) of the following outcomes:
* death or serious injury to people
* loss or severe damage to equipment/property
* environme ...
applications in
Europe
Europe is a large peninsula conventionally considered a continent in its own right because of its great physical size and the weight of its history and traditions. Europe is also considered a Continent#Subcontinents, subcontinent of Eurasia ...
(such as the automatic Paris Métro lines
14 and
1 and the
Ariane 5
Ariane 5 is a European heavy-lift space launch vehicle developed and operated by Arianespace for the European Space Agency (ESA). It is launched from the Centre Spatial Guyanais (CSG) in French Guiana. It has been used to deliver payloads int ...
rocket). It has robust, commercially available tool support for
specification
A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard.
There are different types of technical or engineering specificati ...
,
design
A design is a plan or specification for the construction of an object or system or for the implementation of an activity or process or the result of that plan or specification in the form of a prototype, product, or process. The verb ''to design'' ...
,
proof
Proof most often refers to:
* Proof (truth), argument or sufficient evidence for the truth of a proposition
* Alcohol proof, a measure of an alcoholic drink's strength
Proof may also refer to:
Mathematics and formal logic
* Formal proof, a con ...
and
code generation.
Compared to Z, B is slightly more low-level and more focused on
refinement
Refinement may refer to: Mathematics
* Equilibrium refinement, the identification of actualized equilibria in game theory
* Refinement of an equivalence relation, in mathematics
** Refinement (topology), the refinement of an open cover in mathem ...
to code rather than just
formal specification
In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verif ...
— hence it is easier to correctly implement a specification written in B than one in Z. In particular, there is good tool support for this.
The same language is used in specification, design and programming.
Mechanisms include
encapsulation and data locality.
Event-B
Subsequently, another formal method called Event-B
has been developed based on the B-Method, support by the
Rodin
François Auguste René Rodin (12 November 184017 November 1917) was a French sculptor, generally considered the founder of modern sculpture. He was schooled traditionally and took a craftsman-like approach to his work. Rodin possessed a uniqu ...
Platform.
[Abrial, Jean-Raymond, Michael Butler, Stefan Hallerstede, Thai Son Hoang, Farhad Mehta, and Laurent Voisin. "Rodin: an open toolset for modelling and reasoning in Event-B." International journal on software tools for technology transfer 12, no. 6 (2010): 447-466.] Event-B is a formal method aimed at system-level modelling and analysis. Features of Event-B are the use of set theory for modelling, the use of refinement to represent systems at different levels of abstraction, and the use of mathematical proof for verifying consistency between these refinement levels.
The main components
The B notation depends on
set theory
Set theory is the branch of mathematical logic that studies sets, which can be informally described as collections of objects. Although objects of any kind can be collected into a set, set theory, as a branch of mathematics, is mostly conce ...
and
first order logic
First-order logic—also known as predicate logic, quantificational logic, and first-order predicate calculus—is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science. First-order logic uses quantifie ...
in order to specify different versions of software that covers the complete cycle of project development.
Abstract machine
In the first and the most abstract version, which is called ''Abstract Machine'', the designer should specify the goal of the design.
Refinement
* Then, during a refinement step, they may pad the specification in order to clarify the goal or to turn the abstract machine more concrete by adding details about data structures and algorithms that define, how the goal is achieved.
* The new version, which is called ''Refinement'', should be proven to be coherent and including all the properties of the abstract machine.
* The designer may make use of B libraries in order to model data structures or to include or import existing components.
Implementation
* The refinement continues until a deterministic version is achieved: the ''Implementation''.
* During all of the development steps the same notation is used and the last version may be translated to a
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
for compilation.
Software
B-Toolkit
The B-Toolkit is a collection of programming tools designed to support the use of the B-Tool, is a set theory-based mathematical interpreter, for the purposes of supporting the B-Method. Development was originally undertaken by
Ib Holm Sørensen and others, at
BP Research and then at B-Core (UK) Limited.
The toolkit uses a custom
X Window
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
Motif Interface for GUI management and runs primarily on the
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
,
Mac OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
and
Solaris
Solaris may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Solaris'' (1972 film), directed by ...
operating systems.
The B-Toolkit source code is now available.
Atelier B
Developed by ClearSy, Atelier B is an industrial tool that allows for the operational use of the B Method to develop defect-free proven software (formal software). Two versions are available: 1) Community Edition available to anyone without any restriction; 2) Maintenance Edition for maintenance contract holders only. Atelier B has been used to develop safety automatisms for the various subways installed throughout the world by
Alstom
Alstom SA is a French multinational rolling stock manufacturer operating worldwide in rail transport markets, active in the fields of passenger transportation, signalling, and locomotives, with products including the AGV, TGV, Eurostar, Avelia ...
and
Siemens
Siemens AG ( ) is a German multinational conglomerate corporation and the largest industrial manufacturing company in Europe headquartered in Munich with branch offices abroad.
The principal divisions of the corporation are ''Industry'', '' ...
, and also for Common Criteria certification and the development of system models by
ATMEL
Atmel Corporation was a creator and manufacturer of semiconductors before being subsumed by Microchip Technology in 2016. Atmel was founded in 1984. The company focused on embedded systems built around microcontrollers. Its products included micr ...
and
STMicroelectronics
STMicroelectronics N.V. commonly referred as ST or STMicro is a Dutch multinational corporation and technology company of French-Italian origin headquartered in Plan-les-Ouates near Geneva, Switzerland and listed on the French stock market. ST ...
.
Rodin
The Rodin Platform is a tool that supports
Event-B.
Rodin is based on an
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
software IDE (
integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
) and provides support for
refinement
Refinement may refer to: Mathematics
* Equilibrium refinement, the identification of actualized equilibria in game theory
* Refinement of an equivalence relation, in mathematics
** Refinement (topology), the refinement of an open cover in mathem ...
and
mathematical proof
A mathematical proof is an inferential argument for a mathematical statement, showing that the stated assumptions logically guarantee the conclusion. The argument may use other previously established statements, such as theorems; but every proo ...
. The platform is
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
and forms part of the Eclipse framework It is extendable using software component
plug-ins. The development of Rodin has been supported by the
European Union
The European Union (EU) is a supranational political and economic union of member states that are located primarily in Europe. The union has a total area of and an estimated total population of about 447million. The EU has often been des ...
projects DEPLOY (2008–2012), RODIN (2004–2007), and ADVANCE (2011–2014).
BHDL
BHDL provides a method for the correct design of
digital circuit In theoretical computer science, a circuit is a model of computation in which input values proceed through a sequence of gates, each of which computes a function. Circuits of this kind provide a generalization of Boolean circuits and a mathematical ...
s, combining
the advantages of the hardware description language
VHDL
The VHSIC Hardware Description Language (VHDL) is a hardware description language (HDL) that can model the behavior and structure of digital systems at multiple levels of abstraction, ranging from the system level down to that of logic gates ...
with the formality of B.
APCB
APCB (''Association de Pilotage des Conférences B'', in English the ''International B Conference Steering Committee'') has organized meetings associated with the B-Method.
It has organized ZB conferences with the
Z User Group
The Z User Group (ZUG) was established in 1992 to promote use and development of the Z notation, a formal specification language for the description of and reasoning about computer-based systems. It was formally constituted on 14 December 1992 du ...
and ABZ conferences, including
Abstract State Machines
In computer science, an abstract state machine (ASM) is a state machine operating on states that are arbitrary data structures (structure in the sense of mathematical logic, that is a nonempty set together with a number of functions ( operations ...
(ASM) as well as the
Z notation
The Z notation is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general.
History
In 1974, Jean-Raymond Abrial ...
.
Books
*''The B-Book: Assigning Programs to Meanings'',
Jean-Raymond Abrial
Jean-Raymond Abrial (born 1938) is a French computer scientist and inventor of the Z and B formal methods.
Abrial's 1974 paper ''Data Semantics'' laid the foundation for a formal approach to Data Models; although not adopted directly by practit ...
,
Cambridge University Press
Cambridge University Press is the university press of the University of Cambridge. Granted letters patent by Henry VIII of England, King Henry VIII in 1534, it is the oldest university press
A university press is an academic publishing hou ...
, 1996. .
*''The B-Method: An Introduction'', Steve Schneider,
Palgrave Macmillan
Palgrave Macmillan is a British academic and trade publishing company headquartered in the London Borough of Camden. Its programme includes textbooks, journals, monographs, professional and reference works in print and online. It maintains off ...
, Cornerstones of Computing series, 2001. .
*''Software Engineering with B'', John Wordsworth,
Addison Wesley Longman
Addison-Wesley is an American publisher of textbooks and computer literature. It is an Imprint (trade name), imprint of Pearson PLC, a global publishing and education company. In addition to publishing books, Addison-Wesley also distributes its te ...
, 1996. .
*''The B Language and Method: A Guide to Practical Formal Development'',
Kevin Lano
Kevin C. Lano (born 1963) is a British computer scientist.
Life and work
Kevin Lano studied at the University of Reading, attaining a first class degree in Mathematics and Computer Science, and the University of Bristol where he completed his ...
,
Springer-Verlag
Springer Science+Business Media, commonly known as Springer, is a German multinational publishing company of books, e-books and peer-reviewed journals in science, humanities, technical and medical (STM) publishing.
Originally founded in 1842 in ...
, FACIT series, 1996. .
*''Specification in B: An Introduction using the B Toolkit'',
Kevin Lano
Kevin C. Lano (born 1963) is a British computer scientist.
Life and work
Kevin Lano studied at the University of Reading, attaining a first class degree in Mathematics and Computer Science, and the University of Bristol where he completed his ...
,
World Scientific Publishing Company
World Scientific Publishing is an academic publisher of scientific, technical, and medical books and journals headquartered in Singapore. The company was founded in 1981. It publishes about 600 books annually, along with 135 journals in various f ...
,
Imperial College Press
Imperial College Press (ICP) was formed in 1995 as a partnership between Imperial College of Science, Technology and Medicine in London and World Scientific publishing.
This publishing house was awarded the rights, by The Nobel Foundation, Swede ...
, 1996. .
*''Modeling in Event-B: System and Software Engineering'',
Jean-Raymond Abrial
Jean-Raymond Abrial (born 1938) is a French computer scientist and inventor of the Z and B formal methods.
Abrial's 1974 paper ''Data Semantics'' laid the foundation for a formal approach to Data Models; although not adopted directly by practit ...
,
Cambridge University Press
Cambridge University Press is the university press of the University of Cambridge. Granted letters patent by Henry VIII of England, King Henry VIII in 1534, it is the oldest university press
A university press is an academic publishing hou ...
, 2010. .
Conferences
The following conferences have explicitly included the B-Method and/or Event-B:
*Z2B Conference,
Nantes
Nantes (, , ; Gallo: or ; ) is a city in Loire-Atlantique on the Loire, from the Atlantic coast. The city is the sixth largest in France, with a population of 314,138 in Nantes proper and a metropolitan area of nearly 1 million inhabita ...
,
France
France (), officially the French Republic ( ), is a country primarily located in Western Europe. It also comprises of Overseas France, overseas regions and territories in the Americas and the Atlantic Ocean, Atlantic, Pacific Ocean, Pac ...
, 10–12 October 1995
*First B Conference, Nantes, France, 25–27 November 1996
*Second B Conference,
Montpellier
Montpellier (, , ; oc, Montpelhièr ) is a city in southern France near the Mediterranean Sea. One of the largest urban centres in the region of Occitania (administrative region), Occitania, Montpellier is the prefecture of the Departments of ...
, France, 22–24 April 1998
*ZB 2000,
York
York is a cathedral city with Roman origins, sited at the confluence of the rivers Ouse and Foss in North Yorkshire, England. It is the historic county town of Yorkshire. The city has many historic buildings and other structures, such as a ...
,
United Kingdom
The United Kingdom of Great Britain and Northern Ireland, commonly known as the United Kingdom (UK) or Britain, is a country in Europe, off the north-western coast of the continental mainland. It comprises England, Scotland, Wales and North ...
, 28 August – 2 September 2000
*ZB 2002,
Grenoble
lat, Gratianopolis
, commune status = Prefecture and commune
, image = Panorama grenoble.png
, image size =
, caption = From upper left: Panorama of the city, Grenoble’s cable cars, place Saint- ...
, France, 23–25 January 2002
*ZB 2003,
Turku
Turku ( ; ; sv, Åbo, ) is a city and former capital on the southwest coast of Finland at the mouth of the Aura River, in the region of Finland Proper (''Varsinais-Suomi'') and the former Turku and Pori Province (''Turun ja Porin lääni''; ...
,
Finland
Finland ( fi, Suomi ; sv, Finland ), officially the Republic of Finland (; ), is a Nordic country in Northern Europe. It shares land borders with Sweden to the northwest, Norway to the north, and Russia to the east, with the Gulf of B ...
, 4–6 June 2003
*ZB 2005,
Guildford
Guildford ()
is a town in west Surrey, around southwest of central London. As of the 2011 census, the town has a population of about 77,000 and is the seat of the wider Borough of Guildford, which had around inhabitants in . The name "Guildf ...
, United Kingdom, 2005
*B 2007,
Besançon
Besançon (, , , ; archaic german: Bisanz; la, Vesontio) is the prefecture of the department of Doubs in the region of Bourgogne-Franche-Comté. The city is located in Eastern France, close to the Jura Mountains and the border with Switzerl ...
, France, 2007
*B, from research to teaching, Nantes, France, 16 June 2008
*B, from research to teaching, Nantes, France, 8 June 2009
*B, from research to teaching, Nantes, France, 7 June 2010
*ABZ 2008,
British Computer Society
Sir Maurice Wilkes served as the first President of BCS in 1957
BCS, The Chartered Institute for IT, known as the British Computer Society until 2009, is a professional body and a learned society that represents those working in infor ...
,
London
London is the capital and largest city of England and the United Kingdom, with a population of just under 9 million. It stands on the River Thames in south-east England at the head of a estuary down to the North Sea, and has been a majo ...
, United Kingdom, 16–18 September 2008
*ABZ 2010,
Orford,
Québec
Quebec ( ; )According to the Government of Canada, Canadian government, ''Québec'' (with the acute accent) is the official name in Canadian French and ''Quebec'' (without the accent) is the province's official name in Canadian English is ...
,
Canada
Canada is a country in North America. Its ten provinces and three territories extend from the Atlantic Ocean to the Pacific Ocean and northward into the Arctic Ocean, covering over , making it the world's second-largest country by tot ...
, 23–25 February 2010
*ABZ 2012,
Pisa
Pisa ( , or ) is a city and ''comune'' in Tuscany, central Italy, straddling the Arno just before it empties into the Ligurian Sea. It is the capital city of the Province of Pisa. Although Pisa is known worldwide for its leaning tower, the cit ...
,
Italy
Italy ( it, Italia ), officially the Italian Republic, ) or the Republic of Italy, is a country in Southern Europe. It is located in the middle of the Mediterranean Sea, and its territory largely coincides with the homonymous geographical re ...
, 18–22 June 2012
*ABZ 2014,
Toulouse
Toulouse ( , ; oc, Tolosa ) is the prefecture of the French department of Haute-Garonne and of the larger region of Occitania. The city is on the banks of the River Garonne, from the Mediterranean Sea, from the Atlantic Ocean and from Par ...
, France, 2–6 June 2014
*ABZ 2016,
Linz
Linz ( , ; cs, Linec) is the capital of Upper Austria and third-largest city in Austria. In the north of the country, it is on the Danube south of the Czech border. In 2018, the population was 204,846.
In 2009, it was a European Capital of ...
,
Austria
Austria, , bar, Östareich officially the Republic of Austria, is a country in the southern part of Central Europe, lying in the Eastern Alps. It is a federation of nine states, one of which is the capital, Vienna, the most populous ...
, 23–27 May 2016
*ABZ 2018,
Southampton
Southampton () is a port city in the ceremonial county of Hampshire in southern England. It is located approximately south-west of London and west of Portsmouth. The city forms part of the South Hampshire built-up area, which also covers Po ...
, United Kingdom, 2018
*ABZ 2020,
Ulm
Ulm () is a city in the German state of Baden-Württemberg, situated on the river Danube on the border with Bavaria. The city, which has an estimated population of more than 126,000 (2018), forms an urban district of its own (german: link=no, ...
,
Germany
Germany,, officially the Federal Republic of Germany, is a country in Central Europe. It is the second most populous country in Europe after Russia, and the most populous member state of the European Union. Germany is situated betwe ...
, 2021 (delayed due to the
COVID-19 pandemic
The COVID-19 pandemic, also known as the coronavirus pandemic, is an ongoing global pandemic of coronavirus disease 2019 (COVID-19) caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2). The novel virus was first identif ...
)
*ABZ 2021, Ulm, Germany, 2021
See also
*
Formal methods
In computer science, formal methods are mathematically rigorous techniques for the specification, development, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expec ...
*
Z notation
The Z notation is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general.
History
In 1974, Jean-Raymond Abrial ...
References
External links
B Method.com– work and subjects concerning the B method, a formal method with proof
{{Webarchive, url=https://web.archive.org/web/20080221232310/http://www.atelierb.eu/index_en.html , date=2008-02-21 : Atelier B is a systems engineering workshop, which enables software to be developed that is guaranteed to be flawless
Site B Grenoble
Formal methods
Formal methods tools
Formal specification languages