Projekt: Software-Sanierung
 


Vermessung des XCTL-Systems mit Crocodile 2.0

Autoren: Lubomira Stantcheva, Vladimir Stantchev

28. Juni 2001


Date of measurement: Wed Jun 28 13:07:23 2001
Project: Source.proj
Fokus-Set: TGenericDevice, TMain, TVektor, TMatrizenListe, TBitmapSource, TSteering, TAdjustmentParameter, TTopography, TScan, TAreaScanCCD, TAreaScan, TransformationClass, TDList, TEncoder, TRadicon, Testdev, TStoe_Psd, TBraun_Psd, TCurveShowParam, TCurveFreeScal, TCounterShowParam, TCommonDevParam, TScsParameters, TMeasurementParam, TExecuteCmd, TAngleControl, TGetData, TAutomaticAngleControl, TPosControl, TMotorParam, TCalibrate, TOptimizeDC_832, TOptimizeDC_812, TSetAdjustmentParam, TAdjustmentExecute, TTopographyExecute, TTopographySetParam, TSetupAreaScanCCD, TSetupAreaScan, TAquisition, TSetupContinuousScan, TSetupStepScan, TCalibratePsd, TPsdRemoteSync, TCrossTableControl, TAbout, TPsdParameters, TMacroExecute, TChooseScan, TMList, TC_832, TC_812GPIB, TC_812ISA, TDataBase, TCurve, TMSimStatus, TAdjustmentWindow, TCurveFreeScalColor, TCounterWindow, TEditWindow, TOffLineScan, TInquireCmd, TShowValueCmd, TSaveDataCmd, TSetFileNameCmd, TChooseDeviceCmd, TMoveToPointCmd, TLoadPointCmd, TCalculateCmd, TSetWidthCmd, TChooseAxisCmd, TSetupScanCmd, TScanCmd, TControlFlankCmd, TGotoIntensityCmd, TGotoPeakCmd, TAreaScanCmd, TScanArea
Inheriting-Context:
Using-Context:
Metric-File: C:\Programme\sniff\Crocodile\quality_model_cpp31.txt
Metrics
3D Visualizations (WRML Browser Plug-In needed)


Metrics:

P_eff_call_P (0)
P_eff_call_P_Inh (0)
P_eff_call_P_Poly (0)
P_eff_call_P_Cpl (0)
P_eff_call_P_leapt (0)
P_eff_call_P_Inh_leapt (0)
P_eff_call_P_Poly_leapt (0)
P_eff_call_P_Cpl_leapt (0)

Die Paketmetrik efferent calls to packages (P_eff_call_P) bestimmt für ein Subsystem die Anzahl anderer Subsysteme, von denen etwas verwendet wird. Als Verwendung wird ein Methodenaufruf betrachtet, wobei die aufgerufene Methode in einem anderen Subsystem als dem gerade betrachteten definiert ist. Eine bloße Import-Beziehung zu anderen Subsystemen ohne irgendeine Verwendung daraus wird nicht als Benutzung betrachtet.


P_aff_call_P (0)
P_aff_call_P_Inh (0)
P_aff_call_P_Poly (0)
P_aff_call_P_Cpl (0)
P_aff_call_P_leapt (0)
P_aff_call_P_Inh_leapt (0)
P_aff_call_P_Poly_leapt (0)
P_aff_call_P_Cpl_leapt (0)

Die Paketmetrik afferent calls from packages (P_aff_call_P) bestimmt für ein Subsystem die Anzahl fremder Subsysteme, die eine Methode aus dem gerade betrachteten Subsystem verwenden. Als Verwendung wird ein Methodenaufruf des eigenen Subsystems betrachtet, bei denen die aufrufende bzw. benutzende Methode in einem anderen Subsystem definiert sind. Eine bloße Import-Beziehung von anderen Subsystemen ohne irgendeine Verwendung wird nicht als Benutzung betrachtet.


P_eff_use_P (keine)
P_eff_use_P_Inh (keine)
P_eff_use_P_Poly (keine)
P_eff_use_P_Cpl (keine)
P_eff_use_P_leapt (0)
P_eff_use_P_Inh_leapt (0)
P_eff_use_P_Poly_leapt (0)
P_eff_use_P_Cpl_leapt (0)

