Статус документа
Статус документа

ПНСТ 984-2024

ПРЕДВАРИТЕЛЬНЫЙ НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Системы киберфизические

НАЦИОНАЛЬНАЯ КИБЕРФИЗИЧЕСКАЯ ПЛАТФОРМА

Часть 3

Программирование расширенных иерархических машин состояний

Cyber-physical systems. National cyber-physical platform. Extended hierarchical state machine programming



ОКС 35.020

Срок действия с 2025-02-01

до 2028-02-01

Предисловие

1 РАЗРАБОТАН Ассоциацией участников технологических кружков

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 194 "Киберфизические системы"

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 27 декабря 2024 г. № 124-пнст

Правила применения настоящего стандарта и проведения его мониторинга установлены в ГОСТ Р 1.16-2011 (разделы 5 и 6).

Федеральное агентство по техническому регулированию и метрологии собирает сведения о практическом применении настоящего стандарта. Данные сведения, а также замечания и предложения по содержанию стандарта можно направить не позднее чем за 4 мес до истечения срока его действия разработчику настоящего стандарта по адресу: 115054 Москва, ул.Щипок, д.5/7, стр.2,3, ком.21, e-mail: info@tc194.ru и/или в Федеральное агентство по техническому регулированию и метрологии: 123112 Москва, Пресненская набережная, д.10, стр.2.

В случае отмены настоящего стандарта соответствующая информация будет опубликована в ежемесячном информационном указателе "Национальные стандарты" и также будет размещена на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)

Введение


Данный стандарт описывает подход к программированию и разработке киберфизических систем, применяемый в рамках национальной киберфизической платформы, и соответствующий ему графический язык программирования, основанный на концепции расширенных иерархических машин состояний [1]. Стандарт развивает парадигмы автоматного [2] и событийного программирования [3] и позволяет описать в виде визуальной диаграммы машины состояний универсальные программы управления системами, в т.ч. программируемыми электронными приборами и киберфизическими системами, а также протоколы и общие алгоритмы поведения систем.

Представленный в стандарте язык диаграмм расширенных иерархических машин опирается на схемы диаграмм состояний (statecharts), введенные Дэвидом Харелом [4] и формализованные в рамках международного стандарта [5].

     1 Область применения

Настоящий стандарт определяет графическое описание языка диаграмм расширенных иерархических машин состояний. Диаграммы позволяют формально описать машины состояний с необходимыми расширениями, что позволяет применять данный язык для создания широкого класса системных и прикладных программ с целью последующего машинного исполнения или автоматической трансляции как в языки программирования высокого уровня (такие как C/C++ или Python), так и в различные текстовые псевдоязыки. Настоящий стандарт может быть применен при разработке пользовательских интерфейсов графического программирования, системных библиотек и другого программного обеспечения, связанного с разработкой киберфизических систем и управлением системами в целом.

     2 Нормативные ссылки

В настоящем стандарте использована нормативная ссылка на следующий стандарт:

ПНСТ 983-2024 Системы киберфизические. Национальная киберфизическая платформа. Термины и определения

Примечание - При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящего стандарта в ссылочный стандарт, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, рекомендуется применять в части, не затрагивающей эту ссылку.

     3 Термины и определения

В настоящем стандарте применены термины по ПНСТ 983-2024, а также следующие термины с соответствующими определениями:

3.1 активное состояние (active state): Состояние, включая родительские состояния, если они есть, в котором находится машина состояний.

Примечание - После вхождения управления в состояние оно становится активным и остается таковым до выхода управления из состояния.

3.2 блок состояния (state block): Составляющие графического представления состояния, обеспечивающие визуальное различие имени состояния, его внутреннего поведения, внутренних переходов, дочерних состояний и переходов (если они есть).

3.3 вершина (vertex): Вершина в ориентированном графе машины состояний.

Примечания

1 К вершинам в машинах состояний относятся состояния и псевдосостояния.

2 В общем случае вершина может быть источником или целью любого количества переходов.

3.4 внешний переход (external transition): Переход, который подразумевает выход из исходного состояния.

3.5 внутренний переход (internal transition): Переход, который не приводит к изменению активного состояния.

Примечание - Внутренние переходы обозначаются в теле состояния.

3.6 псевдосостояние выбора (choice pseudostate): Псевдосостояние, реализующее в диаграмме машины состояний динамическое разветвление с условием, проверка которого подразумевает ограждающие условия на исходящих переходах.

3.7 графический язык программирования (visual programming language): Человекочитаемый язык, предназначенный для написания программы для компьютера или вычислительного устройства, который обеспечивает графическую визуализацию алгоритма и предваряет его текстовое описание.

3.8 псевдосостояние глубокой истории (deep history pseudostate): Псевдосостояние, позволяющее возвращаться в последнее активное подсостояние составного состояния и в котором учитываются все подсостояния текущего состояния.

3.9 завершающее псевдосостояние (terminate pseudostate): Псевдосостояние, при переходе в которое выполнение данной машины состояний немедленно завершается.

3.10 исходное состояние (source state): Состояние, которое было активным в машине состояния до перехода.

3.11 квалифицированное имя (qualified name): Уникальный идентификатор элемента, который конструируется из его собственного имени и имен родительских пространств имен, содержащих данный элемент.

3.12 комментарий (comment): Специальный элемент с поясняющим текстом, который может быть присоединен к другому элементу или множеству элементов.

Примечание - Комментарий дает возможность добавлять текстовые аннотации к элементам диаграммы машины состояний.

3.13 комментарий машиночитаемый (формальный) (machine-readable (formal) comment): Комментарий, предназначенный для автоматической обработки и интерпретации при машинной реализации машины состояний.

Примечание - Машиночитаемые комментарии предназначены в том числе для хранения метаинформации о диаграмме машины состояний.

3.14 комментарий человекочитаемый (неформальный) (human-readable (informal) comment): Комментарий, предназначенный для чтения человеком или системой, работающей с текстами на естественном языке.

Примечание - Человекочитаемый комментарий содержит информацию о содержании диаграммы или процессе разработки, которая предназначена для разработчиков и пользователей диаграммы.

3.15 конечное состояние (final state): Состояние, переход в которое означает, что охватывающая его область завершает выполнение.

Примечание - Если охватывающая область непосредственно содержится в машине состояний, а все остальные области в машине состояний также завершены, это означает, что вся машина состояний завершила работу.

3.16 контекст исполнения (execution context): Контекст, задающий условия исполнения конкретной машины состояний и определяющий, какие события возможны в машине состояний и какие действия могут реализовываться в рамках поведения элементов машины состояний.

3.17 корневое пространство имен (root namespace): Пространство имен, которое не содержится ни в одном другом пространстве имен.

Примечание - Как правило это область, принадлежащая самой машине состояний.

3.18 псевдосостояние локальной истории (shallow history): Псевдосостояние, позволяющее возвращаться в последнее активное подсостояние составного состояния и в котором не учитываются изменения состояний внутри вложенных состояний данного состояния.

3.19 локальный переход (local transition): Переход, который не приводит к выходу из составного родительского состояния, но может привести к выходу из состояний внутри составного состояния.

Примечание - К таким переходам, например, относится переход из родительского состояния в одно из своих дочерних состояний.

3.20 расширенная иерархическая машина состояний; РИМС (state machine): Расширенная версия конечных автоматов, включающая вложенность состояний и использование переменных, используемая для описания поведения сложных систем и программирования их реакции на внутренние и внешние события с использованием графического представления.

Примечания

1 Машина состояний связана с целевой платформой и целевым языком, которым размечается поведение в машине состояний.

2 В рамках диаграмм машин состояний элемент "Машина состояний" содержит одну или несколько областей, которые, в свою очередь, содержат состояния и переходы. Экземпляр машины состояний связывается с определенным контекстом исполнения.

3.21 наименьший общий предок (least common ancestor): Наименьшее составное состояние, которое является родительским состоянием (предком) одновременно и исходного, и целевого состояний.

3.22 начальное псевдосостояние (initial pseudostate): Вершина, включаемая в машину состояний или составное состояние, обозначающая начало исполнения данной машины состояний или состояния.

Примечание - Переход из начального псевдосостояния приводит в начальное состояние.

3.23 начальное состояние (initial state): Состояние, которое становится активным при запуске машины состояний или при входе в составное состояние.

Примечание - Не следует путать с начальным псевдосостоянием.

3.24 область (region): Фрагмент машины состояний или составного состояния, включающий состояния и переходы.

Примечание - Если машина состояний или составное состояние содержит более одной области, эти области называют ортогональными (см. 3.27).

3.25 псевдосостояние объединения (join pseudostate): Псевдосостояние для объединения нескольких переходов, исходящих из вершин в разных ортогональных областях.

3.26 ограждающее условие (guard condition): Условие, которое позволяет управлять запуском перехода, указывается на переходе и проверяется в момент возникновения события, связанного с данным переходом.

Примечание - Если в момент возникновения события, связанного с данным переходом, ограждающее условие имеет значение Истина, переход разрешается и происходит; в противном случае переход запрещается.

3.27 ортогональные области (orthogonal regions): Две или более области, в которых поведение машины состояний не оказывает влияние на другие области в этом наборе.

Примечание - Ортогональные области моделируют независимое ("параллельное") исполнение составляющих машины состояний.

3.28 отложенное событие (deferred event): Событие с возможностью отсрочки его обработки в машине состояний.

3.29 парадигма программирования (programming paradigm): Совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию), набор концептов, определяющий организацию вычислений и структурирование работы, выполняемой компьютером.

3.30 переход (transition): Направленная связь между исходной вершиной и целевой вершиной.

Примечания

1 Переход может быть частью составного перехода, который переводит машину состояний из одного состояния в другое, позволяя машине состояний совершать действия в ответ на возникновение определенных событий.

2 В частном случае переход может не приводить к изменению активного состояния (см. 3.5).

Доступ к полной версии документа ограничен
Этот документ или информация о нем доступны в системах «Техэксперт» и «Кодекс».
Нужен полный текст и статус документов ГОСТ, СНИП, СП?
Попробуйте «Техэксперт: Базовые нормативные документы» бесплатно
Реклама. Рекламодатель: Акционерное общество "Информационная компания "Кодекс". 2VtzqvQZoVs