himl_0007: переключатель кода MATLAB / случай / в противном случае шаблоны

ID: Заголовокhiml_0007: код MATLAB® переключается / случай / в противном случае шаблоны
Описание

Для кода MATLAB с switch операторы, включайте:

  • По крайней мере два case операторы.

  • otherwise оператор в наименьшем включает значимый комментарий.

Примечание

Если существует только один case и один otherwise оператор, рассмотрите использование if / else оператор.

Объяснение
  • Безопасное программирование

  • Удобочитаемость

  • Трассируемость

Проверки Model AdvisorПроверяйте операторы switch в блоки MATLAB function (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

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

  • EN 50128, таблица A.4 (11) 'языковое подмножество'
    EN 50128, таблица A.3 (1) 'безопасное программирование'

  • DO-331, Раздел MB.6.3.1.e 'Соответствие к стандартам'
    DO-331, Раздел MB.6.3.2.e 'Соответствие к стандартам'
    DO-331, Раздел MB.6.3.3.e 'Соответствие к стандартам'

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

Смотрите также
В последний раз измененныйR2018b
Примеры

Рекомендуемый

  • switch u
        case 1
          y = 3;
        case 3
          y = 1;
        otherwise
          y = 1;
      end
    

  • y = 0;
      switch u
        case 1
          y = 3;
        case 3
          y = 1;
        otherwise
          % handled before switch
      end
    

Не рекомендуемый

  •   % no case statements
      switch u
        otherwise
          y = 1;
      end
    

  •   % empty otherwise statement
      switch u
        case 1
          y = 3;
        case 3
          y = 1;
        otherwise
      end
    

  •   % no otherwise statement
      switch u
        case 1
          y = 3;
      end