Changes for page Writing and Grading Theses
Last modified by Niklas Rentz on 2023/10/10 10:45
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -72,13 +72,13 @@ 72 72 73 73 = Implementations = 74 74 75 - The firstruleof your implementation is:Thesecondruleofyour implementationis: **"Nocrashes!"**Regardless of what your codedoes andregardless of what theuserdoes,your implementation shouldneithercrashnor freeze. Wheneveryoumakeassumptions,beuretoexplicitlycheckthem. Iftheyarenotmet, yourcodeshouldgenerate(useful!)errormessagesinstead of crashingandtheuser should beable tocontinueworkingwithit.75 +Erste Regel: **"No Crashes!"** Egal was Ihr System tut und welche Nutzereingaben geschehen, die Implementierung sollte nicht abstürzen oder einfrieren. Wo Annahmen gemacht werden, sollten diese explizit überprüft werden. Im Falle der Nichteinhaltung sollte eine brauchbare Fehlermeldung generiert werden, und der Anwender sollte weiter mit der Implementierung arbeiten können. 76 76 77 - Sinceyou're workingin an academiccontext,youwillhave lessresources(lesstime,inparticular)available than ina commercialsetting.Also,yourworkprobablywon'thavetocompetewithcommercialapplications.Itfollowsthateverythingyoudevelopwill beless comprehensiveand will haveless features than acommercialproduct.Whatdoesn'tfollowisatyourimplementation shouldbe lessmeticulous or lessdocumentedthan inaprofessionalsetting.Quitethecontrary,infact: commercially developedcode oftensuffersfromtightdeadlines,theeedoaddnewfeatures,andat timesa certain ignorance.Youimplementation,ontheotherhand,issupposedtobeyour masterpiece.Itshould reflectwhatyou'recurrentlycapableof. Evenhoughyour softwarewon'tauseconsiderable economical damageorkill people,itprobably won't exist in isolation.Itwillmuchratherbe partoftheKIELERproject,whichotherpeoplearesupposedto use ordevelopfurther.Thequality (andgrade) ofyour thesiswill be judged inpartbasedonyourimplementation. Sincehisisthecase,make use of thefactthatyouradviserprobablyhas muchmorexperiencewritingcodethanyou do.Askhimorhertoreviewyourcode andto giveyoufeedbackonhowtoimprove.77 +Generell: Ihre Arbeit wird sehr wahrscheinlich auch einen praktischen Teil enthalten, in welcher Sie Software oder Hardware entwickeln oder erweitern sollen. Das akademische Umfeld Ihrer Arbeit bedeutet in der Regel, dass für diese Entwicklung weniger Ressourcen - insbesondere zeitliche Ressourcen - als in einem kommerziellen Umfeld zur Verfügung stehen, und dass sich Ihre Arbeit nicht am Markt behaupten muss. Die Konsequenz daraus ist, dass Ihre Arbeit in der Regel weniger umfangreich sein sollte und weniger Features bieten sollte als ein kommerzielles Produkt. Die Konsequenz ist nicht, dass Sie ihre Implementierung weniger sorgfältig vornehmen sollen, oder schlechter dokumentieren sollen, als dies in einem professionellem Umfeld der Fall wäre. Im Gegenteil - während bei kommerziellen Produkten der Termindruck, die Notwendigkeit zu ständigen Neuentwicklungen, und zum Teil eine gewisse Ignoranz auf Kunden- und/oder Entwicklerseite den Qualitätsstandard senken können, sollte die von Ihnen hier erstellte Implementierung Ihr „Meisterstück“ sein, welches zeigt, wozu Sie (im positiven Sinne) fähig sind. Es gilt hier zwar, dass Produktfehler keinen erheblichen wirtschaftlichen Schaden verursachen können oder gar Menschenleben gefährden können; jedoch ist auch hier Ihre Arbeit in der Regel nicht isoliert und „nur“ Teil Ihrer Ausarbeitung, sondern etwas, was andere anwenden und weiterentwickeln sollen. Die Qualität (und Benotung) Ihrer Arbeit wird (unter anderem) an der Qualität Ihrer Entwicklung gemessen. 78 78 79 - Let'slook at an example.Supposeyourhesisisaproof of concept.Thismeansthat youshouldconstrainthegoalsofyourthesis (**inaccordancewithyour adviser**) toawell-definedsubsetof the problemyou'retackling. The endusershouldbe wellaware ofwhatyourimplementationcando and whatitcannotdo.A reasonableconstraint couldforinstancebe:"Thetransformationonly worksforot for//valued signals//.Hierarchy-crossingtransitionscannotbedrawn."Anunreasonable constraintcouldbe:"Sometimes,addinga stateworks;othertimes,thesoftwarecrashes." If you notice whileworking on your implementation that youwon't beable tomaketaingoals, talkto your adviser. Together,you will constraintheproblemfurther.Thiswillallow youtosolve themoreconstrainedproblemproperlyinsteadofnot solvingthemoregeneralproblematall. You colleaguesorsuccessorswillbeladtobeabletostart fromasmaller,butwell-developedcode baseandaddfeaturestoitinsteadofhavingto trytogetyourcodeoareasonablequalitystandard—orthrowingitaway andstartingover.79 +Zur Verdeutlichung: wenn Ihre Arbeit eine Machbarkeitsstudie (//proof of concept//) sein soll, bedeutet dies, dass Sie Ihre Arbeit **in Absprache mit dem Betreuer** auf eine wohldefinierte Teilmenge des Gesamtproblems einschränken sollen. Es sollte für den Anwender klar erkennbar und vorhersagbar sein, was Ihre Implementierung leistet und was nicht. Sinnvolle Einschränkungen können zum Beispiel sein: „die Transformation betrachtet nur //pure signals//, keine //valued signals// ... Es können keine hierarchieübergreifenden Transitionen gezeichnet werden“. Keine sinnvolle Einschränkung ist: „Mal funktioniert das Einfügen eines Zustands - mal stürzt das System ab“. Wenn im Laufe Ihrer Implementierungsarbeit ersichtlich wird, dass bestimmte Implementierungsziele nicht erreicht werden können (aufgrund falscher Einschätzung des Problems, oder aufgrund schlechter Ressourcenplanung), sollte sofort mit dem Betreuer abgesprochen werden, wie das Problem sinnvollerweise eingeschränkt werden könnte; es sollte nicht zu einer schlampigen Entwicklung führen. Schließlich gilt: es ist für etwaige Teamkollegen/Nachfolger von Ihnen eine wesentlich dankbarere Aufgabe, auf Ihrer kleinen, sauber entwickelten Arbeit aufzusetzen und diese um neue Features zu erweitern, als zu versuchen, Ihre große, defekte Arbeit auf einen brauchbaren Qualitätsstandard anzuheben - oder diese ganz wegzuschmeißen und von vorne anzufangen. 80 80 81 - Thebottomline:write cleanandpropercodehat adheresto our codingguidelines anddocumentit.Thequalityandthereadabilityofyourcodeandof yourdocumentationwillinfluenceyourgrade.81 +Grundsätzlich gilt: Die Software ist „sauber“ zu schreiben und zu dokumentieren, unter Beachtung eines evtl. vorhandenen Projekthandbuchs. Die Qualität und Leserlichkeit Ihrer Software sowie der Dokumentation geht in die Bewertung Ihrer Arbeit mit ein. 82 82 83 83 == Reviews and Ratings[[url:http://trac.rtsys.informatik.uni-kiel.de/trac/rtsys/wiki/Hinweise_Arbeiten#ReviewsundRatings||style="text-decoration: none;" title="Link to this section" shape="rect" class="anchor"]] == 84 84
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -947180 51 +9471804 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/RTSYS/pages/947180 5/Writing and Grading Theses1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/RTSYS/pages/9471804/Writing and Grading Theses