ГОСТРМЭК 62279—2016
D.63 Диаграммы функциональных блоков (FBD)
Цель. Описание функции между входными переменными и выходными переменными с помощью диаграмм.
Описание. См. МЭК 61131-3:2013. 8.3
D.64 Диаграмма состояний / диаграммы переходов состояний
Цель. Описание поведения системы с помощью диаграмм.
Описание. Диаграммы состояний или диаграммы переходов состояний используются, чтобы описать пове
дение системы. Диаграммы состояний могут описать возможные состояния объекта, поскольку имеют место со
бытия. Каждая диаграмма обычно представляет объекты одного класса и отслеживает различные состояния его
объектов в системе.
Диаграмма состояний может использоваться для графического представления конечных автоматов. Это
было предложено Тейлором Бутом в его книге 1967 года «Последовательные машины и теория автоматов». Другое
возможное представление — таблица переходов состояний.
Классическая форма диаграммы состояний для конечного автомата — направленный граф.
0.65 Моделирование данных
Цель. Создание модели данных.
Описание. Моделирование данных в информатике — процесс создания модели данных, применяя формаль
ные описания модели данных, используя методы моделирования данных.
Модель данных при разработке программного обеспечения — абстрактная модель, которая описывает, как
данные представлены и как к ним может быть получен доступ. Модели данных формально определяют объекты
данных и отношения между объектами данных для интересуемой предметной области. Некоторые типичные при
менения моделей базы данных включают поддержку разработки баз данных и обмена данными для определенной
сферы интересов. Модели данных определены на языке моделирования данных.
D.66 Диаграммы потоков управления/граф потока управления
Цель. Описание поведения системы с помощью диаграмм.
Описание. В информатике, диаграмма потока управления или граф потока управления (CFG) является ис
пользующим нотацию графа представлением всех путей, которые могли бы быть реализованы в программе во вре мя
ее выполнения. Каждый узел графа представляет базовый блок. т. е. линейную часть кода без любых переходов или
меток перехода; меток перехода в начале блока, и переходов в конце блока. Для представления переходов в потоке
управления используются ориентированные ребра. В большинстве представлений существует два специ ально
определяемых блоках: входной блок, через который управление входит в блок-схему, и блок выхода, через который
весь поток управления уходит.
CFG важен для многих оптимизаций компилятора и инструментальных средств статического анализа.
Достижимость — другое свойство графа, полезное при оптимизации. Если вход блоха|’подграфа не соединен
с подграфом, содержащим входной блок, то этот блок недостижим во время любого выполнения программы, и поэ
тому его код недостижим; этот блок можно безопасно удалить. Если выходной блок недостижим из входного блока, то
это указывает на бесконечный цикл. Кроме того, недостижимый код и некоторые бесконечные циклы возможны, даже
если программист явно не кодировал такой путь: оптимизации подобные подстановке значений констант и
сворачиванию констант, за которыми следует переход к многопоточной обработке, могут свернуть множество ос
новных блоков в один, что ведет к удалению ребер из CFG, и т.д., и. таким образом, возможна потеря части графа.
Терминология — эти термины обычно используются при обсуждении графа потока управления;
входной блок — блок, от которого начинается любой путь:
выходной блок — блок, на котором завершаются все пути;
обратное ребро — ребро, которое указывает на предка при обходе графа е глубину (DFS);
критическое ребро — ребро, которое не является ни единственным ребром, выходящим из исходного блока
графа, ни единственным ребром, входящим в целевой блок графа. Эти ребра должны быть разделены (должен
быть создан новый блок в середине ребра), чтобы вставить вычисления на ребре:
аномальное ребро — ребро, назначение которого неизвестно. Эти ребра препятствуют оптимизации. Они
могут появляться, например, после преобразования конструкций обработки исключений;
невозможное ребро — (также известное, как ложное ребро) ребро, которое было добавлено к графу исклю
чительно для того, чтобы сохранить свойство графа о постдоминировании выходным блоком любого другого узла.
Это ребро никогда не может быть пройдено;
доминатор (обязательный предшественник) — узел
М
доминирует над блоком
N.
если любой путь, достига ющий
N.
обязан предварительно пройти блок
М.
Входной узел доминирует над всеми остальными блоками графа;
постдоминатор — узел
М
постдоминирует над блоком
N.
если любой путь от
N
к выходному блоку обязан
пройти через узел
М.
Выходной блок постдоминирует все блоки графа.
непосредственный доминатор — блок
М
непосредственно доминирует над блоком
N.
если
М
доминирует над
N.
и нет никакого промежуточного блока
Р
такого, что
М
доминирует над
Р
и
Р
доминирует над
N.
Другими словами.
М
— последний доминатор на любом пути от входа до
N.
У каждого блока есть уникальный непосредственный до
минатор. если у него есть кто-либо вообще;
90