NDepend Report
Application name: NauckIT.NAnt
This report has been built on: 03/21/2010 07:44:18
Application Metrics
Assemblies Metrics
VisualNDepend View
Assemblies Abstracness vs. Instability
Assemblies Dependencies
Assemblies Dependencies Diagram
Assemblies build order
NDepend information and warnings
CQL Queries and Constraints
Types Metrics
Application Metrics
Number of assemblies: 1
Number of types: 12
Number of classes: 10
Number of abstract classes: 0
Number of interfaces: 0
Number of value types: 0
Number of exception classes: 0
Number of attribute classes: 0
Number of delegate classes: 0
Number of enumerations classes: 2
Number of generic type definitions: 0
Number of generic method definitions: 0
Number of IL instructions: 1968
Percentage of public types: 83,33%
Percentage of public methods: 84,48%
Percentage of classes with at least one public field: 0%
| Stat |
# Occurrences |
Avg |
StdDev |
Max |
|
Properties on Interfaces
|
0 Interfaces
|
0 |
0 |
-1 properties on
|
|
Methods on Interfaces
|
0 Interfaces
|
0 |
0 |
-1 methods on
|
|
Arguments on Methods on Interfaces
|
0 Methods
|
0 |
0 |
-1 arguments on
|
|
Public Properties on Classes
|
10 Classes
|
4,9 |
4,61 |
15 public properties on NauckIT.NAnt.Tasks.GendarmeTask
|
|
Public Methods on Classes
|
10 Classes
|
9,8 |
9,12 |
30 public methods on NauckIT.NAnt.Tasks.GendarmeTask
|
|
Arguments on Public Methods on Classes
|
98 Methods
|
0,42 |
0,49 |
1 arguments on NauckIT.NAnt.Tasks.FxCopTask.set_Executable(String)
|
|
IL Instructions in non-abstract Methods
|
116 Methods
|
16,97 |
33,13 |
201 IL instructions in NauckIT.NAnt.Tasks.GendarmeTask.BuildArguments()
|
|
Cyclomatic complexity on non abstract Methods
|
116 Methods
|
2,32 |
3,56 |
CC = 20 for NauckIT.NAnt.Tasks.GendarmeTask.BuildArguments()
|
Assemblies Metrics
VisualNDepend View
Assemblies Abstracness vs. Instability
Assemblies Dependencies
Assemblies Dependencies Diagram
Blue : Assemblies of your application.
Yellow : Framework assemblies referenced by assemblies of your application.
Assemblies build order
NauckIT.NAnt
NDepend information and warnings
03/21/2010 07:43:56 Begin analysis with NDepend v2.12.0.3027
03/21/2010 07:43:56 Retrieve dependencies of your application.
Compare with most recent analysis (analysis made at 2010 February - 23 Tuesday 15:43)
Assemblies loaded from {C:\Windows\Microsoft.NET\Framework\v2.0.50727}
mscorlib.dll v2.0.0.0
System.dll v2.0.0.0
Assemblies loaded from {C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5}
System.Core.dll v3.5.0.0
Assemblies loaded from {D:\Build\Projects\NauckIT.NAnt\SCM\Build}
NauckIT.NAnt.dll v1.0.16.237
NAnt.Core.dll v0.86.3317.0
14 source files parsed ; all source files found ; all source files in-sync with PDB
0 CQL constraint has been extracted from code.
No dependency cycle detected in assemblies referencement graph.
03.21.2010 07:44:03 Analyse dependencies of your application.
03.21.2010 07:44:04 Building the report (standard).
WARNING: Versioning issue: Assembly {NauckIT.NAnt v1.0.16.237} references both versions {2.0.0.0} and {1.0.3300.0} of the assembly {mscorlib}. NDepend will only consider the highest version.
WARNING: Versioning issue: Assembly {NauckIT.NAnt v1.0.16.237} references both versions {2.0.0.0} and {1.0.3300.0} of the assembly {System}. NDepend will only consider the highest version.
WARNING: No application or tier assembly found in directory {C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0}
WARNING: Assembly {NAnt.DotNetTasks} is referenced by {NauckIT.NAnt} but is not found.
CQL Queries and Constraints
{Code Quality} Some CQL constraints are not satisfied.
{Code Quality \ Type Metrics} Some CQL constraints are not satisfied.
{Design} Some CQL constraints are not satisfied.
{Design \ Performance} Some CQL constraints are not satisfied.
{Unused Code / Dead Code} Some CQL constraints are not satisfied.
{Encapsulation} Some CQL constraints are not satisfied.
{Encapsulation \ Methods Optimal Encapsulation} Some CQL constraints are not satisfied.
{Encapsulation \ Types Optimal Encapsulation} Some CQL constraints are not satisfied.
{Encapsulation \ Fields Optimal Encapsulation} All CQL queries compile and all CQL contraints are satisfied.
{Diff / Changes / Evolution} All CQL queries compile and all CQL contraints are satisfied.
{Test Coverage} All CQL queries compile and all CQL contraints are satisfied.
{Purity / Immutability / Side-Effects} All CQL queries compile and all CQL contraints are satisfied.
{Naming Conventions} All CQL queries compile and all CQL contraints are satisfied.
{Naming Conventions \ Name too long} All CQL queries compile and all CQL contraints are satisfied.
{.NET Framework Usage} Some CQL constraints are not satisfied.
{.NET Framework Usage \ System} All CQL queries compile and all CQL contraints are satisfied.
{.NET Framework Usage \ System.Collection} Some CQL constraints are not satisfied.
{.NET Framework Usage \ System.Runtime.InteropServices} All CQL queries compile and all CQL contraints are satisfied.
{.NET Framework Usage \ System.Threading} All CQL queries compile and all CQL contraints are satisfied.
{.NET Framework Usage \ System.Xml} All CQL queries compile and all CQL contraints are satisfied.
WARNING: The following CQL constraint is not satisfied. 1 methods on 184 tested match the condition. --> Group {Code Quality}
// <Name>Quick summary of methods to refactor</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS /*OUT OF "YourGeneratedCode" */ WHERE
// Metrics' definitions
( NbLinesOfCode > 30 OR // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode
NbILInstructions > 200 OR // http://www.ndepend.com/Metrics.aspx#NbILInstructions
CyclomaticComplexity > 20 OR // http://www.ndepend.com/Metrics.aspx#CC
ILCyclomaticComplexity > 50 OR // http://www.ndepend.com/Metrics.aspx#ILCC
ILNestingDepth > 4 OR // http://www.ndepend.com/Metrics.aspx#ILNestingDepth
NbParameters > 5 OR // http://www.ndepend.com/Metrics.aspx#NbParameters
NbVariables > 8 OR // http://www.ndepend.com/Metrics.aspx#NbVariables
NbOverloads > 6 ) // http://www.ndepend.com/Metrics.aspx#NbOverloads
AND
// Here are some ways to avoid taking account of generated methods.
!( NameIs "InitializeComponent()" OR
// NDepend.CQL.GeneratedAttribute is defined in the redistributable assembly $NDependInstallDir$\Lib\NDepend.CQL.dll
// You can define your own attribute to mark "Generated".
HasAttribute "OPTIONAL:NDepend.CQL.GeneratedAttribute")
| methods |
# lines of code (LOC) |
# IL instructions |
Cyclomatic Complexity (CC) |
IL Cyclomatic Complexity (ILCC) |
IL Nesting Depth |
# Parameters |
# Variables |
# Overloads |
Full Name |
| BuildArguments() |
27 |
201 |
17 |
20 |
2 |
0 |
5 |
1 |
NauckIT.NAnt.Tasks.GendarmeTask.BuildArguments() |
| Sum: |
27 |
201 |
17 |
20 |
2 |
0 |
5 |
1 |
|
| Average: |
27 |
201 |
17 |
20 |
2 |
0 |
5 |
1 |
|
| Minimum: |
27 |
201 |
17 |
20 |
2 |
0 |
5 |
1 |
|
| Maximum: |
27 |
201 |
17 |
20 |
2 |
0 |
5 |
1 |
|
| Standard deviation: |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
| Variance: |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
WARNING: The following CQL constraint is not satisfied. 1 methods on 184 tested match the condition. --> Group {Code Quality}
// <Name>Methods too big (NbILInstructions)</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE NbILInstructions > 200 ORDER BY NbILInstructions DESC
// METHODS WHERE NbILInstructions > 200 are extremely complex and
// should be split in smaller methods
// (except if they are automatically generated by a tool).
// See the definition of the NbILInstructions metric here http://www.ndepend.com/Metrics.aspx#NbILInstructions
| methods |
# IL instructions |
Full Name |
| BuildArguments() |
201 |
NauckIT.NAnt.Tasks.GendarmeTask.BuildArguments() |
| Sum: |
201 |
|
| Average: |
201 |
|
| Minimum: |
201 |
|
| Maximum: |
201 |
|
| Standard deviation: |
0 |
|
| Variance: |
0 |
|
WARNING: The following CQL constraint is not satisfied. 6 methods on 184 tested match the condition. --> Group {Code Quality}
// <Name>Methods poorly commented (PercentageComment)</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE PercentageComment < 20 AND NbLinesOfCode > 10 ORDER BY PercentageComment ASC
// METHODS WHERE %Comment < 20 and that have at least 10 lines of code should be more commented.
// See the definition of the PercentageComment metric here http://www.ndepend.com/Metrics.aspx#PercentageComment
| methods |
Percentage Comment |
# lines of code (LOC) |
Full Name |
| GetPropertyArguments(StringBuilder) |
0 |
16 |
NauckIT.NAnt.Tasks.MSBuildTask.GetPropertyArguments(StringBuilder) |
| BuildArguments() |
0 |
21 |
NauckIT.NAnt.Tasks.NUnitTask.BuildArguments() |
| GetCategoryList(CategoryCollection) |
0 |
11 |
NauckIT.NAnt.Tasks.NUnitTask.GetCategoryList(CategoryCollection) |
| BuildArguments() |
0 |
27 |
NauckIT.NAnt.Tasks.GendarmeTask.BuildArguments() |
| BuildArguments() |
3 |
26 |
NauckIT.NAnt.Tasks.MSBuildTask.BuildArguments() |
| GetAssemblyList() |
15 |
11 |
NauckIT.NAnt.Tasks.GendarmeTask.GetAssemblyList() |
| Sum: |
18 |
112 |
|
| Average: |
3 |
18.667 |
|
| Minimum: |
0 |
11 |
|
| Maximum: |
15 |
27 |
|
| Standard deviation: |
5.4772 |
6.4979 |
|
| Variance: |
30 |
42.222 |
|
WARNING: The following CQL constraint is not satisfied. 2 types on 93 tested match the condition. --> Group {Code Quality \ Type Metrics}
// <Name>Types with too many methods</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE NbMethods > 20 ORDER BY NbMethods DESC
// TYPES WHERE NbMethods > 20 might be hard to understand and maintain
// but there might be cases where it is relevant to have a high value for NbMethods.
// For example, the System.Windows.Forms.DataGridView standard class has more than 1000 methods.
// See the definition of the NbMethods metric here http://www.ndepend.com/Metrics.aspx#NbMethods
| types |
# Methods |
Full Name |
| GendarmeTask |
34 |
NauckIT.NAnt.Tasks.GendarmeTask |
| NUnitTask |
22 |
NauckIT.NAnt.Tasks.NUnitTask |
| Sum: |
56 |
|
| Average: |
28 |
|
| Minimum: |
22 |
|
| Maximum: |
34 |
|
| Standard deviation: |
6 |
|
| Variance: |
36 |
|
WARNING: The following CQL constraint is not satisfied. 1 types on 93 tested match the condition. --> Group {Code Quality \ Type Metrics}
// <Name>Types with poor cohesion (LCOM)</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE LCOM > 0.8 AND NbFields > 10 AND NbMethods >10 ORDER BY LCOM DESC
// TYPES WHERE LCOM > 0.8 AND NbFields > 10 AND NbMethods >10 might be problematic.
// However, it is very hard to avoid such non-cohesive types. The LCOMHS metric
// is often considered as more efficient to detect non-cohesive types.
// See the definition of the LCOM metric here http://www.ndepend.com/Metrics.aspx#LCOM
| types |
Lack of Cohesion Of Methods (LCOM) |
# Fields |
# Methods |
Full Name |
| GendarmeTask |
0.9411765 |
16 |
34 |
NauckIT.NAnt.Tasks.GendarmeTask |
| Sum: |
0.9411765 |
16 |
34 |
|
| Average: |
0.9411765 |
16 |
34 |
|
| Minimum: |
0.9411765 |
16 |
34 |
|
| Maximum: |
0.9411765 |
16 |
34 |
|
| Standard deviation: |
0 |
0 |
0 |
|
| Variance: |
0 |
0 |
0 |
|
WARNING: The following CQL constraint is not satisfied. 1 types on 93 tested match the condition. --> Group {Code Quality \ Type Metrics}
// <Name>Types with poor cohesion (LCOMHS)</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE LCOMHS > 0.95 AND NbFields > 10 AND NbMethods >10 ORDER BY LCOMHS DESC
// TYPES WHERE LCOMHS > 1.0 AND NbFields > 10 AND NbMethods >10 should be avoided.
// Note that this constraint is stronger than the constraint
// TYPES WHERE LCOM > 0.8 AND NbFields > 10 AND NbMethods >10.
// See the definition of the LCOMHS metric here http://www.ndepend.com/Metrics.aspx#LCOMHS
| types |
LCOM Henderson-Sellers (LCOMHS) |
# Fields |
# Methods |
Full Name |
| GendarmeTask |
0.969697 |
16 |
34 |
NauckIT.NAnt.Tasks.GendarmeTask |
| Sum: |
0.969697 |
16 |
34 |
|
| Average: |
0.969697 |
16 |
34 |
|
| Minimum: |
0.969697 |
16 |
34 |
|
| Maximum: |
0.969697 |
16 |
34 |
|
| Standard deviation: |
0 |
0 |
0 |
|
| Variance: |
0 |
0 |
0 |
|
WARNING: The following CQL constraint is not satisfied. 8 types on 93 tested match the condition. --> Group {Design}
// <Name>Class with no descendant should be sealed if possible</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE
IsClass AND
NbChildren ==0 AND
!IsSealed AND
!IsStatic
// AND !IsPublic : You might want to add this condition if you are developping a framework
// with classes that are intended to be sub-classed by your clients.
ORDER BY NbLinesOfCode
| types |
# Children |
# lines of code (LOC) |
Full Name |
| Category |
0 |
0 |
NauckIT.NAnt.Types.Category |
| CategoryCollection |
0 |
0 |
NauckIT.NAnt.Types.CategoryCollection |
| Categories |
0 |
6 |
NauckIT.NAnt.Types.Categories |
| NDependTask |
0 |
18 |
NauckIT.NAnt.Tasks.NDependTask |
| FxCopTask |
0 |
20 |
NauckIT.NAnt.Tasks.FxCopTask |
| NUnitTask |
0 |
51 |
NauckIT.NAnt.Tasks.NUnitTask |
| GendarmeTask |
0 |
56 |
NauckIT.NAnt.Tasks.GendarmeTask |
| MSBuildTask |
0 |
66 |
NauckIT.NAnt.Tasks.MSBuildTask |
| Sum: |
0 |
217 |
|
| Average: |
0 |
27.125 |
|
| Minimum: |
0 |
0 |
|
| Maximum: |
0 |
66 |
|
| Standard deviation: |
0 |
24.917 |
|
| Variance: |
0 |
620.86 |
|
WARNING: The following CQL constraint is not satisfied. 2 types on 93 tested match the condition. --> Group {Design}
// <Name>Classes that are candidate to be turned into Structures</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE
IsClass AND
SizeOfInst <= 16 AND // Structure instance must not be too big, else it degrades performance.
NbChildren == 0 AND // Must not have children
DepthOfInheritance == 1 // Must derive directly from System.Object
// AND IsSealed : You might want to add this condition to restreint the set.
// AND IsImmutable : Structures should be immutable type.
// AND !IsPublic : You might want to add this condition if you are developping a framework
// with classes that are intended to be sub-classed by your clients.
| types |
Size of instance |
# Children |
Depth of inheritance |
Full Name |
| EnvironmentExtensions |
0 |
0 |
1 |
NauckIT.NAnt.Util.EnvironmentExtensions |
| StringExtensions |
0 |
0 |
1 |
NauckIT.NAnt.Util.StringExtensions |
| Sum: |
0 |
0 |
2 |
|
| Average: |
0 |
0 |
1 |
|
| Minimum: |
0 |
0 |
1 |
|
| Maximum: |
0 |
0 |
1 |
|
| Standard deviation: |
0 |
0 |
0 |
|
| Variance: |
0 |
0 |
0 |
|
WARNING: The following CQL constraint is not satisfied. 1 namespaces on 22 tested match the condition. --> Group {Design}
// <Name>Avoid namespaces with few types</Name>
WARN IF Count > 0 IN SELECT TOP 10 NAMESPACES WHERE NbTypes < 5 ORDER BY NbTypes ASC
// Make sure that there is a logical organization to each of your namespaces,
// and that there is a valid reason for putting types in a sparsely populated
// namespace. Namespaces should contain types that are used together in most
// scenarios. When their applications are mutually exclusive, types should be
// located in separate namespaces
| namespaces |
# Types |
Full Name |
| NauckIT.NAnt.Util |
2 |
NauckIT.NAnt.Util |
| Sum: |
2 |
|
| Average: |
2 |
|
| Minimum: |
2 |
|
| Maximum: |
2 |
|
| Standard deviation: |
0 |
|
| Variance: |
0 |
|
WARNING: The following CQL constraint is not satisfied. 1 assemblies on 5 tested match the condition. --> Group {Design}
// <Name>Assemblies with poor cohesion (RelationalCohesion)</Name>
WARN IF Count > 0 IN SELECT TOP 10 ASSEMBLIES WHERE RelationalCohesion < 1.5 OR RelationalCohesion > 4.0
// As classes inside an assembly should be strongly related,
// the cohesion should be high. On the other hand, a value which is too high may
// indicate over-coupling. A good range for RelationalCohesion is 1.5 to 4.0.
// See the definition of the RelationalCohesion metric here http://www.ndepend.com/Metrics.aspx#RelationalCohesion
| assemblies |
Relational cohesion |
Full Name |
| NauckIT.NAnt |
1.1667 |
NauckIT.NAnt |
| Sum: |
1.1667 |
|
| Average: |
1.1667 |
|
| Minimum: |
1.1667 |
|
| Maximum: |
1.1667 |
|
| Standard deviation: |
0 |
|
| Variance: |
0 |
|
WARNING: The following CQL constraint is not satisfied. 3 types on 93 tested match the condition. --> Group {Design \ Performance}
// <Name>Instances size shouldn't be too big (SizeOfInst)</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE SizeOfInst > 64 ORDER BY SizeOfInst DESC
// TYPES WHERE SizeOfInst > 64 might degrade performance (depending on the number of
// instances created at runtime) and might be hard to maintain.
// However it is not a rule since sometime there is no alternative
// (the size of instances of the System.Net.NetworkInformation.SystemIcmpV6Statistics
// standard class is 2064 bytes).
// See the definition of the SizeOfInst metric here http://www.ndepend.com/Metrics.aspx#SizeOfInst
| types |
Size of instance |
Full Name |
| GendarmeTask |
92 |
NauckIT.NAnt.Tasks.GendarmeTask |
| NUnitTask |
71 |
NauckIT.NAnt.Tasks.NUnitTask |
| MSBuildTask |
66 |
NauckIT.NAnt.Tasks.MSBuildTask |
| Sum: |
229 |
|
| Average: |
76.333 |
|
| Minimum: |
66 |
|
| Maximum: |
92 |
|
| Standard deviation: |
11.264 |
|
| Variance: |
126.89 |
|
WARNING: The following CQL constraint is not satisfied. 7 methods on 116 tested match the condition. --> Group {Unused Code / Dead Code}
// <Name>Potentially unused methods</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE
MethodCa == 0 AND // Ca=0 -> No Afferent Coupling -> The method is not used in the context of this application.
!IsPublic AND // Public methods might be used by client applications of your assemblies.
!IsEntryPoint AND // Main() method is not used by-design.
!IsExplicitInterfaceImpl AND // The IL code never explicitely calls explicit interface methods implementation.
!IsClassConstructor AND // The IL code never explicitely calls class constructors.
!IsFinalizer // The IL code never explicitely calls finalizers.
| methods |
Afferent coupling at method level (MethodCa) |
Full Name |
| ExecuteTask() |
0 |
NauckIT.NAnt.Tasks.FxCopTask.ExecuteTask() |
| ExecuteTask() |
0 |
NauckIT.NAnt.Tasks.GendarmeTask.ExecuteTask() |
| ExecuteTask() |
0 |
NauckIT.NAnt.Tasks.MSBuildTask.ExecuteTask() |
| PrepareProcess(Process) |
0 |
NauckIT.NAnt.Tasks.MSBuildTask.PrepareProcess(Process) |
| ExecuteTask() |
0 |
NauckIT.NAnt.Tasks.NDependTask.ExecuteTask() |
| ExecuteTask() |
0 |
NauckIT.NAnt.Tasks.NUnitTask.ExecuteTask() |
| PrepareProcess(Process) |
0 |
NauckIT.NAnt.Tasks.NUnitTask.PrepareProcess(Process) |
| Sum: |
0 |
|
| Average: |
0 |
|
| Minimum: |
0 |
|
| Maximum: |
0 |
|
| Standard deviation: |
0 |
|
| Variance: |
0 |
|
WARNING: The following CQL constraint is not satisfied. 4 methods on 184 tested match the condition. --> Group {Encapsulation \ Methods Optimal Encapsulation}
// <Name>Methods that could be declared as 'internal' in C#, 'Friend' in VB.NET</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE CouldBeInternal
| methods |
# lines of code (LOC) |
Full Name |
| get_Includes() |
3 |
NauckIT.NAnt.Types.Categories.get_Includes() |
| get_Excludes() |
3 |
NauckIT.NAnt.Types.Categories.get_Excludes() |
| get_CategoryName() |
0 |
NauckIT.NAnt.Types.Category.get_CategoryName() |
| .ctor() |
N/A |
NauckIT.NAnt.Types.CategoryCollection..ctor() |
| Sum: |
6 |
|
| Average: |
1.5 |
|
| Minimum: |
0 |
|
| Maximum: |
3 |
|
| Standard deviation: |
1.5 |
|
| Variance: |
2.25 |
|
WARNING: The following CQL constraint is not satisfied. 10 methods on 184 tested match the condition. --> Group {Encapsulation \ Methods Optimal Encapsulation}
// <Name>Methods that could be declared as 'private' in C#, 'Private' in VB.NET</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE CouldBePrivate
| methods |
# lines of code (LOC) |
Full Name |
| get_Executable() |
0 |
NauckIT.NAnt.Tasks.FxCopTask.get_Executable() |
| set_Executable(String) |
0 |
NauckIT.NAnt.Tasks.FxCopTask.set_Executable(String) |
| get_ProjectFile() |
0 |
NauckIT.NAnt.Tasks.FxCopTask.get_ProjectFile() |
| set_ProjectFile(FileInfo) |
0 |
NauckIT.NAnt.Tasks.FxCopTask.set_ProjectFile(FileInfo) |
| get_OutputFile() |
0 |
NauckIT.NAnt.Tasks.FxCopTask.get_OutputFile() |
| set_OutputFile(FileInfo) |
0 |
NauckIT.NAnt.Tasks.FxCopTask.set_OutputFile(FileInfo) |
| get_XslFile() |
0 |
NauckIT.NAnt.Tasks.FxCopTask.get_XslFile() |
| set_XslFile(FileInfo) |
0 |
NauckIT.NAnt.Tasks.FxCopTask.set_XslFile(FileInfo) |
| get_ApplyXsl() |
0 |
NauckIT.NAnt.Tasks.FxCopTask.get_ApplyXsl() |
| set_ApplyXsl(Boolean) |
0 |
NauckIT.NAnt.Tasks.FxCopTask.set_ApplyXsl(Boolean) |
| Sum: |
0 |
|
| Average: |
0 |
|
| Minimum: |
0 |
|
| Maximum: |
0 |
|
| Standard deviation: |
0 |
|
| Variance: |
0 |
|
WARNING: The following CQL constraint is not satisfied. 8 types on 93 tested match the condition. --> Group {Encapsulation \ Types Optimal Encapsulation}
// <Name>Types that could be declared as internal</Name>
WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE CouldBeInternal
| types |
# lines of code (LOC) |
Full Name |
| FxCopTask |
20 |
NauckIT.NAnt.Tasks.FxCopTask |
| GendarmeTask |
56 |
NauckIT.NAnt.Tasks.GendarmeTask |
| MSBuildTask |
66 |
NauckIT.NAnt.Tasks.MSBuildTask |
| NDependTask |
18 |
NauckIT.NAnt.Tasks.NDependTask |
| NUnitTask |
51 |
NauckIT.NAnt.Tasks.NUnitTask |
| Categories |
6 |
NauckIT.NAnt.Types.Categories |
| Category |
0 |
NauckIT.NAnt.Types.Category |
| CategoryCollection |
0 |
NauckIT.NAnt.Types.CategoryCollection |
| Sum: |
217 |
|
| Average: |
27.125 |
|
| Minimum: |
0 |
|
| Maximum: |
66 |
|
| Standard deviation: |
24.917 |
|
| Variance: |
620.86 |
|
WARNING: The following CQL constraint is not satisfied. 5 methods on 184 tested match the condition. --> Group {.NET Framework Usage \ System.Collection}
// <Name>Don't use .NET 1.x HashTable and ArrayList</Name>
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE
// Prefer using the class System.Collections.Generic.Dictionary<K,V> over System.Collections.HashTable.
CreateA "OPTIONAL:System.Collections.HashTable" OR
// Prefer using the class System.Collections.Generic.List<T> over System.Collections.ArrayList.
CreateA "OPTIONAL:System.Collections.ArrayList"
// You can be forced to use HashTable or ArrayList
// because if you are using tier code that requires working with these classes
// or because you are coding with .NET 1.x.
| methods |
DepthOfCreateA "OPTIONAL:System.Collections.HashTable" |
DepthOfCreateA "OPTIONAL:System.Collections.ArrayList" |
Full Name |
| Sum: |
0 |
10 |
|
| Average: |
0 |
2 |
|
| Minimum: |
0 |
0 |
|
| Maximum: |
0 |
4 |
|
| Standard deviation: |
0 |
1.4142 |
|
| Variance: |
0 |
2 |
|
Types Metrics
rft: Response For Type
lcom: Lack of Cohesion Of Methods of a class
CC: Cyclomatic Complexity
Ca: Afferent Coupling
Ce: Efferent Coupling
ABC: Association Between Classes
NOC: Number Of Children
DIT: Depth in Inheritence Tree
| Type |
rank
|
lcom
|
lcom(HS)
|
CC
|
Ca
|
Ce
|
ABC
|
# Instance Methods |
# Static Methods |
# Prop |
# Fld |
# ILInst |
NOC
|
DIT
|
Namespace |
| StringExtensions |
1,41 |
0 |
0 |
5 |
5 |
6 |
5 |
0 |
1 |
0 |
0 |
46 |
0 |
1 |
NauckIT.NAnt.Util |
| Category |
1,34 |
0,71 |
0,83 |
0 |
2 |
8 |
0 |
7 |
0 |
3 |
3 |
33 |
0 |
2 |
NauckIT.NAnt.Types |
| CategoryCollection |
1,13 |
0 |
0 |
0 |
2 |
7 |
1 |
1 |
0 |
0 |
0 |
3 |
0 |
2 |
NauckIT.NAnt.Types |
| GendarmeOutput |
0,34 |
- |
- |
- |
1 |
2 |
0 |
- |
- |
- |
- |
- |
- |
- |
NauckIT.NAnt.Types |
| Categories |
0,32 |
0,67 |
1 |
4 |
1 |
8 |
1 |
3 |
0 |
2 |
2 |
41 |
0 |
3 |
NauckIT.NAnt.Types |
| VerbosityLevel |
0,3 |
- |
- |
- |
1 |
2 |
0 |
- |
- |
- |
- |
- |
- |
- |
NauckIT.NAnt.Types |
| EnvironmentExtensions |
0,3 |
0 |
0 |
3 |
1 |
6 |
4 |
0 |
1 |
1 |
1 |
30 |
0 |
1 |
NauckIT.NAnt.Util |
| FxCopTask |
0,15 |
0,88 |
0,93 |
14 |
0 |
17 |
14 |
16 |
0 |
7 |
7 |
202 |
0 |
4 |
NauckIT.NAnt.Tasks |
| GendarmeTask |
0,15 |
0,94 |
0,97 |
36 |
0 |
33 |
34 |
33 |
1 |
15 |
16 |
540 |
0 |
4 |
NauckIT.NAnt.Tasks |
| NUnitTask |
0,15 |
0,91 |
0,95 |
31 |
0 |
37 |
41 |
21 |
1 |
9 |
9 |
465 |
0 |
4 |
NauckIT.NAnt.Tasks |
| NDependTask |
0,15 |
0,86 |
0,92 |
11 |
0 |
17 |
13 |
14 |
0 |
6 |
6 |
154 |
0 |
4 |
NauckIT.NAnt.Tasks |
| MSBuildTask |
0,15 |
0,88 |
0,94 |
28 |
0 |
41 |
44 |
17 |
0 |
7 |
6 |
454 |
0 |
4 |
NauckIT.NAnt.Tasks |