Что такое формальная модель и как она может помочь при разработке сложной системы?

В наш информационный век системы, которые мы разрабатываем и которыми пользуемся, становятся все сложнее и сложнее с каждым днем.

Микроэлектронное оборудование, программные продукты, мобильные приложения, логистические системы, все перечисленные системы — это сложные многокомпонентные дискретные системы, работа которых может быть разбита на взаимосвязанные модули, разделенные по своим функциям.

Что такое формальная модель и как она может помочь при разработке сложной системы?

Основная сложность таким систем заключается в том, что при наращивании составляющих многокомпонентной системы необходимо следить за качеством и непротиворечивостью взаимодействия всех ее частей одновременно.

Зачастую этого сложно добиться с первого раза, не потеряв при этом во времени и финансах.

Именно поэтому при разработки сложных систем удобнее и выгодней предварительно моделировать ее работу (функциональные блоки) и архитектуру.

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

Давайте определим, что есть формальная модель?

Формальная модель объекта — это описание объекта на языке математики, специального языка моделирования или иного алгоритмического языка.

По большому счету формальная модель — это высокоуровневое представление работы и взаимодействия основных модулей системы.

Пример применения формального моделирования:

Рис. 1 Модель сетевого протокола.
Рис. 1 Модель сетевого протокола.

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

Это в значительной мере помогает сократить затраты на разработку и с точки зрения времени и финансов.

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

Следует помнить, что какие бы талантливые разработчики и инженеры не работали у Вас в команде, любому человеку сложно держать в голове более двух параллельно развивающихся процессов.

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

Людей, которые способны в уме удерживать и анализировать параллельно развивающиеся события, крайне мало и даже, если Вы их найдете, они также могут ошибиться.

Поэтому гарантированным решением для сокращения ошибок при создании сложной киберфизической структуры — это методичное моделирование ее частей и взаимодействие между ними.

Планомерное последовательное развитие — это развитие, вероятность успеха которого сильно превышает вероятность успеха спонтанного заранее непродуманного процесса.

Не ошибайтесь на первых этапах и накопления ошибок не произойдет!

По вопросам, связанным с созданием формальных и имитационных моделей, обращайтесь к команде Центра математического моделирования и анализа сложных систем Stingray.

Будем рады знакомству с Вами!

реклама
разместить
Начать дискуссию