Введение

Метод разработки программного обеспечения
Метод B — это методология разработки программного обеспечения, основанная на языке B, формальном методе, поддерживаемом инструментами и использующем нотацию абстрактных машин, применяемом при создании компьютерного программного обеспечения.

Обзор

B был первоначально разработан в 1980-х годах Жаном Рэймоном Абриалом во Франции и Великобритании. B связан с нотацией Z (также разработанной Abrial) и поддерживает разработку кода языков программирования на основе спецификаций. B применялся в крупных системах, критичных к безопасности, в Европе (например, в автоматических линиях 14 и 1 парижского метро и ракете Ariane 5). Для B существует надежная, коммерчески доступная инструментальная поддержка для спецификации, проектирования, доказательства и генерации кода. По сравнению с Z, B имеет немного более низкий уровень абстракции и больше ориентирован на последовательное уточнение до кода, а не только на формальную спецификацию, поэтому спецификацию, написанную на B, легче правильно реализовать, чем спецификацию на Z. Для этого существует хорошая инструментальная поддержка. Один и тот же язык используется для спецификации, проектирования и программирования. В числе механизмов – инкапсуляция и локальность данных.

Событие-B

Впоследствии был разработан еще один формальный метод под названием Event B, основанный на методе B и поддерживаемый платформой Rodin. Event B – это формальный метод, предназначенный для моделирования и анализа систем на системном уровне. К особенностям Event B относятся использование теории множеств для моделирования, применение уточнения для представления систем на различных уровнях абстракции и использование математических доказательств для проверки согласованности между этими уровнями уточнения.

Основные компоненты

Обозначение B опирается на теорию множеств и логику первого порядка для спецификации различных версий программного обеспечения, охватывающих весь цикл разработки проекта.

Абстрактная машина

В первой и наиболее абстрактной версии, называемой Абстрактной машиной, разработчик должен определить цель проектирования.

Уточнение

Затем, на этапе уточнения, они могут дополнить спецификацию, чтобы прояснить цель или сделать абстрактную машину более конкретной, добавив детали о структурах данных и алгоритмах, определяющих, как достигается эта цель. Новая версия, называемая Refinement, должна быть доказана как непротиворечивая и включающая все свойства абстрактной машины. Разработчик может использовать библиотеки B для моделирования структур данных или для включения и импорта существующих компонентов.

Реализация

Уточнение продолжается до достижения детерминированной версии: Реализация. На протяжении всех этапов разработки используется единая нотация, и конечная версия может быть транслирована в язык программирования для компиляции.

B-инструментарий

B Toolkit – это набор программных инструментов, разработанных для поддержки использования B Tool, математического интерпретатора, основанного на теории множеств, с целью поддержки метода B. Разработка была первоначально начата Иб Холм Сёренсеном и другими специалистами в BP Research, а затем в B Core (UK) Limited. Инструментарий использует пользовательский графический интерфейс X Window Motif и предназначен в основном для работы в операционных системах Linux, Mac OS X и Solaris. Исходный код B Toolkit теперь находится в открытом доступе.

Ателье Б

Разработанный компанией ClearSy, Atelier B — это промышленный инструмент, позволяющий использовать метод B в практической работе для разработки надежного и безошибочного программного обеспечения (формального программного обеспечения). Доступны две версии: 1) Community Edition, бесплатная для любого пользователя без ограничений; 2) Maintenance Edition, предназначенная исключительно для обладателей договора технической поддержки. Atelier B применялся при разработке систем автоматической безопасности для различных метрополитенов, установленных по всему миру компаниями Alstom и Siemens, а также для сертификации по стандарту Common Criteria и разработки системных моделей компаниями ATMEL и STMicroelectronics.

Родин

Платформа Родена — это инструмент, поддерживающий методологию Event B.

APCB

APCB (Международльный управляющий комитет B-конференций) организовывал встречи, посвященные методу B. Он организовал конференции ZB совместно с Z User Group и конференции ABZ, включая абстрактные машины состояний (ASM) и нотацию Z.