Die Paketmetrik efferent usages to packages (P_eff_use_P) bestimmt für ein Subsystem die Anzahl anderer Subsysteme, von denen Attribute durch Methoden des gerade betrachteten Subsystems benutzt werden. Als Attribute werden normale Objekt-Attribute, Klassenattribute als auch die für Konstanten üblichen static final Variablen betrachtet.


P_aff_use_P (0)
P_aff_use_P_Inh (0)
P_aff_use_P_Poly (0)
P_aff_use_P_Cpl (0)
P_aff_use_P_leapt (0)
P_aff_use_P_Inh_leapt (0)
P_aff_use_P_Poly_leapt (0)
P_aff_use_P_Cpl_leapt (0)

Die Paketmetrik afferent usages from packages (P_aff_use_P) bestimmt für ein Subsystem A die Anzahl anderer Subsysteme, die auf Attribute des Subsystems A zugreifen. Als Attribute werden normale Objekt-Attribute, Klassenattribute als auch die für Konstanten üblichen static final Variablen betrachtet.


P_eff_inh_P (0)
P_eff_inh_P_leapt (0)

Die Paketmetrik efferent inheritings to other packages (P_eff_inh_P) bestimmt für ein Subsystem die Anzahl anderer Subsysteme, von denen etwas geerbt wird. Als Vererbung wird sowohl die Klassenerweiterung (extends) als auch die Schnittstellenimplementierung (implements) betrachtet. Das Flatten hat keinerlei Auswirkungen auf diese Metrik.


P_aff_inh_P (0)
P_aff_inh_P_leapt (0)

Die Paketmetrik afferent inheritings from other packages (P_aff_inh_P) bestimmt für ein Subsystem die Anzahl anderer Subsysteme, die etwas vom aktuell betrachteten Subsystem erben. Als Vererbung wird sowohl die Klassenerweiterung (extends) als auch die Schnittstellenimplementierung (implements) betrachtet. Das Flatten hat keinerlei Auswirkungen auf diese Metrik.


P_No_C

Die Paketmetrik Number of Classes within a Package (P_NoC) bestimmt für ein Subsystem die Anzahl der darin deklarierten Klassen. Mitgezählt werden Interfaces, abstrakte Klassen sowie nested classes.

 

C_eff_call_C
C_eff_call_C_Inh
C_eff_call_C_Poly
C_eff_call_C_Cpl

 Die Klassenmetrik efferent calls to classes (C_eff_call_C) zählt für eine Klasse, von wieviel anderen Klassen etwas verwendet wird. Als Verwendung wird ein Methodenaufruf betrachtet, bei denen die aufgerufene Methode in einer anderen Klasse definiert ist. Eine bloße Import-Beziehung zu anderen Subsystemen ohne irgendeine Verwendung daraus wird nicht als Benutzung betrachtet.


C_aff_call_C
C_aff_call_C_Inh
C_aff_call_C_Poly
C_aff_call_C_Cpl

Die Klassenmetrik afferent calls from other classes (C_aff_call_C) zählt für eine Klasse, wieviel andere Klassen etwas von ihr verwenden. Als Verwendung wird ein Methodenaufruf betrachtet, bei der die aufrufende Methode in einer anderen Klasse definiert ist Da das Flatten Einfluß auf diese Metrik hat, werden die in Anmerkung 1 genannten vier Werte dargestellt.


M_eff_call_M
M_eff_call_M_Poly
M_aff_call_M
M_aff_call_M_Poly


C_eff_use_A        Benutzung fremder Attribute
C_eff_use_A_Inh        Benutzung fremder Attribute (mit Vererbung)
C_eff_use_A_Poly        Benutzung fremder Attribute (mit Polymorphismus)
C_eff_use_A_Cpl

Die Klassenmetrik efferent usages to classes (C_eff_use_C) zählt für eine Klasse, von wieviel anderen Klassen etwas verwendet wird. Als Verwendung wird eine Attributsbenutzung betrachtet, bei denen das benutzte Attribut in einer anderen Klasse definiert ist. Eine bloße Import-Beziehung zu anderen Subsystemen ohne irgendeine Verwendung daraus wird nicht als Benutzung betrachtet. Da das Flatten Einfluß auf diese Metrik hat, werden die in Anmerkung 1 genannten vier Werte dargestellt.



