Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
Modellieren in der Informatik
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 95 Zeilen
- hallo in diesem Video möchte ich kurz erklären wie man in der Informatik modelliert das heißt wie kommt man sozusagen von einer Idee zu einem
- Programm zu einem ersten Entwurf so dass man tatsächlich sich dann hinsetzen kann und was programmieren kann also wie komme ich zu den Klassen und welche
- Methoden brauche ich und welche Attribute brauche ich vielleicht und solche Sachen ich orientiere mich dabei an dem
- Kreislauf der Wissenschaft die man vielleicht aus der Physik kennt dass man also so ein Phänomen nimmt wie warum ist der Himmel blau und dann abstrahiert man
- daraus ein Experiment und dann untersucht man das Experiment hat irgendwelche Messwerte modelliert Gesetze und dann vergleicht man das
- wieder und entweder passt das Gesetz dann ist gut und wenn es nicht passt dann muss man das diesen Kreislauf noch mal machen und sowas ähnliches gibt's
- tatsächlich auch in der Informatik finde ich vielleicht bin ich mit der Meinung alleine aber ich finde das tatsächlich
- gerade am Anfang wenn man noch sehr wenig Erfahrung hat eigentlich ganz hilfreich jetzt haben wir natürlich in der Regel
- keine natürlichen Phänomene die wir untersuchen können sondern wir haben natürlich Ideen oder ein Problem was man lösen wollen oder eine Aufgabe die halt
- vom Lehrer einfach kommt so was ist dann der erste Schritt den man macht und dieser erste Schritt das ist halt genau die Modellierung das heißt in der Regel
- wird man halt aufgefordert kassenjahr kann man zu entwerfen Sequenzdiagramme Zustandsdiagramme was auch immer zu entwerfen dass man programmiert bitte
- noch nicht sofort das ist machen tatsächlich eigentlich fast nur Anfänger den Fehler so macht sich bitte erstmal Gedanken und dieser erste wichtige
- Schritt das nennt man halt die Modellierung das heißt auch hier überlege ich mir was ist wichtig was brauche ich später für mein Programm
- überhaupt um die damit das Programm die Aufgabe löst wie das genau abläuft erkläre ich gleich auf der nächsten Folie jetzt machen wir erstmal nur ganz
- kurz auch hier diesen Kreislauf fertig wenn Sie diesen Entwurf fertig habt also eure Klassendiagramme für den ersten Entwurf mal eines Programms habt dann
- geht es natürlich daran dass man das implementiert dabei entscheidet sich zum Beispiel auch mit welcher Sprache man das macht
- oft gibt es also große Programme haben auch oftmals mehrere Sprachen oder man sucht nach irgendwelchen libraries rum die einem vielleicht gerade diese
- oberflächenprogrammierung abnehmen und so weiter und so fort also man implementiert dann
- hat man ein Programm irgendwann das sollte man natürlich auch testen so und dann hängt es ein bisschen davon ab auch was jetzt genau die Aufgabe war
- wenn man Glück hat dann ist man an der Stelle fertig in der Regel ist ein Programm nie fertig das heißt das was dann eher passiert ist dass man
- evaluiert und vergleicht löst mein Programm jetzt tatsächlich die Aufgabe nehmen wir mal richtig großes Programm also zu Anfang der Corona Problematik
- habe ich mir z.B überlegt wie ist denn das mit dieser Virus Ausbreitung ich fand das eigentlich ganz spannend sich mal zu versuchen das zu simulieren das
- heißt meine Aufgabe war mir zu überlegen okay was brauche ich denn um so eine Ausbreitung zu simulieren das heißt ich habe modelliert ich habe überlegt ich
- brauche Personen ich brauche ein Virus und so ein Virus hatten Ansteckungsrate und eine Lebensdauer und also ein Kram dann habe ich für mich entschieden dass
- ich das mit processing implementiere und dann habe ich das getestet und geschaut verhält sich das sozusagen auch so wie man vielleicht erwartet was funktioniert
- was funktioniert nicht dann hat es vielleicht nicht so funktioniert dann habe ich halt meine Modellierung verbessert meine Implementierung
- angepasst dann habe ich wieder Programm gehabt dann habe ich wieder das gemacht und so läuft es die ganze Zeit im Kreis so haben wir jetzt schon ein bisschen
- mehr Programmiererfahrung hat und schon mal was von Agila oder von agilen Projektmanagement gehört hat der wird es hier natürlich auch drin entdecken denn
- im Grunde ist das hier schon fast agiles Projektmanagement man fängt sozusagen halt mit einem ganz kleinen Problem auch an dass man schrittweise aufbläst immer
- in der Hoffnung oder immer mit dem Ziel also sollte schon passiert das sollte nicht nur Hoffnung sein dass man ein immer ein funktionierendes Programm hat
- und nach der Evolution ergänzt man sozusagen immer ein neues Feature überlegt sie wo kommt das hin was muss ich denn beachten brauche ich
- eine Datenbank brauche Netzwerk Zugriff oder was auch immer dann wird es implementiert dann wird es wieder getestet dann habe ich ein Programm und
- dann sagt vielleicht der Auftrag ja okay es ist fertig oder man sagt halt nee cool wir hätten gerne noch ein Feature und so geht's dann immer weiter also das
- ist so dieser Ablauf wie eigentlich programmieren ein bisschen abläuft relativ unspektakulär ist dann irgendwann vor allem hier dieses
- implementieren da braucht man einfach viel Erfahrung man muss vielleicht viele libraries irgendwann mal kennen und viele Befehle kennen und so weiter das
- ist tatsächlich nicht so einfach zu vermitteln das ist so ähnlich wie bei Kunstunterricht ja ich vergleiche programmieren auch ganz gerne immer mit
- Kunstunterricht das eigentliche üben beim Zeichnen dass ja das keine Ahnung das ist halt einfach Übungssache
- nichtsdestotrotz trotzdem Punkt hier diesen zweiten Schritt dieses Entwurf Klassendiagramm das kann man tatsächlich lernen ähm das ist so ähnlich wie beim
- Zeichnen wenn ich lerne Portraits zu zeichnen kann ich mir aneignen welchen Abstand haben die Augen und wo sitzt der Mund und so weiter das heißt aber noch
- längst nicht dass ich wirklich gescheites Portrait zeichnen kann so jetzt aber zurück zum Thema nämlich hier den modellieren wie macht man das
- jetzt eigentlich wie geht man davor und das schauen wir uns jetzt hier einfach noch mal auf der zweiten Seite an also dieser Schritt von der Aufgabe von dem
- Problem von der Idee die ich vielleicht für ein Programm habe was mache ich dann wirklich im Endeffekt weiter
- wichtigstes Ziel dabei ist ich muss es ja irgendwie ab 3 abstrahieren also wenn ich beispielsweise eine wetter-simulation haben möchte oder ich
- möchte das Verhalten von Kunden ein Supermarktkassen simulieren dann muss sie mir im Grunde überlegen was von diesem Supermarkt ist für mich nur
- relevant also da ist zum Beispiel überhaupt nicht relevant was da verkauft wird vielleicht sondern es geht halt nur darum dass ich Kassen brauche und was da
- für eine Kasse steht ist auch nicht relevant und solche Dinge also ich brauche sozusagen eine Abstraktion jetzt für unser Beispiel nämlich von der
- Idee ein sehr einfaches Spiel weil es wenig Bestandteile hat das Spiel als solches ist natürlich schwer aber es lässt sich glaube ich ganz gut
- implementieren und das Spiel heißt das Go-Spiel das habe ich jetzt hier mit einem sehr kleinen Feld einfach mal dargestellt
- weil es ja das nur symbolisieren soll so ein go-spielfeld ich habe es jetzt hier sehe ich auch gerade eigentlich falsch dieses Steine aufgemalt eigentlich
- sitzen die auf den Kreuzen und nicht auf den Feldern das soll jetzt auch mal egal sein es ist eigentlich
- genau also dieses Spielfeld ist besteht halt aus einem Brett einem Holzbrett und auf diesem Holzbrett habe ich Felder ob das jetzt tatsächlich wie es hier
- eigentlich falsch dargestellt ist welche Quadrate sind oder ob es dann die Punkte sind die kreuzungslinien auf die Sätze also eigentlich sollte ich das
- vielleicht mal hier ergänzen ich mache es mal besser versuchen wir es mal so machen wir die knuddel hier alle weg die Knubbel kommen nämlich
- eigentlich dahin also der erste Spieler der setzt jetzt ein bisschen groß das ist in dem Programm kann man schlecht
- Knubbel malen so auf die Kreuzungspunkte so und dann kommt der nächste Spieler und der sitzt ein Stein dahin und dann
- kommt der nächste Spieler da sitzt ein Stein der UPS aber versuch ne dahin
- stop das war zu weit ist nur den anderen Steinen noch wegmachen weg weg weg weg weg so sieht das jetzt aus also ich habe mein Brett
- genau auf dem Brett habe ich jetzt sozusagen Felder möglicherweise diese kreuzungslinie die definieren muss ist aber noch wir haben natürlich Steine
- und diese Steine gibt es in zwei Farben ich habe jetzt hier rot und blau genommen eigentlich sind die schwarz und weiß aber das ist Farbe ist ja im Grunde
- egal man muss halt nur unterscheiden können dann habe ich natürlich ein Spieler ich habe zwei Spieler
- diese Spieler können ziehen bzw in dem Fall das ist ja kein Spiel wo die Steine gezogen werden die werden eigentlich nur gesetzt aber es ist im Grunde ein ein
- Spielzug deswegen habe ich jetzt ziehen genannt und ich habe wie gesagt diesen Zug also wenn ich jetzt halt eine Software haben möchte möchte ich
- vielleicht später mal die Idee haben dass ich so ein Zug auch zurücknehmen kann das heißt ich muss das was passiert ist in irgendeiner Form von Zug
- speichern so das ist so mal die Idee die man vielleicht hat oder möchte Tic Tac Toe implementieren dann habt ihr im Grunde so ein ähnliches System auch
- wieder mit zwei Steinen und diese drei auf drei Felder oder ihr wollt aber weiß nicht mensch ärger dich nicht oder keine Ahnung also gibt viele viele kleine
- kurze Spiele die man da so wunderbar motivieren kann so wenn man soweit sich das mal analysiert hat und überlegt hat das hier ist im Grunde der erste Schritt
- ja dieses was ist wichtig dann kommen wir zum nächsten jetzt kann man das tatsächlich sprachlich ganz gut analysieren und zwar
- kann man sagen dass alles was ich jetzt hier so ein Substantiven habe das sind sozusagen meine Klassen ja da habe ich jetzt einige davon
- nehme ich das Brett und ich habe das Feld also das die Steine ich habe den Spieler vielleicht auch den Zug später noch dazu denn dass
- sie jetzt im ersten Entwurf erstmal weg dass ich die wieder zurücknehmen kann also der Brett Felder Steine und Spieler und diese Substantive die sind in der
- Regel Klassen die ich später brauche also ich weiß jetzt schon ich werde ein klasse Brett brauchen ich brauche wohl eine Klasse fällt ich brauche eine
- klassische Stein ich brauche eine klassische Spieler so jetzt kommen wir zu dem was ich gerade eben noch zurückgenommen habe so
- und diese Klassen sind teilweise halt auch Attribute von Anna Klassen also zum Beispiel diese Klasse fällt ist ein Attribut eine Eigenschaft der Klasse
- Brett ja weil es einfach so ist dass da kann man jetzt sich ein bisschen bei der Datenbank Theorie bedienen ein Brett hat viele Felder und ein Feld
- gehört aber auch nur zu einem Brett also diese zwei Sprüche die ich in der Datenbank benutze kann man hier tatsächlich für den ersten Entwurf auch
- benutzen das heißt ich habe hier so eine Eins zu Ende Beziehung wenn man so will dabei ist allerdings wichtig dass wenn ich jetzt nicht mehr Datenbank habe
- sondern das mit irgendeiner Programmiersprache wie Java oder sowas Umsätze das wird anders umgesetzt also weil
- Datenbanken müsste ich jetzt okay ich mache das ganze über Fremdschlüssel und der Franz Schlüssel hier auf die Seite wo das ist das wird beim Programmieren
- wird es anders gemacht hier wüsste ich jetzt zum Beispiel das Brett bekommt ein Tribut Felder oder hat oder irgendwas auch immer und das ist dann Array oder
- eine Liste oder irgendwie sowas also hier ist es beim Programmieren mit Programmiersprachen ist es genau andersrum als bei Datenbanken
- so also nochmal ganz kurz Substantive werden immer ups da wollte ich zeigen Substantive werden zu Klassen und die Klassen können aber auch Attribute von
- anderen Klassen sein so dann gibt es natürlich noch Adjektive das ist jetzt ganz simpel das sind hier meine Steine
- [Musik] machen wir mal weg so hier oben eine Steine die sind rot oder blau oder schwarz oder weiß oder ich habe
- irgendwelche anderen Spielfigur die haben den Skin oder die haben irgendwelche keine Ahnung Lebenspunkte diese Verlierern oder haben irgendwelche
- Punkte gesammelt die muss ich speichern also irgendwie sowas und das letzte ist sind die Verben
- wenn ihr eine Verben in den Texten habt in den Aufgaben Texten hier bekommen sind das sehr häufig tatsächlich Methoden
- oder sie werden in der Regel nicht gebraucht also entweder ist es eine Methode oder ist es wird halt nicht gebraucht ziehen
- ja ansonsten wenn Sie irgendein anderes Spiel habt wie zum Beispiel Mühle da gibt es einen unterschiedliche Verben ja man kann ein Stein legen und später kann
- man ihn tatsächlich auch bewegen das heißt da wird sie zum Beispiel dass ein Spieler sozusagen diese zwei Zustände haben muss legen oder ziehen und die
- Steine müssen sich auch verändern können das wird dann entsprechend alles umgesetzt ja das war sozusagen der der Versuch zu
- erklären wie man an so eine Aufgabe rangeht dass man also sich den Text oder das Problem genau anschaut und sich überlegt okay meine Substantive sind
- potenzielle Kandidaten für Klassen meine Adjektive die ich sehe oder die ich mir dazu überlege sind möglich Attributen zu den Klassen und die Verben sind mögliche
- Methoden für meine Klassen so und daraus sollte man jetzt schon mal ein Klassendiagramm entwickeln können und der Rest der ergibt sich dann auch
- so ein bisschen vielleicht dann beim Programmieren und ich erkläre es dann auch in dem nächsten Video wie man dann weitergeht
- so das war es von meiner Seite zum Thema Modellierung bis zum nächsten Video macht's gut ciao