Softwareengineering Tutorial #2 - Das Wasserfallmodell The Morpheus Tutorials https://www.youtube.com/watch?v=TgXV_Lw-dBo Transkript (automatisch erstellt) 0:00 Moin Leute und herzlich willkommen zurück zum Software Engineering. Heute wollen wir uns nur kurz das Wasserfallmodell angucken. Das heißt heute ein sehr sehr kurzes Video, weil ich davon letztes mal schon recht viel, so ein bisschen zumindest vorgestellt habe. 0:14 Jetzt wollen wir es aber uns tatsächlich noch offiziell angucken und zwar das Wasserfallmodell, Grafik von Wikipedia, Link unten drin, ist eine Möglichkeit Software zu entwickeln. Ich habe letztes mal auch schon gesagt, es ist eigentlich nicht unbedingt so gedacht, 0:28 dass man es auch wirklich am Ende benutzt. Es ist eher ein bisschen idealistisch. Das heißt es funktioniert leider nicht ganz so genau. So und ja jetzt in dem Wissen, dass ich mich wahrscheinlich zuletzt mal ein bisschen wiederholen werde, ich möchte euch trotzdem vorstellen, 0:42 warum ich es euch vorstellen will, sind zwei Gründe. Eigentlich erstens mal, man braucht es für jede Prüfung. Es wird einfach abgefragt und das ist einfach wichtig, dass man es weiß. Und warum es auch schlecht ist, ist oftmals auch ein Abfragegrund. 0:54 Das heißt für die Leute, die das Ganze als Studium oder sowas machen, brauchen natürlich erstmal das Wissen dahinter. Und zweitens, es ist trotzdem auch mal ganz ganz nützlich, das Ganze zu sehen. Vor allem, weil man sich dann später auch in der Serie daran klammern kann. 1:07 Das heißt ich werde mich hier schön an den Phasen entlang hangeln in der Serie, auch wenn wir wissen, nach der Wartung sind wir nicht fertig, sondern fangen wieder vorne an. Das heißt, ja ich kann mich eigentlich ganz gut daran orientieren. 1:18 Und ihr könnt euch auch so ein bisschen orientieren, das erwartet euch noch alles. Okay, Implementation muss ich ganz kurz noch vorweg sagen. Implementierung, Implementation ist dasselbe. Also das heißt, wir schreiben Code und ich werde euch hier in der Serie nicht Programmieren beibringen. 1:31 Das solltet ihr in einer anderen Serie von mir lernen. Es gibt die Programmieren-Lernen-Serie, da lernt ihr auf jeden Fall mal das Allerwichtigste. Und ja, es kommen noch mehr Videos raus und wenn die Serie fertig ist, dann habt ihr wirklich im Prinzip echt alles gelernt, was man zum Programmieren überhaupt nur lernen kann. 1:45 Ansonsten, wenn ihr eine konkrete Sprache lernen wollt, schaut auf meinem Kanal nach, da gibt es unglaublich viel in die Richtung. Okay, so, das heißt, warum ist jetzt, oder was genau sind die einzelnen Phasen? 1:55 Bei der Anforderungsphase, da wollen wir uns erstmal so drum kümmern, was tatsächlich unsere Software können möchte und können soll. Und was bei raus kommt, ist am Ende das Lastenheft. Dann bei der Entwurfsphase kommt die Softwarearchitektur bei raus. 2:09 Das heißt, sowas wie Klassendiagramme sind hier wichtig. UML ist auch was, was wir hier als Serie machen werden. Das heißt, wir planen unsere Software, also wie sie tatsächlich im Code dann strukturiert sein soll. 2:20 Hört sich erstmal ein bisschen abstrakt an, aber werdet ihr sehen, ist sehr, sehr cool. Dann Implementierung, klar, daraus entsteht im Endeffekt die Software, das ist der Code. 2:29 Und Achtung, es geht auch wichtig, hierbei ist die Dokumentation. Das heißt, wenn wir dokumentieren, dann kann auch ein anderer vielleicht unseren Code lesen. 2:37 Wir werden uns auch mit Clean Code ein bisschen beschäftigen. Das heißt, wir werden auch schauen, dass man den Code so leserlich macht, dass er für andere Leute auch Sinn ergibt, sag ich jetzt mal. 2:48 Und nicht irgendwie kryptisch das Ganze macht, nur weil es dann ein bisschen kürzer ist. Und ja, derjenige weiß, dass ich ihn meine. Aber darum geht es natürlich auch ein bisschen. 2:56 So, dann Testschreiben, das ist ganz, ganz wichtig, weil man dadurch nämlich sagen kann, okay, meine Software stürzt tatsächlich nicht ab und ich habe mögliche Fehler, alle oder möglichst viele davon gefunden. 3:07 Allerdings gibt es nicht nur Tests, also automatische Unit-Tests oder sowas, sondern es gibt auch noch andere Möglichkeiten, Code zu überprüfen tatsächlich und die möchte ich euch natürlich auch vorstellen. 3:16 Und am Ende natürlich die Wartung, das heißt, man muss Bug fixen im Endeffekt schon. Beziehungsweise das Ganze natürlich auch erstmal deployen, also ausliefern sozusagen an unsere potenziellen Kunden oder wie auch immer. 3:28 Also tatsächlich dann halt die Software auch wirklich laufen lassen. So, ja, und das sind so die Phasen, die man hier beim Wasserfallmodell hat. 3:36 Wir haben jetzt aber schon gesagt, das Wasserfallmodell ist ein bisschen arg idealistisch. Das heißt, man ist danach eigentlich nicht fertig. 3:43 Ich habe auch letztes Mal schon erklärt und zwar sehr ausführlich, dass man eigentlich Anforderungen und dann bis zur Wartung hin und dann fängt man aber eigentlich wieder vorne an. 3:51 Denn man möchte nicht die komplette Software hier in einem Rutsch durchziehen, sondern man möchte wirklich aufteilen, damit man sozusagen DLCs machen kann. 4:00 Also nicht komplett eine fertige Software liefert, sondern einfach auch wieder Updates liefern kann. Software, die tatsächlich im Einsatz ist, die ändert sich. 4:07 Das ist ein Spruch von irgendeinem schlauen Menschen. Ich habe gerade irgendwen zitiert, ich weiß nicht mehr, wer es war. Es tut mir furchtbar leid. 4:13 Aber er ist auf jeden Fall sehr schlau gewesen und hat viel Ahnung von Softwareentwicklung gehabt. Denken wir einfach nur mal an ein System, an ein Betriebssystem. 4:22 Das ist eigentlich ein super Beispiel, weil Treiber ändern sich relativ häufig. Jedes Mal, wenn ein neues Gerät rauskommt, sprich sagen wir mal eine neue Grafikkarten-Generation, 4:31 dann muss ich neue Treiber liefern, damit auch mein System auf den neuen Grafikkarten läuft. Oder nehmen wir einfach mal DirectX zum Beispiel oder generell solche Grafik-Treiber. 4:43 Nicht ganz Treiber, ich weiß, dass es nicht Treiber sind, aber egal. Die müssen auch immer geupdatet werden, denn es muss schneller sein. 4:50 Es muss auf die neueste Hardware laufen, es muss aber auch wiederum die neuesten Generationen von allem anderen unterstützen. Also vielleicht neue Shader, neue Möglichkeiten, die man hat. 5:01 Oder zum Beispiel müssen dann auch die Grafikkarten eben mit Machine Learning klarkommen. Das heißt, man möchte eben, oder Hashes Cracken oder sowas möchte, oder Bitcoin Farmen, ist mir wurscht, 5:10 möchte man auch auf der Grafikkarte laufen lassen. Und dazu muss dann natürlich auch ein bisschen die Software angepasst werden. 5:16 Also sprich, der Treiber für die Grafikkarte muss angepasst werden. Also eigentlich muss im Endeffekt alles angepasst werden. 5:21 Ich glaube, ihr kriegt mit, wie viele Downloads ihr für Updates tatsächlich regelmäßig habt. Also bei eurem Handy zum Beispiel wird es ja relativ transparent angezeigt. 5:31 Oder auch wenn man jetzt irgendwie auf Linux irgendwas updatet, dann wird ja auch immer angezeigt, was alles ein Update hatte. Und es gibt so viel, was man da tatsächlich immer updaten muss. 5:39 Und das ist eben genau dieser Zyklus hier, den man sieht. Ich weiß nicht, ob ihr genau Bescheid wisst, aber zum Beispiel auch Microsoft 5:47 bringt jeden Monat einmal einen neuen Patch raus sozusagen. Und das ist eben dann genau das Ergebnis von einem Zyklus. 5:54 Das heißt, einmal die Phasen komplett durch. Also Anforderungen, Entwurf, Implementierung, Überprüfung, Wartung. 5:59 Also Wartung nicht unbedingt, aber einmal komplett durchentworfen und getestet. Naja, gut, bei Microsoft nicht unbedingt, aber okay. 6:06 Normalerweise sollte alles getestet sein und ohne Bugs irgendwie laufen. Und dann wird das Ding ausgeliefert und jeder hat den neuesten Patch. 6:13 Das heißt, die neuesten Funktionen, whatever. Und das ist eben dann so ein Zyklus. 6:17 Das heißt, man ist nach dem Ding hier nicht unbedingt fertig, sondern man fängt eben vorne wieder an. So, jetzt habe ich im Endeffekt dasselbe gesagt wie letztes Mal. 6:24 Ich hoffe, es ist diesmal auch komplett fertig durchgedrungen. Und wir werden uns dann nächstes Mal ein Modell angucken, das dann eben genau das macht. 6:31 Und das werden wir auch im Community-Projekt benutzen, nämlich das Scrum-Modell. Ich hoffe, euch hat es mal wieder gefallen und wir hören uns beim nächsten Mal. 6:38 Bis dann. Tschau tschau.