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