Eure Erfahrunegn mit Programm Dokumentation

BloodyMary

BloodyMary

Pornophon
Hallo,
ich denke, das viele von euch schon mal irgendwas programmiert haben und sei es nur ein Hallo Welt Programm. Ich hatte in der Schule eine Diskussion mit meinem Lehrer darüber ob Programm Ablaufpläne und Strukturgramme wirklich nötig seien. ich glaube nicht das ein Quellcode der mehrere Tausend Zeilen umfasst in einem Strukturgamm sinnvoll darstellbar ist. Geschweige denn das sich jemand die mühe macht so etwas zu erstellen.
Jetzt hab ich mich gefragt, ob z.B. für so komplexe Programme wie Firefox, oder den Linux Kernel ein Strukturgramm existiert, mit jeder if - then frage und jeder einzelnen Schleife.

Wer von euch hat Erfahrung mit größeren Programmierprojekten in mit mehr als 2 entwicklern?
Ist es Gang und Gebe bei mehreren Entwicklern ein Strukturgramm an zu legen?
Falls es für Firefox oder Den Linux Kernel eins geben sollte, schickt mir mal bitte einen Link, würd mich ma interessiern wie das asschaut.
 
Ich weiss nicht genau, was ein Strukturgramm ist, ich vermute mal, eine Art graphische Struktur fuer die Funktionsweise eines Programmes.

Waehrend vermutlich nicht jedes einzelen if/then dargestellt ist, denke ich, dass gerade grosse Projekte ohne eine vorherige strukturelle, abstrakte Ausarbeitung ueberhaupt nicht moeglich waeren. Und aus eigener Erfahrung wuerde ich sagen, dass man wesentlich schneller fertig ist, wenn man vorher auf dem Reissbrett einen Plan erstellt - leider halte ich mich selber selten daran, so dass ich mich beim Programmieren oft im Kreis drehe und nochmals neu anfange.
 
Hallo,

meiner Erfahrung nach ist eine vernueftige Modellierung via UML ab einer gewissen Projektgroese und bei mehreren Entwickler sinnvoll. Erst recht, falls die Entwickler "verteilt" arbeiten.

Strukturgramme in denen jede if-, case- ... Verzweigung auftauchen sind unnoetig (liest eh keiner). Eine vernueftige Aufteilung in gekapselte Module mit wohldefinierten Verhalten ist angebrachter. Die wirkliche Implementierung ist eher uninteressant und dem eigentlichen Entwicker ueberlassen.
 
hi,

ich habe auch keine Ahnung, was genau ein Strukturgramm sein soll, Wikipedia kennt's jedenfalls auch nicht. Aber es klingt nach dem was ich als flowchart oder flow diagram kenne (http://en.wikipedia.org/wiki/Flowchart). Falls du das meinst, selbstverstaendlich wird sowas nicht fuer jedes Programm als ganzes erstellt, nur eben fuer die relevanten Teile des Programms, z.B. zur Beschreibung eines bestimmten Algorithmus.

Aber das was du da ansprichst ist ein elementarer Teil von software engineering und software design. Wohl niemand bei klarem Verstand wuerde versuchen ein groesseres Programm ohne vorherige Planung zu programmieren. Dafuer hat sich in den letzten jahr(zehnt)en UML als Standard durchgesetzt. Fuer kleinere Projekte, z.B. Uni Projekte, mit etwa 10.000 - 20.000 Zeilen source code mag es zur Not noch gehen einfach drauflos zu programmieren, aber wenn es um groessere Anwendungs Programme geht, kommt man schnell in den Bereich von mehreren Millionen Zeilen source code, wo du ohne vorherige Planung vermutlich schon nach wenigen Wochen frustriert aufgeben wirst ;)

So als Beispiel, fuer ein kleines Uni Projekt, an dem wir mit 6 Studenten 3 Wochen lang vollzeit gearbeitet haben (6 - 9 stunden am Tag), haben wir etwa 8000 Zeilen code in rund 50 Klassen und 8 Paketen geschrieben. Jetzt stell dir vor was 20 Programmierer in einem Jahr vollzeit Arbeit erledigen ;)
Doch selbst fuer so kleine Projekte bietet sich ein gewisses Mass an Planung an, weil man dann wesentlich effektiver arbeiten kann.
Allerdings muss man dabei auch immer die Verhaeltnismaessigkeit im Auge behalten, es macht eben z.B. keinen Sinn, fuer jede kleine Klasse ein flow diagram anzulegen, oder auch nur fuer ein Klassen diagramm alle moeglichen Beziehungen mit einzubauen. Man muss sich auf das wesentliche Beschraenken.

Aber wie gesagt, das ist ein ziemlich grosser Bereich von Software Entwicklung, ueber den schon hunderte von Buechern geschrieben worden sind, z.B. Code Complete oder Software Project Survival Guide von Steve McConnell, oder Fundamentals of Object-Oriented Design in UML von Meilir Page-Jones.

mfg,
bytepool
 
Zuletzt bearbeitet:
Hm also ich hab eine Lib geschrieben und dokumentiere sie gerade mit doxygen. Ein Ablaufplan besteht nur über nen kleinen Teil auf einem Blatt Papier.
 
ich habe auch keine Ahnung, was genau ein Strukturgramm sein soll, Wikipedia kennt's jedenfalls auch nicht.

Es heisst auch Struktogramm. Da hat der OP geschlampt. ;)

Ich persoenlich denke nicht, dass es so etwas bei groesserer Software so detailliert gibt, wie du fragst. Es ist ueberfluessig, "jede if - then" in ein Struktogramm zu packen, da blickt doch keiner durch.
 
Es heisst auch Struktogramm. Da hat der OP geschlampt. ;)

ah, ok, das kennt wikipedia wieder ;)
Aber ich denke da steht ja eigentlich auch alles wichtige auf der wikipedia seite: Praxis Relevanz geht gegen Null. Da kann man den Algorithmus ja besser direkt als pseudo oder quell code aufschreiben...

mfg,
bytepool
 
Zurück
Oben