Modularität für kontinuierliche Entwicklung optimieren

Diskrete-Ereignis-Simulation mit Python

Diogo Costa (PhD, MSc)

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

Was ist Modellskalierbarkeit?

  • Fähigkeiten über die Zeit erweitern
  • Ohne Leistung zu verlieren oder zu zerfallen

Begriff „skalierbares“ Modell

  • Übliche Bedeutung: Kapazität je nach Nachfrage erhöhen
  • In Ereignissimulationen: Erweitern und stabil bleiben

Wichtigkeit

  • Entscheidend für langfristigen Erfolg und Wert des Modells
  • Fähigkeit zur Weiterentwicklung
  • Gute Codepraktiken wie Modulares Design
Diskrete-Ereignis-Simulation mit Python

Skalierbare vs. weniger skalierbare Modelle

Skalierbares Modell

Diagramm eines modularen, besser skalierbaren Modells: Code ist sauber gekapselt, Module lassen sich leicht hinzufügen, entfernen oder ersetzen, ohne die Struktur zu ändern.

Weniger skalierbares Modell

Diagramm eines weniger modularen, schlechter skalierbaren Modells: Code ist nicht sauber gekapselt; Module lassen sich nicht leicht hinzufügen, entfernen oder ersetzen, ohne die Struktur zu ändern.

Diskrete-Ereignis-Simulation mit Python

Modulares Design

  • Austauschbare Komponenten (Module)

  • Prozesse in separaten Funktionen gekapselt

  • Module mehrfach aufrufbar

  • Statt Code zu kopieren

Diagramm eines Modells mit sieben Funktionen: Upgrade ersetzt „func_b“ durch „func_b1“ und fügt „func_f“ zwischen „func_c“ und „func_d“ ein.

Diskrete-Ereignis-Simulation mit Python

Beispiel: Module ersetzen und hinzufügen

Alte Version

with counter.request() as request:
    yield request

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

Aktualisierte Version

with counter.request() as request:
  yield request

  def func_a()
  # def func_b() # Modul ersetzt durch
  def func_b1()  # Ersatzmodul
  def func_c()
  def func_f()   # Neues Modul
  def func_d()
  def func_e()
Diskrete-Ereignis-Simulation mit Python

Lass uns üben!

Diskrete-Ereignis-Simulation mit Python

Preparing Video For Download...