C_aff_use_A        von anderen Klassen benutzte Attribute
C_aff_use_A_Inh        von anderen Klassen benutzte Attribute (mit Vererbung)
C_aff_use_A_Poly        von anderen Klassen benutzte Attribute (mit Polymorphismus)
C_aff_use_A_Cpl

Die Klassenmetrik afferent usages from other classes (C_aff_use_C) zählt für eine Klasse, wieviel andere Klassen etwas von ihr verwenden. Als Verwendung wird eine Attributsbenutzung betrachtet, bei der das verwendete Attribut innerhalb und die verwendende Methode außerhalb der betrachteten Klasse liegt. Da das Flatten Einfluß auf diese Metrik hat, werden die in Anmerkung 1 genannten vier Werte dargestellt.



A_aff_use_foreign_M        von anderen Klassen benutzte Methoden
A_aff_use_M


C_No_Super        Anzahl von Oberklassen
C_No_Sub        Anzahl von Subklassen 


C_Nopub_A        Anzahl öffentlicher Attribute
C_Nopub_A_Inh        Anzahl öffentlicher Attribute mit Vererbung

Die Klassenmetrik number of public attributes (C_NoPubA) bestimmt für eine Klasse die Anzahl öffentlich deklarierter Attribute. Es werden ebenfalls die in JAVA als const Ersatz üblichen static final Attribute mitgezählt. Da das Flatten-Konzept Auswirkungen auf diese Metrik hat, werden die Werte der geflatteten Version (d.h. geerbte Attribute werden mit berücksichtigt) mit denen der ungeflatteten Version (d.h. nur die neu definierten Attribute werden berücksichtigt) kontrastiert.


C_Nopub_M
C_Nopub_M_Inh

Die Klassenmetrik Number of public methods (C_NoPubM) bestimmt für eine Klasse, wieviele öffentliche Methoden sie definiert oder implementiert. Nicht betrachtet werden nicht überschriebene Standardkonstruktoren und Standarddestruktoren. Da das Flatten-Konzept Auswirkungen auf diese Metrik hat, werden zwei Werte gegenübergestellt: Zum einen die Metrikwerte für die nicht geflatteten Klassenversionen und zum anderen die Anzahl die Metrikwerte für die geflatteten Versionen, in denen innerhalb einer Klasse auch die geerbten Methoden mitgezählt werden.


C_WMC
C_WMC_Inh

Die Klassenmetrik weighted method count (C_WMC) zählt für eine Klasse die Zeichen, die für die Definition aller ihrer Methoden nötig sind. Gezählt werden alle Zeichen (inkl. Kommentare innerhalb der Methoden). Da das Flatten-Konzept Auswirkungen auf diese Metrik hat, werden die Werte der geflatteten Version (d.h. geerbte Methoden werden mit berücksichtigt) mit denen der ungeflatteten Version (d.h. nur die neu definierten und implementierten Methoden werden berücksichtigt) kontrastiert.


C_No_M
C_No_A
M_COC


NuComm
Author
LOC
NoDel
CyC
NuIncl
NoAuthor

top


3D Visualizations

Attributbenutzung (Grösse der Klassen nach Anzahl aller Methoden): berlin_allusagesAttributes.wrl
Methodenbenutzung (Grösse der Klassen nach Anzahl aller Methoden): berlin_allusagesMethod.wrl
Bidirektionale Methodenbenutzung: berlin_bidirektional_mUsage.wrl
Vererbungsstruktrur: berlin_vererbungsstruktur.wrl
Benutzung öffentlicher Attribute und Methoden für TMain (Grösse der Klassen nach Anzahl öffentlicher Attributen): berlin_example_pubA_usageA_M.wrl
Benutzung öffentlicher Attribute und Methoden (flattened): berlin_example_pubA_usageA_M_flatten.wrl
Methoden- und Attributbenutzung für TMain (Grösse der Klassen nach Anzahl öffentlicher Methoden): berlin_TMain_MethodAttributeUsage.wrl
Methodenbenutzung (mögliche Aufteilung des Systems in Subsysteme): berlin_usageMethod_packageBuildingExample.wrl
Vererbungsstruktur und Methodenbenutzung für TAreaScanParameters: Inheritance1.wrl

top


INDEX