System- und Softwareentwurf



  • Hallo liebe Forum- Mitglieder,

    ich habe eine ganz allgemeine Frage. Ich hoffe, ich kriege anständige Antworten.

    Ich will eine Software in C++ schreiben.
    Dafür möchte ich ein System- und Softwareentwurf erstellen, weiss aber nicht, wie sowas auszusehen hat.
    Also ganz grob, was muss alles in Systementwurf rein und was in Softwareentwurf.

    Ist es ansatzweisse richtig, wenn ich als Systementwurf beispielsweisse Use Cases nehme und die Abläufe der Funktionen ganz grob beschreibe.
    Bei Softwareentwurf dann Klassendiagramme benutzen?
    Wäre ich so auf der sicheren Seite? Welche Punkte könnte ich für das Entwurf noch miteinbringen?

    Freue mich über jede Antwort.

    Danke im Voraus

    mfg



  • giresunlu88 schrieb:

    Ich will eine Software in C++ schreiben.
    Dafür möchte ich ein System- und Softwareentwurf erstellen, weiss aber nicht, wie sowas auszusehen hat.

    Warum willst du es dann tun?



  • Weil man normallerweisse mit Entwürfen anfängt und nicht einfach so los programmiert. Ich würde gerne diesmal mit Systementwürfen anfangen.

    Wäre sehr dankbar, wenn ihr hilfreiche Beiträge für mich habt.



  • Schreib detailliert auf was das Programm tun soll. Use cases sind manchmal hilfreich, aber oft oberflächlich und unvollständig.
    Wenn das Programm irgendwelche Klassen von Objekten enthalten soll kannst du dir dafür ein Klassendiagramm überlegen, aber das hat mit class in C++ nichts zu tun, und ob dafür überhaupt class zum Einsatz kommt ist ein Implementationsdetail, was nichts mit dem Klassendiagramm zu tun hat.
    Man kann mit yED tolle Bildchen für den Programmablauf malen, aber das ist eigentlich nur sinnvoll wenn du jemand anderem erklären willst was das Programm tun soll.
    Wenn du einfach nur strukturiert und allein ein Programm schreiben willst erstell entsprechende Ordner/Filter in deinem Projekt (GUI, IO, Logik, ...) und schreibe zuerst die Header mit allen wichtigen Funktionen. Nachdem dieses Gerüst steht kannst du dich um Detailkram wie Bibliotheken, Vererbung und Konventionen für Fehlerbehandlung kümmern und nach und nach die Headerfunktionen implementieren.



  • vielen Dank ersteinmal fr die Antwort.
    Nebenbei das Programme yED ist ziemlich gut. Danke dafür

    nwp3 schrieb:

    Schreib detailliert auf was das Programm tun soll.

    Leichter gesagt als getan. Es muss doch richtlinien dafür geben?!



  • @giresunlu88
    Ja, es gibt "Richtlinien".

    Für funktionale Anforderungen kann man z.B. User-Stories schreiben.

    Für den Systementwurf sind aber auch die nicht-funktionalen Anforderungen wichtig.
    Dazu kann man z.B. die ganzen User-Stories durchlesen, und sich dabei immer die Frage stellen: "gibt es hier nicht-funktionalen Anforderungen?".

    Beispiel: es wird ein Tool zur Verwaltung einer Musikdatenbank beschrieben. Eine User-Story sei dabei die Beschreibung einer Suchfunktion - also Suche nach Interpret + Titel oder so.
    Zwei Punkte die einem dabei auffallen sollten:
    * Wie lange darf eine Suche max. dauern?
    * Mit wie vielen Songs muss die Musikdatenbank mindestens klarkommen?

    Dann hast du mal deine User-Stories die alle benötigten Funktionen beschreiben, und eine Liste von nicht-funktionalen Anforderungen.

    Anhand dieser Daten kannst du dann anfangen ein grobes Konzept zu entwerfen wie man das umsetzen könnte. Also den "Systementwurf" zu machen.
    Dazu gibt es dann wieder einige Standarddiagramme die man zeichnen kann wenn man will -- wobei nicht alle in allen Situationen Sinn machen.

    Für eine lokale Applikation die in kein grösseres System eingebunden ist werde ich kaum eine Übersicht der verschiedenen Server, Netzwerkverbindungen etc. brauchen.


Anmelden zum Antworten