Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Modellieren in der Informatik

Ingo Bartling13:01 1.178 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 95 Zeilen
Herunterladen
  1. 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
  2. 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
  3. Methoden brauche ich und welche Attribute brauche ich vielleicht und solche Sachen ich orientiere mich dabei an dem
  4. 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
  5. daraus ein Experiment und dann untersucht man das Experiment hat irgendwelche Messwerte modelliert Gesetze und dann vergleicht man das
  6. 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
  7. tatsächlich auch in der Informatik finde ich vielleicht bin ich mit der Meinung alleine aber ich finde das tatsächlich
  8. gerade am Anfang wenn man noch sehr wenig Erfahrung hat eigentlich ganz hilfreich jetzt haben wir natürlich in der Regel
  9. 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
  10. 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
  11. wird man halt aufgefordert kassenjahr kann man zu entwerfen Sequenzdiagramme Zustandsdiagramme was auch immer zu entwerfen dass man programmiert bitte
  12. 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
  13. 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
  14. ü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
  15. 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
  16. geht es natürlich daran dass man das implementiert dabei entscheidet sich zum Beispiel auch mit welcher Sprache man das macht
  17. oft gibt es also große Programme haben auch oftmals mehrere Sprachen oder man sucht nach irgendwelchen libraries rum die einem vielleicht gerade diese
  18. oberflächenprogrammierung abnehmen und so weiter und so fort also man implementiert dann
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. was funktioniert nicht dann hat es vielleicht nicht so funktioniert dann habe ich halt meine Modellierung verbessert meine Implementierung
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. eine Datenbank brauche Netzwerk Zugriff oder was auch immer dann wird es implementiert dann wird es wieder getestet dann habe ich ein Programm und
  33. 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
  34. ist so dieser Ablauf wie eigentlich programmieren ein bisschen abläuft relativ unspektakulär ist dann irgendwann vor allem hier dieses
  35. implementieren da braucht man einfach viel Erfahrung man muss vielleicht viele libraries irgendwann mal kennen und viele Befehle kennen und so weiter das
  36. ist tatsächlich nicht so einfach zu vermitteln das ist so ähnlich wie bei Kunstunterricht ja ich vergleiche programmieren auch ganz gerne immer mit
  37. Kunstunterricht das eigentliche üben beim Zeichnen dass ja das keine Ahnung das ist halt einfach Übungssache
  38. nichtsdestotrotz trotzdem Punkt hier diesen zweiten Schritt dieses Entwurf Klassendiagramm das kann man tatsächlich lernen ähm das ist so ähnlich wie beim
  39. 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
  40. 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
  41. 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
  42. Problem von der Idee die ich vielleicht für ein Programm habe was mache ich dann wirklich im Endeffekt weiter
  43. wichtigstes Ziel dabei ist ich muss es ja irgendwie ab 3 abstrahieren also wenn ich beispielsweise eine wetter-simulation haben möchte oder ich
  44. 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
  45. 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
  46. 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
  47. 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
  48. implementieren und das Spiel heißt das Go-Spiel das habe ich jetzt hier mit einem sehr kleinen Feld einfach mal dargestellt
  49. 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
  50. sitzen die auf den Kreuzen und nicht auf den Feldern das soll jetzt auch mal egal sein es ist eigentlich
  51. 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
  52. 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
  53. 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
  54. eigentlich dahin also der erste Spieler der setzt jetzt ein bisschen groß das ist in dem Programm kann man schlecht
  55. Knubbel malen so auf die Kreuzungspunkte so und dann kommt der nächste Spieler und der sitzt ein Stein dahin und dann
  56. kommt der nächste Spieler da sitzt ein Stein der UPS aber versuch ne dahin
  57. 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
  58. genau auf dem Brett habe ich jetzt sozusagen Felder möglicherweise diese kreuzungslinie die definieren muss ist aber noch wir haben natürlich Steine
  59. 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
  60. egal man muss halt nur unterscheiden können dann habe ich natürlich ein Spieler ich habe zwei Spieler
  61. 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
  62. 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
  63. 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
  64. 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
  65. 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
  66. 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
  67. ja dieses was ist wichtig dann kommen wir zum nächsten jetzt kann man das tatsächlich sprachlich ganz gut analysieren und zwar
  68. 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
  69. 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
  70. 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
  71. 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
  72. klassische Stein ich brauche eine klassische Spieler so jetzt kommen wir zu dem was ich gerade eben noch zurückgenommen habe so
  73. 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
  74. 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
  75. 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
  76. 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
  77. sondern das mit irgendeiner Programmiersprache wie Java oder sowas Umsätze das wird anders umgesetzt also weil
  78. 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
  79. 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
  80. eine Liste oder irgendwie sowas also hier ist es beim Programmieren mit Programmiersprachen ist es genau andersrum als bei Datenbanken
  81. 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
  82. anderen Klassen sein so dann gibt es natürlich noch Adjektive das ist jetzt ganz simpel das sind hier meine Steine
  83. [Musik] machen wir mal weg so hier oben eine Steine die sind rot oder blau oder schwarz oder weiß oder ich habe
  84. irgendwelche anderen Spielfigur die haben den Skin oder die haben irgendwelche keine Ahnung Lebenspunkte diese Verlierern oder haben irgendwelche
  85. Punkte gesammelt die muss ich speichern also irgendwie sowas und das letzte ist sind die Verben
  86. wenn ihr eine Verben in den Texten habt in den Aufgaben Texten hier bekommen sind das sehr häufig tatsächlich Methoden
  87. oder sie werden in der Regel nicht gebraucht also entweder ist es eine Methode oder ist es wird halt nicht gebraucht ziehen
  88. 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
  89. 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
  90. Steine müssen sich auch verändern können das wird dann entsprechend alles umgesetzt ja das war sozusagen der der Versuch zu
  91. 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
  92. 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
  93. 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
  94. so ein bisschen vielleicht dann beim Programmieren und ich erkläre es dann auch in dem nächsten Video wie man dann weitergeht
  95. so das war es von meiner Seite zum Thema Modellierung bis zum nächsten Video macht's gut ciao

Zum Nachlesen