Модульность модели для непрерывной разработки

Дискретно-событийное моделирование на Python

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

Что такое масштабируемость модели?

  • Расширение возможностей со временем
  • Без потери производительности и нарушения работы

Термин «масштабируемая» модель

  • Обычное значение: возможность увеличения мощности по мере роста спроса
  • В моделях с дискретными событиями: возможность расширения при сохранении стабильности

Важность

  • Необходима для долгосрочного успеха и ценности модели
  • Способность к развитию
  • Хорошие практики программирования, такие как модульность
Дискретно-событийное моделирование на Python

Масштабируемая и менее масштабируемая модели

Масштабируемая модель

Диаграмма модульной модели с высокой масштабируемостью: код разбит на отдельные модули, которые можно легко добавлять, удалять или заменять без изменения структуры модели.

Менее масштабируемая модель

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

Дискретно-событийное моделирование на Python

Модульность модели

  • Взаимозаменяемые компоненты (модули)

  • Процессы, разбитые на отдельные функции

  • Модули вызываются многократно

  • Вместо дублирования одного и того же кода

Диаграмма модели из семи функций: при обновлении модуль «func_b» заменён на «func_b1», а модуль «func_f» добавлен между «func_c» и «func_d».

Дискретно-событийное моделирование на Python

Пример: замена и добавление модулей

Старая версия

with counter.request() as request:
    yield request

    def func_a()
    def func_b()
    def func_c()
    def func_d()
    def func_e()

Обновлённая версия

with counter.request() as request:
  yield request

  def func_a()
  # def func_b() # Module replaced by
  def func_b1()  # Module replacement
  def func_c()
  def func_f()   # New module added
  def func_d()
  def func_e()
Дискретно-событийное моделирование на Python

Давайте потренируемся!

Дискретно-событийное моделирование на Python

Preparing Video For Download...