himl_0006: код MATLAB, если/elseif/else шаблоны

Идентификатор: Заголовокhiml_0006: MATLAB® код, если/elseif/else шаблоны
Описание

Для кода MATLAB с if / elseif/ else построения, завершение конструкций с помощью else оператор, который включает, по крайней мере, содержательный комментарий. Итоговая else оператор не требуется, если нет elseif.

Объяснение
  • Оборонительное программирование

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

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

Проверки Model AdvisorПроверьте, есть ли шаблоны в блоках 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 'Соответствие стандартам'

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

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

  • if u > 0
        y = 1;
      end
    

  • if u > 0
        y = 1;
      elseif u < 0
        y = -1;
      else
        y = 0;
      end
    

  • y = 0;
      if u > 0
        y = 1;
      elseif u < 0
    y = -1;
      else
        % handled before if
      end
    

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

  •   % empty else
      y = 0;
      if u > 0
        y = 1;
      elseif u < 0
        y = -1;
      else
      end
    

  •   % missing else
      y = 0;
      if u > 0
        y = 1;
      elseif u < 0
        y = -1;
      end