To study pcms pegasus erp cargo management system-release-6 from architecture perspective.
-
Upload
shahzad -
Category
Technology
-
view
753 -
download
2
description
Transcript of To study pcms pegasus erp cargo management system-release-6 from architecture perspective.
Analytical Architecture ReportApplication:Pegasus ERP Cargo Management System is one of the software solutions for cargo industry, which is totally integrated with Accounts. Designed by experts from cargo and software industry it provides one stop solution for data entry and decision support. The implementation of detailed function level checks ensures reliability & date integrity of system. The embedded security through appropriate Access Controls allows complete control of user access and data manipulation.
www.comsoftusa.us
www.comsoftuae.com
Development Environment: [Release-6, Desktop Version]
Microsoft Visual Studio 2008, .Net 3.5, Windows Presentation Foundation, Infragistic GUI Controls, SQL Server 2008
Application MetricsNumber of IL instructions: 894149Number of lines of code: 121062Number of lines of comment: 0Percentage comment: 0Number of assemblies: 15Number of classes: 596Number of types: 638Number of abstract classes: 1Number of interfaces: 4Number of value types: 2Number of exception classes: 2Number of attribute classes: 0Number of delegate classes: 1Number of enumerations classes: 36Number of generic type definitions: 5Number of generic method definitions: 0Percentage of public types: 90.6% Percentage of public methods: 42.45% Percentage of classes with at least one public field: 48.12%
Stat# Occurrences
AvgStdDev Max
Properties on Interfaces
4 Interface
s 0 0 0 properties on Pegasus.Common.ICommon
Methods on Interfaces
4 Interface
s
26.25
44.31
103 methods on Pegasus.Main.RSServiceReference05.ReportingService2005S
oap
Arguments on
105 Methods
1 0 1 arguments on Pegasus.Common.ICommon.getPropertyValue(String)
Methods on Interfaces
Public Properties on Classes
596 Classes
0.81 3.08 43 public properties on Pegasus.Common.Properties.Resources
Public Methods on Classes
596 Classes
6.74 8.39108 public methods on
Pegasus.Main.RSServiceReference05.ReportingService2005SoapClient
Arguments on Public Methods on Classes
4019 Methods
0.49 1.11
10 arguments on Pegasus.Main.RSServiceReference05.GetDataDrivenSubscriptionPropertiesResponse..ctor(ServerInfoHeader,String,Extensi
onSettings,DataRetrievalPlan,String,ActiveState,String,String,String,ParameterValueOrFieldReference[])
IL Instructions in non-abstract Methods
9608 Methods
93.06
195.66
4585 IL instructions in Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity()
Cyclomatic complexity on non abstract Methods
9608 Methods 6.69
14.69
CC = 561 for Pegasus.Main.RibbonMenuTest.System.Windows.Markup.ICo
mponentConnector.Connect(Int32,Object)
Assemblies Metrics
Assembly
# Type
s
# Abstract Typ
es
# IL instruction
# lines of code
# lines
of com
ment
% com
ment
Afferent Couplin
g
Efferent Couplin
g
Relational Cohesion
Instability
Abstractness
Distance
Pegasus.Common v1.0.0.0
8 2 124619
8 0 0 202 34 0.38 0.14 0.25 0.61
Pegasus.Con 25 0 9811 14 0 0 225 168 1.52 0.43 0.04 0.53
trols v1.0.0.0
49
Pegasus.SearchEngine v1.0.0.0
5 0 114281453 0 0 160 122 0.2 0.43 0 0.57
Pegasus.General v1.0.0.0 87 0 88574
1216
80 0 146 231 1.82 0.61 0 0.39
Pegasus.Security v1.0.0.0
6 0 457764
2 0 0 0 96 0.17 1 0 0
Pegasus.Accounts v1.0.0.0
23 0 496066592 0 0 2 228 0.17 0.99 0 0.01
Pegasus.Job v1.0.0.0
3 0 514 66 0 0 0 62 0.33 1 0 0
Pegasus.NVOCC v1.0.0.0 24 0 85322
1154
70 0 0 225 0.38 1 0 0
Pegasus.Warehouse v1.0.0.0
22 0 956941272
40 0 0 243 0.23 1 0 0
Pegasus.ShippingLine v1.0.0.0
24 0 863591167
90 0 0 225 0.38 1 0 0
Pegasus.PRCI v1.0.0.0
12 0 44695 6022
0 0 0 198 0.5 1 0 0
Pegasus.Cargo v1.0.0.0 42 0
149950
2035
80 0 0 223 1.14 1 0 0
Pegasus.FlightCargo v1.0.0.0
18 0 566347539 0 0 0 183 0.39 1 0 0
Pegasus.Main v1.0.0.52 307 1
129476
1778
10 0 0 282 2.55 1 0.01 0.01
Pegasus.TMS v1.0.0.0 32 0 80263
1084
40 0 0 187 0.09 1 0 0
Visual NDepend View
Assemblies Abstractness vs. Instability
Assemblies DependenciesAssembly Depends on... Is referenced by...
Pegasus.Common v1.0.0.0
mscorlib v4.0.0.0 ; NHibernate v2.1.0.4000 ; System v4.0.0.0 ; HibernatingRhinos.NHibernate.Profiler.Appender v0.9.0.0 ; System.Data v4.0.0.0 ;
Pegasus.General v1.0.0.0 ; Pegasus.Security v1.0.0.0 ; Pegasus.Accounts v1.0.0.0 ; Pegasus.Controls v1.0.0.0 ; Pegasus.Job v1.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; Pegasus.NVOCC v1.0.0.0 ; Pegasus.Warehouse v1.0.0.0 ; Pegasus.ShippingLine v1.0.0.0 ; Pegasus.PRCI v1.0.0.0 ; Pegasus.Cargo v1.0.0.0 ; Pegasus.FlightCargo v1.0.0.0 ; Pegasus.Main v1.0.0.52 ; Pegasus.TMS v1.0.0.0 ;
Pegasus.Controls v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; mscorlib v4.0.0.0 ; PresentationCore v4.0.0.0 ; System v4.0.0.0 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Pegasus.Common v1.0.0.0 ;
Pegasus.General v1.0.0.0 ; Pegasus.Security v1.0.0.0 ; Pegasus.Accounts v1.0.0.0 ; Pegasus.Job v1.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; Pegasus.NVOCC v1.0.0.0 ; Pegasus.Warehouse v1.0.0.0 ; Pegasus.ShippingLine v1.0.0.0 ; Pegasus.PRCI v1.0.0.0 ; Pegasus.Cargo v1.0.0.0 ; Pegasus.FlightCargo v1.0.0.0 ; Pegasus.Main v1.0.0.52 ; Pegasus.TMS v1.0.0.0 ;
Pegasus.SearchEngine v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; mscorlib v4.0.0.0 ; System v4.0.0.0 ; PresentationCore v4.0.0.0 ; System.Data v4.0.0.0 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ;
Pegasus.General v1.0.0.0 ; Pegasus.Security v1.0.0.0 ; Pegasus.Accounts v1.0.0.0 ;
Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Pegasus.Common v1.0.0.0 ; Pegasus.Controls v1.0.0.0 ;
Pegasus.NVOCC v1.0.0.0 ; Pegasus.Warehouse v1.0.0.0 ; Pegasus.ShippingLine v1.0.0.0 ; Pegasus.PRCI v1.0.0.0 ; Pegasus.Cargo v1.0.0.0 ; Pegasus.FlightCargo v1.0.0.0 ; Pegasus.TMS v1.0.0.0 ;
Pegasus.General v1.0.0.0
mscorlib v4.0.0.0 ; PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; System v4.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Pegasus.Controls v1.0.0.0 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; System.Data v4.0.0.0 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ; Pegasus.SearchEngine v1.0.0.0 ; Pegasus.Common v1.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ; System.Windows.Forms v4.0.0.0 ;
Pegasus.Security v1.0.0.0 ; Pegasus.Accounts v1.0.0.0 ; Pegasus.Job v1.0.0.0 ; Pegasus.NVOCC v1.0.0.0 ; Pegasus.Warehouse v1.0.0.0 ; Pegasus.ShippingLine v1.0.0.0 ; Pegasus.PRCI v1.0.0.0 ; Pegasus.Cargo v1.0.0.0 ; Pegasus.FlightCargo v1.0.0.0 ; Pegasus.Main v1.0.0.52 ; Pegasus.TMS v1.0.0.0 ;
Pegasus.Security v1.0.0.0
System v4.0.0.0 ; PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; mscorlib v4.0.0.0 ; Pegasus.Controls v1.0.0.0 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; PresentationCore v4.0.0.0 ; System.Data v4.0.0.0 ; Pegasus.General v1.0.0.0 ; Pegasus.Common v1.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ;
-
Pegasus.Accounts v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; mscorlib v4.0.0.0 ; System v4.0.0.0 ; System.Data v4.0.0.0 ; Pegasus.Controls v1.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; System.Drawing v4.0.0.0 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ; Pegasus.General v1.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ; Pegasus.Common v1.0.0.0 ; System.Core v4.0.0.0 ;
Pegasus.Main v1.0.0.52 ;
Pegasus.Job mscorlib v4.0.0.0 ; System v4.0.0.0 ; -
v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; System.Data v4.0.0.0 ; Pegasus.Controls v1.0.0.0 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Pegasus.Common v1.0.0.0 ; PresentationCore v4.0.0.0 ; Pegasus.General v1.0.0.0 ;
Pegasus.NVOCC v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; mscorlib v4.0.0.0 ; System v4.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; Pegasus.Controls v1.0.0.0 ; System.Data v4.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Pegasus.General v1.0.0.0 ; Pegasus.Common v1.0.0.0 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ; Microsoft.VisualBasic v10.0.0.0 ; System.Windows.Forms v4.0.0.0 ;
-
Pegasus.Warehouse v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; mscorlib v4.0.0.0 ; System v4.0.0.0 ; Pegasus.Controls v1.0.0.0 ; System.Data v4.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; Pegasus.General v1.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Pegasus.Common v1.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ; NHibernate v2.1.0.4000 ;
-
Pegasus.ShippingLine v1.0.0.0
mscorlib v4.0.0.0 ; PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; System v4.0.0.0 ; Pegasus.Controls v1.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Pegasus.SearchEngine v1.0.0.0 ; System.Data v4.0.0.0 ; Pegasus.General v1.0.0.0 ; Pegasus.Common v1.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ; System.Windows.Forms v4.0.0.0 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ;
-
Pegasus.PRCI v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; mscorlib v4.0.0.0 ; System v4.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; Pegasus.Controls v1.0.0.0 ;
-
System.Data v4.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Pegasus.Common v1.0.0.0 ; Pegasus.General v1.0.0.0 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ; Microsoft.VisualBasic v10.0.0.0 ; System.Windows.Forms v4.0.0.0 ;
Pegasus.Cargo v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; System v4.0.0.0 ; mscorlib v4.0.0.0 ; Pegasus.Controls v1.0.0.0 ; Pegasus.General v1.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; System.Data v4.0.0.0 ; Pegasus.Common v1.0.0.0 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ; System.Xml v4.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ;
-
Pegasus.FlightCargo v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; mscorlib v4.0.0.0 ; System v4.0.0.0 ; Pegasus.Controls v1.0.0.0 ; System.Data v4.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; Pegasus.General v1.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Pegasus.Common v1.0.0.0 ; System.Windows.Forms v4.0.0.0 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ;
-
Pegasus.Main v1.0.0.52
WindowsBase v4.0.0.0 ; PresentationFramework v4.0.0.0 ; mscorlib v4.0.0.0 ; System v4.0.0.0 ; System.ServiceModel v4.0.0.0 ; System.Windows.Forms v4.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; System.Data v4.0.0.0 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.Ribbon.v9.1 v9.1.20091.2091 ; System.Drawing v4.0.0.0 ; System.Xml v4.0.0.0 ; Pegasus.Accounts v1.0.0.0 ; Pegasus.General v1.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ; Pegasus.Controls v1.0.0.0 ; Pegasus.Common v1.0.0.0 ; NHibernate v2.1.0.4000 ;
-
Pegasus.TMS v1.0.0.0
PresentationFramework v4.0.0.0 ; WindowsBase v4.0.0.0 ; mscorlib v4.0.0.0 ; System v4.0.0.0 ; Pegasus.Controls v1.0.0.0 ; PresentationCore v4.0.0.0 ; Infragistics3.Wpf.Editors.v9.1 v9.1.20091.2091 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; System.Data v4.0.0.0 ; Pegasus.SearchEngine v1.0.0.0 ; Pegasus.General v1.0.0.0 ; Pegasus.Common v1.0.0.0 ; Infragistics3.Wpf.v9.1 v9.1.20091.2091 ;
-
Assemblies Dependencies DiagramBlue : Assemblies of your application.Yellow : Tiers assemblies referenced by assemblies of your application.
Assemblies build orderPegasus.CommonPegasus.ControlsPegasus.SearchEnginePegasus.GeneralPegasus.SecurityPegasus.AccountsPegasus.JobPegasus.NVOCCPegasus.WarehousePegasus.ShippingLinePegasus.PRCIPegasus.CargoPegasus.FlightCargoPegasus.MainPegasus.TMS
NDepend information and warnings11/05/2010 15:02:12 Begin full analysis with NDepend v3.2.0No Baseline for Comparison loaded.Assemblies loaded from {C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319} mscorlib.dll v4.0.0.0 System.dll v4.0.0.0 System.Data.dll v4.0.0.0 Microsoft.VisualBasic.dll v10.0.0.0 System.Windows.Forms.dll v4.0.0.0 System.Drawing.dll v4.0.0.0 System.Core.dll v4.0.0.0 System.Xml.dll v4.0.0.0 System.ServiceModel.dll v4.0.0.0Assemblies loaded from {C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\WPF} PresentationFramework.dll v4.0.0.0 WindowsBase.dll v4.0.0.0 PresentationCore.dll v4.0.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.Common.BSL\bin\Debug} Pegasus.Common.dll v1.0.0.0 NHibernate.dll v2.1.0.4000 HibernatingRhinos.NHibernate.Profiler.Appender.dll v0.9.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.General\bin\Debug} Pegasus.General.dll v1.0.0.0 Pegasus.Controls.dll v1.0.0.0 Pegasus.SearchEngine.dll v1.0.0.0 Infragistics3.Wpf.DataPresenter.v9.1.dll v9.1.20091.2091 Infragistics3.Wpf.Editors.v9.1.dll v9.1.20091.2091 Infragistics3.Wpf.v9.1.dll v9.1.20091.2091Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.Security\bin\Debug} Pegasus.Security.dll v1.0.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.Accounts\bin\Debug} Pegasus.Accounts.dll v1.0.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.Job\bin\Debug} Pegasus.Job.dll v1.0.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.NVOCC\bin\Debug} Pegasus.NVOCC.dll v1.0.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.Warehouse\bin\Debug} Pegasus.Warehouse.dll v1.0.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.ShippingLine\bin\Debug} Pegasus.ShippingLine.dll v1.0.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.PRCI\bin\Debug} Pegasus.PRCI.dll v1.0.0.0
Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.AirFreight\bin\Debug} Pegasus.Cargo.dll v1.0.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus.FlightCargo\bin\Debug} Pegasus.FlightCargo.dll v1.0.0.0Assemblies loaded from {D:\ShareMe\Pegasus\Pegasus\bin\Debug} Pegasus.Main.exe v1.0.0.52 Pegasus.TMS.dll v1.0.0.0 Infragistics3.Wpf.Ribbon.v9.1.dll v9.1.20091.20910 source file parsed ; 543 source files not found ; 0 CQL constraint has been extracted from code.No dependency cycle detected in assemblies referencement graph.11/05/2010 15:02:37 Analyse dependencies of your application.11/05/2010 15:02:38 Building the report (standard).WARNING: Cant' load the assembly {Pegasus.BusinessObjects}: Several .NET assemblies have the name {Pegasus.BusinessObjects} but they are different. - D:\ShareMe\Pegasus\Pegasus.General\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:\ShareMe\Pegasus\Pegasus.Security\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:\ShareMe\Pegasus\Pegasus.Accounts\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:\ShareMe\Pegasus\Pegasus.Job\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 293 248 bytes - D:\ShareMe\Pegasus\Pegasus.NVOCC\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:\ShareMe\Pegasus\Pegasus.Warehouse\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:\ShareMe\Pegasus\Pegasus.ShippingLine\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:\ShareMe\Pegasus\Pegasus.PRCI\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:\ShareMe\Pegasus\Pegasus.AirFreight\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:\ShareMe\Pegasus\Pegasus.FlightCargo\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:\ShareMe\Pegasus\Pegasus\bin\Debug\Pegasus.BusinessObjects.dll v0.0 2 297 856 bytes WARNING: Cant' load the assembly {Microsoft.SqlServer.Smo}: Can't find the .NET assembly {Microsoft.SqlServer.Smo} in specified folders. Has it been compiled properly? Is the NDepend project missing the containing folder of the .NET assembly?WARNING: Cant' load the assembly {Microsoft.SqlServer.ConnectionInfo}: Can't find the .NET assembly {Microsoft.SqlServer.ConnectionInfo} in specified folders. Has it been compiled properly? Is the NDepend project missing the containing folder of the .NET assembly?WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.General} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.Security} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.Accounts} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.Controls} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.Job} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.SearchEngine} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.NVOCC} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.Warehouse} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.ShippingLine} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.PRCI} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.Cargo} but is not found.
WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.FlightCargo} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.Main} but is not found.WARNING: Assembly {Microsoft.SqlServer.Smo} is referenced by {Pegasus.Main} but is not found.WARNING: Assembly {Microsoft.SqlServer.ConnectionInfo} is referenced by {Pegasus.Main} but is not found.WARNING: Assembly {Pegasus.BusinessObjects} is referenced by {Pegasus.TMS} but is not found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Common.BSL\Properties} referenced by the PDB file of the assembly {Pegasus.Common} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Common.BSL} referenced by the PDB file of the assembly {Pegasus.Common} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Common.BSL\Utilities} referenced by the PDB file of the assembly {Pegasus.Common} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Common.BSL\Languages} referenced by the PDB file of the assembly {Pegasus.Common} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Controls} referenced by the PDB file of the assembly {Pegasus.Controls} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Controls\Properties} referenced by the PDB file of the assembly {Pegasus.Controls} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.SearchEngine} referenced by the PDB file of the assembly {Pegasus.SearchEngine} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.SearchEngine\Properties} referenced by the PDB file of the assembly {Pegasus.SearchEngine} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\UIElements\TransportRepair} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\UIElements\Central} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\UIElements\Cargo} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {e:\Shoaib Work\Projects\Pegasus\Pegasus.General\UIElements} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\UIElements\Main} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\UIElements\Administration} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\UIElements\HRPayroll} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\UIElements\ShippingLines} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\UIElements\Inventory} referenced by the PDB file of the assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\Controls} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.General\Properties} referenced by the PDB file of the assembly {Pegasus.General} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Security\Properties} referenced by the PDB file of the assembly {Pegasus.Security} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Security\UIElements} referenced by the PDB file of the assembly {Pegasus.Security} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Accounts\UIElements} referenced by the PDB file of the assembly {Pegasus.Accounts} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Accounts\Properties} referenced by the PDB file of the assembly {Pegasus.Accounts} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Job\Properties} referenced by the PDB file of the assembly {Pegasus.Job} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Job\UIElements} referenced by the PDB file of the assembly {Pegasus.Job} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.NVOCC\UIElements} referenced by the PDB file of the assembly {Pegasus.NVOCC} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.NVOCC\Properties} referenced by the PDB file of the assembly {Pegasus.NVOCC} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Warehouse\UIElements} referenced by the PDB file of the assembly {Pegasus.Warehouse} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.Warehouse\Properties} referenced by the PDB file of the assembly {Pegasus.Warehouse} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.ShippingLine\Properties} referenced by the PDB file of the assembly {Pegasus.ShippingLine} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.ShippingLine\UIElements} referenced by the PDB file of the assembly {Pegasus.ShippingLine} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.PRCI\UIElements} referenced by the PDB file of the assembly {Pegasus.PRCI} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.PRCI\Properties} referenced by the PDB file of the assembly {Pegasus.PRCI} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.AirFreight\UIElements} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.AirFreight\Properties} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.AirFreight\Handlers} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.AirFreight\Handlers\CnF} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.AirFreight\Handlers\Multi} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.AirFreight\Handlers\Sea} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.AirFreight\Handlers\Land} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.AirFreight\Handlers\Air} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.FlightCargo\UIElements} referenced by the PDB file of the assembly {Pegasus.FlightCargo} can't be found.
WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.FlightCargo\Handlers\Air} referenced by the PDB file of the assembly {Pegasus.FlightCargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus.FlightCargo\Properties} referenced by the PDB file of the assembly {Pegasus.FlightCargo} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus\RibbonClasses\Util} referenced by the PDB file of the assembly {Pegasus.Main} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus} referenced by the PDB file of the assembly {Pegasus.Main} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus\Controls} referenced by the PDB file of the assembly {Pegasus.Main} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus\Security} referenced by the PDB file of the assembly {Pegasus.Main} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus\Properties} referenced by the PDB file of the assembly {Pegasus.Main} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\Pegasus\Service References\RSServiceReference05} referenced by the PDB file of the assembly {Pegasus.Main} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\PEGASUS.TMS\UIElements} referenced by the PDB file of the assembly {Pegasus.TMS} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\PEGASUS.TMS\UIElements\Masters} referenced by the PDB file of the assembly {Pegasus.TMS} can't be found.WARNING: The source directory {E:\Shoaib Work\Projects\Pegasus\PEGASUS.TMS\Properties} referenced by the PDB file of the assembly {Pegasus.TMS} can't be found.
CQL Queries and Constraints{Code Quality} Some CQL constraints are not satisfied. {Code Quality \ Type Metrics} Some CQL constraints are not satisfied. {Code Quality from Now!} All CQL queries compile and all CQL contraints are 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} Some CQL constraints are not satisfied. {Diff / Changes / Evolution} All CQL queries compile and all CQL contraints are satisfied. {Diff / Changes / Evolution \ API Breaking Changes} All CQL queries compile and all CQL contraints are satisfied. {Test Coverage} Some CQL constraints are not satisfied. {Purity / Immutability / Side-Effects} Some CQL constraints are not satisfied. {Naming Conventions} Some CQL constraints are not satisfied. {Naming Conventions \ Name too long} Some CQL constraints are not satisfied. {Constraints extracted from Source Code} No active CQL query compiled.
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 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
CheckApproval() 58
289 N/A 12 1 0 3 1 Pegasus.Controls.AuthenticationPrompt.CheckApproval()
RenderTree(IEnumerable<T>,TreeLayout)
38 203 N/A 21 2 2 11 1
Pegasus.Controls.TreeViewBase<T>.RenderTree(IEnumerable<T>,TreeLayout)
CreateItemNode(T,IList,TreeLayout)
32
212 N/A 24 3 3 11 1 Pegasus.Controls.TreeViewBase<T>.CreateItemNode(T,IList,TreeLa
yout)
EnsureNodeIsVisible(T) 21
99 N/A 6 2 1 11 1 Pegasus.Controls.TreeViewBase<T>.EnsureNodeIsVisible(T)
TryFindItemNode(ItemCollection,String,Boolean)
14 91 N/A 10 5 3 8 1
Pegasus.Controls.TreeViewBase<T>.TryFindItemNode(ItemCollection,String,Boolean)
ApplyAutoCollapse() 34
204 N/A 23 3 0 13 1 Pegasus.Controls.TreeViewBase<T>.ApplyAutoCollapse()
.cctor() 35
257 N/A 1 0 0 1 1 Pegasus.Controls.TreeViewBase<T>..cctor()
OnItemCollectionChanged(Object,NotifyCollectionChangedEventArgs)
31
159 N/A 13 4 2 10 1
Pegasus.Controls.ItemMonitor<T>.OnItemCollectionChanged(Object,NotifyCollectionChangedEventArgs)
HandleRemovedChildItems(ICollection<T>,NotifyCollectionChangedEventArgs)
21
142 N/A 12 2 2 9 1
Pegasus.Controls.ItemMonitor<T>.HandleRemovedChildItems(ICollection<T>,NotifyCollectionChangedEventArgs)
OnRender(DrawingContext)
48
499 N/A 27 6 1 12 1 Pegasus.Controls.Ruler.OnRender(DrawingContext)
Sum:332
2 155 0 149 28 14 89 10
Average:3
3.2
215.5 0
14.9
2.8 1.4 8.9 1
Minimum: 14
91 0 1 0 0 1 1
Maximum: 58
499 0 27 6 3 13 1
Standard deviation:
12.384
112.01 0
8.0554
1.7205
1.1136
3.726
90
Variance:
15
3.36
12 546 0
64.89
2.96
1.24
13.89 0
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 tested match the condition. --> Group {Code Quality} // <Name>Methods too big (NbLinesOfCode)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE NbLinesOfCode > 30 ORDER BY NbLinesOfCode DESC
// METHODS WHERE NbLinesOfCode > 30 are extremely complex // and should be split in smaller methods // (except if they are automatically generated by a tool).// See the definition of the NbLinesOfCode metric here // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode
methods
# lines of code (LOC)
Full Name
IntialLoad() 801
Pegasus.Main.RptFreight.IntialLoad()
ApplyReportsTabSecurity() 726
Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity()
intialLoad() 627
Pegasus.Main.RPTFLC.intialLoad()
intialLoad() 453
Pegasus.Main.RptLTM.intialLoad()
cboJobCard_SelectionChanged(Object,SelectionChangedEventArgs)
435
Pegasus.PRCI.UIElements.PRCICosting.cboJobCard_SelectionChanged(Object,SelectionChangedEventArgs)
xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
406
Pegasus.ShippingLine.UIElements.SHQuotation.xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
intialLoad() 358
Pegasus.Main.RptNVOCC.intialLoad()
intialLoad() 346
Pegasus.Main.RptSL.intialLoad()
xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
345
Pegasus.FlightCargo.UIElements.Quotation.xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
SaveRecord() 327
Pegasus.PRCI.UIElements.PRCICosting.SaveRecord()
Sum:4
824
Average: 482.4
Minimum: 327
Maximum: 801
Standard deviation:16
3.65
Variance:26 78
1
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 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
ApplyReportsTabSecurity() 4 585 Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity()
System.Windows.Markup.IComponentConnector.Connect(Int32,Object)
4 358Pegasus.Main.RibbonMenuTest.System.Windows.Markup.IComponentConnector.Connect(Int32,Object)
IntialLoad() 3 892 Pegasus.Main.RptFreight.IntialLoad()
xamExpenses_CellUpdated(Object,CellUpdatedEventArgs) 3 870
Pegasus.ShippingLine.UIElements.SHQuotation.xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
xamExpenses_CellUpdated(Object,CellUpdatedEventArgs) 3 177
Pegasus.FlightCargo.UIElements.Quotation.xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
intialLoad() 3 061 Pegasus.Main.RPTFLC.intialLoad()
cboJobCard_SelectionChanged(Object,SelectionChangedEventArgs) 3 028
Pegasus.PRCI.UIElements.PRCICosting.cboJobCard_SelectionChanged(Object,SelectionChangedEventArgs)
CheckGrid() 2 866 Pegasus.Warehouse.UIElements.WHConBreaking.CheckGrid()
ValidateRecord() 2 636 Pegasus.General.UIElements.Cargo.RateMaster.ValidateRecord()
SaveRecord() 2 452 Pegasus.PRCI.UIElements.PRCICosting.SaveRecord()
Sum: 33 925
Average: 3 392
Minimum: 2 452
Maximum: 4 585
Standard deviation: 696.78
Variance: 485 497
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 tested match the condition. --> Group {Code Quality} // <Name>Methods too complex (ILCyclomaticComplexity)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE ILCyclomaticComplexity > 40 ORDER BY ILCyclomaticComplexity DESC
// METHODS WHERE ILCyclomaticComplexity > 20 // are hard to understand and maintain.// METHODS WHERE ILCyclomaticComplexity > 40 // are extremely complex and should be split // in smaller methods // (except if they are automatically generated by a tool).// See the definition of the ILCyclomaticComplexity metric here // http://www.ndepend.com/Metrics.aspx#ILCC
methods
IL Cyclomatic Complexity (ILCC)
Full Name
System.Windows.Markup.IComponentConnector.Connect(Int32,Object)
561Pegasus.Main.RibbonMenuTest.System.Windows.Markup.IComponentConnector.Connect(Int32,Object)
xamExpenses_CellUpdated(Object,CellUpdatedEventArgs) 268
Pegasus.ShippingLine.UIElements.SHQuotation.xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
ApplyReportsTabSecurity() 245 Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity()
xamExpenses_CellUpdated(Object,CellUpdatedEventArgs) 194
Pegasus.FlightCargo.UIElements.Quotation.xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
SaveRecord() 191 Pegasus.Accounts.UIElements.PostunPost.SaveRecord()
GetWHConBreakDetail() 185 Pegasus.Warehouse.UIElements.WHConBreaking.GetWHConBreakDetail()
cboJobCard_SelectionChanged(Object,SelectionChangedEventArgs) 184
Pegasus.PRCI.UIElements.PRCICosting.cboJobCard_SelectionChanged(Object,SelectionChangedEventArgs)
GetExpensesFromGrid() 177 Pegasus.TMS.UIElements.TMSQuotation.GetExpensesFromGrid()
SaveRecord() 163 Pegasus.PRCI.UIElements.PRCICosting.SaveRecord()
xamExpenses_CellUpdated(Object,CellUpdatedEventArgs) 156
Pegasus.Warehouse.UIElements.WHQuotation.xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
Sum: 2 324
Average: 232.4
Minimum: 156
Maximum: 561
Standard deviation: 114.41
Variance: 13 090
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 tested match the condition. --> Group {Code Quality} // <Name>Methods too complex (ILNestingDepth)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE ILNestingDepth > 4 ORDER BY ILNestingDepth DESC
// METHODS WHERE ILNestingDepth > 4 are hard // to understand and maintain. // METHODS WHERE ILNestingDepth > 8 is higher // than 8 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#ILNestingDepth
methods
IL Nesting Depth
Full Name
MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Int32,Int32,Int32)
21Pegasus.TMS.UIElements.TMSQuotation.MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Int32,Int32,Int32)
CheckGrid() 20 Pegasus.Warehouse.UIElements.WHConMoveHead.CheckGrid()
MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Decimal) 19
Pegasus.ShippingLine.UIElements.SHQuotation.MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Decimal)
MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Decimal)
18 Pegasus.NVOCC.UIElements.NVQuotation.MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Decimal)
MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Decimal,Int32)
17Pegasus.Handlers.QuotationHandler.MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Decimal,Int32)
xamWHConBreakDetail_CellActivating(Object,CellActivatingEventArgs)
17Pegasus.Warehouse.UIElements.WHConBreaking.xamWHConBreakDetail_CellActivating(Object,CellActivatingEventArgs)
CheckGrid() 17 Pegasus.Warehouse.UIElements.WHConBreaking.CheckGrid()
MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Decimal)
17 Pegasus.FlightCargo.UIElements.Quotation.MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Decimal)
CheckGrid() 14 Pegasus.General.UIElements.Central.PRCIDocDefMaster.CheckGrid()
Control_GotFocusExcludeGrids(Object,RoutedEventArgs)
13 Pegasus.General.EventMethods.Control_GotFocusExcludeGrids(Object,RoutedEventArgs)
Sum: 173
Average: 17.3
Minimum: 13
Maximum: 21
Standard deviation: 2.3259
Variance: 5.41
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 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
cboClient_KeyDown(Object,KeyEventArgs)
N/A 16 Pegasus.Cargo.UIElements.CustomerInquiry.cboClient_KeyDown(Object,KeyEventArgs)
ShowRecordFromList(Object,MouseButtonEventArgs)
N/A 52 Pegasus.Cargo.UIElements.CustomerInquiry.ShowRecordFromList(Object,MouseButtonEventArgs)
ValidateRecord() N/A 47 Pegasus.Cargo.UIElements.CustomerInquiry.ValidateRecord()
EvalKeyDown(Object,KeyEventArgs)
N/A 16 Pegasus.Cargo.UIElements.CustomerInquiry.EvalKeyDown(Object,KeyEventArgs)
TypeKeyDown(Object,KeyEventArgs)
N/A 16 Pegasus.Cargo.UIElements.CustomerInquiry.TypeKeyDown(Object,KeyEventArgs)
CategoryKeyDown(Object,KeyEventArgs)
N/A 16 Pegasus.Cargo.UIElements.CustomerInquiry.CategoryKeyDown(Object,KeyEventArgs)
SaveRecord() N/A 36 Pegasus.Cargo.UIElements.CustomerInquiry.SaveRecord()
EnableDisable(Boolean) N/A 18 Pegasus.Cargo.UIElements.CustomerInquiry.EnableDisable(Boolean)
FindRecord() N/A 57 Pegasus.Cargo.UIElements.CustomerInquiry.FindRecord()
IsPrefixExists(Int32,Int32,Int32,String,Int32)
N/A 15 Pegasus.Cargo.UIElements.CustomerInquiry.IsPrefixExists(Int32,Int32,Int32,String,Int32)
Sum: 0 289
Average: 0 28.9
Minimum: 0 15
Maximum: 0 57
Standard deviation: 0 16.367
Variance: 0 267.89
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 tested match the condition. --> Group {Code Quality} // <Name>Methods with too many parameters (NbParameters)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE NbParameters > 5 ORDER BY NbParameters DESC
// METHODS WHERE NbParameters > 5 might be painful to call // and might degrade performance. You should prefer using // additional properties/fields to the declaring type to // handle numerous states. Another alternative is to provide // a class or structure dedicated to handle arguments passing // (for example see the class System.Diagnostics.ProcessStartInfo // and the method System.Diagnostics.Process.Start(ProcessStartInfo))// See the definition of the NbParameters metric here // http://www.ndepend.com/Metrics.aspx#NbParameters
methods # P
Full Name
arameters
UpdateTransactionDetail(WHJobCardHead,Commodity,WHMaster,WHRack,WHLocation,Units,Boolean,Boolean,Int32,Int32)
10
Pegasus.Warehouse.UIElements.WHCommercialInvoice.UpdateTransactionDetail(WHJobCardHead,Commodity,WHMaster,WHRack,WHLocation,Units,Boolean,Boolean,Int32,Int32)
CCUpdateSpaceAllocation(WHJobCardHead,Commodity,WHMaster,WHRack,WHLocation,Units,Boolean,Boolean,Int32,Int32)
10
Pegasus.Warehouse.UIElements.WHDeliveryOrder.CCUpdateSpaceAllocation(WHJobCardHead,Commodity,WHMaster,WHRack,WHLocation,Units,Boolean,Boolean,Int32,Int32)
.ctor(ServerInfoHeader,String,ExtensionSettings,DataRetrievalPlan,String,ActiveState,String,String,String,ParameterValueOrFieldReference[])
10
Pegasus.Main.RSServiceReference05.GetDataDrivenSubscriptionPropertiesResponse..ctor(ServerInfoHeader,String,ExtensionSettings,DataRetrievalPlan,String,ActiveState,String,String,String,ParameterValueOrFieldReference[])
UpdateSpaceAllocation(WHJobCardHead,Commodity,WHMaster,WHRack,WHLocation,Units,Boolean,Boolean,Int32,Int32)
10
Pegasus.Warehouse.UIElements.WHCommercialInvoice.UpdateSpaceAllocation(WHJobCardHead,Commodity,WHMaster,WHRack,WHLocation,Units,Boolean,Boolean,Int32,Int32)
GetDataDrivenSubscriptionProperties(String,String&,ExtensionSettings&,DataRetrievalPlan&,String&,ActiveState&,String&,String&,String&,ParameterValueOrFieldReference[]&)
10
Pegasus.Main.RSServiceReference05.ReportingService2005SoapClient.GetDataDrivenSubscriptionProperties(String,String&,ExtensionSettings&,DataRetrievalPlan&,String&,ActiveState&,String&,String&,String&,ParameterValueOrFieldReference[]&)
CreateDataDrivenSubscription(BatchHeader,String,ExtensionSettings,DataRetrievalPlan,String,String,String,ParameterValueOrFieldReference[],String&)
9
Pegasus.Main.RSServiceReference05.ReportingService2005SoapClient.CreateDataDrivenSubscription(BatchHeader,String,ExtensionSettings,DataRetrievalPlan,String,String,String,ParameterValueOrFieldReference[],String&)
.ctor(ServerInfoHeader,String,ExtensionSettings,String,ActiveState,String,String,String,ParameterValue[])
9
Pegasus.Main.RSServiceReference05.GetSubscriptionPropertiesResponse..ctor(ServerInfoHeader,String,ExtensionSettings,String,ActiveState,String,String,String,ParameterValue[])
GetSubscriptionProperties(String,String&,ExtensionSettings&,String&,ActiveState&,String&,String&,String&,ParameterValue[]&)
9
Pegasus.Main.RSServiceReference05.ReportingService2005SoapClient.GetSubscriptionProperties(String,String&,ExtensionSettings&,String&,ActiveState&,String&,String&,String&,ParameterValue[]&)
MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Int32,Int32,Int32) 8
Pegasus.TMS.UIElements.TMSQuotation.MakeChargeCodeList(Boolean,Int32,Int32,Int32,Int32,Int32,Int32,Int32)
.ctor(BatchHeader,String,ExtensionSettings,DataRetrievalPlan,String,String,String,ParameterValueOrFieldReference[])
8
Pegasus.Main.RSServiceReference05.CreateDataDrivenSubscriptionRequest..ctor(BatchHeader,String,ExtensionSettings,DataRetrievalPlan,String,String,String,ParameterValueOrFieldReference[])
Sum: 93
Average: 9.3
Minimum: 8
Maximum: 10
Standard deviation:
0.7810
2
Variance: 0.61
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 tested match the condition. --> Group {Code Quality} // <Name>Methods with too many local variables (NbVariables)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE NbVariables > 15 ORDER BY NbVariables DESC
// METHODS WHERE NbVariables > 8 are hard to understand and maintain.// METHODS WHERE NbVariables > 15 are extremely complex // and should be split in smaller methods // (except if they are automatically generated by a tool).// See the definition of the Nbvariables metric here // http://www.ndepend.com/Metrics.aspx#Nbvariables
methods
# Variables
Full Name
xamWHConBreakDetail_CellActivating(Object,CellActivatingEventArgs)
55Pegasus.Warehouse.UIElements.WHConBreaking.xamWHConBreakDetail_CellActivating(Object,CellActivatingEventArgs)
xamWHConMoveDetail_CellActivating(Object,CellActivatingEventArgs)
53Pegasus.Warehouse.UIElements.WHConMoveHead.xamWHConMoveDetail_CellActivating(Object,CellActivatingEventArgs)
xamDgGrn_CellActivating(Object,CellActivatingEventArgs)
39 Pegasus.Warehouse.UIElements.WHGRN.xamDgGrn_CellActivating(Object,CellActivatingEventArgs)
xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
37 Pegasus.TMS.UIElements.TMSQuotation.xamExpenses_CellUpdated(Object,CellUpdatedEventArgs)
CheckGrid() 34 Pegasus.Warehouse.UIElements.WHConMoveHead.CheckGrid()
btnGenerateEDI_Click(Object,RoutedEventArgs)
33 Pegasus.ShippingLine.UIElements.SHManifest.btnGenerateEDI_Click(Object,RoutedEventArgs)
btnGenerateEDI_Click(Object,RoutedEventArgs)
33 Pegasus.NVOCC.UIElements.NVManifest.btnGenerateEDI_Click(Object,RoutedEventArgs)
SaveVoucher() 32 Pegasus.PRCI.UIElements.PRCIInvoice.SaveVoucher()
SetAirFreight() 31 Pegasus.Handlers.CnFJobCardHandler.SetAirFreight()
LoadControl() 31 Pegasus.Handlers.CnFJobCardHandler.LoadControl()
Sum: 378
Average: 37.8
Minimum: 31
Maximum: 55
Standard deviation: 8.4593
Variance: 71.56
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 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
ReportingService2005SoapClient
211 Pegasus.Main.RSServiceReference05.ReportingService2005SoapClient
HouseBillofLading 108 Pegasus.Cargo.UIElements.HouseBillofLading
MasterBillofLading 107 Pegasus.Cargo.UIElements.MasterBillofLading
ReportingService2005Soap
103 Pegasus.Main.RSServiceReference05.ReportingService2005Soap
RptMIS 101 Pegasus.Main.RptMIS
TreeViewBase<T> 100 Pegasus.Controls.TreeViewBase<T>
NVJobCard 98 Pegasus.NVOCC.UIElements.NVJobCard
SHJobCard 95 Pegasus.ShippingLine.UIElements.SHJobCard
Resources 84 Pegasus.Common.Properties.Resources
WHJobCard 81 Pegasus.Warehouse.UIElements.WHJobCard
Sum: 1 088
Average: 108.8
Minimum: 81
Maximum: 211
Standard deviation: 35.094
Variance: 1 231
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 tested match the condition. --> Group {Code Quality \ Type Metrics} // <Name>Types with too many fields</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE NbFields > 20 AND !IsEnumeration ORDER BY NbFields DESC
// TYPES WHERE NbFields > 20 AND !IsEnumeration // might be hard to understand and maintain // but there might be cases where it is relevant // to have a high value for NbFields. // For example, the System.Windows.Forms.Control // standard class has more than 200 fields. // The value of the metric NbFields might be a better // indicator of complex type.// See the definition of the NbFields metric here // http://www.ndepend.com/Metrics.aspx#NbFields
types # Fields
Full Name
RibbonMenuTest 558 Pegasus.Main.RibbonMenuTest
JobCard 151 Pegasus.Cargo.UIElements.JobCard
RPTFLC 148 Pegasus.Main.RPTFLC
RptFreight 138 Pegasus.Main.RptFreight
NVJobCard 137 Pegasus.NVOCC.UIElements.NVJobCard
RptMain 127 Pegasus.Main.RptMain
SHJobCard 121 Pegasus.ShippingLine.UIElements.SHJobCard
HouseBillofLading
112 Pegasus.Cargo.UIElements.HouseBillofLading
NVHBL 108 Pegasus.NVOCC.UIElements.NVHBL
NVMBL 108 Pegasus.NVOCC.UIElements.NVMBL
Sum: 1 708
Average: 170.8
Minimum: 108
Maximum: 558
Standard deviation:
129.92
Variance: 16 879
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 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
NVJobCard 0.97334 137 98 Pegasus.NVOCC.UIElements.NVJobCard
SHInventry 0.97276 45 31 Pegasus.ShippingLine.UIElements.SHInventry
NVInventry 0.97276 45 31 Pegasus.NVOCC.UIElements.NVInventry
SHJobCard 0.97155 121 95 Pegasus.ShippingLine.UIElements.SHJobCard
MasterBillofLading
0.96742 105 107 Pegasus.Cargo.UIElements.MasterBillofLading
HouseBillofLading
0.96718 112 108 Pegasus.Cargo.UIElements.HouseBillofLading
SHHBL 0.96681 108 77 Pegasus.ShippingLine.UIElements.SHHBL
NVHBL 0.96681 108 77 Pegasus.NVOCC.UIElements.NVHBL
NVMBL 0.96681 108 77 Pegasus.NVOCC.UIElements.NVMBL
SHMBL 0.96681 108 77 Pegasus.ShippingLine.UIElements.SHMBL
Sum: 9.6923 997 778
Average: 0.96923 99.7 77.8
Minimum: 0.96681 45 31
Maximum: 0.97334 137 108
Standard deviation:
0.0027582 28.782
26.176
Variance: 7.607416E-06 828.41
685.16
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 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
NVInventry 1.0052 45 31 Pegasus.NVOCC.UIElements.NVInventry
SHInventry 1.0052 45 31 Pegasus.ShippingLine.UIElements.SHInventry
NVJobCard 0.98337 137 98 Pegasus.NVOCC.UIElements.NVJobCard
SHJobCard 0.98189 121 95 Pegasus.ShippingLine.UIElements.SHJobCard
ReportParameter
0.97961 25 52 Pegasus.Main.RSServiceReference05.ReportParameter
NVMBL 0.97953 108 77 Pegasus.NVOCC.UIElements.NVMBL
NVHBL 0.97953 108 77 Pegasus.NVOCC.UIElements.NVHBL
SHMBL 0.97953 108 77 Pegasus.ShippingLine.UIElements.SHMBL
SHHBL 0.97953 108 77 Pegasus.ShippingLine.UIElements.SHHBL
MasterBillofLading
0.97655 105 107 Pegasus.Cargo.UIElements.MasterBillofLading
Sum: 9.8499 910 722
Average: 0.98499 91 72.2
Minimum: 0.97655 25 31
Maximum: 1.0052 137 107
Standard deviation:
0.010229 35.994
25.083
Variance: 0.00010462
1 295 629.16
WARNING: The following CQL constraint is not satisfied. 1 assemblies on 33 tested match the condition. --> Group {Design} // <Name>Assembly should not contain namespaces dependency cycles</Name>WARN IF Count > 0 IN SELECT TOP 10 ASSEMBLIES WHEREContainsNamespaceDependencyCycle
// Dependency cycles between namespaces must be avoided// in order to have a levelized and comprehensive design.// More info available on the screencast 'Reduce the complexity'// http://s3.amazonaws.com/NDependOnlineDemos/NDependReducingComplexity_viewlet_swf.html// You can also read this article// http://www.theserverside.net/tt/articles/showarticle.tss?id=ControllingDependencies
// For any assembly matched, to display internal namespaces dependency cycle(s),// just right-click the assembly and select:// --> View internal Dependency Cycles on Graph ... or ...// --> View internal Dependency Cycles on Matrix (Recommended)// In the Matrix, dependency cycles are represented with red squares and black cells.// To browse easily dependency cycles, the Matrix comes with the option:// --> Display Direct and Indirect Dependencies
assemblies # lines of code (LOC)
Full Name
Pegasus.Cargo 20 358 Pegasus.Cargo
Sum: 20 358
Average: 20 358
Minimum: 20 358
Maximum: 20 358
Standard deviation:
NaN
Variance: -4
WARNING: The following CQL constraint is not satisfied. 10 types on 638 tested match the condition. --> Group {Design} // <Name>Type should not have too many responsabilities (Efferent Coupling)</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE TypeCe > 50 ORDER BY TypeCe DESC
// The Efferent Coupling (TypeCe) for a particular type is // the number of types it directly depends on. Notice that // types declared in third party assemblies are taken into account.
// Types that depends on too many others type (more than 50) // are complex and have more than one responsability. They
// are good candidate for refactoring.
// More information available in this article:// http://codebetter.com/blogs/patricksmacchia/archive/2008/02/15/code-metrics-on-coupling-dead-code-design-flaws-and-re-engineering.aspx
types
Efferent coupling (TypeCe)
Full Name
ReportingService2005SoapClient
262 Pegasus.Main.RSServiceReference05.ReportingService2005SoapClient
ReportingService2005Soap
211 Pegasus.Main.RSServiceReference05.ReportingService2005Soap
Quotation 158 Pegasus.Cargo.UIElements.Quotation
NVJobCard 154 Pegasus.NVOCC.UIElements.NVJobCard
SHJobCard 151 Pegasus.ShippingLine.UIElements.SHJobCard
CustomerInquiry 149 Pegasus.Cargo.UIElements.CustomerInquiry
NVQuotation 147 Pegasus.NVOCC.UIElements.NVQuotation
WHQuotation 144 Pegasus.Warehouse.UIElements.WHQuotation
SHQuotation 144 Pegasus.ShippingLine.UIElements.SHQuotation
PRCICosting 141 Pegasus.PRCI.UIElements.PRCICosting
Sum: 1 661
Average: 166.1
Minimum: 141
Maximum: 262
Standard deviation: 37.305
Variance: 1 391
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 tested match the condition. --> Group {Design} // <Name>A stateless class or structure might be turned into a static type</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE SizeOfInst ==0 AND
// For accuracy, this constraint doesn't take // account of types that implement some interfaces. // and classes that have a base class and don't // derive directly from System.Object, or classes // that have sub-classes children. NbInterfacesImplemented == 0 AND ((IsClass AND DepthOfInheritance == 1
AND NbChildren == 0) OR IsStructure) AND !IsStatic AND !IsGeneric // this rule indicates stateless types that might // eventually be turned into static classes. // See the definition of the SizeOfInst metric here // http://www.ndepend.com/Metrics.aspx#SizeOfInst
types
Size of instance
# interfaces implemented
Depth of inheritance
# Children
Full Name
clsNHiber 0 0 1 0 Pegasus.Common.clsNHiber
Resources 0 0 1 0 Pegasus.Common.Properties.Resources
Resource 0 0 1 0 Pegasus.Common.Languages.Resource
Message 0 0 1 0 Pegasus.Controls.Message
MessageBox 0 0 1 0 Pegasus.Controls.MessageBox
Resources 0 0 1 0 Pegasus.Controls.Properties.Resources
ExplicitBindingLibrary
0 0 1 0 Pegasus.SearchEngine.ExplicitBindingLibrary
Resources 0 0 1 0 Pegasus.SearchEngine.Properties.Resources
sGlobal 0 0 1 0 Pegasus.General.sGlobal
EventMethods 0 0 1 0 Pegasus.General.EventMethods
Sum: 0 0 10 0
Average: 0 0 1 0
Minimum: 0 0 1 0
Maximum: 0 0 1 0
Standard deviation:
0 0 0 0
Variance: 0 0 0 0
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 tested match the condition. --> Group {Design} // <Name>Class shouldn't be too deep in inheritance tree </Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE DepthOfInheritance >= 6 ORDER BY DepthOfInheritance DESC
// Branches too long in the derivation should be avoided.// See the definition of the DepthOfInheritance metric here
// http://www.ndepend.com/Metrics.aspx#DIT // You can discard specific classes with by-design high // DepthOfInheritance with such condition for example:// AND !DeriveFrom "System.Windows.Forms.Form"
types Depth of inheritance
Full Name
CategoryTree 10 Pegasus.Controls.CategoryTree
MenuExpander 10 Pegasus.Main.MenuExpander
NavigationMain 10 Pegasus.Main.NavigationMain
frmFrameAddNew 9 Pegasus.SearchEngine.frmFrameAddNew
Buttons 9 Pegasus.Controls.Buttons
frmWinUltraGrid 9 Pegasus.SearchEngine.frmWinUltraGrid
TreeView 9 Pegasus.General.Controls.TreeView
AuthenticationPrompt
9 Pegasus.Controls.AuthenticationPrompt
TreeViewBase<T> 9 Pegasus.Controls.TreeViewBase<T>
PegasusMessageBox
9 Pegasus.Controls.PegasusMessageBox
Sum: 93
Average: 9.3
Minimum: 9
Maximum: 10
Standard deviation: 0.45825
Variance: 0.21
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 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 cod
Full Name
e (LOC)
CodeDesc 0 0 Pegasus.Warehouse.UIElements.CodeDesc
WHJobCosting+CodeDesc 0 0 Pegasus.Warehouse.UIElements.WHJobCosting+CodeDesc
SHCosting+CodeDesc 0 0 Pegasus.ShippingLine.UIElements.SHCosting+CodeDesc
SHEstimation+CodeDesc 0 0 Pegasus.ShippingLine.UIElements.SHEstimation+CodeDesc
SHContainerTracking+CodeDesc
0 0 Pegasus.ShippingLine.UIElements.SHContainerTracking+CodeDesc
InvalidDataSourceReference
0 0 Pegasus.Main.RSServiceReference05.InvalidDataSourceReference
NVQuotation+CodeDesc 0 0 Pegasus.NVOCC.UIElements.NVQuotation+CodeDesc
Voucher+CodeDesc 0 0 Pegasus.Accounts.UIElements.Voucher+CodeDesc
NVEstimation+CodeDesc 0 0 Pegasus.NVOCC.UIElements.NVEstimation+CodeDesc
NVContainerTracking+CodeDesc
0 0 Pegasus.NVOCC.UIElements.NVContainerTracking+CodeDesc
Sum: 0 0
Average: 0 0
Minimum: 0 0
Maximum: 0 0
Standard deviation: 0 0
Variance: 0 0
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 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 !IsStatic AND SizeOfInst > 0 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
Common 10 0 1 Pegasus.Common.Common
ItemMonitor<T> 12 0 1 Pegasus.Controls.ItemMonitor<T>
TreeLayout 8 0 1 Pegasus.Controls.TreeLayout
Convertor 12 0 1 Pegasus.General.Convertor
Voucher+CodeDesc 8 0 1 Pegasus.Accounts.UIElements.Voucher+CodeDesc
SalesTaxCalculationType
8 0 1 Pegasus.NVOCC.UIElements.SalesTaxCalculationType
NVEstimation+CodeDesc
8 0 1 Pegasus.NVOCC.UIElements.NVEstimation+CodeDesc
NVCosting+CodeDesc 8 0 1 Pegasus.NVOCC.UIElements.NVCosting+CodeDesc
NVContainerTracking+CodeDesc
8 0 1 Pegasus.NVOCC.UIElements.NVContainerTracking+CodeDesc
WHJobCosting+CodeDesc
8 0 1 Pegasus.Warehouse.UIElements.WHJobCosting+CodeDesc
Sum: 90 0 10
Average: 9 0 1
Minimum: 8 0 1
Maximum: 12 0 1
Standard deviation: 1.6125
0 0
Variance: 2.6 0 0
WARNING: The following CQL constraint is not satisfied. 10 namespaces on 124 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
Pegasus.RibbonClasses.Util 1 Pegasus.RibbonClasses.Util
Pegasus.General.UIElements 1 Pegasus.General.UIElements
Pegasus.Main.Security 1 Pegasus.Main.Security
Pegasus.General.UIElements.Inventory
1 Pegasus.General.UIElements.Inventory
Pegasus 1 Pegasus
Pegasus 1 Pegasus
Pegasus.Job 1 Pegasus.Job
Pegasus.Common.Languages 1 Pegasus.Common.Languages
Pegasus.Common.Properties 1 Pegasus.Common.Properties
Pegasus.Common.Utilities 1 Pegasus.Common.Utilities
Sum: 10
Average: 1
Minimum: 1
Maximum: 1
Standard deviation: 0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 tested match the condition. --> Group {Design} // <Name>Nested types should not be visible</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE IsNested AND !IsPrivate AND !IsInFrameworkAssembly
// A nested type is a type declared within the // scope of another type. Nested types are useful // for encapsulating private implementation details // of the containing type. Used for this purpose, // nested types should not be externally visible. // Do not use externally visible nested types for // logical grouping or to avoid name collisions; // instead, use namespaces.
types # lines of code (LOC)
Full Name
Common+ComboType N/A Pegasus.Common.Common+ComboType
Message+DialogResult N/A Pegasus.Controls.Message+DialogResult
Message+MessageBoxBu N/A Pegasus.Controls.Message+MessageBoxButtons
ttons
Message+MessageBoxImage
N/A Pegasus.Controls.Message+MessageBoxImage
Buttons+ButtonsMode N/A Pegasus.Controls.Buttons+ButtonsMode
sGlobal+pParams 0 Pegasus.General.sGlobal+pParams
TreeView+TypeSearch N/A Pegasus.General.Controls.TreeView+TypeSearch
NVQuotation+CodeDesc 0 Pegasus.NVOCC.UIElements.NVQuotation+CodeDesc
SHQuotation+CodeDesc 0 Pegasus.ShippingLine.UIElements.SHQuotation+CodeDesc
QuotationHandler+CodeDesc
0 Pegasus.Handlers.QuotationHandler+CodeDesc
Sum: 0
Average: 0
Minimum: 0
Maximum: 0
Standard deviation: 0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 1 types on 1155 tested match the condition. --> Group {Design} // <Name>Avoid empty interfaces</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE IsInterface AND NbMethods == 0
// Interfaces define members that provide a behavior // or usage contract. The functionality described by // the interface can be adopted by any type, // regardless of where the type appears in the // inheritance hierarchy. A type implements an // interface by providing implementations for the // interface's members. An empty interface does not // define any members, and as such, does not define // a contract that can be implemented.
// If your design includes empty interfaces that // types are expected to implement, you are probably // using an interface as a marker, or a way of // identifying a group of types. If this identification // will occur at runtime, the correct way to accomplish// this is to use a custom attribute. Use the presence // or absence of the attribute, or the attribute's // properties, to identify the target types. If the // identification must occurs at compile time, then using // an empty interface is acceptable.
types # Full Name
Methods
ReportingService2005SoapChannel
0 Pegasus.Main.RSServiceReference05.ReportingService2005SoapChannel
Sum: 0
Average: 0
Minimum: 0
Maximum: 0
Standard deviation: 0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 6 assemblies on 33 tested match the condition. --> Group {Design} // <Name>Assemblies with poor cohesion (RelationalCohesion)</Name>WARN IF Count > 0 IN SELECT TOP 10 ASSEMBLIES WHERE NbTypes > 20 AND // Relational Cohesion metrics is relevant only if there are several types (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 # Types
Relational cohesion
Full Name
Pegasus.Accounts 23 0.17391 Pegasus.Accounts
Pegasus.NVOCC 24 0.375 Pegasus.NVOCC
Pegasus.Warehouse
22 0.22727 Pegasus.Warehouse
Pegasus.ShippingLine
24 0.375 Pegasus.ShippingLine
Pegasus.Cargo 42 1.1429 Pegasus.Cargo
Pegasus.TMS 32 0.09375 Pegasus.TMS
Sum: 167 2.3878
Average: 27.833 0.39797
Minimum: 22 0.09375
Maximum: 42 1.1429
Standard deviation:
7.1278 0.34828
Variance: 50.806 0.1213
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 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
RibbonMenuTest 2 484 Pegasus.Main.RibbonMenuTest
RPTFLC 847 Pegasus.Main.RPTFLC
frmWinUltraGrid 821 Pegasus.SearchEngine.frmWinUltraGrid
RptFreight 807 Pegasus.Main.RptFreight
JobCard 797 Pegasus.Cargo.UIElements.JobCard
RptMain 763 Pegasus.Main.RptMain
NVJobCard 756 Pegasus.NVOCC.UIElements.NVJobCard
HouseBillofLading
694 Pegasus.Cargo.UIElements.HouseBillofLading
SHJobCard 688 Pegasus.ShippingLine.UIElements.SHJobCard
RptLTM 683 Pegasus.Main.RptLTM
Sum: 9 340
Average: 934
Minimum: 683
Maximum: 2 484
Standard deviation:
519.59
Variance: 269 977
WARNING: The following CQL constraint is not satisfied. 1069 methods on 10763 tested match the condition. --> Group {Design \ Performance} // <Name>Boxing/unboxing should be avoided (Method)</Name>WARN IF Percentage > 5 IN SELECT METHODS WHERE IsUsingBoxing OR IsUsingUnboxing
// Thanks to generics, boxing and unboxing should be rare.
methods # lines of code (LOC)
Full Name
Sum: 42 945
Average: 40.173
Minimum: 1
Maximum: 801
Standard deviation:
54.227
Variance: 2 940
WARNING: The following CQL constraint is not satisfied. 161 types on 1155 tested match the condition. --> Group {Design \ Performance} // <Name>Boxing/unboxing should be avoided (Type)</Name>WARN IF Percentage > 5 IN SELECT TYPES WHERE IsUsingBoxing OR IsUsingUnboxing
// Thanks to generics, boxing and unboxing should be rare.
types # lines of code (LOC)
Full Name
Sum: 108 946
Average: 676.68
Minimum: 6
Maximum: 2 217
Standard deviation:
506.39
Variance: 256 427
WARNING: The following CQL constraint is not satisfied. 10 methods on 9716 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 // The IL code never explicitely AND // 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 (MethodCa)
Full Name
.ctor() 0 Pegasus.Common.Properties.Resources..ctor()
.ctor() 0 Pegasus.Common.Languages.Resource..ctor()
set_Monitor(ItemMonitor<T>)
0 Pegasus.Controls.TreeViewBase<T>.set_Monitor(ItemMonitor<T>)
OnInitialized(EventArgs) 0 Pegasus.Controls.TreeViewBase<T>.OnInitialized(EventArgs)
ArrangeOverride(Size) 0 Pegasus.Controls.ResizingAdorner.ArrangeOverride(Size)
get_VisualChildrenCount() 0 Pegasus.Controls.ResizingAdorner.get_VisualChildrenCount()
GetVisualChild(Int32) 0 Pegasus.Controls.ResizingAdorner.GetVisualChild(Int32)
OnRender(DrawingContext)
0 Pegasus.Controls.Ruler.OnRender(DrawingContext)
MeasureOverride(Size) 0 Pegasus.Controls.Ruler.MeasureOverride(Size)
OnNodeCollapsed(TreeViewItem)
0 Pegasus.Controls.CategoryTree.OnNodeCollapsed(TreeViewItem)
Sum: 0
Average: 0
Minimum: 0
Maximum: 0
Standard deviation: 0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 10 fields on 10154 tested match the condition. --> Group {Unused Code / Dead Code} // <Name>Potentially unused fields</Name>WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE FieldCa == 0 AND // Ca=0 -> No Afferent Coupling -> // The field is not used in the // context of this application.
!IsPublic AND // Although not recommended, // public fields might be used by // client applications of your
// assemblies.
!IsLiteral AND // The IL code never explicitely // uses literal fields.
!IsEnumValue AND // The IL code never explicitely // uses enumeration value.
!NameIs "value__" // Field named 'value__' are relative // to enumerations and the IL code // never explicitely uses them.
fieldsAfferent coupling (FieldCa)
Full Name
_BaseCurrency 0 Pegasus.General.sGlobal._BaseCurrency
_BaseCurrencyMask
0 Pegasus.General.sGlobal._BaseCurrencyMask
whGoods 0 Pegasus.General.UIElements.Central.WHTypeOfGoods.whGoods
isEditing 0 Pegasus.General.UIElements.Central.WHTypeOfGoods.isEditing
_frmSearch 0 Pegasus.General.UIElements.Central.PRCIDocDefMaster._frmSearch
dtAccounts 0 Pegasus.General.UIElements.Cargo.FlightCargoPallet.dtAccounts
dtChargeCode 0 Pegasus.General.UIElements.Cargo.FlightCargoPallet.dtChargeCode
chargesList 0 Pegasus.General.UIElements.Cargo.FlightCargoPallet.chargesList
_TruckMaster 0 Pegasus.General.UIElements.Cargo.DriverMaster._TruckMaster
_TransportCompany
0 Pegasus.General.UIElements.Cargo.DriverMaster._TransportCompany
Sum: 0
Average: 0
Minimum: 0
Maximum: 0
Standard deviation:
0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 10 types on 638 tested match the condition. --> Group {Unused Code / Dead Code} // <Name>Potentially unused types</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE
TypeCa == 0 AND // Ca=0 -> No Afferent Coupling -> // The type is not used in the // context of this application.
!IsPublic AND // Public types might be used // by client applications of your // assemblies.
!NameIs "Program" // Generally, types named Program // contain a Main() entry-point // method and this condition avoid // to consider such type as // unused code.
types Afferent coupling (TypeCa)
Full Name
ICommon 0 Pegasus.Common.ICommon
Settings 0 Pegasus.Controls.Properties.Settings
Resources 0 Pegasus.Controls.Properties.Resources
Settings 0 Pegasus.SearchEngine.Properties.Settings
Resources 0 Pegasus.SearchEngine.Properties.Resources
Settings 0 Pegasus.General.Properties.Settings
Settings 0 Pegasus.Security.Properties.Settings
Resources 0 Pegasus.Security.Properties.Resources
Settings 0 Pegasus.Accounts.Properties.Settings
Resources 0 Pegasus.Job.Properties.Resources
Sum: 0
Average: 0
Minimum: 0
Maximum: 0
Standard deviation:
0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 10 fields on 10218 tested match the condition. --> Group {Encapsulation} // <Name>Fields should be declared as private</Name>WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE !IsPrivate AND
// These conditions filter cases where fields // doesn't represent state that should be encapsulated. !IsInFrameworkAssembly AND !IsGeneratedByCompiler AND !IsSpecialName AND
!IsInitOnly AND !IsLiteral AND !IsEnumValue
fields Size of instance
Full Name
nhConfig 0 Pegasus.Common.clsNHiber.nhConfig
_this 4 Pegasus.Controls.AuthenticationPrompt._this
border 4 Pegasus.Controls.AuthenticationPrompt.border
gMain 4 Pegasus.Controls.AuthenticationPrompt.gMain
lblCaption 4 Pegasus.Controls.AuthenticationPrompt.lblCaption
btnClose 4 Pegasus.Controls.AuthenticationPrompt.btnClose
txtUserName 4 Pegasus.Controls.AuthenticationPrompt.txtUserName
txtPassword 4 Pegasus.Controls.AuthenticationPrompt.txtPassword
_ok 4 Pegasus.Controls.AuthenticationPrompt._ok
_cancel 4 Pegasus.Controls.AuthenticationPrompt._cancel
Sum: 36
Average: 3.6
Minimum: 0
Maximum: 4
Standard deviation:
1.2
Variance: 1.44
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 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 AND // Eliminate default constructor from the result. // Whatever the visibility of the declaring class, // default constructors are public and introduce noise // in the current rule. ! ( IsConstructor AND IsPublic AND NbILInstructions == 3)
methods # lines of
Full Name
code (LOC)
get_Factory() 1 Pegasus.Common.clsNHiber.get_Factory()
.ctor(T,T) 3 Pegasus.Controls.RoutedTreeItemEventArgs<T>..ctor(T,T)
get_ChildCollections() 1 Pegasus.Controls.ItemMonitor<T>.get_ChildCollections()
UnregisterRootItems(IEnumerable<T>)
4 Pegasus.Controls.ItemMonitor<T>.UnregisterRootItems(IEnumerable<T>)
RegisterRootItems(IEnumerable<T>)
4 Pegasus.Controls.ItemMonitor<T>.RegisterRootItems(IEnumerable<T>)
RegisterItem(String,ICollection<T>)
8 Pegasus.Controls.ItemMonitor<T>.RegisterItem(String,ICollection<T>)
RemoveNodes(ItemCollection)
6 Pegasus.Controls.ItemMonitor<T>.RemoveNodes(ItemCollection)
Clear() 7 Pegasus.Controls.ItemMonitor<T>.Clear()
.ctor(TreeViewBase<T>) 5 Pegasus.Controls.ItemMonitor<T>..ctor(TreeViewBase<T>)
get_SelectedItemId() 1 Pegasus.Controls.TreeLayout.get_SelectedItemId()
Sum: 40
Average: 4
Minimum: 1
Maximum: 8
Standard deviation: 2.4083
Variance: 5.8
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 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_ReportingURI() 1 Pegasus.Common.Common.get_ReportingURI()
set_ReportingURI(String) 1 Pegasus.Common.Common.set_ReportingURI(String)
get_EmployeeId() 1 Pegasus.Common.Common.get_EmployeeId()
get_CommonBranchID() 1 Pegasus.Common.Common.get_CommonBranchID()
set_CommonBranchID(Int16) 1 Pegasus.Common.Common.set_CommonBranchID(Int16)
get_ConfigMasterList() 1 Pegasus.Common.Common.get_ConfigMasterList()
set_ConfigMasterList(IList) 1 Pegasus.Common.Common.set_ConfigMasterList(IList)
Reload() 3 Pegasus.Common.Common.Reload()
CloseFactory() 1 Pegasus.Common.Common.CloseFactory()
TranformButtonToOperationType(String)
7 Pegasus.Common.Common.TranformButtonToOperationType(String)
Sum: 18
Average: 1.8
Minimum: 1
Maximum: 7
Standard deviation: 1.833
Variance: 3.36
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 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
IBusinessLayer<T> N/A Pegasus.Common.IBusinessLayer<T>
ValidationException 2 Pegasus.Common.Utilities.ValidationException
Resource 9 Pegasus.Common.Languages.Resource
RoutedTreeItemEventHandler<T>
N/A Pegasus.Controls.RoutedTreeItemEventHandler<T>
RoutedTreeItemEventArgs<T>
5 Pegasus.Controls.RoutedTreeItemEventArgs<T>
ResizablePanel 3 Pegasus.Controls.ResizablePanel
ItemMonitor<T> 174 Pegasus.Controls.ItemMonitor<T>
PegasusMessageBox 56 Pegasus.Controls.PegasusMessageBox
Message 0 Pegasus.Controls.Message
TreeLayout 6 Pegasus.Controls.TreeLayout
Sum: 255
Average: 25.5
Minimum: 0
Maximum: 174
Standard deviation: 52.024
Variance: 2 706
WARNING: The following CQL constraint is not satisfied. 3 types on 1155 tested match the condition. --> Group {Encapsulation \ Types Optimal Encapsulation} // <Name>Types that could be declared as 'private' in C#, 'Private' in VB.NET</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE CouldBePrivate
types # lines of code (LOC)
Full Name
NVQuotation+CodeDesc
0 Pegasus.NVOCC.UIElements.NVQuotation+CodeDesc
SHQuotation+CodeDesc
0 Pegasus.ShippingLine.UIElements.SHQuotation+CodeDesc
Quotation+CodeDesc
0 Pegasus.Cargo.UIElements.Quotation+CodeDesc
Sum: 0
Average: 0
Minimum: 0
Maximum: 0
Standard deviation: 0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 10 fields on 10218 tested match the condition. --> Group {Encapsulation \ Fields Optimal Encapsulation} // <Name>Fields that could be declared as internal</Name>WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE CouldBeInternal
fields Size of instance
Full Name
xamCity 4 Pegasus.General.UIElements.Main.City.xamCity
entityName 4 Pegasus.General.UIElements.Administration.HOItems.entityName
isCommon 1 Pegasus.General.UIElements.Administration.HOItems.isCommon
_JobCard 4 Pegasus.Cargo.UIElements.JobCard._JobCard
_showingRecord 1 Pegasus.Cargo.UIElements.JobCard._showingRecord
_JobPort 4 Pegasus.Cargo.UIElements.JobCard._JobPort
_JobCarrier 4 Pegasus.Cargo.UIElements.JobCard._JobCarrier
pPanel 4 Pegasus.Cargo.UIElements.JobCard.pPanel
_dtCommodities 4 Pegasus.Cargo.UIElements.JobCard._dtCommodities
_dtDocuments 4 Pegasus.Cargo.UIElements.JobCard._dtDocuments
Sum: 34
Average: 3.4
Minimum: 1
Maximum: 4
Standard deviation:
1.2
Variance: 1.44
WARNING: The following CQL constraint is not satisfied. 10 fields on 10218 tested match the condition. --> Group {Encapsulation \ Fields Optimal Encapsulation} // <Name>Fields that could be declared as 'private' in C#, 'Private' in VB.NET</Name>WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE CouldBePrivate
fields Size of instance
Full Name
_this 4 Pegasus.Controls.AuthenticationPrompt._this
border 4 Pegasus.Controls.AuthenticationPrompt.border
gMain 4 Pegasus.Controls.AuthenticationPrompt.gMain
lblCaption 4 Pegasus.Controls.AuthenticationPrompt.lblCaption
btnClose 4 Pegasus.Controls.AuthenticationPrompt.btnClose
txtUserName 4 Pegasus.Controls.AuthenticationPrompt.txtUserName
txtPassword 4 Pegasus.Controls.AuthenticationPrompt.txtPassword
_ok 4 Pegasus.Controls.AuthenticationPrompt._ok
_cancel 4 Pegasus.Controls.AuthenticationPrompt._cancel
canvas1 4 Pegasus.Controls.ResizablePanel.canvas1
Sum: 40
Average: 4
Minimum: 4
Maximum: 4
Standard deviation:
0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 tested match the condition. --> Group {Test Coverage} // <Name>Complex methods should be 100% covered by tests</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS /*OUT OF "YourGeneratedCode" */ WHERE // These metrics' definitions are available here: // http://www.ndepend.com/Metrics.aspx#MetricsOnMethods ( NbILInstructions > 200 OR ILCyclomaticComplexity > 50 OR ILNestingDepth > 4 OR NbParameters > 5 OR NbVariables > 8 OR NbOverloads > 6 ) AND PercentageCoverage < 100
// To run this constraint properly coverage data must be // gathered from NCover™ or Visual Studio™ Coverage.// This can be done throught the menu: // NDepend -> Coverage -> Import Coverage Files// This can be done at analysis time throught the menu: // Project Properties -> Analysis -> Code Coverage// More information on how to import coverage data here:// http://www.ndepend.com/Coverage.aspx
methods
# IL instructions
IL Cyclomatic Complexity (ILCC)
IL Nesting Depth
# Parameters
# Variables
# Overloads
Percentage Coverage
Full Name
CheckApproval() 289 12 1 0 3 1 0 Pegasus.Controls.AuthenticationPrompt.CheckApproval()
RenderTree(IEnumerable<T>,TreeLayout) 203 21 2 2 11 1 0
Pegasus.Controls.TreeViewBase<T>.RenderTree(IEnumerable<T>,TreeLayout)
CreateItemNode(T,IList,TreeLayout) 212 24 3 3 11 1 0
Pegasus.Controls.TreeViewBase<T>.CreateItemNode(T,IList,TreeLayout)
EnsureNodeIsVisible(T) 99 6 2 1 11 1 0 Pegasus.Controls.TreeViewBase<T>.EnsureNodeIsVisible(T)
TryFindItemNode(ItemC 91 10 5 3 8 1 0 Pegasus.Controls.TreeViewBase<T
ollection,String,Boolean) >.TryFindItemNode(ItemCollection,String,Boolean)
ApplyAutoCollapse() 204 23 3 0 13 1 0 Pegasus.Controls.TreeViewBase<T>.ApplyAutoCollapse()
.cctor() 257 1 0 0 1 1 0 Pegasus.Controls.TreeViewBase<T>..cctor()
OnItemCollectionChanged(Object,NotifyCollectionChangedEventArgs)
159 13 4 2 10 1 0Pegasus.Controls.ItemMonitor<T>.OnItemCollectionChanged(Object,NotifyCollectionChangedEventArgs)
HandleRemovedChildItems(ICollection<T>,NotifyCollectionChangedEventArgs)
142 12 2 2 9 1 0
Pegasus.Controls.ItemMonitor<T>.HandleRemovedChildItems(ICollection<T>,NotifyCollectionChangedEventArgs)
OnRender(DrawingContext)
499 27 6 1 12 1 0 Pegasus.Controls.Ruler.OnRender(DrawingContext)
Sum: 2 155
149 28 14 89 10 0
Average: 215.5
14.9
2.8
1.4 8.9 1 0
Minimum: 91 1 0 0 1 1 0
Maximum: 499 27 6 3 13 1 0
Standard deviation:112.01
8.0554
1.7205
1.1136
3.726
90 0
Variance: 12 546
64.89
2.96
1.24
13.89
0 0
WARNING: The following CQL constraint is not satisfied. 578 fields on 10218 tested match the condition. --> Group {Purity / Immutability / Side-Effects} // <Name>Fields should be marked as ReadOnly when possible</Name>WARN IF Count > 0 IN SELECT FIELDS WHERE IsImmutable AND !IsInitOnly AND !IsGeneratedByCompiler
// A field that matches the condition IsImmutable // is a field that is assigned only by constructors // of its class.// For an instance field, this means its value // will remain constant throught the lifetime // of the object.// For a static field, this means its value will // remain constant throught the lifetime of the // program.// In both cases, such field can safely be marked // with the C# readonly keyword // (ReadOnly in VB.NET).
// The condition IsInitOnly matches fields that // are marked with the C# readonly keyword // (ReadOnly in VB.NET).
fields Size of instance
Full Name
Sum: 2 158
Average: 3.7336
Minimum: 0
Maximum: 8
Standard deviation:
1.0231
Variance: 1.0467
WARNING: The following CQL constraint is not satisfied. 2 types on 1155 tested match the condition. --> Group {Purity / Immutability / Side-Effects} // <Name>Structures should be immutable</Name>WARN IF Count > 0 IN SELECT TYPES WHERE IsStructure AND !IsImmutable AND !IsInFrameworkAssembly
// It is deemed as a good practice to make // your structure immutable.// An object is immutable if its state doesn’t // change once the object has been created. // Consequently, a structure is immutable if // its instances are immutable.// Immutable types naturally simplify code by // limiting side-effects.// See some explanations on immutability and // how NDepend supports it here:// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/13/immutable-types-understand-them-and-use-them.aspx
types # lines of code (LOC)
Full Name
Sum: 0
Average: 0
Minimum: 0
Maximum: 0
Standard deviation:
0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 5 methods on 10763 tested match the condition. --> Group {Purity / Immutability / Side-Effects} // <Name>Static Property Getter should be immutable</Name>WARN IF Count > 0 IN SELECT METHODS WHEREIsPropertyGetter ANDIsStatic ANDChangesTypeState
// Generated property getter Resources.get_ResourceManager()// provokes a read-only property lazy-initializedAND !FullNameLike "Resources.get_ResourceManager()"
// This rule might be violated in the case of object lazy initialized// when the property getter is accessed the first time.
methods# lines of code (LOC)
Full Name
get_Instance() 3 Pegasus.Common.Common.get_Instance()
get_Instance() 5 Pegasus.Common.clsNHiber.get_Instance()
get_ResourceManager()
4 Pegasus.Common.Languages.Resource.get_ResourceManager()
get_ResourceManager()
4 Pegasus.Cargo.Properties.Resource.get_ResourceManager()
get_ResourceManager()
4 Pegasus.FlightCargo.Properties.Resource.get_ResourceManager()
Sum: 20
Average: 4
Minimum: 3
Maximum: 5
Standard deviation: 0.63246
Variance: 0.4
WARNING: The following CQL constraint is not satisfied. 10 fields on 10218 tested match the condition. --> Group {Naming Conventions} // <Name>Instance fields should be prefixed with a 'm_'</Name>WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE !NameLike "^m_" AND !IsStatic AND !IsLiteral AND !IsGeneratedByCompiler AND !IsSpecialName AND !IsEventDelegateObject
// This naming convention provokes debate.// Don't hesitate to customize the regex of // NameLike to your preference.
fields Size of Full Name
instance
_session 4 Pegasus.Common.Common._session
_ReportingURI 4 Pegasus.Common.Common._ReportingURI
setInnerException
1 Pegasus.Common.Common.setInnerException
_isMSGBoxOpen 1 Pegasus.Common.Common._isMSGBoxOpen
_IsAuthenticated 1 Pegasus.Controls.AuthenticationPrompt._IsAuthenticated
_this 4 Pegasus.Controls.AuthenticationPrompt._this
border 4 Pegasus.Controls.AuthenticationPrompt.border
gMain 4 Pegasus.Controls.AuthenticationPrompt.gMain
lblCaption 4 Pegasus.Controls.AuthenticationPrompt.lblCaption
btnClose 4 Pegasus.Controls.AuthenticationPrompt.btnClose
Sum: 31
Average: 3.1
Minimum: 1
Maximum: 4
Standard deviation:
1.3748
Variance: 1.89
WARNING: The following CQL constraint is not satisfied. 10 fields on 10218 tested match the condition. --> Group {Naming Conventions} // <Name>Static fields should be prefixed with a 's_'</Name>WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE !NameLike "^s_" AND IsStatic AND !IsLiteral AND !IsGeneratedByCompiler AND !IsSpecialName AND !IsEventDelegateObject
// This naming convention provokes debate.// Don't hesitate to customize the regex of // NameLike to your preference.
fields Size of instance
Full Name
_instance 0 Pegasus.Common.Common._instance
_pageList 0 Pegasus.Common.Common._pageList
_isEditing 0 Pegasus.Common.Common._isEditing
_branchID 0 Pegasus.Common.Common._branchID
_BaseCurrencyId 0 Pegasus.Common.Common._BaseCurrenc
yId
_BaseCurrencyMask
0 Pegasus.Common.Common._BaseCurrencyMask
_FinancialYearID 0 Pegasus.Common.Common._FinancialYearID
_EmployeeId 0 Pegasus.Common.Common._EmployeeId
_CurrentJobCardID
0 Pegasus.Common.Common._CurrentJobCardID
_CurrentModuleID
0 Pegasus.Common.Common._CurrentModuleID
Sum: 0
Average: 0
Minimum: 0
Maximum: 0
Standard deviation:
0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 2 types on 1155 tested match the condition. --> Group {Naming Conventions} // <Name>Interface name should begin with a 'I'</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE IsInterface AND !NameLike "^I" AND !IsNested AND !IsInFrameworkAssembly
types
# lines of code (LOC)
Full Name
ReportingService2005Soap N/A Pegasus.Main.RSServiceReference05.ReportingService2005Soap
ReportingService2005SoapChannel
N/A Pegasus.Main.RSServiceReference05.ReportingService2005SoapChannel
Sum: 0
Average: 0
Minimum: 0
Maximum: 0
Standard deviation: 0
Variance: 0
WARNING: The following CQL constraint is not satisfied. 6 types on 1155 tested match the condition. --> Group {Naming Conventions} // <Name>Types name should begin with an Upper character</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE // The name of a type should begin with an Upper letter. !NameLike "^[A-Z]" AND
// Except if it is generated by compiler or ... !IsGeneratedByCompiler AND
// ... if it is declared in a third party assembly. !IsInFrameworkAssembly
types # lines of code (LOC)
Full Name
clsNHiber 18 Pegasus.Common.clsNHiber
frmFrameAddNew
10 Pegasus.SearchEngine.frmFrameAddNew
frmWinUltraGrid 1 329 Pegasus.SearchEngine.frmWinUltraGrid
sGlobal 101 Pegasus.General.sGlobal
sGlobal+pParams 0 Pegasus.General.sGlobal+pParams
clsMain 87 Pegasus.Main.clsMain
Sum: 1 545
Average: 257.5
Minimum: 0
Maximum: 1 329
Standard deviation:
480.73
Variance: 231 099
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 tested match the condition. --> Group {Naming Conventions} // <Name>Methods name should begin with an Upper character</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE !NameLike "^[A-Z]" AND !( IsClassConstructor OR IsConstructor OR IsPropertyGetter OR IsPropertySetter OR IsIndexerGetter OR IsIndexerSetter OR IsEventAdder OR IsEventRemover OR IsOperator) AND !IsGeneratedByCompiler AND !IsInFrameworkAssembly
// The name of a regular method should // begin with an Upper letter.
methods
# lines of code (LOC)
Full Name
getPropertyValue(String) N/A Pegasus.Common.ICommon.getPropertyValue(String)
ok_Click(Object,RoutedEventArgs)
1 Pegasus.Controls.AuthenticationPrompt.ok_Click(Object,RoutedEventArgs)
cancel_Click(Object,RoutedEventArgs)
2 Pegasus.Controls.AuthenticationPrompt.cancel_Click(Object,RoutedEventArgs)
btnClose_Click(Object,RoutedEventArgs)
2 Pegasus.Controls.AuthenticationPrompt.btnClose_Click(Object,RoutedEventArgs)
gMain_MouseMove(Object,MouseEventArgs)
2 Pegasus.Controls.AuthenticationPrompt.gMain_MouseMove(Object,MouseEventArgs)
_this_KeyUp(Object,KeyEventArgs)
7 Pegasus.Controls.AuthenticationPrompt._this_KeyUp(Object,KeyEventArgs)
ok_Click(Object,RoutedEventArgs)
2 Pegasus.Controls.PegasusMessageBox.ok_Click(Object,RoutedEventArgs)
yes_Click(Object,RoutedEventArgs)
2 Pegasus.Controls.PegasusMessageBox.yes_Click(Object,RoutedEventArgs)
no_Click(Object,RoutedEventArgs)
2 Pegasus.Controls.PegasusMessageBox.no_Click(Object,RoutedEventArgs)
cancel_Click(Object,RoutedEventArgs)
2 Pegasus.Controls.PegasusMessageBox.cancel_Click(Object,RoutedEventArgs)
Sum: 22
Average: 2.2
Minimum: 0
Maximum: 7
Standard deviation: 1.7205
Variance: 2.96
WARNING: The following CQL constraint is not satisfied. 10 methods on 10763 tested match the condition. --> Group {Naming Conventions \ Name too long} // <Name>Avoid methods with name too long</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE NameLike "^[^\<\(]{35,}.*$" AND !IsExplicitInterfaceImpl AND !IsInFrameworkAssembly
// The regex matches methods with name longer // than 35 characters.// Method Name doesn't contain the type and namespace
// prefix, FullName does.// The regex computes the method name length from // the beginning until the first open parenthesis // or first lower than (for generic methods).// Explicit Interface Implementation methods are // discarded because their names are prefixed // with the interface name.
methods
# lines of code (LOC)
Full Name
get_GetFreightCategoryAccessControlList()
1 Pegasus.Common.Common.get_GetFreightCategoryAccessControlList()
set_GetFreightCategoryAccessControlList(ArrayList)
1 Pegasus.Common.Common.set_GetFreightCategoryAccessControlList(ArrayList)
PreserveLayoutOnRefreshPropertyChanged(DependencyObject,DependencyPropertyChangedEventArgs)
0Pegasus.Controls.TreeViewBase<T>.PreserveLayoutOnRefreshPropertyChanged(DependencyObject,DependencyPropertyChangedEventArgs)
NodeSortDescriptionsPropertyChanged(DependencyObject,DependencyPropertyChangedEventArgs)
9Pegasus.Controls.TreeViewBase<T>.NodeSortDescriptionsPropertyChanged(DependencyObject,DependencyPropertyChangedEventArgs)
SelectNodesOnRightClickPropertyChanged(DependencyObject,DependencyPropertyChangedEventArgs)
0Pegasus.Controls.TreeViewBase<T>.SelectNodesOnRightClickPropertyChanged(DependencyObject,DependencyPropertyChangedEventArgs)
xamcboFreightType_SelectedItemChanged(Object,RoutedPropertyChangedEventArgs<Object>)
1Pegasus.General.UIElements.Central.PRCIDocDefMaster.xamcboFreightType_SelectedItemChanged(Object,RoutedPropertyChangedEventArgs<Object>)
xamDataGridScanDoc_RecordActivating(Object,RecordActivatingEventArgs)
9Pegasus.General.UIElements.Central.PRCIDocDefMaster.xamDataGridScanDoc_RecordActivating(Object,RecordActivatingEventArgs)
RefreshExpAccountsAndChargeCodeLists()
6 Pegasus.Accounts.UIElements.Voucher.RefreshExpAccountsAndChargeCodeLists()
xamComboCurrency_SelectedItemChanged(Object,RoutedPropertyChangedEventArgs<Object>)
8Pegasus.Accounts.UIElements.Voucher.xamComboCurrency_SelectedItemChanged(Object,RoutedPropertyChangedEventArgs<Object>)
cboFreightCategory_SelectionChanged(Object,SelectionChangedEventArgs)
1Pegasus.Accounts.UIElements.Voucher.cboFreightCategory_SelectionChanged(Object,SelectionChangedEventArgs)
Sum: 36
Average: 3.
6
Minimum: 0
Maximum: 9
Standard deviation:3.6932
Variance:13.64
WARNING: The following CQL constraint is not satisfied. 10 types on 1155 tested match the condition. --> Group {Naming Conventions \ Name too long} // <Name>Avoid types with name too long</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE NameLike "^[^\<]{35,}.*$" AND !IsNested AND !IsInFrameworkAssembly
// The regex matches types with name longer // than 35 characters.// Type Name doesn't contain the namespace // prefix, FullName does.// The regex computes the type name length from // the beginning until the end or the first lower than // (for generic types).// Nested types are discarded because their // names are prefixed with outer type's name.
types
# lines of code (LOC)
Full Name
UpdateReportExecutionSnapshotRequest
4 Pegasus.Main.RSServiceReference05.UpdateReportExecutionSnapshotRequest
UpdateReportExecutionSnapshotResponse
3 Pegasus.Main.RSServiceReference05.UpdateReportExecutionSnapshotResponse
CreateReportHistorySnapshotResponse
5 Pegasus.Main.RSServiceReference05.CreateReportHistorySnapshotResponse
DeleteReportHistorySnapshotResponse
3 Pegasus.Main.RSServiceReference05.DeleteReportHistorySnapshotResponse
CreateDataDrivenSubscriptionRequest
10 Pegasus.Main.RSServiceReference05.CreateDataDrivenSubscriptionRequest
CreateDataDrivenSubscriptionResponse
4 Pegasus.Main.RSServiceReference05.CreateDataDrivenSubscriptionResponse
SetDataDrivenSubscriptionPropertiesRequest
10 Pegasus.Main.RSServiceReference05.SetDataDrivenSubscriptionPropertiesRequest
SetDataDrivenSubscriptionPropertiesResponse
3 Pegasus.Main.RSServiceReference05.SetDataDrivenSubscriptionPropertiesResponse
GetDataDrivenSubscriptionPropertiesRequest
3 Pegasus.Main.RSServiceReference05.GetDataDrivenSubscriptionPropertiesRequest
GetDataDrivenSubscriptionPropertiesResponse
12 Pegasus.Main.RSServiceReference05.GetDataDrivenSubscriptionPropertiesResponse
Sum: 57
Average: 5.7
Minimum: 3
Maximum: 12
Standard deviation: 3.3481
Variance: 11.21
WARNING: The following CQL constraint is not satisfied. 10 fields on 10218 tested match the condition. --> Group {Naming Conventions \ Name too long} // <Name>Avoid fields with name too long</Name>WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE NameLike "^[^\<]{35,}.*$" AND !IsInFrameworkAssembly
// The regex matches fields with name longer // than 35 characters.// Field Name doesn't contain the type and // namespace prefix, FullName does.
fields
Size of instance
Full Name
btnMastersMenuKeyTransportCompanies
4 Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyTransportCompanies
btnMastersMenuKeyInquiryEvaluations
4 Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyInquiryEvaluations
btnMastersMenuKeyWarehouseTypeofGoods
4 Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyWarehouseTypeofGoods
btnMastersMenuKeyDocumentsDefinitions
4 Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyDocumentsDefinitions
gigMastersMenuKeyMasterShippingLines
4 Pegasus.Main.RibbonMenuTest.gigMastersMenuKeyMasterShippingLines
giMastersMenuKeyMasterLeasingCompany
4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterLeasingCompany
giMastersMenuKeyMasterContainerStatus
4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterContainerStatus
giMastersMenuKeyMasterContainerClassification
4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterContainerClassification
giMastersMenuKeyMasterStorageCalculation
4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterStorageCalculation
giMastersMenuKeyMasterShippingLines
4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterShippingLines
Sum: 40
Average: 4
Minimum: 4
Maximum: 4
Standard deviation: 0
Variance: 0