Современные технические системы постепенно усложняются, а традиционные подходы к разработке становятся неэффективны. Одним из вариантов решения этой проблемы является внедрение модельно-ориентированного проектирования (МОП) для разработки систем и программного обеспечения. Однако, прежде чем инвестировать средства в МОП, необходимо обосновать получаемые выгоды. В данной статье кратко коснемся того, что же такое МОП, чем он отличается от традиционного подхода и в чем его преимущества, а также рассчитаем ожидаемую экономию трудочасов от применения МОП по сравнению с традиционным подходом к разработке. Тут вы не найдете исчерпывающих объяснений по всем перечисленным вопросам, материал представляет собой больше «быстрый взгляд» на методологию со ссылками, где можно почитать подробнее.

Что такое модельно-ориентированное проектирование?

Под модельно-ориентированным проектированием понимается совокупность методик разработки программного и аппаратного обеспечения, основанных на применении системных моделей на всех этапах процесса разработки (рисунок 1).

Рис. 1. Использование системных моделей на всех этапах процесса разработки
Рис. 1. Использование системных моделей на всех этапах процесса разработки

Модельно-ориентированное проектирование дополняет и развивает практику разработки Agile. Как и Agile, МОП позволяет разработчикам обнаруживать дефекты проектирования, учитывать изменения в требованиях, а также подключаться к системам непрерывной интеграции (CI) для автоматического тестирования и проверки моделей и кода на протяжении всего жизненного цикла разработки (рисунок 2).

Рис. 2. Ускоренная разработка систем с использованием МОП
Рис. 2. Ускоренная разработка систем с использованием МОП

Посмотреть подробнее про методологию МОП можно тут, истории успеха/вебинары/доклады собраны тут.

Сравнение традиционного подхода к разработке с модельно-ориентированным проектированием

В случае традиционного подхода к разработке задачи на каждом этапе выполняются последовательно в различных программных средах, при этом многие действия выполняются вручную (рисунок 3). Каждый этап такого похода, от составления требований до эксплуатации системы, имеет свои недостатки: требования, как правило, записываются в текстовом виде с использованием таких инструментов, как Microsoft Word или IBM Engineering Requirements Management Doors, что затрудняет их анализ, интерпретацию и редактирование по мере внесения изменений. Подсистемы обычно создаются с использованием специфических для данной области инструментов, что исключает тестирование на системном уровне до реализации в программном или аппаратном обеспечении. В процессе реализации подсистем код пишется вручную, что представляет собой трудоемкий и чреватый дефектами процесс. Отсутствие единой программной среды, множество ручных операций и обнаружение дефектов на поздних стадиях проектирования все это увеличивает время и стоимость разработки.

Рис. 3. Традиционный подход к разработке программного обеспечения
Рис. 3. Традиционный подход к разработке программного обеспечения

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

Преимущества использования модели в качестве исполняемой спецификации заключаются в следующем:

  1. Проектируемую систему можно тестировать, уточнять и перепроверять на протяжении всего процесса разработки.

  2. Моделирование позволяет инженерам быстро опробовать множество идей без необходимости создания дорогостоящих прототипов.

  3. Тестирование и валидация проводятся с ранних этапов и постоянно, а не в конце процесса разработки, что позволяет своевременно обнаружить ошибки.

  4. Код может быть сгенерирован на основе модели, что снижает трудозатраты и исключает ошибки ручного написания кода. Этот код можно использовать для тестирования в реальном времени и развертывания на аппаратном обеспечении.

  5. Модели могут быть повторно использованы в последующих проектах.

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

Организации, внедряющие модельно-ориентированное проектирование, получают экономию от 20 до 60% по сравнению с традиционными методами разработки. Основная часть этой экономии достигается за счет более качественного анализа требований в сочетании с ранним и непрерывным тестированием (рисунок 4).

Рис. 4. МОП позволяет обнаруживать ошибки на боле ранних стадиях проектирования
Рис. 4. МОП позволяет обнаруживать ошибки на боле ранних стадиях проектирования

Ожидаемая экономия трудочасов от внедрения МОП для разных стадий проектирования

