График

hisf_0003: Использование побитовых операций

Идентификатор: Заголовокhisf_0003: Использование побитовых операций
Описание

При использовании побитовых операций в Stateflow® блоки,

AИзбегайте целочисленных типов данных со знаком в качестве операндов для побитовых операций.
Примечания

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

ОбъяснениеAПродвигайте однозначный стиль моделирования.
Проверки Model AdvisorПроверяйте использование побитовых операций в диаграммах Stateflow (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Подмножество языка "
    IEC 61508-3, Таблица A.3 (2) 'Сильно типизированный язык программирования "

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

  • ISO 26262-6, таблица 1 (1b) «Использование языковых подмножеств»
    ISO 26262-6, таблица 1 (1с) «Обеспечение соблюдения строгих типоразмеров»

  • EN 50128, таблица A.4 (11) 'Language Subset'
    EN 50128, таблица A.3 (1) 'Defensive Programming'

  • DO-331, раздел MB.6.3.3.d 'Программная архитектура is verifiable'
    DO-331, Section MB.6.3.2.g 'Алгоритмы точны'

  • MISRA C:2012, правило 10.1

См. такжеhisl_0019: Использование побитовых операций
Последнее изменениеR2016a

hisf_0004: Защита от рекурсивных вызовов функций для улучшения податливости кода

Идентификатор: Заголовокhisf_0004: Защита от рекурсивных вызовов функций для улучшения податливости кода
ОписаниеЧтобы улучшить податливость сгенерированного кода, не вызывайте функции рекурсивно. Это включает любую комбинацию графических функций, функций таблицы истинности, MATLAB® функций, или Simulink® функций.
Необходимые условия
ПримечанияРекурсия существует, когда функция вызывает себя прямо или косвенно через другой вызов функции.
ОбъяснениеПродвигайте поведение ограниченного вызова функции.
Проверки Model AdvisorПроверяйте использование рекурсий (Simulink Check)
Ссылки
  • IEC 61508-3, таблица B.1 (6) «Ограниченное использование рекурсии»

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

  • ISO 26262-6, таблица 6 (1j) «Без рекурсий»

  • EN 50128, таблица A.12 (6) «Ограниченное использование рекурсии»

  • DO-331, Section MB.6.3.2.g 'Алгоритмы точны'
    DO-331, раздел MB.6.3.3.d 'Программная архитектура is verifiable'

  • MISRA C:2012, правило 17.2

Последнее изменениеR2021a
Примеры

В Stateflow существует несколько шаблонов, которые могут привести к рекурсии.

Рекурсивные вызовы функций

Когда введено состояние A по умолчанию, событие Evn транслируется в действии входа А. Evn приводит к рекурсивному вызову алгоритма интерпретации. Поскольку A активно, выполняется тестирование исходящего перехода A. Начиная с текущего события Evn соответствует событию перехода (и из-за отсутствия условия) выполняется действие условия, широковещательная передача Evn снова. Это приводит к новому вызову алгоритма интерпретации, который повторяет ту же последовательность шагов до переполнения стека.

Рекурсивные вызовы функций

hisf_0007: Использование условий соединения (поддержание взаимного исключения)

Идентификатор: Заголовок

hisf_0007: Использование условий соединения (поддержание взаимного исключения)

Описание

Для повышения ясности и предотвращения генерации недоступного кода:

AСделать условия соединения взаимоисключающими.
Примечания

Можно использовать это руководство для поддержания подмножества языка моделирования в проектах с высокой целостностью.

ОбъяснениеAУлучшите ясность и предотвратите генерацию недоступного кода.
Ссылки
  • DO-331, раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'
    DO-331, раздел MB.6.3.2.d 'Низкоуровневые требования проверяются'

  • ISO 26262-6, Таблица 1 (1e) - Использование надежных принципов проекта

Проверки Model AdvisorСоблюдение этого руководства по моделированию не может быть проверено с помощью проверки Model Advisor.
Последнее изменениеR2012b
Пример

hisf_0013: Использование переходных путей (пересечение контуров параллельных состояний)

Идентификатор: Заголовок

hisf_0013: Использование переходных путей (пересечение контуров параллельных состояний)

Описание

Чтобы избежать создания схем, которые трудно понять,

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

Можно использовать это руководство для поддержания подмножества языка моделирования в проектах с высокой целостностью.

ОбъяснениеAУлучшите читаемость модели.
Проверки Model Advisor

Проверяйте диаграммы Stateflow на переходные пути, которые пересекают контуры параллельных состояний (Simulink Check)

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Подмножество языка "

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

  • ISO 26262-6, таблица 1 (1b) «Использование языковых подмножеств»

  • EN 50128, таблица A.4 (11) 'Language Subset'

  • DO-331, раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'

Последнее изменениеR2017b
Пример

В следующем примере, когда Out_A 4, оба родительских состояний (A_Parent и B_Parent) возвращаются. Повторное включение родительских состояний сбрасывает значения Out_A и Out_B в нуль.

hisf_0014: Использование переходных путей (проходящих через состояния)

Идентификатор: Заголовок

hisf_0014: Использование переходных путей (проходящих через состояния)

Описание

Чтобы избежать создания схем, которые путают и включают пути перехода без преимуществ,

AИзбегайте путей перехода, которые заходят в состояние и выходят из него, не заканчиваясь на подсостоянии.
Примечания

Можно использовать это руководство для поддержания подмножества языка моделирования в проектах с высокой целостностью.

ОбъяснениеAУлучшите читаемость модели.
Проверки Model Advisor

Проверяйте на неподходящее использование переходных путей (Simulink Check)

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Подмножество языка "

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

  • ISO 26262-6, таблица 1 (1b) «Использование языковых подмножеств»

  • EN 50128, таблица A.4 (11) 'Language Subset'

  • DDO-331, раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'

Последнее изменениеR2018b
Примеры

hisf_0015: Сильное типирование данных (переменные приведения и параметры в выражениях)

Идентификатор: Заголовок

hisf_0015: Сильное типирование данных (переменные приведения и параметры в выражениях)

Описание

Для облегчения сильного набора данных,

A

Явным образом введите переменные приведения и параметры различных типов данных в:

  • Переходные условия

  • Переходные действия

  • Состояния активности

Примечания

Программа Stateflow автоматически помещает переменные другого типа в один и тот совпадающий тип данных. Это руководство помогает уточнить типы данных промежуточных переменных.

ОбъяснениеAПрименить строгий набор данных.
Проверки Model Advisor

Проверяйте диаграммы Stateflow на наличие сильного набора данных (Simulink Check)

Ссылки
  • IEC 61508-3, Таблица A.3 (2) «Сильно типизированный язык программирования»

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

  • ISO 26262-6, таблица 1 (1с) «Обеспечение соблюдения строгих типоразмеров»

  • EN 50128, таблица A.4 (8) 'Сильно типизированный язык программирования'

  • DO-331, Section MB.6.3.2.g 'Алгоритмы точны'

  • MISRA C:2012, правило 10.1
    MISRA C:2012, правило 12.2

Последнее изменениеR2021a
Примеры

Рекомендуется

Не рекомендуется

hisf_0016: имена портов Stateflow

Идентификатор: Заголовок

hisf_0016: имена портов Stateflow

ОписаниеИмя входного или выходного сигнала Stateflow должно совпадать с именем соответствующего сигнала. Исключением из руководства является то, что переиспользуемые блоки Stateflow могут иметь различные имена портов.
ОбъяснениеПоддержка генерации отслеживаемого кода.
Проверки Model Advisor

Проверяйте именование портов в диаграммах Stateflow (Simulink Check)

Ссылки
  • DO-331, раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'

  • IEC 61508-3, Таблица A.3 (3) 'Подмножество языка'

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

  • ISO 26262-6, таблица 1 (1b) «Использование языковых подмножеств»

  • EN 50128, таблица A.4 (11) 'Language Subset'

Последнее изменение2018a

hisf_0017: скопирование объектов данных Stateflow

Идентификатор: Заголовок

hisf_0017: скопирование объектов данных Stateflow

ОписаниеОбъекты данных Stateflow с локальными возможностями должны быть определены на уровне графика или ниже.
ОбъяснениеПоддержка генерации отслеживаемого кода.
Проверки Model Advisor

Проверяйте просмотр объектов данных Stateflow (Simulink Check)

Ссылки
  • DO-331, раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'

  • IEC 61508-3, Таблица A.3 (3) 'Подмножество языка'

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

  • ISO 26262-6, таблица 1 (1b) «Использование языковых подмножеств»

  • EN 50128, таблица A.4 (11) 'Language Subset'

Последнее изменение2018a
Примеры

Рекомендуется

Не рекомендуется