Diplomarbeit - Architekturentwurf



  • Hallo,
    ich studiere im Bereich der Naturwissenschaften und habe im Rahmen meiner Diplomarbeit die Aufgabe, eine Software zu entwickeln. D.h., die Arbeit gliedert sich in einen naturwissenschaftlichen Teil und einen, der die Entwicklung betrifft.

    Nun will ich das Ganze auch ordentlich umsetzen und mache mir zurzeit bzgl. der Vorgehensweise bei der Softwareentwicklung Gedanken sowie auch bzgl. der Gliederung der Arbeit.

    Hättet ihr hierzu Ratschläge, wie beim Entwurf einer Softwarearchitektur vorzugehen ist?

    Ich habe mir folgende Punkte überlegt:
    Anforderungsdefinition, Kriterien für den Entwurf, verwendetes Programmierparadigma (OOP), Entwurf der Basisklasse (mit UML Diagrammen), Use-Case Diagramme, verwendete Design-Patterns, Oberflächendesign

    Was meint ihr dazu? Gibt es zu diesem Thema gut verständliche und nicht ganz so überzogene Lektüre?

    MfG
    alumin



  • am wichtigsten ist wohl, dass du die verwendete Programmiersprache halbwegs gut kannst. Also dass du bei C++ RAII, STL und ähnliches kennst. Bei Java gibts sicher wieder andere Dinge, auf die man achten sollte, bei Python wieder andere Dinge.

    Ansonsten kann ich ein Buch über Design Patterns (z.B. von Erich Gamma) empfehlen, bringt aber erst was wenn man ein bisschen Erfahrung hat, ansonsten klingt das alles recht theoretisch.

    Aus dem Berufsleben kann ich dir sagen, dass es nicht immer zielführend ist, alles bis ins kleinste zu analysieren, da bei der Implementierung eigentlich immer noch gewisse Änderungen nötig sind.

    Mach also ein grobes Klassendiagramm (UML), überleg dir die Anwendungsfälle, überleg dir vor allem welche Sprache und welches Framework du verwenden willst, verwende da und dort mal einen Design Pattern wenn es den passt.
    Achte aber darauf, dass du flexibel bleibst. Es ist ganz normal, dass du nach einiger Zeit gewisse Dinge ändern wirst.



  • Mein Tipp: Entwirf nicht explizit, sondern baue einfach das Programm. So, daß es gut wird.
    Und dann kannste nachträglich gerne so tun, als hättest Du vorher geplant, um Seiten zu füllen. Besorg Dir genügend Bücher rechtzeitig, Fernleihe kann schonmal sechs Wochen dauern.
    Beachte auch, daß die anscheinend üblichen Methoden wie UMP-Planung für einfache betriebliche Anwendungen passen und bei naturwissenschaftlichen eher als Witznummer durchgehen.



  • Erstmal ist es wichtig, dass du die Anforderungen genau kennst und dir moeglichst genau aufschreibst. Dann hast du schonmal eine Liste mit Dingen, die du unbedingt machen musst und kannst dich daran weiterhangeln.



  • Die Programmiersprache steht fest und soweit beherrsche ich sie auch.

    Mir ist es allerdings sehr wichtig, dass die Qualität der schriftlichen Ausarbeitung hoch ist. Mein Betreuer legt nämlich Wert auf eine angemessene Entwicklungsplanung.

    So in etwa will ich das auch machen, volkard. 😃
    Aber mir ist noch nicht ganz klar, welche einzelnen Planungs- und Entwurfsschritte ich in die Diplomarbeit packen soll.



  • Ich finde das bei einem naturwissenschaftlichen Programm etwas komisch... Ich habe Informatik studiert und nichts dergleichen reingepackt. Das wär mir auch nicht richtig vorgekommen, wenn das jemand von mir verlangt hätte. Das ist eher was für Wirtschaftsinformatiker, um sowas ihrem Chef vorzulegen.
    Vor allem wie gesagt bei einem wissenschaftlichen Programm. Da gibts nicht arg viel, was man als Architektur bezeichnen könnte. Machs wie volkard gesagt hat, schreib einfach ein "gutes" Programm. Anforderungsanalyse macht natürlich noch Sinn, das kannst du vorher machen. Aber UML Diagramme und Use Cases find ich schon grundsätzlich selten nützlich. Vielleicht, wenn dir nicht klar ist, was von dir genau verlangt wird und du versuchst, das zusammen mit dem Kunden zu erarbeiten.



  • Der Betreuer will es halt so. Wenn der in 4 Wochen mal die Planung sehen will, um sicherzugehen, daß alles glatt läuft, kann alumin schlecht dastehen und sagen "Nö, die Nerds haben gesagt, da macht man keine explizite Planung." Das gibt ne 4. Er muss was hinzaubern. Also macht er eine Vorzeigeplanung. Und am Ende korrigiert er sie dahingehend, daß die Planung zum fertigen Programm passt.

    Also tun wir mal so, als sei UML was Großartiges und das Wasserfallmodell relevant. Und ich halte mich raus und widerspreche in diesem Thread nichtmal Prof84. 🤡



  • volkard schrieb:

    Mein Tipp: Entwirf nicht explizit, sondern baue einfach das Programm. So, daß es gut wird.
    Und dann kannste nachträglich gerne so tun, als hättest Du vorher geplant, um Seiten zu füllen. Besorg Dir genügend Bücher rechtzeitig, Fernleihe kann schonmal sechs Wochen dauern.
    Beachte auch, daß die anscheinend üblichen Methoden wie UMP-Planung für einfache betriebliche Anwendungen passen und bei naturwissenschaftlichen eher als Witznummer durchgehen.

    Eigentlich wird doch bei jedem Projekt während der Implementierung schnell klar, das was fehlt, so nicht geht oder ganz anders gewünscht war. Deswegen reicht es in meinen Augen aus, ein grobes Grundgerüst zu planen. Der Rest ergibt sich 😃 Gut, nicht ganz so extrem, aber anstatt jedes Detail zu planen (was dann nur Zeit kostet, da doch nicht gewünscht/möglich/usw.) lieber grob planen, entwickeln und vor allem den Mut haben, das Design immer mal wieder anzufassen und gerade zu ziehen. Und beim Entwickeln immer zuerst die schwierigen Stellen zuerst lösen (sonst wir das ganze Projekt eh nix). Beispiel: Ein Treiber für einen Framegrabber ist zu implementieren. Da ohne Framegrabber nix läuft, muss der zwingend zuerst laufen. Und danach möglichst nicht mehr angefasst werden.


Log in to reply