Datum: | 2004-06-04 |
---|---|
Autor: | onp |
Typ | Wert |
---|---|
Dauer in Minuten | 100 |
LOC (ueberschlagen) | 671 |
Sekunden/Codezeile | 8.942 sec/LOC |
Gefundene Defekte | 11 |
Defekte/Zeitstunde | 6.6 |
Startpunkte | CmsObject.readFile() and CmsObject.readFileHeader() |
Ort: | DriverManager.readPathInProject() |
---|---|
Beschreibung: | Beim Lesen einer Datei werden alle uebergeordneten Verzeichnisse eingelesen und in einer Liste gespeichert (gecacht). Dies erschient ineffizient. |
Perspektive: | Leistungsverhalten |
Alternative: | Kompleten Pfad jeder Datei in der Datenbank speichern |
Defekt: | Kein Defekt |
Ort: | db.generic.CmsVfsDriver:1140 |
---|---|
Beschreibung: | Es wird eigentlich nur ein Ergebnis erwartet, aber es wird durch das gesamte gelieferte ResultSet iteriert. Es wird keine Meldung ausgegeben, sollte doch mal mehr als ein Ergebnis geliefert werden. Solch ein Fehler lieÃe sich nur schwer lokalisieren. |
Perspektive: | Wartbarkeit |
Alternative: | Fehlermeldung ausgeben, Ausnahem ausloesen |
Defekt: | Ja |
Ort: | db.generic.CmsVfsDriver:1152 |
---|---|
Beschreibung: | Ausnahme wird gefangen und gleich wieder ausgeloest. |
Perspektive: | Code-Guete, Ausnahmebehandlung |
Alternative: | Gar nicht erst fangen |
Defekt: | Ja |
Ort: | DriverManager |
---|---|
Beschreibung: | Keine Dokumentation fuer DriverManager. Aufgabe und Einordnung im Gesamtsystem ist unbekannt. |
Perspektive: | Wartbarkeit, Dokumentation |
Alternative: | Dokumentation hinzufuegen |
Defekt: | Ja |
Ort: | CmsFile.setFullResourceName() |
---|---|
Beschreibung: | CmsFile erlaubt das setzen des gesamten Pfadnames. AuÃerdem ist diese Methode public und sollte, wenn keine andere Moeglichkeit fuer das Setzen dieser Information zu finden ist, protected sein. |
Perspektive: | Code-Guete |
Alternative: | Andere Moeglichkeit finden fuer das Setzen des gesamten Pfades, oder setFullResourceName protected deklarieren. |
Defekt: | Kein Konsens |
Ort: | I_VfsDriver:403 |
---|---|
Beschreibung: | Ungewoehnliche Anordnung der Parameter im Vergleich zu anderen Methoden |
Perspektive: | Wartbarkeit, Benennung |
Alternative: | Anordnung aendern und konsisten halten |
Defekt: | Ja |
Ort: | DriverManager.readPathInProject():6276 |
---|---|
Beschreibung: | Wurzelverzeichnis wird zurueckgegeben, auch wenn ein leerer String uebergeben wird. |
Perspektive: | richtige Funktion und Logik |
Alternative: | Ausnahme ausloesen |
Defekt: | Ja |
Ort: | CmsPermissionSet |
---|---|
Beschreibung: | Kein information-hiding, BitSets sind oeffentlich. Keine Funktionalitaet die ein PermissionSet gebrauchen koennte. Diese Datenstruktur ist in der vorhandenen Form nur ein Behaelter. Konstanten, die mit Zugriffsschutz zu tun haben sind nicht in dieser Klasse enthalten. |
Perspektive: | Code-Guete, Datenstrukturen |
Alternative: | Funktionen (z.B. fuer Vergleiche) hinzufuegen, Konstanten nach CmsPermissionSet verlegen. BitSets private deklarieren. |
Defekt: | Ja |
Ort: | Allgemein |
---|---|
Beschreibung: | Allgemeine Ausnahmen werden ausgeloest anstatt spezieller Unterausnahmen |
Perspektive: | Benennung, Datentypen, Verstaendlichkeit, Ausnahme- und Randwertverhalten |
Alternative: | Spezielle Ausnahmen verwenden |
Defekt: | Ja |
Ort: | Allgemein |
---|---|
Beschreibung: | Ausnahmemeldungen werden mit unverstaendlichen Fehlercodes versehen |
Perspektive: | Wartbarkeit, Verstaendlichkeit, Ausnahme- und Randwertverhalten |
Alternative: | Ausformulierte Ausnahmemeldungen verwenden mit angabe von Fehlerursachen, Ausloeser und/oder Beteiligten |
Defekt: | Ja |
Ort: | Allgemein |
---|---|
Beschreibung: | Alle Konstanten werden in einem Interface gesammelt |
Perspektive: | Wartbarkeit, Verstaendlichkeit, Richtlinien |
Alternative: | Konstanten am Ort ihrer Hauptverwendung zu definieren |
Defekt: | Ja |