himl_0007: Код MATLAB switch/case/other patterns

Идентификатор: Заголовокhiml_0007: MATLAB® code switch/case/другие шаблоны
Описание

Для кода 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) «Оборонительное программирование »

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

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

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

  • 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