sergej: Eine GROßE Sache!!! Programmieren in C - Quellcodeanalyse !!!

Beitrag lesen

Hi miriam :-),

In meinem Betrieb soll ich den Quellcode eines Programms analysieren und als UML bzw. ... und ich weiß nicht wo ich anfangen soll.

Da wo das Programm anfängt, bei main. Es gibt ein Prinzip von herrschen und teilen. Keine Funktion macht alles sondern teilt die Aufgaben (Funktionsaufrufe). Bei main bist Du richtig und dann geht's ab in die Tiefe. Zeichne auf wo main verzweigt auch wenn Du nicht genau weißt wozu, wichtig ist nur das wieso (Bedingung). Stück für Stück, Du mußt also nicht wissen wozu die Aufrufe dienen sondern warum sie geschehen. Das wozu erfärst Du in den nächsten Schritten, wenn Du die einzelnen Funktionen nach dem gleichen Prinzip analysierst und die Ursachen berücksichtigst.

super, versuche ich mal, hört sich gut an.

Es handelt sich um ein Programm, das *.tif Dateien in *.dxf umwandelt. (das nur grob, da ist mehr dran).

Das ist schwer, darum denke ich dass die entspr. Leute nur wissen wollen was geht und was nicht geht sowie das warum. Ich denke aber auch das die entspr. Leute nicht wissen wollen wie das Programm diese Aufgabe im Detail meistert.

hm. Ich soll den "Zuhörenden" schildern, anhand von Struktogrammen oder UML wie das Programm aufgebaut ist und wie man dieses verändern kann. Ich denke es werden Fragen kommen wie : Wie hängt diese *.c Datei mit der anderen zusammen. (und es gibt ja 24 Stück davon) und sowas muß ich eben erklären können :-( Und um das analysieren zu können braucht man mindestens gute Programmierkenntnisse, die ich nun mal "noch" nicht habe.

Die Aufgabe ist, - zu beschreiben, wie dieses Programm funktioniert und was es genau macht. Geschrieben wie gesagt ist es in C.

Aha, ich denke dass Du etwas falsch verstanden hast. Niemand will von dir einen Programmaufbau sehen. Du sollst die Wirkungsweise erklären.

Die wollen schon etwas mehr wissen, als die Bedienung des Programms, sprich was man eingeben muss und was als Ausgabe kommt. Zu detailliert denke ich auch nicht. Das wäre schon nicht mehr ungerecht sondern pervers.

denn sowas :

-------------------------------------------------------------------
module = (module == NULL) ? "tifflib" : module;
sprintf(header_str, "- %s warning :", module);
if ((buffer = (char *) malloc(strlen(header_str) + strlen(fmt) + 2)) == NULL)
return;
sprintf(buffer, "%s %s\n", header_str, fmt);
log_vprintf(buffer, ap);
free(buffer);

------------------------------------------------------------------
ist verwirrend  und deprimierend. :-(

Danke für die Mühe.

S.K.