JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=e63315535d92c0e3e7885723a8f1babfMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Programm (Konstruktor) zu komplex-Fehler...

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 23.02.2007, 20:03    Titel: Programm (Konstruktor) zu komplex-Fehler... Antworten mit Zitat

Davon hab ich ja noch nie gehört - bis ichs heut selber fabriziert habe:

Visual Studio 2005 - Team Edition for Software Developers hat Folgendes geschrieben:
Warnung 1 CA1502 : Microsoft.Maintainability : .ctor weist eine zyklomatische Komplexität von 26 auf. Schreiben Sie die Methode neu, oder gestalten Sie sie um, um die Komplexität auf 25 zu reduzieren.


Ich habe in den Projekteinstellungen die Codeanalysefunktionen aktiviert (enthalten in Team Edition for Software Developers) - Da gibt es eine ganze Menge nützlicher Analysen, welche Code wirklich sicherer machen können - aber auch ein paar nerfige.
Aber dass ich zu große "zyklomatische Komplexität" erzeuge - WOW...
PS.: Was heisst "zyklomatische" in diesem Zusammenhang?
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 23.02.2007, 20:24    Titel: Antworten mit Zitat

Ich habe es so aufgefasst, dass zyklomatische Komplexität angibt, in welchem Grad dein Algorithmus bzw. deine Funktion nicht-deterministisch ist.

http://www.software-kompetenz.de/?15490
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 24.02.2007, 03:23    Titel: Antworten mit Zitat

lol, geiler Fehler...

Zyklomatisch, hmm - hat wohl irgendwas mit Schleifen zu tun?

Wäre interessant, deinen Konstruktor mal zu sehen Cool
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 24.02.2007, 09:37    Titel: Antworten mit Zitat

Nicht direkt, eher der Grad der "Uneindeutigkeit", sprich, wenn du dir den möglichen Ablauf der Funktion als Graphen vorstellst, gibt es einfach zuviele Knoten mit zuvielen potenzielle Entscheidungswegen. Es ist eben in gewisser Weise nichtdeterministisch, abhängig von verschiedenen Parameter etc.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 25.02.2007, 09:06    Titel: Antworten mit Zitat

GreveN hat Folgendes geschrieben:
Nicht direkt, eher der Grad der "Uneindeutigkeit", sprich, wenn du dir den möglichen Ablauf der Funktion als Graphen vorstellst, gibt es einfach zuviele Knoten mit zuvielen potenzielle Entscheidungswegen. Es ist eben in gewisser Weise nichtdeterministisch, abhängig von verschiedenen Parameter etc.

Und das mag die CPU wieder garnicht, so von wegen jump prediction...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 26.02.2007, 07:29    Titel: Antworten mit Zitat

In dem Konstruktor habe ich einen kleinen Parser für bestimmte Textdateien eingebaut... In Abhängigkeit, ob dieser Parser vernünftig durchläuft, wird ein Objekt der Textdatei erzeugt.
Sicherlich könnte ich das Ding auf einige Subfunktionen ausweiten und damit diese Komplexität verringern - aber im Moment ist es nebensächlich, da er ja so funktioniert, wie erwartet...
In der MSDN steht ja auch was von:
25 - Warnung
50 - Kritische Warnung
75 - Fehler
100 - Kritischer Fehler
Meine Funktion hat den Wert 26 - also noch nicht wirklich zuuuu viel...
Wenn ich Zeit hab, schreib ich die Funktion mal um^^
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 26.02.2007, 14:44    Titel: Antworten mit Zitat

Kann das dem Compiler nicht egal sein, wie komplex der Code ist???
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 26.02.2007, 14:48    Titel: Antworten mit Zitat

Wieso? Er kann dich doch warnen, wenn negative Laufzeitfolgen zu erwarten sind...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 26.02.2007, 15:06    Titel: Antworten mit Zitat

Zitat:
75 - Fehler
100 - Kritischer Fehler


Geht dann doch etwas über eine Warnung hinaus, wobei man sich da natürlich wirklich sorgen machen sollte ob man das Prinzip von OOP nicht missverstanden hat xD
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 26.02.2007, 15:21    Titel: Antworten mit Zitat

Ja, aber AFE-GmdG hat ja auch "nur" einen Wert von 26. Etwas schleierhaft ist es mir zugegeben aber auch.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 26.02.2007, 16:29    Titel: Antworten mit Zitat

Nochmal zur Aufklärung der ganzen Geschichte, da einige hier (berichtigt mich, wenn ich falsch liegen sollte) das "Problem" nicht ganz verstanden haben:
Ich habe einen Konstruktor einer Klasse programmiert, der einen Textfileparser enthält (hatte ich noch nicht erwähnt). Der Konstruktor erstellt mir also ein Objektorientiertes Modell dieser Textdatei, auf das mein weiterer Code aufbaut.
Ich habe zusätzlich eine Option "Code Analyse" eingeschaltet. (Diese Option gibt es erst ab der Team Edition for Software Developers-Version des Visual Studios 2005, welche ich auf meiner Arbeit verwende)
Diese Option analysiert den Quellcode auf mögliche Sicherheitsprobleme, negative Laufzeitverhalten und allgemein "schlechten" Programmierstil (nach Microsoftangaben "schlecht")
Eine dieser Prüfungen war diese zyklomatische Komplexität - und die ist mit 26 eben höher als 25, was zu einer Warnung führt.
Der Code an sich ist schon in Ordnung, er funktioniert (für meinen Gebrauchsfall auch schnell genug) und ich habe kein weiteres Problem mit ihm. Ich habe diese Warnung hier nur deswegen gepostet, weil ich sie lustig fand - es war für mich das erste mal, dass der Compiler mir sagte, ich programmiere zu komplex...
Wenn ich Zeit habe und mir den Parser nochmal vornehme, dann kann ich diese Komplexität sicherlich noch senken - aber im Moment belasse ich die Warnung einfach bei...

MFG, AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 26.02.2007, 17:18    Titel: Antworten mit Zitat

D.h, dass Fehler kommen liegt nur an der eingeschalteten Code-Analyse? Das ist dann sowas wie "Warnungen als Fehler"?
Ich meine, ist ja auch sinnvoll, bzw. kann sinnvoll sein.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 26.02.2007, 17:46    Titel: Antworten mit Zitat

Welcher Fehler?
Zitat:
Warnung 1 CA1502
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 26.02.2007, 18:40    Titel: Antworten mit Zitat

GreveN hat Folgendes geschrieben:
Welcher Fehler?
Zitat:
Warnung 1 CA1502

Jonathan bezieht sich hierdrauf:
AFE-GmdG hat Folgendes geschrieben:
I[...]
In der MSDN steht ja auch was von:
25 - Warnung
50 - Kritische Warnung
75 - Fehler
100 - Kritischer Fehler[...]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 27.02.2007, 07:26    Titel: Antworten mit Zitat

Ab einer Komplexität von 75 wird aus der Warnung tatsächlich ein Fehler, der trotzdem nur mit eingeschalteter Codeanalyse erzeugt wird. Die Codeanalyse wird aber erst NACH erstellung des Codes vorgenommen (Wahrscheinlich auf IL-Ebene) weshalb man das Programm dann trotz Fehler ausführen kann...
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum