HOME

TheInfoList



OR:

The B method is a method of
software development Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
based on B, a tool-supported
formal method Formal, formality, informal or informality imply the complying with, or not complying with, some set of requirements ( forms, in Ancient Greek). They may refer to: Dress code and events * Formal wear, attire for formal events * Semi-formal att ...
based on an abstract machine notation, used in the development of computer
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
.


Overview

B was originally developed in the 1980s by
Jean-Raymond Abrial Jean-Raymond Abrial (6 November 1938 – 26 May 2025) was a French computer scientist and inventor of the Z and B formal methods. Abrial was a student at the École Polytechnique (class of 1958). Abrial's 1974 paper ''Data Semantics'' laid ...
in
France France, officially the French Republic, is a country located primarily in Western Europe. Overseas France, Its overseas regions and territories include French Guiana in South America, Saint Pierre and Miquelon in the Atlantic Ocean#North Atlan ...
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 Abria ...
(also originated by Abrial) and supports development of
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
code from specifications. B has been used in major
safety-critical system A safety-critical system 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 * environmental h ...
applications in
Europe Europe is a continent located entirely in the Northern Hemisphere and mostly in the Eastern Hemisphere. It is bordered by the Arctic Ocean to the north, the Atlantic Ocean to the west, the Mediterranean Sea to the south, and Asia to the east ...
(such as the automatic Paris Métro lines 14 and 1 and the
Ariane 5 Ariane 5 is a retired European heavy-lift space launch vehicle operated by Arianespace for the European Space Agency (ESA). It was launched from the Guiana Space Centre (CSG) in French Guiana. It was used to deliver payloads into geostationar ...
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 the concept or proposal for an object, process, or system. The word ''design'' refers to something that is or has been intentionally created by a thinking agent, and is sometimes used to refer to the inherent nature of something ...
,
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 co ...
and code generation. Compared to Z, B is slightly more low-level and more focused on refinement to code rather than just
formal specification In computer science, formal specifications are mathematically based techniques whose purpose is 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 verify ...
— 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 u ...
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 Set (mathematics), 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 mathema ...
and
first order logic First-order logic, also called predicate logic, predicate calculus, or quantificational logic, is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science. First-order logic uses quantified variables over ...
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 the ''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 include 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. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
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 originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been a ...
Motif Interface for GUI management and runs primarily on the
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Mac OS X macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
and Solaris 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 which operates worldwide in rail transport markets. It is active in the fields of passenger transportation, signaling, and locomotives, producing high-speed, suburban, regional ...
and
Siemens Siemens AG ( ) is a German multinational technology conglomerate. It is focused on industrial automation, building automation, rail transport and health technology. Siemens is the largest engineering company in Europe, and holds the positi ...
, and also for Common Criteria certification and the development of system models by ATMEL and
STMicroelectronics STMicroelectronics Naamloze vennootschap, NV (commonly referred to as ST or STMicro) is a European multinational corporation, multinational semiconductor contract manufacturing and design company. It is the largest of such companies in Europe. ...
.


Click'n'Prove

The Click'n'Prove tool provides an environment for the generation and discharge of proof obligations, for consistency and refinement checking.


Rodin

The Rodin Platform is a tool that supports Event-B. Rodin is based on an
Eclipse An eclipse is an astronomical event which 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 ...
software IDE (
integrated development environment An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
) and provides support for refinement and
mathematical proof A mathematical proof is a deductive reasoning, deductive Argument-deduction-proof distinctions, argument for a Proposition, mathematical statement, showing that the stated assumptions logically guarantee the conclusion. The argument may use othe ...
. 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 and view the source code, design documents, or content of the product. The open source model is a decentrali ...
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 union, supranational political union, political and economic union of Member state of the European Union, member states that are Geography of the European Union, located primarily in Europe. The u ...
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 mathematica ...
s, combining the advantages of the hardware description language
VHDL VHDL (Very High Speed Integrated Circuit Program, VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of Digital electronics, digital systems at multiple levels of abstraction, ran ...
with the formality of B.


APCB

APCB (, the ''International B Conference Steering Committee'') has organized meetings associated with the B-Method. It has organized ZB conferences with the Z User Group and ABZ conferences, including Abstract State Machines (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 Abria ...
.


Books

*'' The B-Book: Assigning Programs to Meanings'',
Jean-Raymond Abrial Jean-Raymond Abrial (6 November 1938 – 26 May 2025) was a French computer scientist and inventor of the Z and B formal methods. Abrial was a student at the École Polytechnique (class of 1958). Abrial's 1974 paper ''Data Semantics'' laid ...
,
Cambridge University Press Cambridge University Press was the university press of the University of Cambridge. Granted a letters patent by King Henry VIII in 1534, it was the oldest university press in the world. Cambridge University Press merged with Cambridge Assessme ...
, 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 offi ...
, Cornerstones of Computing series, 2001. . *''Software Engineering with B'', John Wordsworth, Addison Wesley Longman, 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 d ...
,
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 d ...
, World Scientific Publishing Company, Imperial College Press, 1996. . *''Modeling in Event-B: System and Software Engineering'',
Jean-Raymond Abrial Jean-Raymond Abrial (6 November 1938 – 26 May 2025) was a French computer scientist and inventor of the Z and B formal methods. Abrial was a student at the École Polytechnique (class of 1958). Abrial's 1974 paper ''Data Semantics'' laid ...
,
Cambridge University Press Cambridge University Press was the university press of the University of Cambridge. Granted a letters patent by King Henry VIII in 1534, it was the oldest university press in the world. Cambridge University Press merged with Cambridge Assessme ...
, 2010. .


Conferences

The following conferences have explicitly included the B-Method and/or Event-B: *Z2B Conference,
Nantes Nantes (, ; ; or ; ) is a city in the Loire-Atlantique department of France on the Loire, from the Atlantic Ocean, Atlantic coast. The city is the List of communes in France with over 20,000 inhabitants, sixth largest in France, with a pop ...
,
France France, officially the French Republic, is a country located primarily in Western Europe. Overseas France, Its overseas regions and territories include French Guiana in South America, Saint Pierre and Miquelon in the Atlantic Ocean#North Atlan ...
, 10–12 October 1995 *First B Conference, Nantes, France, 25–27 November 1996 *Second B Conference,
Montpellier Montpellier (; ) 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, department of ...
, France, 22–24 April 1998 *ZB 2000,
York York is a cathedral city in North Yorkshire, England, with Roman Britain, Roman origins, sited at the confluence of the rivers River Ouse, Yorkshire, Ouse and River Foss, Foss. It has many historic buildings and other structures, such as a Yor ...
,
United Kingdom The United Kingdom of Great Britain and Northern Ireland, commonly known as the United Kingdom (UK) or Britain, is a country in Northwestern Europe, off the coast of European mainland, the continental mainland. It comprises England, Scotlan ...
, 28 August – 2 September 2000 *ZB 2002,
Grenoble Grenoble ( ; ; or ; or ) is the Prefectures in France, prefecture and List of communes in France with over 20,000 inhabitants, largest city of the Isère Departments of France, department in the Auvergne-Rhône-Alpes Regions of France, region ...
, France, 23–25 January 2002 *ZB 2003,
Turku Turku ( ; ; , ) is a city in Finland and the regional capital of Southwest Finland. It is located on the southwestern coast of the country at the mouth of the Aura River (Finland), River Aura. The population of Turku is approximately , while t ...
,
Finland Finland, officially the Republic of Finland, is a Nordic country in Northern Europe. It borders Sweden to the northwest, Norway to the north, and Russia to the east, with the Gulf of Bothnia to the west and the Gulf of Finland to the south, ...
, 4–6 June 2003 *ZB 2005,
Guildford Guildford () is a town in west Surrey, England, around south-west 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 nam ...
, United Kingdom, 2005 *B 2007,
Besançon Besançon (, ; , ; archaic ; ) is the capital of the Departments of France, 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 Switzerland. Capi ...
, 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 image:Maurice Vincent Wilkes 1980 (3).jpg, Sir Maurice Wilkes served as the first President of BCS in 1957. The British Computer Society (BCS), branded BCS, The Chartered Institute for IT, since 2009, is a professional body and a learned ...
,
London London is the Capital city, capital and List of urban areas in the United Kingdom, largest city of both England and the United Kingdom, with a population of in . London metropolitan area, Its wider metropolitan area is the largest in Wester ...
, United Kingdom, 16–18 September 2008 *ABZ 2010, Orford,
Québec Quebec is Canada's largest province by area. Located in Central Canada, the province shares borders with the provinces of Ontario to the west, Newfoundland and Labrador to the northeast, New Brunswick to the southeast and a coastal border ...
,
Canada Canada is a country in North America. Its Provinces and territories of Canada, ten provinces and three territories extend from the Atlantic Ocean to the Pacific Ocean and northward into the Arctic Ocean, making it the world's List of coun ...
, 23–25 February 2010 *ABZ 2012,
Pisa Pisa ( ; ) is a city and ''comune'' (municipality) 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 the Leaning Tow ...
,
Italy Italy, officially the Italian Republic, is a country in Southern Europe, Southern and Western Europe, Western Europe. It consists of Italian Peninsula, a peninsula that extends into the Mediterranean Sea, with the Alps on its northern land b ...
, 18–22 June 2012 *ABZ 2014,
Toulouse Toulouse (, ; ; ) is a city in southern France, the Prefectures in France, prefecture of the Haute-Garonne department and of the Occitania (administrative region), Occitania region. The city is on the banks of the Garonne, River Garonne, from ...
, France, 2–6 June 2014 *ABZ 2016,
Linz Linz (Pronunciation: , ; ) is the capital of Upper Austria and List of cities and towns in Austria, third-largest city in Austria. Located on the river Danube, the city is in the far north of Austria, south of the border with the Czech Repub ...
,
Austria Austria, formally the Republic of Austria, is a landlocked country in Central Europe, lying in the Eastern Alps. It is a federation of nine Federal states of Austria, states, of which the capital Vienna is the List of largest cities in Aust ...
, 23–27 May 2016 *ABZ 2018,
Southampton Southampton is a port City status in the United Kingdom, city and unitary authority in Hampshire, England. It is located approximately southwest of London, west of Portsmouth, and southeast of Salisbury. Southampton had a population of 253, ...
, United Kingdom, 2018 *ABZ 2020, Ulm,
Germany Germany, officially the Federal Republic of Germany, is a country in Central Europe. It lies between the Baltic Sea and the North Sea to the north and the Alps to the south. Its sixteen States of Germany, constituent states have a total popu ...
, 2021 (delayed due to the
COVID-19 pandemic The COVID-19 pandemic (also known as the coronavirus pandemic and COVID pandemic), caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2), began with an disease outbreak, outbreak of COVID-19 in Wuhan, China, in December ...
) *ABZ 2021, Ulm, Germany, 2021


See also

*
Formal methods In computer science, formal methods are mathematics, mathematically rigorous techniques for the formal specification, specification, development, Program analysis, analysis, and formal verification, verification of software and computer hardware, ...
*
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 Abria ...


References


External links


B Method.com
– work and subjects concerning the B method, a formal method with proof

: Atelier B is a systems engineering workshop, which enables software to be developed that is guaranteed to be flawless
Site B Grenoble
{{Authority control Formal methods Formal methods tools Formal specification languages