103 lines
8.5 KiB
XML
103 lines
8.5 KiB
XML
|
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
|
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||
|
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||
|
|
<!-- Generated by graphviz version 14.1.2 (20260126.1125)
|
||
|
|
-->
|
||
|
|
<!-- Pages: 1 -->
|
||
|
|
<svg width="709pt" height="369pt"
|
||
|
|
viewBox="0.00 0.00 709.00 369.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
|
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 364.66)">
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="350.58" y="-344.31" font-family="DejaVu Sans" font-size="13.00">Die Schichten von or_kern.py — alle Pfeile zeigen nach innen</text>
|
||
|
|
<!-- io -->
|
||
|
|
<g id="node1" class="node">
|
||
|
|
<title>io</title>
|
||
|
|
<path fill="#fffbeb" stroke="#b45309" stroke-width="2" d="M248.04,-237.7C248.04,-237.7 12,-237.7 12,-237.7 6,-237.7 0,-231.7 0,-225.7 0,-225.7 0,-198.49 0,-198.49 0,-192.49 6,-186.49 12,-186.49 12,-186.49 248.04,-186.49 248.04,-186.49 254.04,-186.49 260.04,-192.49 260.04,-198.49 260.04,-198.49 260.04,-225.7 260.04,-225.7 260.04,-231.7 254.04,-237.7 248.04,-237.7"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="130.02" y="-221.72" font-family="DejaVu Sans" font-size="10.00">Ein- und Ausgabe</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="130.02" y="-208.97" font-family="DejaVu Sans" font-size="10.00">lade_produktionsproblem() · schreibe_ergebnis()</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="130.02" y="-196.22" font-family="DejaVu Sans" font-size="10.00">Excel, CSV — die Wirklichkeit des Anwenders</text>
|
||
|
|
</g>
|
||
|
|
<!-- dom -->
|
||
|
|
<g id="node5" class="node">
|
||
|
|
<title>dom</title>
|
||
|
|
<path fill="#eef2ff" stroke="#4338ca" stroke-width="2" d="M465.04,-139.24C465.04,-139.24 271,-139.24 271,-139.24 265,-139.24 259,-133.24 259,-127.24 259,-127.24 259,-100.03 259,-100.03 259,-94.03 265,-88.03 271,-88.03 271,-88.03 465.04,-88.03 465.04,-88.03 471.04,-88.03 477.04,-94.03 477.04,-100.03 477.04,-100.03 477.04,-127.24 477.04,-127.24 477.04,-133.24 471.04,-139.24 465.04,-139.24"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="368.02" y="-123.26" font-family="DejaVu Sans" font-size="10.00">Domäne</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="368.02" y="-110.51" font-family="DejaVu Sans" font-size="10.00">Produkt · Produktionsproblem</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="368.02" y="-97.76" font-family="DejaVu Sans" font-size="10.00">validiert (Pydantic), kennt keinen Solver</text>
|
||
|
|
</g>
|
||
|
|
<!-- io->dom -->
|
||
|
|
<g id="edge1" class="edge">
|
||
|
|
<title>io->dom</title>
|
||
|
|
<path fill="none" stroke="#5c6380" d="M153.56,-185.74C166.52,-171.78 180.02,-157.24 180.02,-157.24 180.02,-157.24 210.63,-150.3 247.15,-142.03"/>
|
||
|
|
<polygon fill="#5c6380" stroke="#5c6380" points="247.66,-145.5 256.64,-139.88 246.11,-138.67 247.66,-145.5"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="235.52" y="-159.94" font-family="DejaVu Sans" font-size="9.00">liest ein, schreibt zurück</text>
|
||
|
|
</g>
|
||
|
|
<!-- bau -->
|
||
|
|
<g id="node2" class="node">
|
||
|
|
<title>bau</title>
|
||
|
|
<path fill="#f5f3ff" stroke="#7c3aed" stroke-width="2" d="M432.04,-336.16C432.04,-336.16 256,-336.16 256,-336.16 250,-336.16 244,-330.16 244,-324.16 244,-324.16 244,-296.95 244,-296.95 244,-290.95 250,-284.95 256,-284.95 256,-284.95 432.04,-284.95 432.04,-284.95 438.04,-284.95 444.04,-290.95 444.04,-296.95 444.04,-296.95 444.04,-324.16 444.04,-324.16 444.04,-330.16 438.04,-336.16 432.04,-336.16"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="344.02" y="-320.18" font-family="DejaVu Sans" font-size="10.00">Modellbauer — austauschbar</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="344.02" y="-307.43" font-family="DejaVu Sans" font-size="10.00">loese_mit_glop() · loese_mit_scipy()</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="344.02" y="-294.68" font-family="DejaVu Sans" font-size="10.00">je Solver einer, gleiche Signatur</text>
|
||
|
|
</g>
|
||
|
|
<!-- erg -->
|
||
|
|
<g id="node4" class="node">
|
||
|
|
<title>erg</title>
|
||
|
|
<path fill="#ecfeff" stroke="#0891b2" stroke-width="2" d="M588.66,-237.7C588.66,-237.7 437.38,-237.7 437.38,-237.7 431.38,-237.7 425.38,-231.7 425.38,-225.7 425.38,-225.7 425.38,-198.49 425.38,-198.49 425.38,-192.49 431.38,-186.49 437.38,-186.49 437.38,-186.49 588.66,-186.49 588.66,-186.49 594.66,-186.49 600.66,-192.49 600.66,-198.49 600.66,-198.49 600.66,-225.7 600.66,-225.7 600.66,-231.7 594.66,-237.7 588.66,-237.7"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="513.02" y="-221.72" font-family="DejaVu Sans" font-size="10.00">Ergebnis — solverunabhängig</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="513.02" y="-208.97" font-family="DejaVu Sans" font-size="10.00">SolverStatus · Loesung</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="513.02" y="-196.22" font-family="DejaVu Sans" font-size="10.00">fünf Bibliotheken, eine Sprache</text>
|
||
|
|
</g>
|
||
|
|
<!-- bau->erg -->
|
||
|
|
<g id="edge3" class="edge">
|
||
|
|
<title>bau->erg</title>
|
||
|
|
<path fill="none" stroke="#5c6380" d="M388.87,-283.96C410.25,-271.76 436.01,-257.05 458.51,-244.21"/>
|
||
|
|
<polygon fill="#5c6380" stroke="#5c6380" points="459.99,-247.39 466.94,-239.39 456.52,-241.31 459.99,-247.39"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="446.34" y="-258.4" font-family="DejaVu Sans" font-size="9.00">liefert</text>
|
||
|
|
</g>
|
||
|
|
<!-- bau->dom -->
|
||
|
|
<g id="edge2" class="edge">
|
||
|
|
<title>bau->dom</title>
|
||
|
|
<path fill="none" stroke="#5c6380" d="M336.56,-284.02C330.52,-263.37 323.02,-237.7 323.02,-237.7 323.02,-237.7 323.02,-186.49 323.02,-186.49 323.02,-186.49 334.57,-168.05 345.97,-149.85"/>
|
||
|
|
<polygon fill="#5c6380" stroke="#5c6380" points="348.88,-151.79 351.22,-141.45 342.95,-148.07 348.88,-151.79"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="368.02" y="-209.17" font-family="DejaVu Sans" font-size="9.00">baut das Modell aus</text>
|
||
|
|
</g>
|
||
|
|
<!-- pruef -->
|
||
|
|
<g id="node3" class="node">
|
||
|
|
<title>pruef</title>
|
||
|
|
<path fill="#ecfdf5" stroke="#059669" stroke-width="2" d="M689.16,-336.16C689.16,-336.16 546.88,-336.16 546.88,-336.16 540.88,-336.16 534.88,-330.16 534.88,-324.16 534.88,-324.16 534.88,-296.95 534.88,-296.95 534.88,-290.95 540.88,-284.95 546.88,-284.95 546.88,-284.95 689.16,-284.95 689.16,-284.95 695.16,-284.95 701.16,-290.95 701.16,-296.95 701.16,-296.95 701.16,-324.16 701.16,-324.16 701.16,-330.16 695.16,-336.16 689.16,-336.16"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="618.02" y="-320.18" font-family="DejaVu Sans" font-size="10.00">Abnahmeprüfung</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="618.02" y="-307.43" font-family="DejaVu Sans" font-size="10.00">pruefe_loesung()</text>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="618.02" y="-294.68" font-family="DejaVu Sans" font-size="10.00">prüft die Lösung OHNE Solver</text>
|
||
|
|
</g>
|
||
|
|
<!-- pruef->erg -->
|
||
|
|
<g id="edge5" class="edge">
|
||
|
|
<title>pruef->erg</title>
|
||
|
|
<path fill="none" stroke="#5c6380" d="M590.16,-283.96C577.48,-272.31 562.32,-258.39 548.81,-245.97"/>
|
||
|
|
<polygon fill="#5c6380" stroke="#5c6380" points="551.49,-243.69 541.76,-239.5 546.76,-248.84 551.49,-243.69"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="579.92" y="-258.4" font-family="DejaVu Sans" font-size="9.00">prüft</text>
|
||
|
|
</g>
|
||
|
|
<!-- pruef->dom -->
|
||
|
|
<g id="edge4" class="edge">
|
||
|
|
<title>pruef->dom</title>
|
||
|
|
<path fill="none" stroke="#5c6380" d="M616.98,-284.06C615.52,-248.01 613.02,-186.49 613.02,-186.49 613.02,-186.49 534.17,-163.36 465.93,-143.35"/>
|
||
|
|
<polygon fill="#5c6380" stroke="#5c6380" points="467.12,-140.05 456.54,-140.6 465.15,-146.77 467.12,-140.05"/>
|
||
|
|
<text xml:space="preserve" text-anchor="middle" x="642.02" y="-209.17" font-family="DejaVu Sans" font-size="9.00">prüft gegen</text>
|
||
|
|
</g>
|
||
|
|
<!-- erg->dom -->
|
||
|
|
<!-- regel -->
|
||
|
|
<g id="node6" class="node">
|
||
|
|
<title>regel</title>
|
||
|
|
<polygon fill="#f8fafc" stroke="#94a3b8" points="487.85,-51.03 242.19,-51.03 242.19,0 493.85,0 493.85,-45.03 487.85,-51.03"/>
|
||
|
|
<polyline fill="none" stroke="#94a3b8" points="487.85,-51.03 487.85,-45.03"/>
|
||
|
|
<polyline fill="none" stroke="#94a3b8" points="493.85,-45.03 487.85,-45.03"/>
|
||
|
|
<text xml:space="preserve" text-anchor="start" x="255.14" y="-33.84" font-family="DejaVu Sans" font-size="9.00">Die Domäne importiert nichts von außen.</text>
|
||
|
|
<text xml:space="preserve" text-anchor="start" x="255.14" y="-22.59" font-family="DejaVu Sans" font-size="9.00">Deshalb kostet ein Solverwechsel eine Funktion —</text>
|
||
|
|
<text xml:space="preserve" text-anchor="start" x="255.14" y="-11.34" font-family="DejaVu Sans" font-size="9.00">und kein einziges Fachdetail.</text>
|
||
|
|
</g>
|
||
|
|
<!-- dom->regel -->
|
||
|
|
<g id="edge7" class="edge">
|
||
|
|
<title>dom->regel</title>
|
||
|
|
<path fill="none" stroke="#94a3b8" stroke-dasharray="5,2" d="M368.02,-87.26C368.02,-75.95 368.02,-62.67 368.02,-51.41"/>
|
||
|
|
</g>
|
||
|
|
</g>
|
||
|
|
</svg>
|