Универсальный системный язык

редактировать

Универсальный системный язык (USL ) - это системный язык моделирования и формальный метод для спецификации и проектирования программного обеспечения и других сложных систем. Он был разработан Маргарет Гамильтон на основе ее опыта написания полетного программного обеспечения для программы Apollo. Язык реализован с помощью программного обеспечения 001 Tool Suite от Hamilton Technologies, Inc. USL развился из 001AXES, который, в свою очередь, развился из AXES, все из которых основаны на аксиомах управления Гамильтона. Пакет 001 Tool Suite использует превентивную концепцию «Разработка до фактов» (DBTF) для процесса разработки на протяжении всего жизненного цикла. DBTF устраняет ошибки как можно раньше в процессе разработки, устраняя необходимость искать ошибки постфактум.

Содержание
  • 1 Философия
  • 2 Формализм для теории управления
  • 3 Реализация
  • 4 См. Также
  • 5 Ссылки
  • 6 Дополнительная литература
  • 7 Внешние ссылки
Философия

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

Определенные гарантии правильности есть встроены в грамматику USL. В отличие от реактивных подходов к верификации программ, тестированию на ошибки на поздних этапах жизненного цикла, философия USL «разработка до факта» является превентивной, не допускающей ошибок вообще. Определение USL моделирует как его приложение (например, авионику или банковскую систему), так и свойства управления в своем собственном жизненном цикле. Предоставляя математическую основу, в рамках которой могут быть зафиксированы объекты, их взаимодействия и их отношения, USL - метаязык - имеет «метамеханизмы» для определения систем. Философия USL заключается в том, что все объекты рекурсивно повторно используются и надежны; надежные системы определяются как надежные системы; в качестве строительных блоков используются только надежные системы; и только надежные системы используются в качестве механизмов для интеграции этих строительных блоков в новую систему. Затем разработчики могут использовать новую систему вместе с более примитивными системами для определения (и построения) более всеобъемлющих надежных систем. Если система надежна, все объекты на всех ее уровнях и слоях надежны.

Некоторые пользователи считают USL более удобными, чем другие формальные системы. Это не только формализм для программного обеспечения, но и определение онтологий для общих элементов проблемных областей, таких как физическое пространство и время событий.

Формализм теории управления

A философия системы формализм для представления логики управления системами, USL основан на наборе аксиом общей теории управления системами с формальными правилами для ее применение. В основе каждой системы USL лежит набор из шести аксиом и предположение об универсальном наборе объектов. Аксиомы обеспечивают формальную основу для «иерархии» USL, называемой картой, которая представляет собой дерево управления, охватывающее сети отношений между объектами. Явные правила для определения карты были выведены из аксиом, в которых, помимо прочего, фиксируются структура, поведение и их интеграция. Каждая аксиома определяет отношение непосредственного доминирования родителя над своими детьми. Союз этих отношений и есть контроль. Среди прочего, аксиомы устанавливают отношения объекта для вызова во времени и пространстве, ввода и вывода (домен и кодомен), прав доступа на ввод и прав доступа на вывод (права доступа к домену и права доступа к домену), обнаружения ошибок и восстановления, и заказ на стадии разработки и эксплуатации. Каждая система в конечном итоге может быть определена в терминах трех примитивных структур управления, каждая из которых является производной от шести аксиом, что приводит к универсальной семантике для определения систем.

Все представления системы определены в терминах карты функций (FMap) и карты типов (TMap). С помощью USL все функции в системе и их отношения определяются с помощью набора FMaps. Точно так же все типы в системе и их отношения определяются набором TMaps. FMaps представляют динамический (действующий) мир действий, фиксируя функциональные и временные (включая приоритетность) характеристики. TMaps представляют статический (существующий) мир объектов, фиксируя пространственные характеристики - например, удерживание одного объекта другим или отношения между местоположениями объектов в пространстве. FMaps изначально интегрированы с TMaps. Каждую карту определяют три универсальные примитивные структуры, производные от набора аксиом, и непримитивные структуры, полученные в конечном итоге в терминах примитивных структур. Примитивные структуры универсальны в том смысле, что их можно использовать для получения новых абстрактных универсальных структур, функций или типов. Процесс создания новых объектов (то есть структур, типов и функций) эквивалентен процессу создания новых типов в конструктивной теории типов. Примитивные функции, соответствующие примитивным операциям с типами, определенными в TMap, находятся в нижних узлах FMap. Примитивные типы, каждый из которых определяется своим собственным набором аксиом, находятся в нижних узлах TMap. Каждая примитивная функция (или тип) может быть реализована как верхний узел карты на нижнем (более конкретном) слое системы. В каждом узле карты находится объект одного и того же типа (например, функция в каждом узле FMap и тип в TMap). Объект в каждом узле играет несколько ролей; например, объект может выступать в качестве родительского (контролирующего своих дочерних элементов) или дочернего элемента (контролируемого своим родителем). В то время как каждая функция на FMap имеет отображение от своего входа к выходу (домен к кодомену), каждый тип на TMap имеет связь между своим доменом и кодоменом. Структура связывает каждого родителя и его потомков в соответствии с набором правил, вытекающих из аксиом контроля. Примитивная структура обеспечивает отношения самой примитивной формы (тончайшее зерно) управления. Все карты в конечном итоге определены в терминах примитивных структур и, следовательно, подчиняются правилам, связанным с каждой структурой: родитель управляет своими дочерними элементами, чтобы иметь зависимые (Присоединиться), независимые (Включить) или отношения принятия решений (Или).

Рисунок. 1 Три примитивные управляющие структуры и их правила образуют универсальную основу для построения карт в областях времени и пространства в виде FMaps и TMaps

Любая система может быть полностью определена с использованием только примитивных структур, но менее примитивных структур, определенных и производных от примитивные структуры - и, следовательно, управляемые аксиомами управления - ускоряют определение и понимание системы. Определенная структура, форма повторного использования, подобная шаблону, предоставляет механизм для определения карты без явного определения некоторых из ее элементов. В структуре FMap есть заполнители для функций переменных; структура TMap имеет заполнители для типов переменных; универсальная структура имеет заполнители для функций или типов. Async - это пример распределенной коммуникативной структуры FMap в реальном времени с асинхронным и синхронным поведением. Примером структуры TMap является TreeOf, коллекция однотипных объектов, упорядоченных с использованием системы индексации дерева. Каждая структура TMap предполагает собственный набор возможных отношений для родительского и дочернего типов. Абстрактные типы, декомпозированные с помощью одной и той же структуры TMap, наследуют одни и те же примитивные операции и, следовательно, одно и то же поведение (каждое из которых доступно для FMaps, у которых есть доступ к членам каждого из его типов TMap).

Реализация

Процесс разработки программной системы с USL вместе с ее автоматизацией, 001 Tool Suite (001), заключается в следующем: определение системы с помощью USL, автоматический анализ определения с Анализатор 001, чтобы убедиться, что USL использовался правильно, автоматически генерирует большую часть проекта и весь код реализации с генератором 001. USL может использоваться для формальной поддержки других языков.

См. Также
Ссылки
Дополнительная литература
Внешние ссылки
На Викискладе есть материалы, связанные с Universal Systems Language.
Последняя правка сделана 2021-06-20 13:30:37
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте