Jo, gut, noch mal kurz wiederholen. Rinho war ja sozusagen
der Einstieg, nachdem wir die gefärbten Netze uns angeschaut hatten.
Und das behielt sozusagen sie leisten. Ihr habt ja schon zum Teil benutzt,
weil den Übungsaufgaben, das war die grundsätzliche Fragestellung,
wenn man so in einem Netz eine Systemaktivität irgendwie beschreiben will,
was wir dann sozusagen einzeln zerlegt haben.
Es waren uns einzelne Elemente rausgegriffen haben,
genauso wie man auch beim Softwareentwickeln oder bei anderen Systementwicklungen vorgeht,
dass man sich einzelne Teile rausgreift und gut beherrschen kann,
die man sich genau angucken kann oder die man dann weiter verfeinert.
Das war jetzt hier sozusagen das Bandkonto,
was wir dann nochmal sozusagen das getrennte Bereiche irgendwie darstellen wollten.
Und was wir hier durch die verbundene Linien sozusagen darstellen wollten,
dass das jetzt wohl, das ist, wo wir es auseinanderziehen,
die nochmal so eine entsprechende Berechnungsmöglichkeit, die man eintragen kann.
Oder eben, dass man es auch zusammenschiebt und das Ganze wieder zusammenfasst,
je nachdem, wie man das gerne haben möchte. So,
diese Möglichkeiten waren jetzt dann über die synchronen Kanäle möglich,
dass wir gesagt haben, diese Grundidee von Petri,
wir haben die verschiedenen Lebenslinien und genau da,
wo Handlungen sich verschmelzen,
werden sie auch verschmolzen und genau das erfolgt eben bei uns hier über diese entsprechenden synchronen Kanäle,
die wir an die Transitionen ranschreiben.
Und wenn also eine Transition hier schaltet und sie hat so einen Kanal,
dann muss das Gegenstück dazu,
entweder entsprechend mit dem Downlink oder hier mit dem Uplink,
entsprechend passend für den Kanalnamen.
Muss irgendwie da sein. Die jeweiligen beiden Transitionen für sich
müssen aktiviert sein. Und die entsprechenden Belegungen der Variablen,
die sich hier darüber ergeben, muss so unifizierbar sein,
dass sie auch gemeinsam eine Billigung finden, die auch jeweils gültig ist.
Das heißt, ich habe hier einen Schaltmodus,
in dem ich jetzt hier mit mehreren, wo ich vielleicht mehrere Belegungen haben kann.
Und genauso habe ich das entsprechend bei den Sachen hier drüben.
Das muss sozusagen dann jeweils für die einzelnen Netzteile gefunden werden,
das passt und werden dann entsprechend unifiziert.
Das passiert über die Simulationsumgebung oder eben hier in eurem Kopf,
wenn ihr sagt, okay, wie spiele ich das denn so durch,
dann muss das halt entsprechend passend zusammengebracht werden.
So, die konzeptionelle Trennung hier entscheidet auseinander und hat zwei separierte Netze oder Objekte,
die dann miteinander entsprechend sich synchronisieren, ist dann das,
was dahintersteht.
Gut, gab es Fragen zu diesen Konzepten und zur Unifikation
und auch zum Schaltmodus,
der sich dann ja hinter dem gefärbten Netz versteckt
Und irgendeiner Weise. Gut. Wichtig war,
dass diese Bezeichner,
man kann jetzt also hier auch andere Bezeichner außer This anbringen,
weil This ist dann genau dasselbe Netz wieder gemeint,
wenn ich dann andere Netznamen angebe,
muss ich sozusagen in diesem System irgendwie die Möglichkeit haben,
solche Objekte auch ansprechen zu können.
Das werden wir dann gleich bei den nächsten Sachen sehen.
Hier wäre es nochmal das mit dem Diss, dass wir
auch diese doppelten Anschriften an diesen entsprechenden Transitionen haben können.
Wir können das auch zwei Downlinks haben und dieses Netz
hier kannst du es jetzt lebenläufig schalten.
Das heißt, das kann den Deposit-Kanal durchaus mehrfach aufrufen,
was auch
nicht ganz uninteressant ist
So, das zeichnet mal diese Möglichkeit der Nebenläufigkeit in den Netzen per se sozusagen.
Hier sehen wir jetzt nochmal die Möglichkeit, dass wir Namen vergeben.
Hier ist sozusagen die Konvention, die wir hier haben,
das ist eine sehr spezielle bei uns jetzt.
Gibt nicht viele andere Netzformalismen, die das auch alles können,
aber da muss man sich ein bisschen auf die Notation einstellen,
wie das jeweils gemacht wird.
Das Konzept dahinter ist klar, man hat irgendwie
eine Klasse Atternet und instanziert irgendwelche Objekte dazu. Sprich,
ich habe hier entsprechend jetzt zwei Netze, X und Y,
die ich jetzt hier neu erstelle und die sind halt von dieser Klasse,
von diesem Template,
aber nett
Und hier werden dann die beiden Instanzen halt draufgelegt.
Genau das, was wir jetzt hier auch sehen können.
Das sind die beiden Klassen sozusagen.
Hier ist die Creator-Klasse oder die Systemen, das Systemnetz,
also das, was sozusagen quasi erstmal gedanklich oben liegt.
Und dann sind das hier die Objektnetze, die jeweils hier drin referenziert werden.
Die Netzenetzen, die dahinterstehen, ist das,
was Falk vor etlichen Januar eingeführt hat,
wo er gesagt hat, okay,
neben den statischen Datentypen möchte ich ja dynamische Datentypen haben und
hat das dann als System- oder Objektnetz quasi klassifiziert.
Auch da kann man dann wieder entsprechend schalten. Man kann
das hier oben quasi nur als so ein Token sehen,
den man so durchreicht. Hat man entsprechend halt
einen Namen oder das kommt ab die jeweilige Implementation an.
Ingenieur wird es halt nicht nur so als schwarze Marke gezeichnet,
sondern man kann dort eben draufklicken und dann auf das Netz dahinter navigieren.
Und dann kann das Schalten, da verschwindet es auf diesem Netz hier.
Nichtsdestotrotz, solange hier noch irgendwas aktiviert ist, bleiben sie da.
Solange sie auf der grafischen Oberfläche auch noch da sind,
sind sie auch noch sichtbar. Aber sobald man die grafische Oberfläche geschlossen hat,
während das Netz hier zum Beispiel verschwunden, wenn das hier geschaltet hätte,
weil dann keine Referenzen mehr auf diese Sachen bestehen.
Und der Garbage Collector wird das dann sozusagen auch beseitigen,
das Netz
Also, wenn ihr damit rumhantiert, müsst ihr eigentlich wie bei jeder normalen Objektorientierten Programmiersprache damit umgehen.
Und entsprechend könnt ihr jedes Netz, also ihr Template,
als Klasse betrachten und die entsprechenden Instanzen dann als Objekte.
Und wie auch sonst üblich, wenn da nichts mehr
schaltbar ist oder nichts mehr ausführbar ist in einem Objekt,
wird es eben vom Gablish Collector eingesammelt.
Gut, okay. Wenn man geht auf die Möglichkeit,
dass man auf dasselbe Netz referenziert, das heißt,
man kann die Referenzen duplizieren, führt also dazu,
dass man dann natürlich mehrfach solche Sachen benutzen kann.
Jetzt hat man aber hier unten eben nur noch eine Gesundheit,
allerseits haben wir nur noch ein Netz,
auf das wir dann gemeinsam referenzieren können an den Stellen.
Gut, Synchronikerlinie mit Parametergabe ganz allgemein, Wahrheit,
dass wir eben entsprechend diese Übernennung haben. Wir haben die Variablen,
A und B und gucken dann an,
wie es da hinten weitergeht und haben dann hier bei Biden das A,
weil es entsprechend von hier vorne über das X gebunden wird,
bei dem Channel bei der Perrameterbegabe an das X,
hier in das Y, das Y kommt hier entsprechend raus,
das U wird einfach vergessen.
Das war sozusagen das, was da passiert.
Deswegen dahinter hier zwei As
drin liegen haben
Das ist das, was da, ich weiß nicht,
drinsteckt. Hier war das Objektnetz wieder,
dass wir angeben, was wir neu erzeugen,
was wir dann, was uns quasi so aussehen soll,
was wir jetzt hier nochmal sehen können.
Wird also erzeugt, wenn hier geschaltet worden ist.
Das ist ja Token. Dann sehen auch jetzt dieses Referenz
sozusagen da drauf oder nur halt eben den entsprechende 1 oder 2,
je nachdem, wie viele Marken da drauf liegen.
Kann man durch die verschiedenen Darstellungen halt durchtockeln in Rinho.
Und jetzt wird hier vorne weiter geschaltet. Jetzt kommen wir
genau zu dem A, was weiter geschaltet wird und sorgen dafür,
dass es A entsprechend da drin liegt.
Und hier liegt dann entsprechend nur das entsprechende X,
was quasi hier so durchgeschoben wird
Okay, gibt es dazu noch irgendwelche Fragen? Sind euch
die Kevin-Züge zur Objektorientierung klar? Gut. Okay, dann
hatten wir als nächstes Thema die Workflows. Da hatten wir gesagt,
okay, gut, man hat die Systeme weiter erweitert und hat sich überlegt,
dass man die Ablaufsteuerung ganz gern noch ein bisschen weiter rausziehen will,
wobei das nicht ganz so weit verbreitet ist,
wie halt Datenbanksysteme oder so etwas,
das ist nicht ganz so stark
Hier hatten wir so ein Beispielnetz,
an dem wir halt gesehen haben, wie so durchlaufen.
Also halt so ein entsprechende Beschwerde, die sich da aufteilt,
dann die Fahrgebögen, die bearbeitet werden,
die werden evaluiert und entsprechend für den Fragebogen bearbeitet.
Und ich habe irgendwie das Ergebnis, geht man da unten weiter,
dann werden die entsprechenden Nehbedingungen hier ausgeführt, eventuell,
damit das hier weitergeht.
Dafür muss natürlich hier schon was passiert sein. Und denkst du,
Bewertung dieser Dinge und entsprechend wird um oder unten längst gegangen,
hier wird oben längs gegangen und dann wird das Ganze
archiviert.
So, das ist ganz einfach
Entschuldigung. Ganz einfache Abläufe und wir haben hier sozusagen eine Quelle,
mit der wir anfangen und eine Senke, mit der wir dann sozusagen aufhören.
Das war die Grundidee dahinter. Das weiß genau das,
wenn wir jetzt so ein entsprechendes Workflownetz uns angucken.
Wir haben zwei besondere Plätze, A und E,
die eben Anfang und Ende heißen oder eben Quelle und Senke
oder wie auch immer das gerne genannt werden möchte.
Die sind also grundsätzlich dabei vorhanden. Die haben wir jetzt
genau hier auf einmal dargestellt. Alle Plätze und Transitionen auf
den Pfaden zwischen A und E liegen, liegen also zwischen diesen beiden Plätzen.
Das heißt, wann immer ich hier auf irgendwas gucke,
die also genau zwischen diesen beiden Dingen irgendwie auf irgendeinem der Pfade.
Ich muss nur irgendeinen finden. Ansonsten gibt es irgendwie ein Dead End und wenn es also was wäre,
wo das enden würde, gäbe es etwas,
wo ein 2 zu Ende mit einmal da wäre, was wir gerade gesagt haben,
es gibt nur genau ein E und genau ein A und Anfang genauso,
wenn ich mir ein zweites hätte, wo irgendwas herkommen würde,
hätte ich auch wieder einen anderen Anfang.
Gut, und eine Anfangsmarkierung, die wir aber genau da reintun und genau hinten soll also eine entsprechende Entmarkierung reinkommen, ist die andere Idee. So,
dann hatten wir gesagt,
okay, das muss das Ganze einfärben,
jetzt also ganz viele Fälle haben,
die durch seine prinzipielle Beschreibung von einem Worklow in einem System da ist,
wenn ich jetzt einen Geschäftsprozess,
ich gratuiere irgendeinen Studenten habe und da will ich nicht das ganze System nur einmal laufen haben und dann will ich ein zweites System aufsetzen,
sondern ich will einfach die mehreren variablen Belegungen sozusagen mit dem Vorfinden,
dass wir dann einfach durch diese Färbung gemacht haben,
nie was irgendwelches am roten oder grün oder blau oder andere Farben haben.
Gut, diese entsprechenden Patterns, die da drin stecken,
in diesen Sachen sind jetzt spannend,
was für Muster von Beschreibung habe ich da eigentlich jetzt drin
und wie schaffe ich das,
dass ich sozusagen jetzt mich gezielt so beschränke,
dass ich vernünftige Aussagen treffen kann zum Verhalten von meinem System
Weil wenn ich jetzt bei meinen Netzen alles mögliche zulasse,
wirklich beliebige Netze, dann hätte ich sozusagen ja die normale Netzkomplexität wieder vor dem Jahr.
Die Beschenkung, die wir jetzt haben,
dass wir genau eine Anfangs- und Endstille haben,
ist schon mal sehr einschränkend,
weil da kann man noch mit einem Anfang eine aufhören.
Ja gut, es war kein Problem. Wenn ich also
eine spezielle Anfangsmarkierung haben will, habe ich eine Transition.
Die generiert mir diese Anfangsmarkierung, die ich gerade gerne haben möchte.
Dann läuft das Ding durch und dann kommen hinten mal ganz
viele Endmarkierungen irgendwie raus. Dann habe ich eine Transition,
sie haben genau diese Endmarkierung ein und dann habe ich
auch wieder das Gleiche
Das kann ich also damit auch darstellen. Ich habe da
nur sozusagen so eine Synchronisierung, dass ich sage,
jetzt geht dieses Teil los und jetzt geht eben genau diese entsprechende Markierung los.
Dadurch, dass ich auch noch meine Verzweigungen hatte,
kann ich auch noch verschiedene Feindarscheidungen machen.
Ich kann also jeden einzelnen Ablauf, den ich jetzt programmiere,
einzeln aufmalen. Eine Sequenz A und eine Sequenz B und
eine Sequenz C. Jetzt habe ich vorhin eine Fallenentscheidung drin.
Eine Stelle von der Verzweiflung geht entweder da oder da oder da längs.
Und schon habe ich sozusagen wieder ein Workflow-Netz mit den Fallunterscheidungen entsprechend drin.
Das heißt, wenn ich also mehrere solche Fälle habe, kann ich auch aufteilen.
Jetzt kann ich also in jede einzelne von dieser Sequenzen
jetzt wieder meine auf eine Transition reintun und da ganz viel Nebenläufigkeit reinbauen.
Ich kann also wieder die möglichen Fälle reinbauen.
Sieht also auf den ersten Blick so aus,
als kann man ja hier das Teil irgendwie mit darstellen.
So, was jetzt an weiteren Beschränkungen noch auftaucht werden,
wäre dann gleich nochmal diskutieren. So,
wir haben solche typischen Muster und gerade solche Muster,
wobei eben, ob sie ein Muster sind,
das ist halt der Begriff hier im Würfel-Kontext,
ist halt hier die entsprechende Verzweigung und hier die Nebenläufigkeit,
also hier der Paradise Split,
dass ich sage,
ich spalte meinen Kontrollfluss in zwei weitere oder mehrere
entsprechend auf
Und das entsprechende Join würde das Ganze wieder zusammenfinden, gerade der Nebenläufigkeit reduzieren im System.
So, dann haben wir hier die Sequenz.
Die ist sozusagen idealerweise klar. Hier ist dann die entsprechende Nebenläufigkeit,
die wir da drin haben, nämlich genau mit für B und C.
Und das passiert eben gerade über diesen Kontrollfluss-Split und entsprechenden Join,
um das in die entsprechende Bearbeitung reinzunehmen. Die andere Sache,
die wir in Hatten waren, war der All-Split,
Implicit und Explicit, wobei wir eben hier sozusagen sagen können,
jo, die beiden Transitionen, sozusagen sind aktiviert,
bestehen im entsprechenden Konflikt, während wir ja vorne sagen,
okay, diese Transition ist aktiviert und danach wird es eindeutig entschieden,
ob B oder C weiter bearbeitet wird,
wo ich also in irgendeiner Stelle diesen Konflikt dann quasi an einen Ort lege.
Das ist sozusagen der gedankliche Teil, der dahinter ist.
An dieser Stelle hier haben wir jetzt den an beiden Stellen,
den impliziten Orjoin, kann man auch sozusagen noch anders zeichnen,
wie man das, dieses Konstrukt,
wie wir gleich noch sehen werden,
auch noch andersrum zeichnet und dann
zwei eingehende Kanten hat
Und das trotzdem als Ohr bezeichnet. Ist aber kontraintuitiv im
Hinblick auf die Petronetz-Darstellung. Warum ist der Ort einmal in
der Tradition vorstelle? Genau. Das Ding hier ist jetzt
irgendwie vielleicht auch falsch gezeichnet, das wäre ja hier.
Ja, ist richtig. Das erwähnte ich auch gerade,
deswegen kommen wir gleich nochmal auf diese expliziter Join.
Das Bild kommt ja gleich noch auf der nächsten Folie sozusagen.
Ich habe die nochmal mit drin.
Hier ist es ein bisschen schlecht eingezeichnet,
weil hier ist es natürlich eigentlich nur eine normale Aktivität,
sondern hier
ist der Ohrjoin
Idee ist, aber dass man das explizit oder implizit macht.
Die Folie ist nicht optimal an der Stelle.
Aber wie man sieht, kann man das da mischen.
Das war so die andere Idee dabei. So,
was man hier jetzt haben kann, ist hier der Split
auch noch mal und hier benutzen wir es für ein Schleifenkonstrukt.
Das heißt, wir haben irgendwie hier drin eine Entscheidung,
wie lange wir das wiederholen wollen. Das ist sozusagen die
andere Darstellung. Hier haben wir noch mal die End-Split und Enjoine,
die ja überflüssig sind,
weil das eigentlich genau die Semantik ist,
die wir auch mit der normalen Transition haben,
ja letztes Mal auch schon besprochen und hier der Implicit,
Split und Join
und hier der Explicit
Oh, Split und Or-Join. Das wäre jetzt das Bild,
was wir eigentlich eben hätten für ein Implicit teilhaben müssen.
Diese Transition schaltet also wann? Ja, wenn nur einer verweilt
, der macht das. Also einer muss einer verweilen,
0800 teilen. Ja, das ist jetzt eine spannende Frage.
Wenn ich da jetzt die Netzsemantik wieder hinterlege,
wie sieht die eigentlich aus? Was ist eigentlich nicht möglich,
dass das beide eine ist, weil es ein Join,
Sätze waren,
explodisiert voraus
Wirklich? Ja und nein. Nein, das ist völlig okay.
Ist völlig okay. Es gibt einen bestimmten Teil jetzt daran,
der, wenn wir wieder bei solchen grafischen Modellierungen auftritt,
nämlich, dass man sich überlegen muss, ich habe da irgendwelche Konstrukte,
dahinter stehen Konzepte und die haben irgendeine Semantik entsprechend.
So, das heißt also auch die Konstrukte halten dadurch dann ihre entsprechende Semantik.
Jetzt ist die Frage, wenn ich jetzt so ein Explicit.
Jetzt muss ich nämlich aufpassen, wie man das mal zeichnet,
falls ihr mich verzeichnen solltet. Müsst ihr jetzt ein bisschen aufpassen.
So, wie sind jetzt sozusagen Semantik dazu aus? Naja,
das hatten wir gerade eben beschrieben,
dass wir gesagt haben, ja,
wir haben eine Stelle und wir haben eine Transition und die tut das irgendwie dahin,
aber eigentlich haben wir das so da stehen.
Den vorderen Teil kann ich mir so durchschenken,
ich kann das natürlich auch gleich hier drauf machen,
das ist auch klar
So, das heißt, diese beiden Stellen hier
entsprechen dem und hier drin passiert irgendwie diese Entscheidung.
So, wenn ich jetzt das Gegenstück dazu packe mit dem Explicit.
Wenn ich das jetzt so daneben lege, na gut,
der Fallschirm wird sich da oben hinzeichnen müssen,
mache ich auch nochmal, das wäre jetzt ungünstig, weil Was?
So, wie sieht es jetzt da drunter aus?
Was muss ich jetzt zeichnen, damit ich hier dieses entsprechende Teil bekomme?
Die Semantik dazu? Die meisten bestehen,
die auf die alte Funktion bis zur Sano einstellen.
So, das hier kann ich mir auch wieder schenken,
je nachdem, wie ich das genau sehen möchte.
So, von daher war jetzt die Aussage, ja,
das ist doch klar, wenn du hier so einen Teil habe,
dann muss das so wieder passend sein.
Dann habe ich nur genau eine Marke da. Das ist unter
dem Gesichtspunkt richtig. Aber wenn ich mein Workflow jetzt jetzt zusammenmale,
kann ich ja hingehen und die Sachen ganz anders hinmalen.
Ich kann mir ja irgendwelche beliebigen Netzstrukturen jetzt sozusagen überlegen.
Wenn ich also jetzt hier dieses Teil hier irgendwie überlege,
wie das zustande kommt, selber irgendwas zurechtbasteln,
was jetzt gerade, das ist natürlich genau nicht hinkommt,
das ist immer schwierig,
sich festverkehrt das zu überlegen
So, vom Prinzip wird jetzt einfach was dazwischen zeichnen.
Aber beim Workflow-Netz kann ich auch alle möglichen anderen Konstrukte sozusagen mit einbringen,
dass wir gesagt haben, die Dinger mussten ja nur in irgendeiner Weise
auf den Pfad liegen und zwischen A und A und E.
Dass ich also irgendwelche anderen Transitionen habe, die hier irgendwas
irgendwo hinlegen, dass hier noch irgendwas anderes passiert.
Das ist außen vor. Ich kann das also auch
so machen an der Stelle. Und das heißt,
wenn ich jetzt hier oben meine normalen Aktivitäten drauf habe,
dass hier vorne wird dann noch irgendwo anders weiter
Sich das überlagert oder nicht, ist jetzt im Grunde egal.
Aber was jetzt passieren kann, ist,
dass von hier unten irgendwas kommt und sich auch was raufkommt.
Was hätte ich hier? Ich hatte irgendwo eine Anfangsstelle,
ich hatte eine Transition,
die wird eine Marke hier hinlegen und hier,
und schon hätte ich auch ein vernünftiges Workflownetz,
wobei es hier hinten entsprechend wieder weitergehen muss und das hier noch weg und so weiter.
Können wir so machen. So, und schon hätte ich
jetzt hier eventuell mehrere Marken drauf liegen. Und das war genau das,
was wir dann mit der entsprechenden Korrektheit uns angucken wollen,
uns überlegen wollen, inwieweit dann der korrekte Workflownetze.
Ihr geht also bei eurem Denken schon davon aus,
dass diese Workflows,
die müssen doch
eigentlich korrekt sein
Dann ist das natürlich richtig. Aber vom Prinzip muss das
nicht so sein. Das heißt, ich kann also auch
mehrere Marken hier liegen haben und dann würde die Transition Zwanner schalten können.
Was natürlich nicht gewollt ist an der Stelle. Die Intention ist,
man hätte gern nur einen, damit das klar wird,
aber das ist ein anderes Thema, ja.
Bei uns ist es immer auf der linken Karposeite angucken,
was ist das Expressive Orban? Da würdest du ja fast
nur eine von diesen beiden Marken kontrollieren. Es würde ja auch,
wenn du jetzt auf beiden Fällen quasi alle drauf bist.
Ja, genau, richtig. Genau. Jetzt würde ich
jetzt vorstellen, dass er quasi ein Fortleser Stelle raus,
wo diese zweimal rauf liegen, aber das ist das untere Beispiel.
Ja? Die hat quasi nicht nur explizit Außenwaffen oder was anderes
theoretisch verliebt werden können. Ja. Nur weiß man,
wenn da zwei Marken raufen sollen bei dem oberen Flechen
dann zuerst genossen wird, ist das mal...
Ja, das ist ja hier unten genauso,
weil das ist ja die Semantik dazu. Das heißt,
die Erklärung, wie ich das hier verstehen muss,
ist eigentlich das da. Ja, glaube ich. Genau,
dann können wir beide gleichzeitig was rauflegen und dann kann die
da hinten auch wieder zweimal schalten.
Also in welcher Reihenfolge ist es völlig offen dabei.
Deswegen, man kann immer schlechte Modelle bauen,
Man sieht, das ist das Problem, was wir jetzt gerade im Kopf haben.
Also ich schlage hier ein sauberes Konstrukt vor,
explicit explicit ostbit, explicit or join, zeichnet ihr euch ein,
dann ist die Sache eindeutig klar geregelt und wenn ich das genau passend habe,
ist das auch in Ordnung.
So und wenn ihr euch jetzt entsprechende Theoriepapiere noch dazu anguckt,
werdet ihr feststellen, dass dazu jede Menge Papiere gibt,
unter welchen Bedingungen sind das noch korrekte Workflows.
Und insbesondere ist diese PT-Hände-Geschichte und so entsprechende Maging-Partners und so weiter und so fort,
sind dann genau die, dass man sagt, so kriegt gute Netze.
Und es gibt eben auch die Vorschläge,
wie man von einem korrekten Workflow jetzt ausgeht,
in dem ich nämlich das Grundnetz sozusagen einzeichnet, das,
was eigentlich in jeder Fusion irgendwann einmal gezeichnet werden muss,
als Netz, nämlich dieses hier.
Schön einfaches Netz. Das ist halt ein Anfang und ein
Ende und dazwischen eine Transition. Wunderbares Workflow-Netz. Fantastisch.
Keine Nebenläufigkeitsprobleme, nichts. Also das lässt sich auch sofort überprüfen.
Juck, das sieht gut aus, das funktioniert.
Und jetzt fange ich an und verfeine die Transition und baue
das auseinander. Ich splitte die in parallele Geschichten,
ich ziehe sie auseinander für Sequenzen und mache dann einen Splitz daraus.
Ich mache über die einzelnen Teile, mache ich eine Schleife und so weiter.
Ich kann also gezielt einzelne Aktivitäten im System sozusagen aufteilen oder
eben auch die Stellen
Und das kann man bei diesem Verfeinerungsoperationen, die wir ganz am Anfang
uns angeguckt hatten, die könnt ihr jetzt hier verwenden.
Ich habe euch da ein ganz allgemeines Verfeinerungskonstrukt an die Hand gegeben,
insbesondere welche Möglichkeiten ihr mit diesen Netzmoffismen und so weiter hattet.
Und genau das braucht ihr an dieser Stelle wieder.
Also genau diesen ganzen Kram, alles, was da
so allgemein beschrieben wurde, gilt eben insbesondere auch hier.
Und jetzt können wir das so verwenden, dass wir diese
Teile benutzen können, um gezielt bestimmte Eigenschaften zu behalten.
Je nachdem, wie ich ersetze und was ich ersetze,
erhalte ich bestimmte Eigenschaften, euch erhalte sie nicht.
Und man kann die Wirkknetze so bauen, dass man sagt,
man darf ein Workflow-Netz nur so erweitern mit diesen Operationen 1,
2, 3, 4,
nämlich aus einzelnen Sachen saubere Sequenz und da darf man nur parallel was splitten.
Und hier kann man eine saubere Schleife drüber machen und
es darf eben keine Probleme mit diesen überschneidenden Kanten geben.
Ich darf nicht einfach neue Kanten quer reinzeichnen, darf nicht Transition
irgendwie quer dazu packen, diesen Aufbau wieder quasi zerstören.
Und in dem Moment habe ich ein korrektes Workflow-Netz.
Das heißt, das ist dann sozusagen Proof by Construction.
Das heißt, ich kann gar keine Ansätze bauen als korrekte Würfel.
Also wenn ich nur bestimmte vier Operationen habe.
Die sind aber natürlich eingeschränkt, weil ich bestimmte schräge Systembeschreibungen,
die ich ja auch nicht haben möchte,
wenn ich nur korrekte Workflows haben möchte,
auch nicht verwenden würde
So, und deswegen ist eine der Ideen dabei, dieses Proof-of-Construct,
Proof-by-Construction sozusagen zu verwenden, dass man einfach direkt weiß,
durch die Konstruktion ist es schon richtig.
Dann ist das Beweisverfahren noch ganz einfach. Da muss man einmal allgemein gezeigt haben,
dass es richtig ist, dass die Operationen richtig sind.
Und in dem Augenblick hat man dann die Möglichkeit,
nur noch richtige Netze zu bauen.
So ähnlich wie, ihr dürften richtige Programme bauen,
ihr dürft also anfangen bei und dann geht es los.
Jetzt dürft ihr noch mit Blogstrukturen arbeiten.
Das ist zumindest bezüglich der Blogstruktur immer
eine Termination vorgegeben
Das kann man irgendwie, aber dann sind die Operationen
auch sehr beschränkt, die ihr haben dürft.
Dass ihr wie Schachteln dürft und wo ihr welche Nebenläufigkeit einbauen dürft,
welches Wets ihr so programmieren dürft und wo ihr dann wieder
eine Sequenz und eine Schleife habt und solange ihr jede Schleife sozusagen so baut,
dass sie terminiert, terminiert auch euer ganzes System letztendlich dann.
So, das ist natürlich eine Sache, wie ihr neulich keine Software baut,
weil ihr da ganz anders rangeht und ganz andere Möglichkeiten der Ausdrucksmittel verbändet,
die das einfach nicht erlauben, so eine einfache Sichtweise.
Aber bei dem Kontrollfluss ist es durchaus sinnvoll, solche starken Restriktionen vorzunehmen,
weil über die Datenverarbeitung und die Veränderung und Operationen und Funktionen,
die jeweils darauf kompliziert, sozusagen Parallelaktivität von diesen Dingen hier stattfinden.
Darüber sage ich ja gar nichts, was da noch alles verarbeitet wird.
Ich sage nur, so wird gesteuert. Was mit den Daten
ist, ist dann egal. Ich habe also einen Sachbearbeiter,
der kommt irgendwann und bearbeitet diesen Fall, ob der da
völlig Murks einträgt in seinem Formular oder ob das sinnvoll ist.
Das ist sozusagen eine Frage der Datenkonsistenz dann nachher,
aber nicht mehr der Kontroll, der sinnvollen Kontrollabläufe. So,
das ist eine gewollte Trennung der verschiedenen Sicht noch ein System,
nennt sich auch Separations of Concern, wie Sie hier schon gehört haben, eine Softwaretechnik.
Da passiert genau das, wenn ich UML-Modelle baue,
heile ich sozusagen das System in verschiedene Sichten auf und ich
kümmere mich nur noch um Zustände oder nur um Abläufe,
nur noch um statische Beziehungen und gucke mir die gezielt an.
Und für jeden einzelnen Kram hat man als Menschen auch eher die Möglichkeit, was zu verstehen.
Wenn ich euch den Verkaufsautomaten drüben beschreibe und ich beschreibe ihn als Automaten,
der ist an oder der ist aus und wenn er an ist,
dann könnt ihr folgende Zustände, eins, zwei, drei,
vier machen, dann ist das recht leicht zu verstehen.
Wenn jetzt über die Funktionalitäten kommen und die ganzen Abhängigkeiten der
Einheiten da drin, dann wird das schon relativ komplex.
Das heißt, auch das zu programmieren ist dann keine Sache,
die man in einer Minute fertig hat,
sondern da braucht man auch zwei Minuten länger für
Okay, also das sind erst mal so Bildchen, die immer wieder auftauchen.
Und wenn ihr euch mit anderen Leuten über BPAL,
BPMN oder EPKs oder irgendwelche anderen tollen grafischen Darstellungstechniken unterhaltet,
irgendwelche UML-Techniken, dann könnt ihr überlegen,
wie ihr zu diesen Konstrukten, die jetzt irgendwie eingeführt werden,
wo ja auch irgendwas an Bildchen aufgezeichnet wird.
Sieht erst mal mit dem Bildchen aus,
ist aber eine entsprechende Grafik, ist ein Modell.
Und die Erwartungshaltung dahinter ist, wenn man sich Informatikbereich bewegt,
dass man sich auf eine bestimmte Semantik festlegt.
Man kann sagen, ich will das nur als Gedächtnisstütze für
aktiv und passive Teile haben. Dann kann ich die Netze
darauf beschränken, dass ich nur aktiv und passive Sachen habe.
Da habe ich keine wirklichen Ausdruck, starke Semantik dahinter.
Wenn ich dahinter aber quasi Referenznetze erwarte,
die ich letztendlich immer so lange erweitern möchte,
bis ich sie auch ausführen kann, dann habe ich eine andere Bestrebung dahinter.
Und das Gleiche gilt halt für BPL und UML und so weiter.
Aus UML soll Code generiert werden. Das soll JavaCode oder
irgendwelche Anacode draus generiert werden in Skala und solche Sachen.
Das heißt, ihr geht hin und wollt diese Modelle transformieren
und in den Java-Code oder einen anderen Code letztendlich übertragen.
Und dafür muss die Semantik klar sein. Das darf also nicht sein,
dass ihr da irgendwie nur so ein irgendwie mal so ein,
mal so, mal so Ding drin habt.
Was ist denn Els mal mal mal Els oben,
mal Els unten sozusagen generiert werden würde, wäre auch ein bisschen unglücklich.
Also es wäre schon, man hofft schon,
dass der positive Fall sozusagen auf den Sensweich geht und eine
negative auf das Els und nicht irgendwie per Zufall anders oder eben einfach weggelassen wird.
Also die Semantik sollte schon eindeutig sein. Das heißt,
wenn ich hier ein Konstrukt habe und da steht irgendwie so ein Explicit Dings da dran,
dann soll das schon das sein,
dass es auch auch ist,
nämlich so eine Geschichte und wenn ich dann den Fehler nachher bei der Motivierung,
ich kriege hier zwei Marken rein,
dann hast du
bestimmte Bedeutung
Wenn ich jetzt aber sage, ey, ich möchte auf
jeden Fall auch anzeigen, dass da ein Fehler vorliegt.
Und ich möchte benutzt das sofort anzeigen. Und dann soll es
da blockieren an dieser Stelle. Das wäre eine andere Semantik dahinter,
die dann aber ganz andere Ausführungsumgebungen erfordern würde für den Fall.
In dem Augenblick müsste meine Engine ja auch nicht mehr darauf reagieren,
dass ich sowas annehme, sondern ich sage dann,
wenn hier jetzt zwei Sachen sind,
dann ich prüfe immer nachts hinter der zwei.
Welches Problem tritt denn jetzt auf mit diesen Sachen, wenn da zwei sind,
dann höre ich aber auf und gebe einen Alarmbefehl aus.
Habe ich dann damit alle Möglichkeiten, dass da sozusagen,
dass da zwei Marken liegen können, auch mit erschlagen?
Das könnte auch passieren, dass die Nachteile ändern kommen
Genau. Das ist erst die eine darauf pushen, dann
die andere. Das merkt man ja schon nicht so,
aber hinterher eben trotzdem jetzt eventuell sein Magen. Genau,
dann liegen dahinter so Nachfolgebereiche quasi zwei, wenn erst die eine kommt.
Und nach einer ganzen Weile kommt die andere,
jedenfalls so lange, wie die eine geschaltet haben.
In dem Moment habe ich nie gleichzeitig zwei.
Also genau unsere Geschichte mit Fairness-Sachen ist das so oder nicht,
fällt auch mit da rein in diese Kategorie.
Also wie ist das tatsächliche Laufzeitverhalten von den Systemen?
Und das macht das Leben dann auch relativ schwierig,
weswegen man auch gerne mit den formalen Mitteln da drauf klopft.
Und nochmal, bei Workflows und Kontrollflussprozessen habt ihr eigentlich
keine andere Chance mehr als Werkzeuge einzusetzen,
wenn ihr die Korrektheit überprüfen wollt
Die Netze sind heutzutage oder die Systeme, die sind heute so groß,
dass man das eigentlich nicht ohne Werkzeuge machen kann.
Und die Werkzeuge erschlagen aber auch alles zu 100 Prozent und sagen, korrekt, ja oder nein.
Die sagen nicht vielleicht oder nur im positiven Fall,
ja, es geht, aber wenn es nicht geht,
dann kann ich vielleicht gar nichts zu sagen oder ich decke mich alle Fälle ab,
sondern die schaffen das jetzt eben auch 100.000 solcher Transitionen und Stellen mit abzudecken.
Wenn die nach diesem Prinzip aufgebaut sind,
wie die Wölfung der Sales konstruiert werden.
Wenn es andere Netze sind, beliebige Netze, funktioniert das,
wie wir ganz einfach gesehen haben mit den kleinen Netzen überhaupt nicht mehr.
Da hatten wir schon diese exorbitant großen Zustandsräume,
die man einfach nicht mehr sinnvoll bearbeitet und nachgeschaut bekommt
Okay, gut, damit sind wir jetzt immer noch bei der Wiederholung,
aber bei dem Tighting auf jeden Fall nochmal mit unterbringen wollte.
Und hier war nochmal so ein Veranschaulichungsmöglichkeiten,
dass ich sagen kann, es ganz läuft automatisch ab oder
vom User aus oder durch die Zeit oder die Nachrichten,
was ja auch in dem Ola-Test entsprechend abgeprüft worden ist und gefragt wurde.
Automatisch benutzt er eine Nachricht Zeit. Gut, die spannende Geschichte ist,
das hatte ich auch letztes Mal gesagt, auf den Workflow-Prozessen,
man vertut sich ganz schnell bei diesen Bildern.
Das war eben auch eine meiner Sorgen,
wenn ich jetzt hier was ranzeichne,
dass ich hier irgendwas zeichne,
was nicht schön ist
Das heißt jetzt dieses schreckliche Netz da im Hintergrund ist,
finde ich auch nicht so gut, aber na gut,
ich lösche das mal nicht weg.
Was ganz schnell passieren kann, ist, dass man sich verzeichnet,
weil das Papier ist extrem geduldig für jede Art von Linie.
Ich kann auch zwei Transitionen verbinden auf dem Papier.
Wenigstens das kriege ich im Rindewerkzeug jetzt noch nicht dargestellt,
sehr wohl kriege ich aber irgendwelche komischen Netze dargestellt,
die keine Wöffelhundetze repräsentieren. So, was man also,
aber auf jeden Fall schon mal erreicht ist,
durch dieses versuchsweise Motivieren von einem System kriegt man schon mal raus,
das sieht ja komisch aus oder ich kann schon sehen,
die verabreden sich so,
dass immer mehrere Leute bei dem sozusagen ein Auftragseingang reinlegen in die Inbox.
Da darf aber eigentlich nur entweder den einen oder den anderen
bekommen. Es muss eigentlich dieses Explicit oder implicit,
das ist ein Explicit Smith oder Join, sozusagen stattfinden.
Es passiert aber hier irgendwas, dass der sozusagen auch mit einmal weiter reinbekommt.
Der Sachbearbeiter. Und das kann man schon im Modell dann sehen,
das stört einen dann und sagt, okay,
das kann irgendwie nicht korrekt sein, wenn man das eigentlich erwartet.
Das Interessante ist aber, was eben viel,
viel spannender ist, dass es das Wofland-Tool,
ist das, was in Eindhoven mitentwickelt worden ist,
was jetzt in einem Prom-Tool mit aufgegangen ist,
gibt es diese Process Mining
Das erlaubt sozusagen, die entsprechenden Untersuchungen davon.
Das Lola-Tool arbeitet auf normalen PT-Netzen. Das ist das,
was in Rostock verbreitet wird. Und da gibt es auch
noch mehrere andere Tools, die alle sozusagen eine strukturelle,
auch teilweise dynamische Analyse von solchen Systemen vornehmen.
Und die können inzwischen recht große Netze analysieren und sich angucken.
Ein paar von euch haben wir in den Übungsgruppen auch die Hausaufgaben mithilfe der Werkzeuge gelöst.
Das war so eine ganz geschickte Geschichte, sodass man also
sie eigentlich vertun konnte bei der Lösung, bei den Hausaufgaben.
Und das war auch genau gewollt. Der Aufwand,
sich erstmal das Tool einzuarbeiten, produziert dann das Nachdenken über diese Dinge.
Wichtig ist, dass ihr aber verstanden habt,
warum ihr bestimmte Analyseeigenschaften sozusagen da benutzen konntet oder auch nicht.
Gut, interessant ist, dass sowas automatisch gefunden wird.
Ich muss mich also nicht mehr dahinsetzen und selber alles nachfliegen und eingeben und eintippen.
Haben wir also wieder so ein problematisches Workpoint jetzt mit der Beschwerdebearbeitung,
das wir letztes Mal hatten,
wo wir die verschiedenen Beispiele gesehen hatten, was da auftreten kann,
das für die falschen Marken hatten, die füßen mal durch,
dann sehen wir nochmal die verschiedenen Beispiele.
Es wechselt einfach,
ist das gleiche in Grün
Haben wir die entsprechende Aufblütung, dass es sozusagen doppelte Belegungen gibt.
Auch das ist dann nicht so schön, dass wir das da entsprechend dran haben.
So. Deswegen haben wir den Begriff des korrekten Vaktornetzes eingeführt. Und zwar,
falls aus jeder erreichbaren Markierung eine ordnungsgemäße Termination möglich ist,
das ist sozusagen das, was wir hier oben drin stehen haben.
Dann haben wir genau eine Marke in dem Endplatz.
Es ist die einzige Möglichkeit zu terminieren. Also es gibt
nur dieses eine ME und jede Transition kann in solcher Schaltfolge
schalten, denn sonst wäre sie nutzlos.
Das heißt, für alle Transitionen heißt,
dass wir sie irgendwie aktivieren können in diesen Sachen.
Gut. Damit haben wir gesagt, dass ein korrektes Work-Relits ist.
Und jetzt gucken wir uns noch ein bisschen genauer an.
Da waren wir, glaube ich, letztes Mal so im
Wesentlichen stehen geblieben. Nämlich, dass wir gesagt haben,
wenn so ein Work-Relits korrekt ist, dann spricht das,
wenn dieses Dach lebendig und beschränkt ist.
Und das heißt, es gibt also eine Oberschranke für die Markenzahl.
Das war das, was wir schon kennen.
Und jede Transition wäre die Eigenschaft potenziell zu schalten.
Das war das, was wir jetzt haben wollen
Für diese Sachen haben wir Algorithmen. Das heißt,
wenn ich jetzt so etwas überprüfen will, dann kann ich
die Algorithmen nehmen und sie zusammenschrauben und dann beide anwenden.
So, was mache ich jetzt also? Ich nehme so
ein Würfelnetz, habe am Anfang mal ein Ende.
Das ist ja das, was ich von dem Workflow
letztendlich kenne. Und der Satz hier ist dann eben,
dass das Netz genau dann korrekt ist,
wenn sein Abschluss eben lebendig und beschränkt ist.
Und das sind genau diese Eigenschaften, die wir schon in
den anderen Tabellen und so gesehen haben im Kapitel 6.
Da hatten wir das schon bearbeitet. So,
wie mache ich das jetzt? Ich habe das ja angeguckt
Naja, ich will jetzt sozusagen einen Abschluss finden.
Dieses Netz hier vorne kann das lebendig sein?
Nein, genau, warum? Warum kann es jetzt nicht
lebendig sein? Selbst wenn du noch ganz viel dazwischen wärst.
Ja, quasi. Und das war der Inselgestandseite,
von dem auch so ein Hit rausgeht.
Alles dazwischen ran, wie ihr seid.
Das heißt, das zweite Preis ist nicht anders.
Genau, also ich komme gleich wieder raus, genau.
So, wie löse ich das Problem jetzt
Naja, ich überlege mir jetzt, wie mache ich es lebendig?
Und das heißt, wenn ich also hierhin angekommen bin,
dann kommt die Idee und sag, ja,
dann machen wir es noch so, dass wir eine Transition da einfügen,
die das nimmt und den Abschlussbild uns wieder nach vorne packt.
Das heißt also, das kann ich jetzt nachgucken.
Ich weiß, dass alles, was hierzwischen liegt,
ja irgendwie auf so einem Pfad liegen muss.
Und ich kann sehen, jede Transition kann ich wieder aktivieren.
Das heißt aber, für einen einzigen Durchlauf habe ich nicht unbedingt
immer alle Transitionen jeweils aktiviert gehabt, oder beziehungsweise geschaltet.
Jetzt will ich aber gucken, ob das Ding lebendig ist. Das heißt,
ich muss jetzt gucken, ob ich,
wenn ich hier hinten ankomme, ich will nach vorne kommen,
das machen wir trivialerweise durch so eine Transition hier,
dann schmeißen wir es hier vorne rein,
dann möchte ich aber jetzt gucken,
ob ich da hinkomme
Naja, da muss ich nur den Pfad finden,
wie ich das bei entsprechend aktiviert bekomme.
Was ist jetzt wichtig dabei? Welche Eigenschaft hat das Workflow-Netz
an dieser Stelle jetzt nicht? Oder welche hat es,
je nachdem, wie wir das sehen,
ob es positiv und negativ formulieren möchtet?
Was ist jetzt wichtig, wenn ich sowas austesten möchte,
dass das jetzt egal ist, wie oft ich hier rumlaufe?
Ich weiß nicht, ob es das worauf ich hinaushole,
aber das Netz ist reflexibel? Das Netz ist reversibel,
ja, das ist eine Eigenschaft, ja.
Das zeigt sein, aber es ist auf jeden Fall
nicht mehr
Ja, das mit dem Pferd, das können wir ja noch draufpacken,
genau, das ist eine andere Geschichte, genau.
Nee, abstrakter, dass ihr auch, wenn jetzt das Netz draufguckt,
das hängt mit dem reversibel und beschränkt und so weiter zusammen,
worauf ich jetzt hinaus will.
Welche Eigenschaft hat das Netz jetzt oder welche hat es nicht?
Das ist Verklemmungswahl. Ja, das meine ich auch nicht,
ja, ist auch. Das vermutlich für die beliebige Markierung,
doch, das funktioniert nämlich genau für diese,
ich packe da eine Marke drauf und dann ist gut.
Das reicht mir aber an der Stelle.
Genau, was ist mit Markierungen jetzt
Jetzt sind wir noch, das ist noch ein Punkt,
der jetzt da mit reinspielt. Ich weiß nicht,
ob ich hier war, ich stehe aber mal hier,
das sind die Vorwürfe, A, sind die Erlehrung, die nachher liegen.
Ja, nee, das meine ich jetzt nicht. So,
ich meinte, das dreht mit dem Ding um die Markierung.
Was kann das Netz hier nicht machen, wenn ich den Test durchlaufe?
Welches Problem habe ich nicht, wenn ich jetzt einmal hier durchgelaufen bin,
ich bin jetzt hier am Ende wieder und es ist ein korrektes Netz?
Ja, das machen generiert oder vernichtet werden? Genau, seinen Durchlauf. Genau,
das Entscheidende ist, ich habe quasi,
ich kann mich ja nichts erinnern, das Testen erfolgt immer nur sozusagen,
ich schmeiße vorne eine Münze rein, dann macht das Ratter,
Ratter, Ratter, Ratter,
Klick und unten kommt hinten das raus und damit Darf ich keine Markierung sozusagen in dem Netz irgendwie weitergesetzt haben?
Weil es gibt keine weitere Marke.
Das heißt, es gibt kein Gedächtnis in diesem System.
Das ist für Systeme eine sehr starke Einschränkung. Also,
wenn ihr jedes Mal, wenn ihr studieren wolltet,
immer vorher immer alles gelernt haben müsst, in diesem Durchgang,
damit ihr jetzt auch eure Klausur schreibt, wäre das ein bisschen komisch.
Also, fangt wieder an. Und dann geht es bei
der nächsten Klausur los und wir müssen wieder erstmal lernen,
wie lese ich, schreibe ich, rechne ich und so weiter.
Und dann fange ich wieder. Also, Menschen sind im
Normalfall keine gedächtnislosen Prozesse, wenn man Glück hat.
Bei manchen Sachen kriegt man den Eindruck,
wenn ich mir irgendwas merken soll, vergesse ich immer wieder,
was ich schon mal gelernt habe,
aber man schafft ja doch eine Menge,
sich zu erinnern
Ja, so eine Frage. Gut. Also die,
die, das Spannende ist jetzt dabei, wir haben hier drin
keinen Gedächtnisspeicher. Eine ganz starke Einschränkung an dieser Stelle,
die auch dazu führt, dass ich eigentlich jede einzelne Alternative hier
sozusagen immer angucken muss und dann sind wir schon durch.
Was natürlich bei Schleifen und so weiter nicht ganz so,
ganz so trivial ist. Auf jeden Fall zeigt es schon mal,
ich habe kein Gedächtnis und ich muss nicht sozusagen womöglich das Gedächtnis hier hochziehen,
dass wir ein, zwei, drei, vier,
fünf Sechen Variablen drin sind,
indem ich mir Sachen merke und der Durchlauf muss noch angeguckt werden.
Das heißt, ich müsste dann nämlich gucken,
dass ich mehrfach über das Netz durchiteriere.
So muss ich nur sozusagen das Netz einmal nehmen und mir
einmal strukturell sozusagen angucken
An den Sachen. Deswegen geht auch der, gehen auch die Algorithmen nachher relativ fix,
weil kein Gedächtnis in dem Teil drin vorhanden sein darf oder ist.
Genau, hier haben wir jetzt, machen wir das Gleiche aus unserem Teil,
wo stellen wir jetzt also dann das entsprechend fest, was passt uns da nicht? Naja,
das ist halt genau diese Geschichte,
dass wir jetzt hier durchlaufen und unsere falsche Marke haben,
die jetzt irgendwie da jetzt drin liegt,
wir haben jetzt da zwei Marken, das ist etwas,
was wir nicht haben,
weil jetzt hätten wir ja,
dass sich da Marken ansammeln und damit ist es nicht beschränkt
und damit haben wir sozusagen genau eine der Aussagen,
die wir verlangen
Wann es sozusagen korrekt sein muss, widerlegt. So,
und was machen wir jetzt als Lösung dazu zu solchen Dingen? Also,
ihr seid jetzt in der Firma, ihr habt jetzt da gearbeitet,
habt ihr festgestellt, die haben einen nicht korrekten Ablauf.
Was macht ihr jetzt? Für mal in die Luft springen.
Nee, geht nicht. Ja? Erst mal analysieren,
wo, an welcher Stelle es zu diesem Fehler kommt,
denn letztendlich daran, dass das letztendlich am Ende noch zwei,
also eine Marke zu 4 ist es, zwei Marken vorhanden sind,
das war jetzt, ich habe eben nicht,
ich habe es jetzt gerade nicht mehr im Kopf,
das war da unfrei.
Hier oben kamen wir ja
doppelt rein,
Position, das generieren, dann müsste man sich da überlegen,
je nachdem, wenn du vom Netz ausguckst,
dann muss man sich überlegen, dass man die neue Stellen,
neue Transition einführt oder Pfeile verschiebt,
sodass das Ganze anders arbeitet, im Dieselmarkt nicht mehr generiert,
wenn man natürlich noch seinen realen Kontext mit hat,
kann man sich überlegen, was für Leute ist da drin,
was ist doch falsch.
Genau, also erst mal müsst ihr natürlich immer gucken,
was wollen die Leute eigentlich, das ist das erste.
Streichen ist meistens einfacher, als noch dazutun. So,
aber hier in diesem Fall könnten wir auf die Idee kommen,
uns zu überlegen, dass wir,
was machen wir denn da jetzt und dass man das einfach wegstreicht und sagt,
okay,
dann machen wir das noch so hin
So, und jetzt können wir wieder anfangen durchzuspielen und so weiter und so
fort, was da passiert. Das ist dann halt,
so dass es sich wieder aufteilen kann an den Stellen.
Und jetzt geht das Ding aber gerade da unten links.
Und dahin, naja, ne? So,
also das heißt, man kann auch die Sachen verschlimmbessern,
indem man jetzt sozusagen das Problem hat,
dass man nicht mehr ankommt an den Sachen und Markenübrigbehälter drin.
So, das heißt also,
wie diese Veränderung stattfinden sollen und was die richtigen Veränderungen sind,
ist etwas,
was nicht ganz so einfach ist
Machen wir auch gerade bei uns ein Projekt,
wo die Leute auch davor sitzen,
die sollen so ein Workpre-Management-System sozusagen entwickeln für eine Softwareentwicklertruppe,
die sie in Abläufen so ein bisschen unterstützt.
Und diese Abläufe ist jetzt genauso was wie hier, naja,
der eine programmiert irgendetwas und dann kommt das hier unten hin oder der andere programmiert,
aber wenn irgendein Time-out ist oder wenn einer nicht fertig ist,
dann soll irgendwas anderes passieren und so weiter und so fort.
Oder wenn jemand anders was macht, so und jetzt sollen
bei der Unterstützung die richtigen Aktivitäten im System immer noch unterstützt werden,
sodass hinterher ein vernünftiges Programm bei rauskommt von den Entwicklern.
Und das halt gar nicht so einfach,
was man
da machen soll
So, jetzt gibt es verschiedenste Lösungen dazu. Das eine ist,
sich sozusagen generell mit Requance-Engineering auseinanderzusetzen und sich so Szenarien und solche Sachen anzuschauen.
Oder man geht hin und versucht eben anhand der Workflows jetzt festzustellen,
okay, welche waren jetzt richtig, welche waren nicht richtig,
welche sind notwendig und was muss ich dann dafür tun,
damit jetzt jeder Ablauf in sich konsistent ist?
Also ich werde eigentlich mal jeden einzelnen Ablauf angucken,
also die Fallunterscheidung quasi raus und gucke mir die einzelnen Fälle an,
wofür es gültig ist.
Und da muss ich nur die Sachen wieder gültig zusammenfassen.
Das ist das, was letztendlich dahinter steht. Oder aber,
man guckt sich Sachen an, die auch schon bei Betriebsmittelvergabe
sozusagen ganz gut gelaufen sind. Weil wenn ihr Betriebssysteme habt,
habt ihr auch so eine Art Ablaufsteuerung da drin. Nämlich,
wer kriegt wann welchen Prozessor oder wer hat den Prozessor oder
wer bekommt eine bestimmte Ressource im System und wer ist denn der Nächste?
So, und wenn ihr jetzt so ein Mir-Benutzersystem habt,
wo mehrere Leute irgendwie drucken wollen und auf eine Datenbank zugreifen wollen und einen Prozessor halt brauchen,
dann ist die Frage, wer wird wann wie abgearbeitet?
So, jetzt haben wir das Problem,
dass so ein Programm ja eine gewisse Größe erreicht oder auch einen gewissen Speicher benötigt,
entweder beim Speichern läuft und persoistieren oder auch im Hauptspeicher direkt zum Arbeiten.
So, nun habt ihr bestimmte beschränkte Ressourcen und müsst ihr aufpassen,
wen ihr dann da reinlasst. Welches Problem kann da auftreten
? Wäre verschiedene, ein, zwei Mal gleich angucken.
Unter anderem, das würden wir ein Fairness-Problem kriegen.
Ja, genau. Fairness ist einfach eine Sache, die,
genau, ist richtig, aber die wollen wir nicht im Moment.
Ja, ich meine, mit Gastaration. Genau,
aber die wollen wir gerade nicht im Moment.
Das ist ein richtiger Punkt, völlig in Ordnung,
aber auf die will ich nicht hinaus.
Ja, man muss rausnehmen, Pässen, Sachen,
die grüße ich ihm gleich.
Wir können keine neuen
Weiß ich nicht, heute zulassen für mich ein Datenbank.
Gut, wir können den Leuten mit reinlassen.
Die fangen ja gar nicht erst an, dann ist das
ja nicht so schlimm. Soll ich sagen, okay.
Genau, das gegenseitige Blockieren ist jetzt genau das Problem,
was wir so ähnlich jetzt hier haben.
Die warten jetzt beide auf irgendwie was von dem anderen und
kriegen das beide nicht. Genau das ist sozusagen die Idee dahinter,
dass es sozusagen um solche Probleme vom Hängenbleiben hat,
weil man noch mehr Ressourcen haben will und die nicht kriegt.
Warum die jetzt auch immer so komisch hier,
das passt nicht exakt, dieses Beispiel hier,
aber das fällt in die Kategorie
Eine der Lösungen, die wir dann dazu haben,
wird über das Bankiersproblem formuliert. Jetzt reden wir über den Kies,
die haben ja auch aus gesellschaftlichen Gründen gerade hohen,
hohen Stellenwert, solche Themen hier.
Aber im Grunde genommen ist es etwas,
was uns eigentlich vom Betriebssystem her interessiert.
Also Deiksra und Co. sind da durchaus Leute gewesen,
die da eine Menge nette Ideen gehabt haben.
So, was haben wir also? Wir haben eine Betriebsmittelvergabe
, nennen wir das mal Geld.
Und wir müssen das irgendwie alluziieren an bestimmte Leute
Will ich mein Geld geben würde in der Wirtschaft und wem
nicht, ist eine andere Frage.
Gerade, wenn ich mir die Banken im Moment angucke und
in den letzten Jahren angucke, wie das ausschaut.
Aber dieser ist also ein Bankier,
der gut vermögend ist und der hat eine Million.
Ob das ein Seins ist oder nicht, seins sei immer dahingestellt,
das ist das, was er an Ressourcen zur Verfügung hat.
Und der hat also das Kapital G und der
hat dann eine Endkunden und die halten wechselnden Kredit.
Also jeder von denen bekommt irgendwie Kredite.
Und jeder Kunde muss seinen maximalen Kreditwunsch von vornherein bekannt geben.
Also das ist so wie die Wie Irland, das sagte,
ich brauche jetzt noch so und so viele Millionen oder Milliarden,
um meine Stadt finanziere auf die Reihe zu bekommen oder Griechenland.
Wir haben also irgendwie einen Kunden, der sagt,
so und so viel will ich haben und mehr kriegt er auch nicht.
Dass das Spiel mit diesen Ländern nicht funktioniert hat,
ist eine andere Frage. Aber wir haben jetzt Kunden,
die sind so nett und sagen am Anfang,
wie viel sie wirklich haben wollen.
Und dann wird er nur als Kunde akzeptiert,
wenn das Kapital auch nicht überstiegen wird. Also für Irland
müssen wir noch die weiteren Nullen noch alle dranhängen hier an den Stellen.
Auch wenn sie jetzt gerade ausgestiegen sind,
behaupte ich, dass es nur die Freiheit gab,
haben das Geld wieder beliebig auszugeben
So, nehmen wir mal so ein Beispiel an.
Wir haben hier so ein kleines Häuschen, für nur 950.000 Euro,
muss ein spezielles Häuschen sein, zwar aber okay.
Einen extrem günstigen Sportwagen, der normalerweise höherpreisig eigentlich über
den Tisch geht, vielleicht ist er auch ein Gebraucht.
Und wir haben noch ein ganz einfaches Häuschen hier für 300.000. Ganz klar,
jede einzelne von denen könnt ihr genug Geld von uns bekommen.
Der auf jeden Fall, der hier auch,
aber der wird schon fast an die Grenze gehen,
aber vom Prinzip funktioniert das.
So, abrufen können Sie das Geld in einen Eurofragmenten
oder in 100er-Euro-Stücken oder in Tausender-Euro-Stücken
Das ist sozusagen das, wie sie an das Geld
jetzt rankommen können. Und jetzt ist die Frage,
wie viel Geld dürfen wir wem, wann eigentlich geben?
Weil, wir kriegen das Geld erst zurück, wenn er es komplett hat.
Erst wenn er sozusagen das ganze Haus gekauft hat,
dann macht er seinen Gewinn und dann kriegen wir das ganze Geld erst wieder zurück.
Das ist die Idee dabei. Wenn es aus Verbraucht ist,
was ein Zwischengeschäft gewesen, verkauft er es wieder und dann kriegt man das Geld zurück.
Dass er noch dabei Gewinn gemacht hat, weil er es
vielleicht für 100.000 auf dem Markt verkauft hat oder für 40.000,
wie auch immer.
Aber wir kriegen von denen am Ende das Geld garantiert wieder zurück.
Ist bei Betriebsmitteln im Speicherbereich sozusagen kein Problem. Also ich
aduziere bestimmten Speicher für das Programm und in dem Moment,
wo das Programm zu Ende ist,
kriege ich den Speicher wieder und da ist nichts verbraucht und
nichts verloren
Und natürlich darf mein Programm nicht größer sein als der Speicher,
den ich überhaupt habe.
Also auch deswegen ist das sozusagen ganz, ganz klar. So,
dann hat der Bankier eben jetzt entsprechendes Kapital und seine Endkunde
halten die Kredit, haben wir alles eben schon besprochen.
So, die Kredite werden jetzt nicht entzogen und dafür muss aber
jeder Kunde versprechen, den Maximalkredit auf einmal nach endlicher Zeit zurückzuzahlen.
Also, der kann nicht sagen, jo,
ich stecke das Geld mal ein in Griechenland und ich komme nicht wieder mit dem Geld.
Also irgendwann müssen sie mal wieder mit dem Geld wieder rüberkommen.
Wenn man sich dann in Argentinien erkundet,
ich glaube bei anderen Ländern, kann man auch mal sehen,
was man noch machen kann bei den Sachen.
Der Bankierer verspricht, jede Bitte um Kredit in endlicher Zeit
auch zu erfüllen. Das heißt also,
der Bankier sagt, jo, okay, du versprichst,
dass du alles wieder zurückzahlst in endlicher Zeit,
aber ich sage auch, du kriegst das Geld auch.
Wenn du einmal das Geld von mir haben wolltest,
dann bekommst du es auf jeden Fall auch.
So, und jetzt haben wir natürlich genau das Problem,
was ich eben schon angesprochen habe, nämlich das Problem der Verklemmung.
Es kann sein, dass mehrere Kunden noch nicht ihren Maximalkredit erhalten haben.
Das Restkapital des Bankiers, aber zu klein ist,
um ein Kunden total zu befriedigt mit seinen Bedürfnissen,
die er da jetzt hat.
Und damit kann er auch kein neues Kapital wieder rausgeben,
weil er kriegt kein neues nach.
Er hat den Kredit noch nicht vollständig ausbezahlt.
Das Geld kriegt er vorher nicht zurück
Und damit ist das Problem der Klemmung halt da.
So, in welcher Art das jetzt alles auftreten kann,
werden wir gleich nochmal sehen.
So, das Ganze kann man jetzt als Bildchennetz darstellen.
Wen hat sich jetzt gewundert, wenn ich jetzt nicht damit gekommen wäre?
Aber okay, wir haben jetzt hier etwas,
unser Häuschen hört sich hier schlagartig verbilligt auf 8.000 Euro und
unser wundervolles Auto hier kostet 6.000.
Und was machen wir jetzt damit? Wir haben hier oben
ein bestimmtes Kapital, nämlich von 10.000.
Das ist das, was er dann hier hat.
Und er kann uns immer
eine Geldanhalt geben
Und nimmt davon ein, sozusagen von dem,
was ursprünglich mal als Initialmarkierung hier belegt wurde,
ich will 8.000 Euro haben, kann also nach und nach also rausziehen.
Irgendwann, wenn hier acht Stück liegen, schaltet die Transition,
nimmt acht weg, tagt wieder acht zurück und liegt auch
das acht wie acht da oben wieder rein.
So, was kann ich da jetzt sehen?
Das ist kein Problem. Wenn ich nur einen Kunden habe,
dann gebe ich dem ein, zwei, drei,
vier, fünf, sechs, sieben, acht Geldeinheiten,
ich kriege das wieder zurück und fertig.
Bankier hätte also hier keinen Gewinn gemacht und es gibt,
also tausend Sachen treten, also hier nicht auf an
anderen Phänomenen.
Das Gleiche drüben für unser Auto hin
Packen hier halt eine Geldeinheit drauf, die wir uns geliehen haben von dem Bankier,
packen uns sechs Stück dahin und dann wird es wieder zurückgegeben.
Fragen zu dem Netz. Nö, gut. Okay.
Wie darf ich jetzt schalten, damit das Ganze läuft? Naja,
ich muss jetzt aufpassen, dass ich auch wirklich hier nicht,
was weiß ich,
da so und so viel und da so und so viel habe,
so dass es hier beides nicht mehr zum Schalten kommt.
Das ist jetzt die Idee dabei und jetzt kann ich mir angucken,
dass für alle Markierungen, was gilt da,
die Kredite von Kredit 1 und Claim 1,
hier vorne,
die ist gleich acht
Und für Krieg 2 und Claim sind immer sechs. Und das,
was die Bank hat und was sie in Kredit 1 und Kredit 2 habe,
ist 10. Naja, wenn ich da oben eine wegnehme,
packe ich sie da hin und ich passiere zurück und
ich packe sie dahin oder ich packe sie wieder zurück.
Das heißt also, es geht auch da nichts verloren.
Und ich habe also die Möglichkeit, genau immer anzugeben,
wie viel Geld ich gerade im System habe.
Geht nichts verloren. Bei der Übungsaufgabe war es teilweise so,
dass die Gabeln bei euren Faltungssachen zum Beispiel verloren gegangen sind oder sowas.
Je nachdem, wie eure Präsenzaufgabe jetzt bearbeitet hat,
gab es da unterschiedliche Dinge. Und da sind unter anderem auch Gabeln
quasi irgendwo verschwunden und taucht aus dem Nichts hinterher wieder auf,
weil man das einfach entsprechend beschriftet hat,
die Funktion.
Je nachdem,
wie man das beschriftet
So, hier haben wir es jetzt so beschrieben, dass hier nichts verschwindet. So,
und das haben wir jetzt als ein Modell dafür und zwar
haben wir jetzt hier in diese Richtung sozusagen sieben solche Zustände,
nämlich null bis sechs sozusagen,
die da vergeben haben und in dieser Richtung hier neun,
also null bis acht, die wir jetzt vergeben haben.
Jetzt ist die Frage, wo können wir uns denn
eigentlich bewegen? Wenn wir hier oben sind als Bankier,
dann, naja, dann ist alles im grünen Bereich.
Ist zwar jetzt blau eingezeichnet, aber das ist,
da hat er sein ganzes Geld noch.
Was kann er jetzt machen? Er kann entweder dem einen Kredit,
eine Geldeinheit geben für das Auto oder entsprechend für das Haus.
Na gut, dann gebt ihr hier fürs Auto,
fürs Auto, fürs Auto, Auto.
Nee, Entschuldigung fürs hier rum, so rum für das,
für das Haus sind ja acht hier.
Und wenn er fertig ist, kommt er wieder zurück.
So, das heißt, er kann hier oben längst laufen.
Er kann aber auch hingehen und erst mal zwei fürs Auto vergeben
und dann das Haus finanzieren, kommt er auch wieder zurück.
Wo laufen wir jetzt also in Probleme rein?
Das ist genau dieser Bereich hier unten. Das heißt,
ich komme hier hin und dann kann ich auch hier noch längst laufen.
Das geht auch noch. Ich kann auch bis hierhin gehen
, so hingehen und so rumlaufen.
Was, also so rum und wieder zurück
Die Schwierigkeit ist, wenn ich jetzt hier in diesen Bereich
reinkomme oder hier, dann habe ich das Problem,
dass ich hier nicht zu Ende komme und da nicht zu Ende komme.
Und genau dadurch sozusagen in eine ungünstige Situation reingekommen bin,
die ich eventuell noch gar nicht erkannt habe.
Der Benker hat ja noch Geld in der Tasche liegen,
ich kann immer noch Geld ausgeben.
Aber leider kriegt das nicht mehr so weit hin,
dass die auch wieder das jeweiligen Leute wieder zurückzahlen können.
Und wurde es dann sich der rote Punkt noch aus?
Die schwarzen Punkte hier hat ihm noch Geld,
was er ausgeben kann.
Was ist der rote Punkt
Und er verklemmt das Ganze, wenn er da reinkommt,
dann kann er überhaupt nicht mehr schalten.
Genau, was also an dieser Zeichnung nicht fallt, nicht richtig.
Finde ich das, ja? Das fehlen eigentlich noch zwei rote Punkte,
weil von da aus geht es eben auch nicht mehr weiter.
Ja, das ist vielleicht der Vorwurf, wo frei nach Maximal möglich sind.
Ja, wie auch immer. So kaputt oder so kaputt,
ich weiß nicht, ob das, ne, das ist,
wenn der Kredit nicht kommt, ist das,
wenn jemand in so eine Notlage kommt mit Krediten,
dann werdet ihr merken, dass es euch egal ist,
ob euch 10.000 oder 20.000 Euro zu einem Millionenteil fehlen und
ihr lebt bankrott,
das nach den Kohl dann
nicht mehr fett
Okay, hier können wir schön einfach sehen,
dass Navigieren darauf ist auch klar.
Also ich kann Sachen in bestimmter Sache ausgeben und wenn ich
am Ende angekommen bin, dann komme ich wieder zurück.
Genauso wie ich meine Programme in meinem Hauptspeicher auch vergebe.
Immer jedes Programm läuft bis zum Ende durch.
Einfachste Regel ist also welche, um auf jeden Fall sicherzustellen,
dass jeder zu seinem Geld kommt.
Ja, außerhalb der Sicherstellung, dass man niemals diesen Song passt.
Ja, das ist sozusagen gleich schon die optimale Lösung.
Ich habe jetzt
eine ganz einfache triviale Lösung.
Welche ist das
Ja, ne? Einen nach dem anderen.
Eins, zwei, drei. Das ist,
aber ist klar, dass das bei einer Bank,
wenn jede Bank immer zum Zeitpunkt nur gerade einen Kunden hat,
für den sie gerade einen Kredit rausgibt und wieder zurückbekommt,
das ist nicht optimal wahrscheinlich an den Stellen.
So, das Ganze wirkt jetzt aber natürlich schwieriger, wenn es mehr werden.
Aber erst mal haben wir hier das Problem,
dass wir bei dem Roten halt dieses 5 minus 3 gleich 2
haben und dann sitzen wir hier an den entsprechenden Stellen halt fest.
So, das Ganze können wir jetzt durchspielen,
dass wir jetzt hier oben sind quasi und dann
eine Marke runtertun und entsprechend die andere Marke abziehen
Wir verschwinden, also nach und nach geht das so durch,
bis wir da hinten angekommen sind und wir dann auf dem Schlag
diese Transitionen halt wieder aktivieren und schwupp wieder hierhin zurückrutschen.
Ja? Gut, also das ist jetzt sozusagen das Durchschalten
, ja? Du musstest tatsächlich nicht so sein,
dass die Wand das nur in kleinen Stimmen sozusagen bewährt oder...
Die kannst du dich selbst lebenläufig schalten und kann auch alle
acht auf andere rufen. Aber die Situation im EU-Prozessor,
der in irgendwelchen Prozessen Speicher zuteilen soll,
der wird eher in den meisten Fällen auch nicht sagen,
ich gebe dir ein kleines bisschen Reicht nicht,
gebe ich noch ein kleines bisschen mehr.
Macht einfach, wenn man einen Stack und hieb anguckt,
macht er genau das. Aber ja, nee, hieb auch.
Ich, Stack ist da. Genau. Aber maximal Bereich
muss. Genau, ob man das nachschiebt oder nicht.
Das sieht sich die ganze Zeit aus, aber er hat die
ganze Zeit einen Bereich, ob die noch theoretisch bröter ist.
Genau. Genau. Und es gibt verschiedene Speicherzuteilungsfunktionen, die das
entsprechend dynamisch nachfliegen. Wenn ich mir so meinen Browser angucke,
wie groß der wird sozusagen im Hauptspeicher,
der wird ständig nachgeschoben, was der an Platz abzieht.
Hat leider Memory-Link immer noch. Platina benutzt dann auch,
den er maximal sofort führt
Genau, der kann eben bis zur Maximalgrenze gehen.
Geht er auch und dann hängt der ganze Rechner hier.
Das ist bei dem Seamunk ja ein Memory League unter dem
Umgebung, die ich da habe. Gut, egal,
das ist das eine, aber der kann eben auch auf dem Schlag
alle acht drüber geben und auf dem Schlag alle acht wieder zurückhaben.
Das ist jetzt einfach das Beispiel, was wir da vom Prinzip her hinterher gepackt haben.
Dieses Problem der Einzelvergabe und der teilweise Vergabe von diesen Ressourcen
ist auch sozusagen aus Speichergesichtspunkten durchaus sinnvoll,
wenn ich meine Sachen optimal auslasten möchte,
dass ich das nicht prinzipiell nur,
sonst hätte ich ja genau dieses Ding,
ich gebe dir immer gleich
den ganzen Speicher
Wo ich dir gleich die ganzen 950.000 Euro gebe für den,
und du brauchst das Geld eigentlich gar nicht,
weil du ja erst nach und nach dein Haus aufbaust,
bis du fertig bist, ist es ja genau nicht sinnvoll.
Letztendlich musst du aber zu irgendeinem Zeitpunkt diesen Geldbetracht bekommen und um den geht es gerade. Okay,
weiterer Ablauf ist dann halt,
dass man da unten hinkommt und sagt, okay,
da sind jeweils noch zwei Ausstehende und hier haben wir die
sechs und die vier und die sechs sozusagen als vergebene Dinge da drin,
eins, zwei, drei,
vier und hier die entsprechenden sechs.
So, deswegen ist das Teil
auch nur alleine rot
Okay, das ist also unsere Verklemmung oder unser Deadlock?
Das ist genau das, was wir nicht haben wollen.
Und wie schon das richtig gesagt, wollen wir eigentlich
im blauen Bereich bleiben. So, diese Fälle,
ob man jetzt von hier aus noch zurückkommt oder nicht,
ist dann eben um die Frage, geht das oder geht das nicht?
Und jetzt muss man bei jedem immer einzeln sagen, ja,
geht oder geht nicht. Das muss man jetzt einzeln nachgucken.
Und haben gesagt, okay, da drüben haben wir schon fünf.
Und da haben wir drei, dann hängt man irgendwo anders.
Das heißt, da muss man genauso aufpassen. Und wenn man in dem Bereich ist,
hat man vermeintlicherweise noch, jetzt muss man natürlich gucken,
kann ich jetzt noch schalten oder nicht, Ja,
ich kann noch schalten, da sind ja noch zwei übrig.
Naja, aber der Claim sind jeweils drei und von daher
kann ich sofort sehen, dass es nicht so nicht mehr,
nicht mehr zum Ende zu bringen geht.
So, und die Sachen nennen wir dann unsicher,
obwohl es eigentlich nicht schon unsicher ist, sondern unmöglich ist,
aber wie heißt denn halt unsicher an dieser Stelle?
Und die anderen heißen halt sicher dann entsprechend den Dingen.
Gut, jetzt machen wir das Ganze mit rein, was passiert jetzt?
Jetzt wird es ganz noch ein bisschen spannender.
Jetzt wird es drei Simmons sein, genau,
das Bild kennt ihr ja auch aus dem Teil und
da kommt der Begriff des Residuums,
taucht da wieder auf
Und den solltet ihr auch kennen. Das frage ich gerne
immer irgendwie nochmal wieder ab, weil das ist sozusagen genau das,
wo man sich gerade noch bewegen darf.
Das werden wir gleich noch sehen. Wir haben also hier
unsere Acht und hier haben wir unsere neuen und da unsere drei,
die insgesamt gefragt werden von den Zehen.
Und nun gucken wir uns an, wie das entsprechend ausschaut.
Da haben wir so ein Gittermodell, was wir dann aufzeichnen können,
das ist endlich eben genau die entsprechenden Auslastung hier jeweils hat.
Hier werden also die entsprechenden Zehenfelder für bis zu neun
sozusagen vergebene Geldeinheiten gesehen oder so rum gesehen natürlich.
Hierüber sind die entsprechenden Acht, die ausgegeben werden und hierüber werden
die entsprechenden drei vergeben. So, was fällt jetzt auf?
Wir haben jetzt unterschiedliche Arten von Knotenpunkten hier eingezeichnet,
nämlich welche, die gar keine Bubbles mehr haben.
Da kommen wir gar nicht erst mal hin. Dann haben wir
die Weißen, die Schwarzen und die mit dem Kreuz.
So, was machen die jeweils? Ich weiß,
dass sie nicht erreichbarer, die Schwarzen sind gewünscht,
unsere Gesamttoten werden quasi, wo man reinkommt.
Und die kosten dann über die Jugendzahlen.
Okay, aber die Weißen erreichen wir nie.
Das war jetzt irgendwie, nee, wieso?
Da fangen wir ja an
Nee, nein, nein, nein, das ist genau umgekehrt.
Ich weiß gar nicht. Genau. Das heißt also,
hier fangen wir irgendwie an, da kommen wir immer so durch.
Wenn wir jetzt also unsere drei Einheiten hier verbrauchen wollen,
sind das sozusagen eins, zwei,
drei und von da aus schwupp kann ich wieder zurückgehen.
Den Rückfall habe ich jetzt jeweils nicht mehr drin,
sonst wird es, bitte? Wo fehlt ein Kreuz?
Ich weiß jetzt nicht, wo ein Kreuz fehlen sollte.
Sollte nicht was generiert. Also von daher wird es
mich überraschen, wenn jetzt ein Kreuz fehlt irgendwo.
Also... Theoretisch müsste doch die ganze, die ganze... Entschuldigung,
jetzt hat es gerade die Klappertier nochmal.
Ja. Die ganze Ebene gekreuzt sein
Weil da der Dreier-Claim jedes Mal zurückzahlt. Ja, die
ganze hintere Geschichte soll jetzt hier gekreuzt sein. So,
aber was würde das bedeuten, wenn ich mich da bewegen würde?
Ja. Und wie bei den anderen gegangen ist.
Genau. Und da müsste ich ja genau in diese Neuner
oder in die Achtergeschichte einsteigen, um da unten hinzukommen.
Ah, okay. Also, mit den Händen,
wenn ich mir jetzt hier irgendwo hier so bewege,
dann bin ich schon soweit sozusagen runter gehabt,
so viele Einheiten, also eins, zwei, drei,
vier, fünf, sechs Einheiten an den neuen vergeben.
So, und dann kann ich hier rumlaufen. Ich kann sogar noch
eine an den entsprechenden Achterkandidaten sozusagen vergeben und kann dann auch immer noch rum.
So, das heißt also, wenn ich jetzt runtergehe,
vergebe ich sozusagen an die Neuen, wenn ich hier rübergehe,
vergebe ich das an den Achterkandidaten.
Und wenn ich nach vorne komme sozusagen,
also wenn ich in diese Richtung hier immer gehe,
sozusagen immer so durch, also in diese Vierer-Blöcke hier,
dann vergebe ich was an den Dreierkandidaten.
So. Dann hätte ich jetzt gerne nochmal die Erklärung,
warum sind da nur drei solche Teile und warum
sind da vier
Vergebe ich da nur drei Stück an die,
nur zwei an den Dreiern, wenn dann fertig.
Wir haben ja nur zehn, wir können ja nicht
Geld vergeben, das würde müsste, also.
Kreuzweste, das Kreuz heißt der, jetzt muss zurückgezahlt werden bei meiner Bühne.
Genau, und das Kreuz heißt insbesondere nicht nur,
es muss hier zurückgezahlt werden, sondern es kann auch zurückgezahlt werden.
Warum nämlich? Ja genau, was ist immer voll dann?
Nee, da nicht, ne
So verstehen. Kreuz heißt auch, dass ich so gezahlt werden musste.
Ja, richtig, aber das sind nicht Dreier voll.
Da ist nicht der Kredit an den Dreier voll.
Genau. Die wäre hier auch schon voll gewesen.
Wir können ja auch von hier kommen. Wir können ja
jetzt sozusagen uns auf diesen Weg hier runter begeben.
Am ersten. Ja, die Fach, weiß ich auch,
wo wir links, kann ich uns nächstes Jahr auffordern.
Ja, richtig, aber hier, ja, natürlich, das ist richtig.
Von da aus käme ich ja auch sofort wieder zurück. So,
vielleicht so ein bisschen auch so in der Erinnerung gehabt,
dass das Kreuz mal bedeutet hat, jetzt kann zurückgezahlt werden,
wenn es jetzt dann eben bedeutet,
jetzt muss zurückgezahlt werden,
weil sonst das Netz tut
Also das natürlich auch nur von der eure Leben erkannt.
Wenn man sich hier vorne befindet,
kann man auch nichts weiter mehr vergeben an der Stelle.
Das ist das Spannende dabei. So, und wenn ich
mich jetzt hier befinde, ich kann halt einfach nichts mehr ausgeben.
Aber die Frage ist, was kann ich Ihnen da zurückzahlen an der Stelle?
Genau, ich kann nur die drei zurückgeben. Ich fliege
dann auf dieses Teil hier und was kann ich dann machen?
Ich darf tunlichst nicht nach unten gehen,
sondern ich muss nach links gehen und die Achter mit ihnen.
Und genau das ist ja die Frage, an welcher Stelle,
wann ich wo, wem was wiedergeben darf und wem nicht.
Und das Navigieren hier ermöglichen wir jetzt immer so,
wenn ich im weißen Bereich bin, kann ich machen,
was ich will eigentlich, kann ich jedem was vergeben,
weil dann Ist egal, wo es hingeht, es geht immer weiter.
Sobald ich aber auf diesem Kreuzer einkomme, weiß ich,
okay, gut, da sind wir so und so fertig,
jetzt muss ich zurückzahlen, weil sonst wäre kein Kreuz sozusagen an dem Ende mehr da.
Das Spannende ist, dass ich von dort sozusagen ja ganz nach hinten zurückspringe,
von hier hin komme und dann dahin gehen könnte und dann wäre ich verklemmt.
Und das ist eben die spannende Geschichte, dass man,
also die 8 und 9 hat, die jetzt angefangen wurden,
der 9 da hier runter, die 8 ist schon so weit rüber,
dann trotzdem hier noch in den Deadlock reinlaufen kann, weil es nicht mehr passt.
Das ist genau die Problematik. So,
Ist mein Netz auf jeden Fall tot,
wenn ich auf einer einen schwarzen Bobbel bin?
Oder ist es auch noch, ist es nur verklemmungslicht verklemmungsfrei?
Das ist verklemmungsfrei. Was kann ich,
inwieweit kann ich jetzt noch beliebig langen Operationen ausführen?
Fragen wir so rum. Das ist sicherlich nicht tot,
man könnte ja immer im Kreis rumlaufen dort,
man kommt bloß aus dem schwarzen Bereich nicht wieder raus.
Aber im schwarzen Bereich kann man
im Kreis rumlaufen
Im Schwarzenberg, ich habe einen Kreis rumlaufen. 300 Euro oder was?
Ja, okay, okay. Ich bin aus deinem Schwarzen,
das weiß man schon, dass man irgendwann tot ist,
aber man kann das mal ein bisschen,
also ab links unten geben sozusagen.
Okay. Man kann weitergehen, aber zurück kann man nicht,
weil wir haben eine Null-Zurückzahl für den April bedient.
Genau. Also man kann einfach noch weiterleben. Okay.
Genau, aber kann ich noch eine unendliche Schaltfolge erreichen?
Ja. Warum? Weil ich ja, ich kenne das schlecht,
zeigen kann, so zwei, vier,
fünfte Zeit rum, zweite Jeruma,
fünften rum und zum Beispiel die dritte
dann von rechts genommen
Ja beliebig oft an ihm drei auch Geld geben,
dass es nur unendliche Schreibfolge.
Genau. Ich könnte sogar noch einen weitergehen und hier laufen,
aber ich könnte nicht mehr die anderen Sachen zu Ende stellen.
Genau. Und genau das ist jetzt das Wichtige dabei.
Man ist vermeintlicherweise noch in einem sicheren Bereich,
ist wahrscheinlich im Unsicheren, man gibt nur noch Geld aus.
Jetzt guckt euch mal die Banken in Europa an und guckt euch an,
wie die Gelder vergeben werden und überlegt mal,
wo ihr noch sicher oder unsicher seid.
Also das ist, ja gut, die Frage ist auch,
was ist die Antwort auf meinen blöden Vergleich?
Ihr müsst natürlich sagen, ob die Vorbedingungen auch genauso sind.
Die Frage ist, haben wir ein festes Kapital
oder können wir beliebig Geld nachdrucken
Und das Nächste ist, können Kunden nachfordern oder nicht.
So, und beide Bedingungen gelten nicht in diesem System,
was wir jetzt bei den Banken haben, da wird irgendwie Geld halt generiert.
Ja, nun, aber ihr könnt euch überlegen,
was unter solider Wirtschaft zu verstehen ist und was unter,
also als Bank hat man sowas im Blick.
Also ein Banker weiß diese Dinge. Wenn die Banker,
wenn die Banker sozusagen jetzt pleite gegangen sind,
behaupte ich immer noch, ist das eine Sache,
die man sich überlegen muss,
warum das da wohl so passiert ist.
Aber da habe ich
meine spezielle Meinung zu.
Wichtig ist aber, dass man vom Prinzip sich überlegen kann,
wo sich ihre Bereiche sind, aufpassen,
wo die unsicheren Bereiche beginnen und wie man sie dann entsprechend vermeidet.
Jetzt die Frage, wie berechnet man sowas und wie kriegt
man sowas effizient hin und so weiter und so fort.
Das sind jetzt Fragen, die dann in den Netzen natürlich anstehen.
Jetzt die Frage, was passiert mit der Anzahl der Markierung?
Wir haben ja jetzt eben gerade gesehen,
vorher zwei Dingern hatten wir so ein ganz einfaches,
kleines, kleine Matrix, wovon sechs mal acht oder sowas.
Hier haben wir jetzt 195 erreichbare Markierungen.
Davon sind 137 Sichermarkierungen und 58 unsichere Markierungen alleine.
Und wir haben zehn minimale, sichere Markierungen. So,
würde ich euch jetzt sagen, wenn ich jetzt die Aufgabe geben sollte,
bitte, so, gib mir einen Algorithmus,
der mir jetzt berechnet,
ob ich noch einen vergeben darf oder nicht.
Wie würdet ihr das berechnen? Typische Aufgabe,
die man während so einer Programmiergeschichte in eine Firma kriegt.
Ich würde erst mal berechnen, wie viel Geld jeder
von meinen Kunden braucht, um zurückzahlen zu können.
Jedes Mal zu jedem Zeitpunkt
Das reicht ja, also wenn ich einen Speicher habe,
kann ich das ja berechnen, wenn ich Geld rausgebe.
Das muss ich ja nur dann aktuell sagen. Ja,
okay. Und wichtig ist, dass ich mir anschaue,
wie viel Geld mindestens nötig ist, damit irgendein Kunde zurückzahlen kann.
Genau. Diesen Geldbetrag sollte ich auf jeden Fall vorhalten oder
an diesen Gründen ausgeben, muss ich sagen.
Der Kader war immer noch im schwarzen Bereich. Ja,
ich frage mich, ob man da mit dem Schatzbereich landet
oder nicht, ne? Ja. Naja,
aber also... Wenn es davon ausgegangen ist,
ich fand,
wäre auch was
Umsätzlich noch mal ausgegangen, dass ich immer quasi die restliche Gesamtforderung so merke.
Und mir vor allen Dingen auch noch diese Umwerte, die quasi,
also parallel dazu gekommen, die Summe merke von dem,
der meisten, also die einzige Person,
die nachher weiß, bevor wir haben möchte.
Und wenn ich dann eben feststelle,
dass die Gesamtsummente noch von mir gefordert wird, eben,
dass sie nicht mehr besitzen würde vor einer Auszahlung,
dann eben das so gewichten, dass der,
der am meisten was von mir haben möchte, das auf jeden Fall bekommt.
Und das halt entsprechend hoch priorisieren und das Geld locken.
So ein Stück für Stück im Geld wegzublocken,
sodass halt ich quasi alle Führung gefordert habe.
Wozu wird das führen
Also ich würde einfach nicht sichern, weil eine minimal dritte Nachricht bleibt.
Ja, genau. Jetzt fahre ich gerade nach,
wie ist der Algorithmus, den ich programmiert, damit das so ist?
Das ist genau die, nein, die Antwort darauf,
mit dem, du nimmst immer den Größten.
Wir hatten ja gesehen, einer will eine Million haben.
Und er schläft den ganzen Tag oder nimmt erst mal,
der nimmt einen Euro sozusagen auf.
Und in dem Augenblick würde ich ja jetzt gucken und
das Geld für den schon mal blocken.
Das war eben die Aussage. Das heißt,
ich blocke jetzt von Anfang an fast
das gesamte Kapital
Ja, wer kann jetzt noch Geld kriegen? Denn noch er,
weil die anderen beiden waren mit ihren 50.000 und 300.000
eigentlich schon nicht mehr in dem Rahmen drin.
Sodass also eigentlich dann nur noch, wenn der einmal angefangen wurde,
eigentlich nichts anderes mehr machen konnte, als den noch auszugeben.
Die quasi jetzt nicht mehr beenden. Genau,
also der Algorithmus ist ein Ticken komplizierter,
wie man das macht, um das auszurechnen.
Aber wenn die jetzt bezüglich der Markierungsmöglichkeiten euch anguckt,
ihr müsst euch, ihr wisst, es gibt zehn minimale, sichere Markierungen.
Und dann grinst ihr nur auf die Markierungen,
achten und gucken, ob wir innerhalb der Markierungsbereiche seid.
Und dann darauf aufpassen, wie ihr sozusagen innerhalb der Markierung agiert.
Das ist jetzt endlich das, was man einmal macht.
Dafür muss man natürlich einmal gesamt ausgerechnet haben,
das sind die sicheren Markierungen
Fürs gesamte System, doch jemand einmal aus. Und hinterher
kann man bei jeder Operation beim Vor jedem ausgeben prüfen,
bleibe ich innerhalb einer sicheren Markierung, ja, nein. Und dadurch,
dass ich sozusagen die minimalen habe und ich weiß,
aufgrund der Monotonie-Geschichten, dass wir, wenn wir da drin sind,
wir auch immer entsprechend schalten können,
haben wir ein ganz einfaches Leben dabei.
Ja, okay. Hat es irgendeine Systematik oder eine mathematische Bewandtnis,
dass diese schwarzen, mit dieser schwarzen Bereich so eine Art Teilfahrer zu sein scheint?
Also lässt sich das irgendwie ausnutzen bei der Berechnung?
Nö. Das ist Mustererkennung von Personen, die daraufhin.
Mathematisch gesehen kannst du natürlich gucken, wo das abgeschnitten wird,
aber im Wesentlichen ist es viel wichtiger,
wo hier die weißen Bereiche liegen
Das ist sozusagen, dass der rausgeholt wird. Und dass das jetzt gerade rausschneiden wird,
ja, aber es passiert hier in den Randbereichen nicht und je mehr das,
je mehr das sind, desto schwieriger wird das.
Das ist ein eindimensionaler Raum, der da auftritt.
Also 1.000 Kunden habe, habe ich einen tausenddimensionalen Raum.
Und dann möchte ich nicht mehr sozusagen für jedes Ding einzeln alles,
alles komplett ausrechnen, sondern dann will man Algorithmen haben,
die das anders auf die Reihe bekommen.
Und die gibt es ja auch. Okay, als gefärbtes Netz
kann man das Ganze jetzt auch noch zusammenfalten und kann nicht hingehen und das so zusammenlegen. Das heißt,
ich habe ja unsere zehn Marken, ich habe hier das vergeben,
das, was wir hier als Reformation haben,
wir packen hier ein X raus und Case und dann haben wir hier entsprechenden Fallunterscheidungen,
was wir dann hier für diese Sachen uns angucken,
wo wir den Fall zurückgeben, uns wieder angucken und sagen dann,
okay, bei A haben wir 8,
bei B haben wir 3 und bei C haben wir 9 und entsprechend
wird das dann hier rausgeholt.
Und hier wird entsprechendes Teil reingelegt. So,
diese Zuweisungen sind entsprechend über Farben kodiert und entsprechend über Variablen
und wir können da hingehen und die einzelnen uns jetzt anschauen.
So, wenn man sowas anfängt, fängt man,
wie das in der Übungsgruppe gemacht hat,
auch erstmal bei zwei einfachen Fällen an,
also wenn die fünf Philosophen falten,
nehme ich erstmal zwei Philosophen,
gucke mir an,
was muss ich
vom Prinzip
eigentlich machen
Und dann muss man das als allgemeine Operationen schreiben und nicht mehr so,
wie ihr es wahrscheinlich gemacht habt,
mit einer ganz konkreten Stelle und einer ganz konkreten Geschichte,
sondern ihr nummeriert die einmal durch und habt dann auch die Durchnummerierung von,
mit Modulu sozusagen.
Und dann ist die Sache in Ordnung. So,
hier sind jetzt die entsprechenden Token, die hier mit dem X
sozusagen ausgeschätzt sind mit 8a und 3b und so weiter.
Und wir packen natürlich jetzt genau die X hier sozusagen irgendwie rüber.
Und das Grant schnappt sich einfach irgendeine und von diesen zehn Token
da oben und nimmt sich hier unten irgendwas von und schmeißt das zurück.
Und dann kann man das Return nur so machen,
wie das ist.
Und das
erstmal alle beliebigen Schaltfolgen
Und die wollten wir es beschränken und dann müssen wir halt gucken, wie das endlich geht.
Naja, da schalten aber erstmal nochmal gezeigt, hier,
wir packen uns das B da rein und wenn wir das zweimal mit B machen,
haben wir entsprechend drei Bäder unten drin.
Und dann können wir natürlich wieder entsprechend das Return schalten und
das entsprechend zurücklegen. So, das heißt, diese Schaltung,
diese Faltung erlaubt wir das gleiche Verhalten wie vorher,
genauso vorher auch mit Nebenläufigkeit da drin,
weil die können ja daneben läuft sie selbst schalten und so weiter.
So, das könnt ihr dann entsprechend nochmal anschauen,
was man da was man da machen kann.
Und an dieser Transition würde man jetzt die entsprechenden Guards ranpacken,
die genau sagen, wann darf ich schalten, wann darf ich nicht schalten.
So, die Möglichkeiten, die ich jetzt hier habe,
sind etwas, wo ich also ein Ressourcenproblem mit kläre.
Und was man immer machen kann, ist,
dass man hingeht und das auf andere Gebiete überträgt.
Also diese Bankiers-Sachen, dass ihr es auf Speicherverwaltung oder auf Betriebssysteme
übertragt oder auf Datenbanken oder wo auch immer ihr das benötigt, ist das eine.
All der Sachen, die eben Internal Gossa bei Kollegen bearbeitet wurde,
war, dass sie sich halt mit flexiblen Fertigungsstraßen sozusagen auseinandersetzen und sich da Gedanken zu machen,
wie steuere ich eigentlich Aufträge durch eine Produktionsanlage durch?
So, und da kann man dann sich die ganzen Gedanken zu machen,
da hat er gemeinsam das Forschungsprojekt vor einigen Jahren gehabt und
da gab es ein paar Vorschläge und nicht nur,
dass Herr Falk dann so Vorschlag gemacht,
wie man das auf dieses Bankiersproblem wieder zurückkriegen kann und da benutzen kann.
So, das sind so die ersten Schaltungen, die wir so gesehen haben.
Hier gibt es also irgendwelche Roboterarme, die von irgendwelchen Förderbändern,
die hier entsprechend rein oder rausgehen mit In- und Out,
Drei out, drei In-Förderbänder und dazwischen Maschinen,
auf die jeweils diese Robotarme jetzt irgendwas hinlegen können.
Der hier kann also diese bedienen, der kann die bedienen
hier und der kann diesen Bereich hier bedienen.
Also dieser Roboter kann da hinten nichts drauflegen. So,
wenn jetzt also ein Auftrag reinkommt,
muss das durch die Robots so behandelt werden,
dass man was aufnimmt, auf die Maschinen packt,
von der Nächstenmaschine auf die nächste packt, auf die nächste Maschine,
irgendwie liebe ich oft hin und her.
Wenn es fertig ist, kommt es auf die Outbänder
und dann wird es wieder abtransportiert
So, und natürlich muss ich das dann auch irgendwie weiterreichen können und
es muss der richtige Roboterarm das greifen und so weiter.
So, und jetzt könnt ihr euch vorstellen,
dass das durchaus, wenn man versucht, das optimal auszulasten,
eine entsprechende Frage ist, wie man das jetzt optimieren kann oder was,
wo man aufpassen muss.
Eine der Sachen ist, die man nicht haben möchte,
sind Verklemmungen. Das heißt also,
dass irgendeiner hinterher die Geräte wieder reinkrabbeln muss und diese Roboterarm auseinanderziehen und
die Teile umbauen muss und das wieder in Gang kriegen muss.
Weil irgendwie zu viele Aufträge reingekommen sind ins System.
Also Verklemmungen sind da ein Don't. So,
das Ganze kann man also auch noch irgendwie dann ein bisschen schematischer darstellen mit anderen Beschreibungsmitteln,
das ist sozusagen eine Variante, wie man das dann beschreiben kann,
ist, dass man, wenn man sich so ein Netz anschaut,
würde man dann hingehen und verschiedene von diesen Einheiten jetzt hier entsprechend benennen.
Man würde sagen, so und so viele Einheiten kann ich da aufnehmen,
so und so viele Einheiten sind überhaupt erstmal da.
Und das sind jetzt die Abläufe, die prinzipiell so stattfinden können,
dass also hier Sachen nebenläufig sein können, je nachdem,
wie das nach vorne gestartet wird.
Und hier drüben läuft auch irgendwas nebenläufig und nun mehr wissen,
wie viele Paletten kriegt er da durch. So,
und das ist dann schon durchaus eine spannende Frage,
wie diese Systeme dann entsprechend berechnet werden und wie man sie dann entsprechend einschränkt.
Und letztendlich ist das sowas ähnliches wie jetzt beim Kiosk-Problem,
was man dabei hat, weil man bestimmte Dinge von Ressourcen hat,
die man bestimmte Sachen vergeben kann.
Nur ist das jetzt sozusagen nicht mehr ganz so einfach,
weil die Anzahl der Einheiten halt viel größer geworden ist.
Gut, das sind dann so Netze, die man dann
auch sich anschauen kann. Das sind also kleine Netze,
die Systeme, die die Leute in Sargossa eben untersucht haben,
sind halt noch wesentlich größer.
Und dafür gab es keine Mittel,
deswegen haben die damals sozusagen mit ihren Petri-Netzen eine Möglichkeit gehabt,
diese Zustandshäuser zu falten oder besser zu untersuchen
Es fehlt aber immer noch die optimale Lösung. Und die optimale Lösung ist halt,
dass man zu jedem Zeitpunkt möglichst viel sozusagen durchsetzen kann.
Und dafür braucht man entsprechendes Wissen im System.
Und da haben wir im mehreren Papier in verschiedene Sachen vorgeschlagen.
Wer so Lust hat, kann sich das mal angucken.
Und müssen wir machen. Ja, an der Uni,
was ja durchaus vorkommt, ist ja nicht nur,
wie in der Schule irgendwie ein Schulbuch vorgelegt kriegt und das dann durchliest,
sondern dass man irgendwas anguckt, wo ihr Lust zu habt.
Ich hoffe immer noch,
dass ihr irgendetwas findet bei mir oder vielleicht bei irgendwelchen Kollegen,
was euch so begeistert,
dass ihr euch freiwillig ein paar Bücher anguckt und ein paar Themen.
Das sind so Anreize für technische Steuerungsanlagen und Bummern
Materie und Praxis recht gut verbinden kann. Also die haben da
so ganze riesen Baustraße von einem vielfach größeren Raum als hier,
wo lauter so kleine Maschinchen drin stehen und die werden dann angesteuert.
Und die Studenten haben dann die Aufgabe,
die richtigen Steuerungsverfahren dafür zu bauen und zu programmieren im Projekt.
Es sind also 20 Leute und programmieren dann die ganzen Controller und dann
irgendwelche Plättchen zu nehmen und zu stapeln und hin und her zu machen.
Und das ohne Deadlocks. Und das ist eine Sache gewesen,
dass in der Marcel ohne diese Techniken überhaupt nicht geklappt hat.
Oder es waren total effizient. Ein Plättchen nach dem anderen
haben sie durchs System geschoben, funktioniert natürlich nicht gut.
War eine Frage
Nee, gut, okay. Gut, also das so als Hintergrund,
die Möglichkeiten, die sich da auftun, sind groß.
Das Gleiche braucht ihr, wenn ihr Geschäftsprozesse modelliert.
Also in jeder Firma, wo ihr irgendwas entwickeln sollt und
ihr sollt eine optimale Steuerung im System in euer Unternehmen vornehmen,
habt ihr genau diese Fragestellung. Und die Frage ist,
wie ihr die konkrete Fragestellung aus der realen Welt auf ein
abstraktes Modell übertragt und dort dann eine Lösung findet,
die ihr wieder zurückübertragt in die reale Welt,
sodass die Leute damit erstens glücklich sind und zweitens das haben,
was sie haben wollten,
wenn es denn lösbar war,
was ihr haben wollt
Okay, beim nächsten Mal werden wir uns mit dem Datenbankmanager
beschäftigen, den ihr euch bitte nochmal anguckt.
Ich werde da ein bisschen mehr zu erzählen.
Ich werde versuchen, den Text zügig vorzulesen. Den habt
ihr im Vorbild schon gelesen. Das heißt, ich gehe davon aus,
dass ihr wisst, was da dann steht an Text.
Und ihr wisst dann, dass diese entsprechenden Zustände,
Nachrichten wechselt ja auch schon, dass das alles soll.
Insbesondere der Bezug zu DBM und MS und was E und
so weiter heißt, dass ihr da wisst, was das ist.
Und diese entsprechenden Funktionen euch mal angeguckt habt,
die da drin vorkommen, was das eigentlich besagt.
Das sind also irgendwelche Abbildungen, die da irgendwie stattfinden
von Datenbankmanagern
Für meinen, auf irgendwelche Bags von irgendwelchen MS,
was immer die MS sind, schaut es euch bitte mal an,
damit ihr wisst, worüber ich rede.
Ansonsten wird das schwierig beim nächsten Mal,
das wird sich nur darum drehen und wir werden da dann
entsprechend noch in Varianten und sowas uns angucken.
Das heißt, wir werden jetzt noch mal eine Stufe höher klettern und
sozusagen auch noch gefärbte in Varianten kurz beleuchten und die Möglichkeiten,
das überhaupt in diesen Sachen drinsteckt. Das ist etwas,
was in Programmiersprachen, die jetzt sozusagen auf den Markt kommen,
durchaus immer mehr eingesetzt wird,
dass man irgendwelche Assursions oder Zusicherungen und so weiter in Programmiersprachen
mit einbaut und dass dann genau solche Aussagen,
über diese Zusicherung noch haben möchte, auch mit einbaut.
Das ist also eine der Bestrebungen, die im Programmiersprachenbereich gerade stattfinden.
Und das ist mehr als nur ein Istan-Aid-Statement.
Und da kommt sozusagen der Hintergrund ein bisschen her.
Und da vielleicht euch ein bisschen was zu erzählen.
Und ja, das ist dann für dieses Jahr dann sozusagen
die letzte Veranstaltung von mir am Donnerstag. Und wie gesagt,
Herr Falk macht dann am nächsten Dienstag drüben wieder entsprechend weiter.
Am 5. oder sowas, ne? 7. Bier aus.
Nein, nein, hier drüben im anderen Raum.
Herr Falk wird also auch hier dann erscheinen und hier die Vorträge haben.
Gut, dann sehe ich euch nochmal hoffentlich am Donnerstag.
Bis dann