Современные технические системы постепенно усложняются, а традиционные подходы к разработке становятся неэффективны. Одним из вариантов решения этой проблемы является внедрение модельно-ориентированного проектирования (МОП) для разработки систем и программного обеспечения. Однако, прежде чем инвестировать средства в МОП, необходимо обосновать получаемые выгоды. В данной статье кратко коснемся того, что же такое МОП, чем он отличается от традиционного подхода и в чем его преимущества, а также рассчитаем ожидаемую экономию трудочасов от применения МОП по сравнению с традиционным подходом к разработке. Тут вы не найдете исчерпывающих объяснений по всем перечисленным вопросам, материал представляет собой больше «быстрый взгляд» на методологию со ссылками, где можно почитать подробнее.
Что такое модельно-ориентированное проектирование?
Под модельно-ориентированным проектированием понимается совокупность методик разработки программного и аппаратного обеспечения, основанных на применении системных моделей на всех этапах процесса разработки (рисунок 1).
Модельно-ориентированное проектирование дополняет и развивает практику разработки Agile. Как и Agile, МОП позволяет разработчикам обнаруживать дефекты проектирования, учитывать изменения в требованиях, а также подключаться к системам непрерывной интеграции (CI) для автоматического тестирования и проверки моделей и кода на протяжении всего жизненного цикла разработки (рисунок 2).
Посмотреть подробнее про методологию МОП можно тут, истории успеха/вебинары/доклады собраны тут.
Сравнение традиционного подхода к разработке с модельно-ориентированным проектированием
В случае традиционного подхода к разработке задачи на каждом этапе выполняются последовательно в различных программных средах, при этом многие действия выполняются вручную (рисунок 3). Каждый этап такого похода, от составления требований до эксплуатации системы, имеет свои недостатки: требования, как правило, записываются в текстовом виде с использованием таких инструментов, как Microsoft Word или IBM Engineering Requirements Management Doors, что затрудняет их анализ, интерпретацию и редактирование по мере внесения изменений. Подсистемы обычно создаются с использованием специфических для данной области инструментов, что исключает тестирование на системном уровне до реализации в программном или аппаратном обеспечении. В процессе реализации подсистем код пишется вручную, что представляет собой трудоемкий и чреватый дефектами процесс. Отсутствие единой программной среды, множество ручных операций и обнаружение дефектов на поздних стадиях проектирования – все это увеличивает время и стоимость разработки.
Используя методологию МОП, есть возможность избежать перечисленные выше недостатки, так как модель одновременно является исполняемой спецификацией, которая позволяет инженерам запускать симуляции для проверки альтернативных концепций разработки и верификации проектов.
Преимущества использования модели в качестве исполняемой спецификации заключаются в следующем:
Проектируемую систему можно тестировать, уточнять и перепроверять на протяжении всего процесса разработки.
Моделирование позволяет инженерам быстро опробовать множество идей без необходимости создания дорогостоящих прототипов.
Тестирование и валидация проводятся с ранних этапов и постоянно, а не в конце процесса разработки, что позволяет своевременно обнаружить ошибки.
Код может быть сгенерирован на основе модели, что снижает трудозатраты и исключает ошибки ручного написания кода. Этот код можно использовать для тестирования в реальном времени и развертывания на аппаратном обеспечении.
Модели могут быть повторно использованы в последующих проектах.
С одним из примеров успешного применения МОП можно ознакомиться здесь. В этой статье можно подробней изучить сравнение МОП и традиционных методов при разработке систем управления.
Организации, внедряющие модельно-ориентированное проектирование, получают экономию от 20 до 60% по сравнению с традиционными методами разработки. Основная часть этой экономии достигается за счет более качественного анализа требований в сочетании с ранним и непрерывным тестированием (рисунок 4).
Ожидаемая экономия трудочасов от внедрения МОП для разных стадий проектирования
Как уже отмечалось выше, основная часть этой экономии обеспечивается правильно составленными требованиями, а также эффективным тестированием.
Предположим, что количество требований в проекте составляет 5000. Использование моделей для выявления нечетких, противоречивых или не поддающихся тестированию требований позволяет инженерам выявить больший процент ошибок. Пусть порядка 15% требований содержат ошибки или нуждаются в доработке. Обнаружение этих ошибок на этапе разработки требований позволит избежать дорогостоящих переделок на более поздних этапах проектирования. Если предположить, что на устранение такой ошибки после неправильного составления требований в среднем уходит 4,5 ч, то количество сэкономленных трудочасов составит 3375 (таблица ниже).
Этап разработки требований |
Значения |
Процент некорректных требований, % |
15 |
Количество некорректных требований |
750 |
Количество часов, необходимое для устранения ошибки, вызванной неправильно составленным требованием, ч |
4,5 |
Количество сэкономленных часов на исправление ошибок из-за неправильно составленных требований, ч |
3375 |
При использовании МОП значительная часть экономии трудочасов достигается на этапе тестирования: при модельно-ориентированном проектировании для верификации и валидации моделей тесты могут генерироваться автоматически, обеспечивая полное тестовое покрытие. Созданные тестовые сценарии могут быть использованы на различных этапах тестирования, включая тестирование аппаратного обеспечения в контуре. Так для проекта, включающего 5000 требований, количество сэкономленных трудочасов может составить 12000 (таблица ниже).
Этап тестирования и создания отчетной документации |
Значения |
Количество часов, необходимое для устранения недостающего тестового покрытия для одного требования, ч |
2 |
Процент автоматически сгенерированных тестов, % |
70 |
Количество сэкономленных часов за счет устранения недостающего тестового покрытия, ч |
7000 |
Количество часов, затраченное на отладку тестов для одного требования, ч |
2 |
Процент повторного использования тестов на различных этапах тестирования, % |
50 |
Количество сэкономленных часов за счет повторного использования тестов, ч |
5000 |
Таким образом, успешность проекта во многом зависит от правильно составленных требований, а раннее и непрерывное тестирование приводит к тому, что большее количество ошибок выявляется и устраняется на том же этапе, на котором они появляются, что в конечном счете снижает общую стоимость разработки. На рисунке 5 представлена суммарная экономия от применения МОП для разных стадий проектирования.
Для большинства компаний инвестирование в новые технологии и процессы является рискованным шагом. Внедрение модельно-ориентированного проектирования – это переломный момент в разработке сложных технических систем. Для компаний, чья продукция стоит тысячи или миллионы долларов, сокращение количества прототипов всего на одну единицу оказывается достаточным, чтобы окупить инвестиции в МОП. В то время как для небольших инженерных команд драйвером ценности МОП будет являться ускоренная разработка, позволяющая в короткие сроки вывести на рынок высококачественный продукт.
Комментарии (4)
MaksimSidorov Автор
01.02.2022 15:38С одним из примеров успешного применения МОП можно ознакомиться здесь.
Вот ещё из последнего:
Успешная разработка индустриального дрона с помощью модельно-ориентированного проектирования
Модельно-ориентированное проектирование для разработки встраиваемого ПО приемных модулей
Остальные примеры можно посмотреть тут.
surVrus
01.02.2022 22:11Грустно.
Matlab/Simulink. Это прекрасная система, на ней много чего разработано. Есть еще LABView, есть еще AnyLogic, и еще много подобных.
Все, что написано в статье - все верно. Но точно также было и примерно 30 лет назад. Что-то нового, актуального - пока не нашел.
Я делал много проектов на основе системного подхода, на основе МОП (та же самая ARENA и GPSS много лет назад). Сейчас инженерные проекты делаю на ePlan. Там все это (МОП) реализовано для уровня проектирования промышленных процессов. Есть интересные разработки и у Siemens (Simcenter).
Почему грустно? Потому, что пока не удается наладить полную репликацию имитационных моделей и получаемого кода для "железа". Все равно, что-то да надо "допиливать" ручками. А тогда все преимущества теряются. Лучше всего полный цикл работает на LabView, но там все сложно, дорого, конские цены на железо. Чуть хуже - но тоже вроде работает - на Simulink. Для себя я пока остановился на Node.RED. И только потому, что среда разработки, сама модель и исполняемый код этой модели находятся в одном месте, на самой "железяке", которая и работает на заводе. Для моих задач быстродействия хватает. Быстрое изменение модели и графическое представление самой модели - это самое важное. Реально экономит множество времени.
segment
Это все круто, но можно реальный пример использования?