Erstellen einer Programmdokumentation [was: - - - Programmdokumentation ...]



  • kingruedi schrieb:

    Es gibt kein einheitliches Format für Programmdokumentationen. Du musst wohl deinen Lehrer einfach mal Fragen.

    Das würde ich ja zu gerne, aber wie gesagt, der ist voll das Ars......, der sagt "Haben wir doch alles aufgeschrieben und ich hab euch doch sogar die Mappe gegeben, was willst du mehr?! Ich kann dir ja nicht die ganze Arbeit machen!", obwohl das was wir aufgeschrieben haben nicht wirklich hilfreich ist und die Mappe... na ja, von zwei bis drei Minuten reingucken hab ich das nicht alles im Kopf wie das sein soll...

    kingruedi schrieb:

    Aber benutz vernünftige Topics! Unnötige Sonderzeichen und Worte wie "HILFE" haben in einem Topic nichts zu suchen (Das du Hilfe suchst ist ja klar, daher postest du hier im Forum).

    Okay, werde ich mich in Zukunft dran halten!

    Artchi schrieb:

    Hem, also eine Programmdokumentation ist das nicht was ihr da machen sollt. OK, die Definition ist bei dem Bergriff "Programmdoku" sicherlich schwammig... ist leider so. Das was ihr machen sollt, ist wohl eher ein Lastenheft. Das wird aber für jedes Projekt gebraucht, egal ob Maschinenbau, Automobilbau etc. pp.

    Tja unser Lehrer hat auch echt keine Ahnung was er da macht, der kann noch nicht mal richtig Programmieren (ich frag mich echt wie der Lehrer geworden ist), der kann nicht mal bei den billigsten Aufgaben helfen, verdrückt sich dann immer und tut so als hätte er was Wichitgers zu tun, wenn man dann den Fehler gefunden hat, kommt er und meckert rum wie man nur so dumm sein kann... der Mann ist echt net normal.

    Artchi schrieb:

    Da gibts eigentlich nicht viel zu erklären. Man schreibt da rein, worum es erstmal grob geht. Dann schreibt man rein, welche Technik genutzt werden soll (C++? Java? Netzwerk? Datenbank?). Und dann gehts langsam an die Details. Das ganze einfach in Kapitel aufteilen. Dann kann man noch Usecases schreiben, d.h. spezielle Arbeitsvorgänge (User macht diese und jene Eingabe, in dem und dem Bildschirm, und bekommt dieses Ergebnis, wenn er dies und das richtig gemacht hat, ansonst gibts ne Fehlermeldung).

    Fertig.

    Danke, das hilft mir schon mehr, also jetzt hab ich wenigstens mal einen vernümpftigen Ansatz mit dem ich anfgangen kann. Ich bin nur noch auf der Suche nach so einem Lastenheft das ich quasi als Muster nehmen kann. Wir machen das ganze in C++, es wäre aber eigentlich egal was für eine Programmiersprache es wäre, ich bräuchte es ja nur um zu vergleichen und mir "Inspiration" zu holen. Die Mappe die wir von unserem Lehrer bekommen hatte, war ca 25-30 Seiten lang, da war das Programm selber aber riesig (ich glaub 6-8 Seiten Listing und Erklärung des Listings), ich denke der will jetzt so ungefähr 10-15 Seiten, ich hab aber echt keine Ahnung wie ich so viel hinbekommen soll... Auf jeden Fall danke schon mal für das hier jetzt alles!



  • Wenn es um Programmdokumentation geht, also um die Beschreibung des Codes, dann mußt du dir www.doxygen.org anschauen. Das erstellt dir eine Doku aus vorhandenem Code.



  • Okay danke, hab das Programm mal ausprobiert, es hat bei mir aber nur die .cpp Datei zu einer Html gemacht, also bin aber auch nicht ganz klar damit gekommen? Für was ist das Programm jetzt eigentlich genau da? Also ich hatte den Eindruck das es alles nur zusammenfügt, aber weiß jetzt so nicht genau.
    Ich hab jetzt jedenfall mal das Programm fertig gemacht (nachdem unser Lehrer heute mal entlich so nett und uns gesagt wie die Aufgabe richtig geht) und auch schon Kommentare dazugefügt. Ich weiß aber nicht ob diese so jetzt richtig sind. Also wir haben das nie gemacht... Hier die C++ Datei:

    #include <iostream.h>
    #include <conio.h>
    #include <vcl.h>
    #include <stdio.h>
    
    int main()
    {
     int  e, f, h;                                         //Deklaration der Zahlenvariabeln
     char buchstabe[25], buchstabe2[5][5];                 //Deklarations der Arrayvariabeln (Ein- und Zweidimensional)
     f=1;
     cout<<"Geben Sie die zu verschluesselnde Nachricht ohne Leerzeichen ein(25 Buchstaben)!\n";      //Ausgabe eines Textes
     for (e=1;e<=25;e++)                         //Zählschleife die von 1 bis 25 hochzählt
            {
            buchstabe[e]=getch();                //Nicht-sichtbare Erfassung von einem Buchstaben
            cout<<buchstabe[e];                  //Ausgabe des vorher erfassten Buchstaben
            }
     for (e=1;e<=5;e++)                           //Zählschleife die von 1 bis 5 hochzählt
            {
            for (h=1;h<=5;h++)                   //Zählschleife die von 1 bis 5 hochzählt
                    {
                    buchstabe2[h][e]=buchstabe[f];    //Zweidimensionales Buchstabenarray wird mit den vorher eingegebenen Buchstaben gleichgesetzt
                    f++;                              //Variabel wir hochgezählt
                    }
            }
     cout<<"\n";                                      //Ausgabe einer Leerzeile
     for (e=1;e<=5;e++)                               //Zählschleife die von 1 bis 5 hochzählt
            {
            for (h=1;h<=5;h++)                        //Zählschleife die von 1 bis 5 hochzählt
                    {
                    cout<<buchstabe2[e][h];           //Ausgabe des zweidimensionalen Buchstabenarrays
                    }
            cout<<' ';                                //Ausgabe eines Leerzeichens
            }
     getch();                                         //Das Programm wartet auf eine Eingabe
    
      return 0;                                       //Das Programm wird beendet
    }
    

    Ich wäre über Verbesserungen (vor allem bei den Kommentaren weiß ich nicht ob die so richtig sind) sehr erfreut! Danke schon mal im Voraus!



  • Es tut mir leid, dass ich es dir sagen muss. Aber deine Kommentare sind alle unbrauchbar.

    Das liegt einfach daran, dass du in den Kommentaren versuchst die einzelne Zeile zu beschreiben. Aber jemand der deinen Quellcode liest, wird wissen was eine for-Schleife macht und wie eine Variablendeklaration aussieht. Der Sinn eines Programmkommentars ist es unverständliche Stellen zu dokumentieren und Funktionsweisen.

    An kleinen Beispielen ist es schwer eine Programmdokumentation zu zeigen (was wirklich zeigt, dass du einen sehr inkompetenten Lehrer hast. Da hätte mindestens mehrere Funktionen vorkommen müssen um Programmdokumentation etwas abgewinnen zu können).

    Ein Weg um deinen Lehrer zufrieden zu stellen und ein wenig was zu lernen, wäre es vielleicht. Wenn du dir vorstellst, die einzelnen for-Schleifen wären nicht lesbar für den Leser und du abstrahiert versuchst zu beschreiben was die Schleifen machen.



  • WTF???
    Was für Code ist das denn?
    Sowas willst du deinem Info Lehrer abgeben? Was ist das überhaupt für eine
    Programmiersprache - man siehe die Includes...

    B2T:
    Um doxygen zu benutzen sind die Kommentare "falsch", was es da alles zu beachten gilt
    steht eigentlich auf deren Website!
    Wenn dir Doxygen zu kompliziert ist, gibt es auch "leichtere"/schlankere Alternativen, auch auf
    der Doxygen Website!



  • So sollte man zwar nicht dokumentieren aber das ist bestimmt was der Lehrer will.



  • Naja, in der Schule sollen die Kommentare sicherlich zeigen, das der Schüler seinen Coder erklärt. Es ist sicherlich eine andere Situation als in Reallife-Projekten, wo solche Kommentare nicht gemacht werden. Man muß hier immer noch bedenken, das es um Schule geht.

    Wenn das Programm aber so klein ist, ist Doxygen natürlich völlig überdimensioniert. Ist ja mit Kanonen auf Spatzen geschossen.



  • Artchi schrieb:

    Naja, in der Schule sollen die Kommentare sicherlich zeigen, das der Schüler seinen Coder erklärt.

    Kenn ich selber, wenn wir in der Schule mal wieder richtig Hardcore JavaScript
    programmieren 😉
    Übrigens, Dank an ClouDtheStrifE den Kommentar für "Programmende" kannte ich noch
    nicht. Gibt bei uns Boni je mehr überflüssige Kommentare im Code sind. 🤡

    Wenn das Programm aber so klein ist, ist Doxygen natürlich völlig überdimensioniert. Ist ja mit Kanonen auf Spatzen geschossen.

    Eher mit Raketen auf Flöhe :p



  • kingruedi schrieb:

    Ein Weg um deinen Lehrer zufrieden zu stellen und ein wenig was zu lernen, wäre es vielleicht. Wenn du dir vorstellst, die einzelnen for-Schleifen wären nicht lesbar für den Leser und du abstrahiert versuchst zu beschreiben was die Schleifen machen.

    Meinst du etwa so in der Art? Falls nicht, könntest du mir vielleicht ein Beispiel zeigen? Also eine kleine andere Aufgabe mit Kommentaren oder so etwas in der Art? Das wäre sehr hilfreich!

    for (e=1;e<=25;e++)
            {
            buchstabe[e]=getch();                // Es werden hintereinander 25 Buchstaben abgefragt, die jeweils in einem Array zwischengespeichert werden
            cout<<buchstabe[e];
            }
     for (e=1;e<=5;e++)
            {
            for (h=1;h<=5;h++)
                    {
                    buchstabe2[h][e]=buchstabe[f];    //Die vorher zwischengespeicherten Arrays werden in einer bestimmten Zahlenreinfolge auf ein zweidimensionales Array übertragen
                    f++;
                    }
            }
    


  • IMO bringt das so nichts.
    So wie du es zuerst hattest, dass wirds schon sein was dein Lehrer erwartet.

    Es bringt doch so nichts und wie man "richig" kommentiert, dass guckst du dir dann
    an, wenn du Kommentarwürdigen Code schreiben kannst 👍



  • immigrant schrieb:

    Es bringt doch so nichts und wie man "richig" kommentiert...

    Ich würde aber gerne "richTig" kommentieren, am liebsten würde ich meinen Lehrer damit ja bloßstellen, zumahl wir auch bald wahrscheinlich eine Besprechung mit dem Vertraueslehrer haben wegen dem, weil das so wie der den Unterricht und seine Arbeiten macht echt nicht weiter gehen kann. Ich würde auf jeden Fall mal gerne sehen wie es denn richtig ist, weil es mir später ganz bestimmt falsch nichts bringt!



  • Was ist das eigentlich für ein Unterricht? Ist das Berufsschule für Fachinformatiker? Oder ist es ein Unterricht in einer Allgemeinen Schule?

    Wenn es letzteres ist, muß ich sagen, kann der Lehrer wahrscheinlich am wenigsten dafür. Bei dem Lehrermangel und dem was die Kommunen heute einsparen, könnt ihr wahrscheinlich froh sein, überhaupt einen gefunden zu haben, der sich bereit erklärt den Unterricht zu machen. Und ganz ehrlich, sooo wichtig ist das nun auch nicht in einer allgemein bildenden Schule.

    Wenn es aber eine Berufsschule für Fachinformatiker ist, sieht das schon anders aus. Da muß zwar kein Profi vorne stehen, aber der sollte schon mehr auf dem Kasten haben, als ein Lehrer aus einer allgemein bilden Schule. Ganz klar.



  • Es ist höhere Berufsfachschule für Informatik (HBFI)!



  • Ich denke von einem Lehrer erwartet man nicht so viel. Zum einen ist unterrichten, besonders auf einer "allgemeinen Schule" gar nicht so leicht und auf der anderen Seite haben die wenigsten Lehrer wirkliche Erfahrungen. Junge Lehrer werden oft "abgeworben" und daher sind viele Lehrer darauf angewiesen das Wissen in ihrer Freizeit nachzuholen. (Bedenkt das Durschnittsalter der meisten Lehrer)

    @ClouDtheStrifE

    //Die vorher zwischengespeicherten Arrays werden in einer bestimmten Zahlenreinfolge auf ein zweidimensionales Array übertragen

    Das beschreibt nicht wirklich was der Code macht. Welche Reihenfolge?



  • In Wirklichkeit würde man alles in kleine Funktionen aufteilen und dann nur über jede Funktion schreiben was sie macht. Durch gute Bezeichner kann sogar kommentieren ganz entfallen.



  • Meinst du eher so?

    for (e=1;e<=25;e++)
            {
            buchstabe[e]=getch();                // Es werden hintereinander 25 Buchstaben abgefragt, die jeweils in einem Array zwischengespeichert werden
            cout<<buchstabe[e];
            }
     for (e=1;e<=5;e++)
            {
            for (h=1;h<=5;h++)
                    {
                    buchstabe2[h][e]=buchstabe[f];    //Dich vorher zwischengespeicherten Buchstaben werden zeilenweise in ein zweidimensionales Array übertragen, immer nach 5 Buchstaben in einer Zeile geht es in die nächste Spalte weiter
                    f++;
    


  • Sorry, war nicht ganz korrekt ausgedrückt. Hier jetzt noch mal richtig:

    #include <iostream.h>
    #include <conio.h>
    #include <vcl.h>
    #include <stdio.h>
    
    int main()
    {
     int  e, f, h;
     char buchstabe[25], buchstabe2[5][5];
     f=1;
     cout<<"Geben Sie die zu verschluesselnde Nachricht ohne Leerzeichen ein(25 Buchstaben)!\n";
     for (e=1;e<=25;e++)
            {
            buchstabe[e]=getch();                // Es werden hintereinander 25 Buchstaben abgefragt, die jeweils in einem Array zwischengespeichert werden
            cout<<buchstabe[e];
            }
     for (e=1;e<=5;e++)
            {
            for (h=1;h<=5;h++)
                    {
                    buchstabe2[h][e]=buchstabe[f];    //Dich vorher zwischengespeicherten Buchstaben werden zeilenweise in ein zweidimensionales Array übertragen, immer nach 5 Buchstaben in einer Zeile geht es in der nächsten Zeile weiter
                    f++;
                    }
            }
     cout<<"\n";
     for (e=1;e<=5;e++)
            { 
            for (h=1;h<=5;h++)
                    {
                    cout<<buchstabe2[e][h];           //Das zweidimensionale Array wird nun spaltenweise ausgeben, immer nach 5 Buchstaben aus einer Spalte geht es in der nächsten Spalte weiter
                    }
            cout<<' ';
            }
     getch();
    
      return 0;
    


  • Hi!

    #include <iostream.h>
    

    Phu, wenn ich sowas schon sehe! 😮

    Sollt ihr tatsächlich nur den Quellcode kommentieren oder mit Struktogrammen und dergleichen Arbeiten?
    Der Lehrer wird dir dazu Auskunft geben können, würde ich mal meinen!

    grüße



  • David_pb schrieb:

    Sollt ihr tatsächlich nur den Quellcode kommentieren oder mit Struktogrammen und dergleichen Arbeiten?
    Der Lehrer wird dir dazu Auskunft geben können, würde ich mal meinen!

    Hi,
    eir sollen eine komplette Programmdokumentation machen, da ist der Hauptteil der Quellcode mit Kommentaren. Jedenfalls hat unser Lehrer uns nicht wirklich gesagt, was da sonst noch reinkommt.



  • Hi!

    Tatsächlich? Meiner Meinung nach ist der Haupteil nicht die Kommentierung des Programms sondern eher das was davor abläuft. Programmdesign etc... Und das passiert normal auf Papier oder virtuell, aber nicht im Quellcode.

    Aber da ich nicht weiß was der Lehrer fordert habe ich ja extra nochmals nachgefragt.

    grüße


Anmelden zum Antworten