{"id":686,"date":"2012-03-03T15:04:28","date_gmt":"2012-03-03T14:04:28","guid":{"rendered":"http:\/\/blogs.uni-bremen.de\/eule\/?p=686"},"modified":"2021-09-07T02:44:33","modified_gmt":"2021-09-07T00:44:33","slug":"raus-aus-der-schublade-das-softwareprojekt","status":"publish","type":"post","link":"https:\/\/blogs.uni-bremen.de\/eule\/2012\/03\/03\/raus-aus-der-schublade-das-softwareprojekt\/","title":{"rendered":"Raus aus der Schublade: Das Softwareprojekt"},"content":{"rendered":"<p style=\"text-align: center\">\n<p><strong>So k\u00f6nnte das Aussehen, wenn ich einen Teil von mir programmieren m\u00fcsste, wenn auch sehr simpel. Wieso programmieren? Ja&#8230; ich frage mich auch gerade wie ich auf diesen Gedankengang gekommen bin. Anscheinend bin ich in einem Parallelunive<\/strong><strong>rsum gefangen, in der wir alles programmieren anstatt es einfach zu machen. Programmiersprachen \u00fcberall um mich herum. Was zum Teufel ist los? Ach, Softwareprojekt, das ist los. Und bevor ich innerlich explodiere, mach ich euch mal ein T\u00fcrchen zu der Welt der angehenden InformatikerInnen auf, um euch zu zeigen, wo Wahnsinn und Logik einher gehen.<\/strong><\/p>\n<p><!--more--><\/p>\n<p><strong>Wahnsinnig werden, irgendwie logisch<\/strong><\/p>\n<p>Der logische Wahnsinn, eine Begrifflichkeit, die uns in diesen Artikel begleiten wird. Denn eigentlich m\u00fcsste dieser Code funktionieren. Es ist doch ganz logisch&#8230; es m\u00fcsste doch&#8230;. Okay, bevor ich euch gleich mit Programmierpudding beschmiere, will ich euch erstmal erkl\u00e4ren worum es eigentlich geht. Wir InformatikerInnen machen in unseren lieblichen Studiengang ein Softwareprojekt, welches ein Semester andauert. Wir m\u00fcssen in diesem Semester eine Software entwickeln. Und das passiert im ganz typischen Sinne einer Softwareentwickelnden Firma. Wir bekommen einen Auftrag von einem Kunden und m\u00fcssen ein Kundengespr\u00e4ch f\u00fchren. Schon hier sind viele Methoden anzuwenden, die uns im Studium vermittelt werden. Was will der Kunde? Was habe ich verstanden? Was mache ich dann daraus? Was kommt noch dazu, was wir als Feature verkaufen? In unserem Falle wollte gerne der Herr H\u00f6lscher von der Firma MeIndAu ein Eventmanagmentsystem, dass Partys und Feierlichkeiten verwalten kann. Seine MitarbeiterInnen w\u00fcrden zu unkoordiniert einkaufen und es w\u00fcrden zu viele Reste bleiben. Unser Programm soll Abhilfe schaffen und Eventplanung sinnvoll f\u00fcr seine Mitarbeiter m\u00f6glich machen. Na dann&#8230;.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Auf die Pl\u00e4tze, fertig, los!!<\/strong><\/p>\n<p>Du machst das Oberfl\u00e4chendesign, ich mach schonmal irgendwie den Server. Du kannst ja schonmal schauen ob du die Artikel in eine Liste zwischenspeichern kannst! Am Ende schmei\u00dfen wir alles zusammen! Nene, liebe Freunde. So geht das nicht. Viele der InformatikerInnen sind recht pragmatisch und wie kleine Hunde freudig erregt, wenn es darum geht, ans Werk zu gehen. Doch das Informatikstudium vermittelt uns, wie wichtig es ist, ein Programm von Anfang an strukturiert aufzubauen. Insebesonders m\u00fcssen wir sicher gehen, alles vorher genaustens zu spezifizieren. Wir haben im Semester zuvor erlernt, welche Dokumente angelegt werden m\u00fcssen. In einer sogenannten Anforderungsspezifikation f\u00fchren wir eine Ist- und Soll Analyse aus und bewerten die uns gegebenen Kriterien, um uns ein Bild f\u00fcr eine softwaretechnische L\u00f6sung zu machen. Wir k\u00f6nnen nicht einfach drauflosprogrammieren, auch wenn es die meisten gerne t\u00e4ten. Ausserdem dient die Anforderungsspezifikation auch f\u00fcr die Kommunikation mit dem Kunden, da wir hier genaustens drauf achten m\u00fcssen, ob wir die Kundenw\u00fcnsche auch wirklich umsetzen. Sobald wir dann gen\u00fcgend Review mit dem Kunden gehalten haben, k\u00f6nnen wir nun all die Spezifikationen von Programmvorg\u00e4ngen weiter verarbeiten, indem wir verschiedene Architektursichten anwenden, um diese auf ihren funktionalen Kontext zu untersuchen. Hier k\u00f6nnen wir bereits unsere Ideen soweit spezifizieren, sodass wir unsere Diagramme und Grafiken schon relativ einfach in Programmiercode umsetzen k\u00f6nnen. Man hat also einen flie\u00dfenden \u00dcbergang von Planung und Spezifikation bishin zur Architektur des Programms und der anschliessenden Umsetzung in Javacode. Dabei enstehen dann gerne bis zu 300 und mehr Seiten. Diese Dokumente jedoch entwickeln sich stehts weiter und stellen eine Basis zwischen Kunde und EntwicklerInnen und zwischen EntwicklerInnen und dem Code dar.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Enthusiasmus reicht hier nicht aus&#8230;<\/strong><\/p>\n<p>So da bin ich nun. Stefan vs. Code. Das ist mindestens so episch wie Piraten vs. Ninjas. Ich m\u00f6cht euch nun an dieser Stelle ein wenig von meiner pers\u00f6nlichen Arbeit berichten. Ich habe mich dem Oberfl\u00e4chendesign verschrieben und arbeite daran, dass die Oberfl\u00e4che des Programms eingerma\u00dfen gut aussieht, und dass die Oberfl\u00e4chenelemente auch funktionieren. Hei\u00dft, dass wenn ihr auf Speichern dr\u00fcckt, dass dann das Programm auch wirklich mit dem Server kommuniziert, speichert und euch eine Best\u00e4tigung ausgibt. Aber wir alle raufen uns die Haare. Stunden um Stunden arbeiten wir am Code und an jeder Ecke will etwas nicht funktionieren, obwohl es nach der Logik her funktionieren m\u00fcsste. So programmiere mein Oberfl\u00e4chenelement und m\u00f6chte dass es breiter nach rechts ausgedehnt wird. Stattdessen geht das ganze Layout fl\u00f6ten, na Toll! Aber von der Logik her&#8230;.. Ich verstehe das nicht. Und w\u00e4hrend ich dann am Rande das Wahnsinns stehe kommt ein anderes Gruppenmitglied daher mit folgenden Satz \u201eAber schau mal, das ist doch ganz logisch!\u201c Und das l\u00e4uft dann solange, bis der Dozent mit der Flagge schwenkt und wir endlich alle aufatmen k\u00f6nnen. Abgabetermin, eine Erl\u00f6sung. Haben wir dann ein fertiges Programm? Aber ja! Durch die gute Planung und Dokumenterstellung lief das Programmieren sehr strukturiert und effizient ab und die Studierende wenrden f\u00fcr den Flei\u00df belohnt. Aber hey, Augen auf. Das Softwareprojekt stellt eine anstrengende und schwierige H\u00fcrde im Studium dar und es sind wirklich nicht wenige, die beim Softwareprojekt scheitern. Einige versuchens erneut, andere hatten mit dem Softwareprojekt die beste M\u00f6glichkeit herauszufinden, dass Informatik sp\u00e4ter im Berufsleben nichts f\u00fcr sie ist. Denn ein wesentlicher Bestandteil der Arbeit sp\u00e4ter k\u00f6nnte genau so aussehen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So k\u00f6nnte das Aussehen, wenn ich einen Teil von mir programmieren m\u00fcsste, wenn auch sehr simpel. Wieso programmieren? Ja&#8230; ich frage mich auch gerade wie ich auf diesen Gedankengang gekommen bin. Anscheinend bin ich in einem Paralleluniversum gefangen, in der wir alles programmieren anstatt es einfach zu machen. Programmiersprachen \u00fcberall um mich herum. Was zum [&hellip;]<\/p>\n","protected":false},"author":486,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[10841],"tags":[486,21184,21183,10837,21138,21182],"class_list":["post-686","post","type-post","status-publish","format-standard","hentry","category-campus-aktuell","tag-informatik","tag-java","tag-karsten-holscher","tag-mzh","tag-programmieren","tag-softwareprojekt"],"_links":{"self":[{"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/posts\/686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/users\/486"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/comments?post=686"}],"version-history":[{"count":2,"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/posts\/686\/revisions"}],"predecessor-version":[{"id":16393,"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/posts\/686\/revisions\/16393"}],"wp:attachment":[{"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/media?parent=686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/categories?post=686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.uni-bremen.de\/eule\/wp-json\/wp\/v2\/tags?post=686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}