Как уже отмечалось выше, основная часть этой экономии обеспечивается правильно составленными требованиями, а также эффективным тестированием.

Предположим, что количество требований в проекте составляет 5000. Использование моделей для выявления нечетких, противоречивых или не поддающихся тестированию требований позволяет инженерам выявить больший процент ошибок. Пусть порядка 15% требований содержат ошибки или нуждаются в доработке. Обнаружение этих ошибок на этапе разработки требований позволит избежать дорогостоящих переделок на более поздних этапах проектирования. Если предположить, что на устранение такой ошибки после неправильного составления требований в среднем уходит 4,5 ч, то количество сэкономленных трудочасов составит 3375 (таблица ниже).

Этап разработки требований

Значения

Процент некорректных требований, %

15

Количество некорректных требований

750

Количество часов, необходимое для устранения ошибки, вызванной неправильно составленным требованием, ч

4,5

Количество сэкономленных часов на исправление ошибок из-за неправильно составленных требований, ч

3375

При использовании МОП значительная часть экономии трудочасов достигается на этапе тестирования: при модельно-ориентированном проектировании для верификации и валидации моделей тесты могут генерироваться автоматически, обеспечивая полное тестовое покрытие. Созданные тестовые сценарии могут быть использованы на различных этапах тестирования, включая тестирование аппаратного обеспечения в контуре. Так для проекта, включающего 5000 требований, количество сэкономленных трудочасов может составить 12000 (таблица ниже).

Этап тестирования и создания отчетной документации

Значения

Количество часов, необходимое для устранения недостающего тестового покрытия для одного требования, ч

2

Процент автоматически сгенерированных тестов, %

70

Количество сэкономленных часов за счет устранения недостающего тестового покрытия, ч

7000

Количество часов, затраченное на отладку тестов для одного требования, ч

2

Процент повторного использования тестов на различных этапах тестирования, %

50

Количество сэкономленных часов за счет повторного использования тестов, ч

5000

Таким образом, успешность проекта во многом зависит от правильно составленных требований, а раннее и непрерывное тестирование приводит к тому, что большее количество ошибок выявляется и устраняется на том же этапе, на котором они появляются, что в конечном счете снижает общую стоимость разработки. На рисунке 5 представлена суммарная экономия от применения МОП для разных стадий проектирования.

Рис. 5. Процент экономии от применения МОП по этапам разработки
Рис. 5. Процент экономии от применения МОП по этапам разработки

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

Комментарии (4)


  1. segment
    01.02.2022 15:28

    Это все круто, но можно реальный пример использования?


  1. MaksimSidorov Автор
    01.02.2022 15:38

    1. segment
      01.02.2022 16:31

      А есть ли возможность посмотреть статьи без использования e-mail адреса?


  1. surVrus
    01.02.2022 22:11

    Грустно.

    Matlab/Simulink. Это прекрасная система, на ней много чего разработано. Есть еще LABView, есть еще AnyLogic, и еще много подобных.

    Все, что написано в статье - все верно. Но точно также было и примерно 30 лет назад. Что-то нового, актуального - пока не нашел.

    Я делал много проектов на основе системного подхода, на основе МОП (та же самая ARENA и GPSS много лет назад). Сейчас инженерные проекты делаю на ePlan. Там все это (МОП) реализовано для уровня проектирования промышленных процессов. Есть интересные разработки и у Siemens (Simcenter).

    Почему грустно? Потому, что пока не удается наладить полную репликацию имитационных моделей и получаемого кода для "железа". Все равно, что-то да надо "допиливать" ручками. А тогда все преимущества теряются. Лучше всего полный цикл работает на LabView, но там все сложно, дорого, конские цены на железо. Чуть хуже - но тоже вроде работает - на Simulink. Для себя я пока остановился на Node.RED. И только потому, что среда разработки, сама модель и исполняемый код этой модели находятся в одном месте, на самой "железяке", которая и работает на заводе. Для моих задач быстродействия хватает. Быстрое изменение модели и графическое представление самой модели - это самое важное. Реально экономит множество времени.