SlideShare a Scribd company logo
1 of 57
Analytical Architecture Report
Application:
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
DevelopmentEnvironment:[Release-6,DesktopVersion]
MicrosoftVisual Studio2008, .Net3.5, WindowsPresentationFoundation,Infragistic GUI Controls,SQL
Server2008
Application Metrics
Number of IL instructions: 894149
Number of lines of code: 121062
Number of lines of comment: 0
Percentage comment: 0
Number of assemblies: 15
Number of classes: 596
Number of types: 638
Number of abstract classes: 1
Number of interfaces: 4
Number of value types: 2
Number of exception classes: 2
Number of attribute classes: 0
Number of delegate classes: 1
Number of enumerations classes: 36
Number of generic type definitions: 5
Number of generic method definitions: 0
Percentage of public types: 90.6%
Percentage of public methods: 42.45%
Percentage of classes with at least one public field: 48.12%
Stat
#
Occurren
ces
Avg
StdD
ev
Max
Properti
es on
Interface
s
4
Interface
s
0 0 0 properties on Pegasus.Common.ICommon
Methods
on
Interface
s
4
Interface
s
26.25 44.31
103 methods on
Pegasus.Main.RSServiceReference05.ReportingService2005Soap
Argumen
ts on
105
Methods
1 0
1 arguments on
Pegasus.Common.ICommon.getPropertyValue(String)
Methods
on
Interface
s
Public
Properti
es 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.39
108 public methods on
Pegasus.Main.RSServiceReference05.ReportingService2005SoapClien
t
Argumen
ts on
Public
Methods
on
Classes
4019
Methods
0.49 1.11
10 arguments on
Pegasus.Main.RSServiceReference05.GetDataDrivenSubscriptionProp
ertiesResponse..ctor(ServerInfoHeader,String,ExtensionSettings,Dat
aRetrievalPlan,String,ActiveState,String,String,String,ParameterVal
ueOrFieldReference[])
IL
Instructi
ons in
non-
abstract
Methods
9608
Methods
93.06
195.6
6
4585 IL instructions in
Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity()
Cyclomat
ic
complexi
ty on
non
abstract
Methods
9608
Methods
6.69 14.69
CC = 561 for
Pegasus.Main.RibbonMenuTest.System.Windows.Markup.IComponent
Connector.Connect(Int32,Object)
Assemblies Metrics
Assembly
#
Typ
es
#
Abstr
act
Type
s
# IL
instruc
tion
#
lin
es
of
cod
e
#
lines
of
comm
ent
%
comm
ent
Affer
ent
Coupl
ing
Effer
ent
Coupl
ing
Relati
onal
Cohesi
on
Instab
ility
Abstrac
tness
Dista
nce
Pegasus.Com
mon v1.0.0.0
8 2 1246 198 0 0 202 34 0.38 0.14 0.25 0.61
Pegasus.Contr
ols v1.0.0.0
25 0 9811
144
9
0 0 225 168 1.52 0.43 0.04 0.53
Pegasus.Searc
hEngine
5 0 11428
145
3
0 0 160 122 0.2 0.43 0 0.57
v1.0.0.0
Pegasus.Gene
ral v1.0.0.0
87 0 88574
121
68
0 0 146 231 1.82 0.61 0 0.39
Pegasus.Secur
ity v1.0.0.0
6 0 4577 642 0 0 0 96 0.17 1 0 0
Pegasus.Acco
unts v1.0.0.0
23 0 49606
659
2
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.NVOC
C v1.0.0.0
24 0 85322
115
47
0 0 0 225 0.38 1 0 0
Pegasus.Ware
house
v1.0.0.0
22 0 95694
127
24
0 0 0 243 0.23 1 0 0
Pegasus.Shipp
ingLine
v1.0.0.0
24 0 86359
116
79
0 0 0 225 0.38 1 0 0
Pegasus.PRCI
v1.0.0.0
12 0 44695
602
2
0 0 0 198 0.5 1 0 0
Pegasus.Cargo
v1.0.0.0
42 0 149950
203
58
0 0 0 223 1.14 1 0 0
Pegasus.Flight
Cargo
v1.0.0.0
18 0 56634
753
9
0 0 0 183 0.39 1 0 0
Pegasus.Main
v1.0.0.52
307 1 129476
177
81
0 0 0 282 2.55 1 0.01 0.01
Pegasus.TMS
v1.0.0.0
32 0 80263
108
44
0 0 0 187 0.09 1 0 0
Visual NDepend View
Assemblies Abstractness vs. Instability
Assemblies Dependencies
Assembly 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 ;
Infragistics3.Wpf.DataPresenter.v9.1
v9.1.20091.2091 ; Pegasus.Common v1.0.0.0 ;
Pegasus.Controls v1.0.0.0 ;
Pegasus.General v1.0.0.0
; Pegasus.Security
v1.0.0.0 ;
Pegasus.Accounts 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 v1.0.0.0
mscorlib v4.0.0.0 ; System v4.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 Diagram
Blue : Assemblies of your application.
Yellow : Tiers assemblies referenced by assemblies of your application.
Assemblies build order
Pegasus.Common
Pegasus.Controls
Pegasus.SearchEngine
Pegasus.General
Pegasus.Security
Pegasus.Accounts
Pegasus.Job
Pegasus.NVOCC
Pegasus.Warehouse
Pegasus.ShippingLine
Pegasus.PRCI
Pegasus.Cargo
Pegasus.FlightCargo
Pegasus.Main
Pegasus.TMS
NDepend information and warnings
11/05/2010 15:02:12 Begin full analysis with NDepend v3.2.0
No Baseline for Comparison loaded.
Assemblies loaded from {C:WINDOWSMicrosoft.NETFrameworkv4.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.0
Assemblies loaded from {C:WINDOWSMicrosoft.NETFrameworkv4.0.30319WPF}
PresentationFramework.dll v4.0.0.0 WindowsBase.dll v4.0.0.0 PresentationCore.dll v4.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.Common.BSLbinDebug} Pegasus.Common.dll
v1.0.0.0 NHibernate.dll v2.1.0.4000 HibernatingRhinos.NHibernate.Profiler.Appender.dll v0.9.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.GeneralbinDebug} 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.2091
Assemblies loaded from {D:ShareMePegasusPegasus.SecuritybinDebug} Pegasus.Security.dll v1.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.AccountsbinDebug} Pegasus.Accounts.dll
v1.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.JobbinDebug} Pegasus.Job.dll v1.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.NVOCCbinDebug} Pegasus.NVOCC.dll v1.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.WarehousebinDebug} Pegasus.Warehouse.dll
v1.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.ShippingLinebinDebug} Pegasus.ShippingLine.dll
v1.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.PRCIbinDebug} Pegasus.PRCI.dll v1.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.AirFreightbinDebug} Pegasus.Cargo.dll v1.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasus.FlightCargobinDebug} Pegasus.FlightCargo.dll
v1.0.0.0
Assemblies loaded from {D:ShareMePegasusPegasusbinDebug} Pegasus.Main.exe v1.0.0.52
Pegasus.TMS.dll v1.0.0.0 Infragistics3.Wpf.Ribbon.v9.1.dll v9.1.20091.2091
0 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:ShareMePegasusPegasus.GeneralbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes -
D:ShareMePegasusPegasus.SecuritybinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes -
D:ShareMePegasusPegasus.AccountsbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes -
D:ShareMePegasusPegasus.JobbinDebugPegasus.BusinessObjects.dll v0.0 2 293 248 bytes -
D:ShareMePegasusPegasus.NVOCCbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes -
D:ShareMePegasusPegasus.WarehousebinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes -
D:ShareMePegasusPegasus.ShippingLinebinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes -
D:ShareMePegasusPegasus.PRCIbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes -
D:ShareMePegasusPegasus.AirFreightbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes -
D:ShareMePegasusPegasus.FlightCargobinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes -
D:ShareMePegasusPegasusbinDebugPegasus.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 WorkProjectsPegasusPegasus.Common.BSLProperties}
referenced by the PDB file of the assembly {Pegasus.Common} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.Common.BSL} referenced by
the PDB file of the assembly {Pegasus.Common} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.Common.BSLUtilities}
referenced by the PDB file of the assembly {Pegasus.Common} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.Common.BSLLanguages}
referenced by the PDB file of the assembly {Pegasus.Common} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.Controls} referenced by the
PDB file of the assembly {Pegasus.Controls} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.ControlsProperties}
referenced by the PDB file of the assembly {Pegasus.Controls} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.SearchEngine} referenced by
the PDB file of the assembly {Pegasus.SearchEngine} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.SearchEngineProperties}
referenced by the PDB file of the assembly {Pegasus.SearchEngine} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.General} referenced by the
PDB file of the assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib
WorkProjectsPegasusPegasus.GeneralUIElementsTransportRepair} referenced by the PDB file of the
assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsCentral}
referenced by the PDB file of the assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsCargo}
referenced by the PDB file of the assembly {Pegasus.General} can't be found.
WARNING: The source directory {e:Shoaib WorkProjectsPegasusPegasus.GeneralUIElements}
referenced by the PDB file of the assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsMain}
referenced by the PDB file of the assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib
WorkProjectsPegasusPegasus.GeneralUIElementsAdministration} referenced by the PDB file of the
assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib
WorkProjectsPegasusPegasus.GeneralUIElementsHRPayroll} referenced by the PDB file of the
assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib
WorkProjectsPegasusPegasus.GeneralUIElementsShippingLines} referenced by the PDB file of the
assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib
WorkProjectsPegasusPegasus.GeneralUIElementsInventory} referenced by the PDB file of the
assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralControls}
referenced by the PDB file of the assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralProperties}
referenced by the PDB file of the assembly {Pegasus.General} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.SecurityProperties}
referenced by the PDB file of the assembly {Pegasus.Security} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.SecurityUIElements}
referenced by the PDB file of the assembly {Pegasus.Security} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AccountsUIElements}
referenced by the PDB file of the assembly {Pegasus.Accounts} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AccountsProperties}
referenced by the PDB file of the assembly {Pegasus.Accounts} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.JobProperties} referenced
by the PDB file of the assembly {Pegasus.Job} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.JobUIElements} referenced
by the PDB file of the assembly {Pegasus.Job} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.NVOCCUIElements}
referenced by the PDB file of the assembly {Pegasus.NVOCC} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.NVOCCProperties}
referenced by the PDB file of the assembly {Pegasus.NVOCC} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.WarehouseUIElements}
referenced by the PDB file of the assembly {Pegasus.Warehouse} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.WarehouseProperties}
referenced by the PDB file of the assembly {Pegasus.Warehouse} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.ShippingLineProperties}
referenced by the PDB file of the assembly {Pegasus.ShippingLine} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.ShippingLineUIElements}
referenced by the PDB file of the assembly {Pegasus.ShippingLine} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.PRCIUIElements} referenced
by the PDB file of the assembly {Pegasus.PRCI} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.PRCIProperties} referenced
by the PDB file of the assembly {Pegasus.PRCI} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightUIElements}
referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightProperties}
referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlers}
referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersCnF}
referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersMulti}
referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersSea}
referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersLand}
referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersAir}
referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.FlightCargoUIElements}
referenced by the PDB file of the assembly {Pegasus.FlightCargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.FlightCargoHandlersAir}
referenced by the PDB file of the assembly {Pegasus.FlightCargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.FlightCargoProperties}
referenced by the PDB file of the assembly {Pegasus.FlightCargo} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusRibbonClassesUtil}
referenced by the PDB file of the assembly {Pegasus.Main} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus} referenced by the PDB file
of the assembly {Pegasus.Main} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusControls} referenced by the
PDB file of the assembly {Pegasus.Main} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusSecurity} referenced by the
PDB file of the assembly {Pegasus.Main} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusProperties} referenced by
the PDB file of the assembly {Pegasus.Main} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusService
ReferencesRSServiceReference05} referenced by the PDB file of the assembly {Pegasus.Main} can't be
found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPEGASUS.TMSUIElements}
referenced by the PDB file of the assembly {Pegasus.TMS} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPEGASUS.TMSUIElementsMasters}
referenced by the PDB file of the assembly {Pegasus.TMS} can't be found.
WARNING: The source directory {E:Shoaib WorkProjectsPegasusPEGASUS.TMSProperties} 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#Nb
LinesOfCode
NbILInstructions > 200 OR // http://www.ndepend.com/Metrics.aspx#Nb
ILInstructions
CyclomaticComplexity > 20 OR // http://www.ndepend.com/Metrics.aspx#CC
ILCyclomaticComplexity > 50 OR // http://www.ndepend.com/Metrics.aspx#IL
CC
ILNestingDepth > 4 OR // http://www.ndepend.com/Metrics.aspx#IL
NestingDepth
NbParameters > 5 OR // http://www.ndepend.com/Metrics.aspx#Nb
Parameters
NbVariables > 8 OR // http://www.ndepend.com/Metrics.aspx#Nb
Variables
NbOverloads > 6 ) // http://www.ndepend.com/Metrics.aspx#Nb
Overloads
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$LibNDepend.CQL.dll
// You can define your own attribute to mark "Generated".
HasAttribute "OPTIONAL:NDepend.CQL.GeneratedAttribute")
methods
#
li
n
es
of
c
o
# IL
inst
ruc
tion
s
Cyc
lom
atic
Co
mpl
exi
ty
IL
Cyc
lom
atic
Co
mpl
exi
IL
N
es
ti
ng
D
ep
#
Par
am
ete
rs
#
Va
ria
ble
s
#
Ov
erl
oa
ds
Full Name
d
e
(L
O
C)
(CC
)
ty
(IL
CC)
th
CheckApproval()
5
8
289 N/A 12 1 0 3 1
Pegasus.Controls.AuthenticationProm
pt.CheckApproval()
RenderTree(IEnumerable<
T>,TreeLayout)
3
8
203 N/A 21 2 2 11 1
Pegasus.Controls.TreeViewBase<T>.R
enderTree(IEnumerable<T>,TreeLayo
ut)
CreateItemNode(T,IList,Tr
eeLayout)
3
2
212 N/A 24 3 3 11 1
Pegasus.Controls.TreeViewBase<T>.C
reateItemNode(T,IList,TreeLayout)
EnsureNodeIsVisible(T)
2
1
99 N/A 6 2 1 11 1
Pegasus.Controls.TreeViewBase<T>.E
nsureNodeIsVisible(T)
TryFindItemNode(ItemColl
ection,String,Boolean)
1
4
91 N/A 10 5 3 8 1
Pegasus.Controls.TreeViewBase<T>.T
ryFindItemNode(ItemCollection,String
,Boolean)
ApplyAutoCollapse()
3
4
204 N/A 23 3 0 13 1
Pegasus.Controls.TreeViewBase<T>.A
pplyAutoCollapse()
.cctor()
3
5
257 N/A 1 0 0 1 1
Pegasus.Controls.TreeViewBase<T>..c
ctor()
OnItemCollectionChanged
(Object,NotifyCollectionC
hangedEventArgs)
3
1
159 N/A 13 4 2 10 1
Pegasus.Controls.ItemMonitor<T>.OnI
temCollectionChanged(Object,Notify
CollectionChangedEventArgs)
HandleRemovedChildItem
s(ICollection<T>,NotifyCol
lectionChangedEventArgs)
2
1
142 N/A 12 2 2 9 1
Pegasus.Controls.ItemMonitor<T>.Ha
ndleRemovedChildItems(ICollection<T
>,NotifyCollectionChangedEventArgs)
OnRender(DrawingContex
t)
4
8
499 N/A 27 6 1 12 1
Pegasus.Controls.Ruler.OnRender(Dra
wingContext)
Sum:
3
3
2
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:
1
4
91 0 1 0 0 1 1
Maximum:
5
8
499 0 27 6 3 13 1
Standard deviation:
1
2.
3
8
4
112
.01
0
8.0
554
1.
72
05
1.1
136
3.7
26
9
0
Variance:
1
5
12
546
0
64.
89
2.
96
1.2
4
13.
89
0
3.
3
6
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
#
lin
es
of
cod
e
(LO
C)
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(Objec
t,SelectionChangedEventArgs)
435
Pegasus.PRCI.UIElements.PRCICosting.cboJobCard_Selectio
nChanged(Object,SelectionChangedEventArgs)
xamExpenses_CellUpdated(Object,Ce
llUpdatedEventArgs)
406
Pegasus.ShippingLine.UIElements.SHQuotation.xamExpense
s_CellUpdated(Object,CellUpdatedEventArgs)
intialLoad() 358 Pegasus.Main.RptNVOCC.intialLoad()
intialLoad() 346 Pegasus.Main.RptSL.intialLoad()
xamExpenses_CellUpdated(Object,Ce
llUpdatedEventArgs)
345
Pegasus.FlightCargo.UIElements.Quotation.xamExpenses_C
ellUpdated(Object,CellUpdatedEventArgs)
SaveRecord() 327 Pegasus.PRCI.UIElements.PRCICosting.SaveRecord()
Sum:
4
824
Average:
482
.4
Minimum: 327
Maximum: 801
Standard deviation:
163
.65
Variance:
26
781
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
instru
ctions
Full Name
ApplyReportsTabSecurity() 4 585
Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity
()
System.Windows.Markup.IComponent
Connector.Connect(Int32,Object)
4 358
Pegasus.Main.RibbonMenuTest.System.Windows.Markup.
IComponentConnector.Connect(Int32,Object)
IntialLoad() 3 892 Pegasus.Main.RptFreight.IntialLoad()
xamExpenses_CellUpdated(Object,Ce
llUpdatedEventArgs)
3 870
Pegasus.ShippingLine.UIElements.SHQuotation.xamExpe
nses_CellUpdated(Object,CellUpdatedEventArgs)
xamExpenses_CellUpdated(Object,Ce
llUpdatedEventArgs)
3 177
Pegasus.FlightCargo.UIElements.Quotation.xamExpenses
_CellUpdated(Object,CellUpdatedEventArgs)
intialLoad() 3 061 Pegasus.Main.RPTFLC.intialLoad()
cboJobCard_SelectionChanged(Objec
t,SelectionChangedEventArgs)
3 028
Pegasus.PRCI.UIElements.PRCICosting.cboJobCard_Selec
tionChanged(Object,SelectionChangedEventArgs)
CheckGrid() 2 866
Pegasus.Warehouse.UIElements.WHConBreaking.CheckG
rid()
ValidateRecord() 2 636
Pegasus.General.UIElements.Cargo.RateMaster.Validate
Record()
SaveRecord() 2 452 Pegasus.PRCI.UIElements.PRCICosting.SaveRecord()
Sum: 33 925
Average: 3 392
Minimum: 2 452
Maximum: 4 585
Standard deviation:
696.7
8
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
Cyclo
matic
Comp
lexity
(ILCC)
Full Name
System.Windows.Markup.IComponent
Connector.Connect(Int32,Object)
561
Pegasus.Main.RibbonMenuTest.System.Windows.Markup.
IComponentConnector.Connect(Int32,Object)
xamExpenses_CellUpdated(Object,Cel
lUpdatedEventArgs)
268
Pegasus.ShippingLine.UIElements.SHQuotation.xamExpe
nses_CellUpdated(Object,CellUpdatedEventArgs)
ApplyReportsTabSecurity() 245
Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity(
)
xamExpenses_CellUpdated(Object,Cel
lUpdatedEventArgs)
194
Pegasus.FlightCargo.UIElements.Quotation.xamExpenses
_CellUpdated(Object,CellUpdatedEventArgs)
SaveRecord() 191 Pegasus.Accounts.UIElements.PostunPost.SaveRecord()
GetWHConBreakDetail() 185
Pegasus.Warehouse.UIElements.WHConBreaking.GetWH
ConBreakDetail()
cboJobCard_SelectionChanged(Object
,SelectionChangedEventArgs)
184
Pegasus.PRCI.UIElements.PRCICosting.cboJobCard_Selec
tionChanged(Object,SelectionChangedEventArgs)
GetExpensesFromGrid() 177
Pegasus.TMS.UIElements.TMSQuotation.GetExpensesFro
mGrid()
SaveRecord() 163 Pegasus.PRCI.UIElements.PRCICosting.SaveRecord()
xamExpenses_CellUpdated(Object,Cel
lUpdatedEventArgs)
156
Pegasus.Warehouse.UIElements.WHQuotation.xamExpen
ses_CellUpdated(Object,CellUpdatedEventArgs)
Sum: 2 324
Average: 232.4
Minimum: 156
Maximum: 561
Standard deviation:
114.4
1
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
Nes
tin
g
De
pth
Full Name
MakeChargeCodeList(Boolean,Int32,
Int32,Int32,Int32,Int32,Int32,Int32)
21
Pegasus.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.MakeChargeC
odeList(Boolean,Int32,Int32,Int32,Int32,Decimal)
MakeChargeCodeList(Boolean,Int32,
Int32,Int32,Int32,Decimal)
18
Pegasus.NVOCC.UIElements.NVQuotation.MakeChargeCodeLi
st(Boolean,Int32,Int32,Int32,Int32,Decimal)
MakeChargeCodeList(Boolean,Int32,
Int32,Int32,Int32,Decimal,Int32)
17
Pegasus.Handlers.QuotationHandler.MakeChargeCodeList(Bo
olean,Int32,Int32,Int32,Int32,Decimal,Int32)
xamWHConBreakDetail_CellActivati
ng(Object,CellActivatingEventArgs)
17
Pegasus.Warehouse.UIElements.WHConBreaking.xamWHCon
BreakDetail_CellActivating(Object,CellActivatingEventArgs)
CheckGrid() 17 Pegasus.Warehouse.UIElements.WHConBreaking.CheckGrid()
MakeChargeCodeList(Boolean,Int32,
Int32,Int32,Int32,Decimal)
17
Pegasus.FlightCargo.UIElements.Quotation.MakeChargeCode
List(Boolean,Int32,Int32,Int32,Int32,Decimal)
CheckGrid() 14
Pegasus.General.UIElements.Central.PRCIDocDefMaster.Che
ckGrid()
Control_GotFocusExcludeGrids(Obje
ct,RoutedEventArgs)
13
Pegasus.General.EventMethods.Control_GotFocusExcludeGri
ds(Object,RoutedEventArgs)
Sum: 173
Average:
17.
3
Minimum: 13
Maximum: 21
Standard deviation:
2.3
259
Variance:
5.4
1
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
Perce
ntage
Comm
ent
#
line
s of
cod
e
(LO
C)
Full Name
cboClient_KeyDown(Object,Ke
yEventArgs)
N/A 16
Pegasus.Cargo.UIElements.CustomerInquiry.cboClient_Ke
yDown(Object,KeyEventArgs)
ShowRecordFromList(Object,M
ouseButtonEventArgs)
N/A 52
Pegasus.Cargo.UIElements.CustomerInquiry.ShowRecordF
romList(Object,MouseButtonEventArgs)
ValidateRecord() N/A 47
Pegasus.Cargo.UIElements.CustomerInquiry.ValidateReco
rd()
EvalKeyDown(Object,KeyEvent
Args)
N/A 16
Pegasus.Cargo.UIElements.CustomerInquiry.EvalKeyDown
(Object,KeyEventArgs)
TypeKeyDown(Object,KeyEven
tArgs)
N/A 16
Pegasus.Cargo.UIElements.CustomerInquiry.TypeKeyDow
n(Object,KeyEventArgs)
CategoryKeyDown(Object,KeyE
ventArgs)
N/A 16
Pegasus.Cargo.UIElements.CustomerInquiry.CategoryKey
Down(Object,KeyEventArgs)
SaveRecord() N/A 36 Pegasus.Cargo.UIElements.CustomerInquiry.SaveRecord()
EnableDisable(Boolean) N/A 18
Pegasus.Cargo.UIElements.CustomerInquiry.EnableDisabl
e(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
#
Pa
ra
m
et
er
s
Full Name
UpdateTransactionDetail(WHJobCardHea
d,Commodity,WHMaster,WHRack,WHLoc
ation,Units,Boolean,Boolean,Int32,Int32)
10
Pegasus.Warehouse.UIElements.WHCommercialInvoice.U
pdateTransactionDetail(WHJobCardHead,Commodity,WH
Master,WHRack,WHLocation,Units,Boolean,Boolean,Int32
,Int32)
CCUpdateSpaceAllocation(WHJobCardHe
ad,Commodity,WHMaster,WHRack,WHLo
cation,Units,Boolean,Boolean,Int32,Int3
2)
10
Pegasus.Warehouse.UIElements.WHDeliveryOrder.CCUpd
ateSpaceAllocation(WHJobCardHead,Commodity,WHMast
er,WHRack,WHLocation,Units,Boolean,Boolean,Int32,Int
32)
.ctor(ServerInfoHeader,String,ExtensionS
ettings,DataRetrievalPlan,String,ActiveSt
ate,String,String,String,ParameterValue
OrFieldReference[])
10
Pegasus.Main.RSServiceReference05.GetDataDrivenSubsc
riptionPropertiesResponse..ctor(ServerInfoHeader,String,
ExtensionSettings,DataRetrievalPlan,String,ActiveState,S
tring,String,String,ParameterValueOrFieldReference[])
UpdateSpaceAllocation(WHJobCardHead,
Commodity,WHMaster,WHRack,WHLocati
on,Units,Boolean,Boolean,Int32,Int32)
10
Pegasus.Warehouse.UIElements.WHCommercialInvoice.U
pdateSpaceAllocation(WHJobCardHead,Commodity,WHM
aster,WHRack,WHLocation,Units,Boolean,Boolean,Int32,I
nt32)
GetDataDrivenSubscriptionProperties(Str
ing,String&,ExtensionSettings&,DataRetr
ievalPlan&,String&,ActiveState&,String&
,String&,String&,ParameterValueOrField
Reference[]&)
10
Pegasus.Main.RSServiceReference05.ReportingService200
5SoapClient.GetDataDrivenSubscriptionProperties(String,
String&,ExtensionSettings&,DataRetrievalPlan&,String&,
ActiveState&,String&,String&,String&,ParameterValueOr
FieldReference[]&)
CreateDataDrivenSubscription(BatchHea
der,String,ExtensionSettings,DataRetriev
alPlan,String,String,String,ParameterVal
ueOrFieldReference[],String&)
9
Pegasus.Main.RSServiceReference05.ReportingService200
5SoapClient.CreateDataDrivenSubscription(BatchHeader,
String,ExtensionSettings,DataRetrievalPlan,String,String,
String,ParameterValueOrFieldReference[],String&)
.ctor(ServerInfoHeader,String,ExtensionS
ettings,String,ActiveState,String,String,S
tring,ParameterValue[])
9
Pegasus.Main.RSServiceReference05.GetSubscriptionProp
ertiesResponse..ctor(ServerInfoHeader,String,ExtensionS
ettings,String,ActiveState,String,String,String,Parameter
Value[])
GetSubscriptionProperties(String,String&
,ExtensionSettings&,String&,ActiveState
&,String&,String&,String&,ParameterVal
ue[]&)
9
Pegasus.Main.RSServiceReference05.ReportingService200
5SoapClient.GetSubscriptionProperties(String,String&,Ext
ensionSettings&,String&,ActiveState&,String&,String&,St
ring&,ParameterValue[]&)
MakeChargeCodeList(Boolean,Int32,Int32
,Int32,Int32,Int32,Int32,Int32)
8
Pegasus.TMS.UIElements.TMSQuotation.MakeChargeCode
List(Boolean,Int32,Int32,Int32,Int32,Int32,Int32,Int32)
.ctor(BatchHeader,String,ExtensionSetti
ngs,DataRetrievalPlan,String,String,Strin
g,ParameterValueOrFieldReference[])
8
Pegasus.Main.RSServiceReference05.CreateDataDrivenSu
bscriptionRequest..ctor(BatchHeader,String,ExtensionSet
tings,DataRetrievalPlan,String,String,String,ParameterVa
lueOrFieldReference[])
Sum: 93
Average:
9.
3
Minimum: 8
Maximum: 10
Standard deviation:
0.
78
10
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
#
Vari
able
s
Full Name
xamWHConBreakDetail_CellActivati 55 Pegasus.Warehouse.UIElements.WHConBreaking.xamWHCon
ng(Object,CellActivatingEventArgs) BreakDetail_CellActivating(Object,CellActivatingEventArgs)
xamWHConMoveDetail_CellActivati
ng(Object,CellActivatingEventArgs)
53
Pegasus.Warehouse.UIElements.WHConMoveHead.xamWHCo
nMoveDetail_CellActivating(Object,CellActivatingEventArgs)
xamDgGrn_CellActivating(Object,C
ellActivatingEventArgs)
39
Pegasus.Warehouse.UIElements.WHGRN.xamDgGrn_CellActi
vating(Object,CellActivatingEventArgs)
xamExpenses_CellUpdated(Object,
CellUpdatedEventArgs)
37
Pegasus.TMS.UIElements.TMSQuotation.xamExpenses_CellUp
dated(Object,CellUpdatedEventArgs)
CheckGrid() 34
Pegasus.Warehouse.UIElements.WHConMoveHead.CheckGrid
()
btnGenerateEDI_Click(Object,Rout
edEventArgs)
33
Pegasus.ShippingLine.UIElements.SHManifest.btnGenerateED
I_Click(Object,RoutedEventArgs)
btnGenerateEDI_Click(Object,Rout
edEventArgs)
33
Pegasus.NVOCC.UIElements.NVManifest.btnGenerateEDI_Cli
ck(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.45
93
Variance:
71.5
6
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
#
Method
s
Full Name
ReportingService2005SoapCli
ent
211
Pegasus.Main.RSServiceReference05.ReportingService2005Soap
Client
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
#
Method
s
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.ReportParamete
r
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
MasterBillofLadin
g
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.99
4
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 WHERE
ContainsNamespaceDependencyCycle
// 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_viewl
et_swf.html
// You can also read this article
// http://www.theserverside.net/tt/articles/showarticle.tss?id=ControllingDep
endencies
// 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 bla
ck 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
couplin
g
(TypeCe
)
Full Name
ReportingService2005SoapCli
ent
262
Pegasus.Main.RSServiceReference05.ReportingService2005Soap
Client
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</N
ame>
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
instanc
e
#
interfaces
implement
ed
Depth of
inheritan
ce
#
Childre
n
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
ExplicitBindingLibr
ary
0 0 1 0
Pegasus.SearchEngine.ExplicitBindingLi
brary
Resources 0 0 1 0
Pegasus.SearchEngine.Properties.Resou
rces
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
#
Childre
n
#
lines
of
code
(LOC
)
Full Name
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+CodeD
esc
0 0
Pegasus.ShippingLine.UIElements.SHContainerTracking+Co
deDesc
InvalidDataSourceReference 0 0
Pegasus.Main.RSServiceReference05.InvalidDataSourceRef
erence
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+Code
Desc
0 0
Pegasus.NVOCC.UIElements.NVContainerTracking+CodeDe
sc
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
instan
ce
#
Childr
en
Depth of
inheritan
ce
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+CodeDes
c
SalesTaxCalculationType 8 0 1
Pegasus.NVOCC.UIElements.SalesTaxCalculation
Type
NVEstimation+CodeDesc 8 0 1 Pegasus.NVOCC.UIElements.NVEstimation+Code
Desc
NVCosting+CodeDesc 8 0 1
Pegasus.NVOCC.UIElements.NVCosting+CodeDes
c
NVContainerTracking+Co
deDesc
8 0 1
Pegasus.NVOCC.UIElements.NVContainerTrackin
g+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+MessageBoxButtons N/A Pegasus.Controls.Message+MessageBoxButtons
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
#
Method
s
Full Name
ReportingService2005SoapCha
nnel
0
Pegasus.Main.RSServiceReference05.ReportingService2005Soap
Channel
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 a
re 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
(MethodC
a)
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(ItemMonito
r<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(TreeViewIte
m)
0
Pegasus.Controls.CategoryTree.OnNodeCollapsed(TreeView
Item)
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.
fields
Afferent
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
code
(LOC
)
Full Name
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(IEnumerabl
e<T>)
4
Pegasus.Controls.ItemMonitor<T>.UnregisterRootItems(IEnum
erable<T>)
RegisterRootItems(IEnumerable<
T>)
4
Pegasus.Controls.ItemMonitor<T>.RegisterRootItems(IEnumera
ble<T>)
RegisterItem(String,ICollection<
T>)
8
Pegasus.Controls.ItemMonitor<T>.RegisterItem(String,ICollecti
on<T>)
RemoveNodes(ItemCollection) 6
Pegasus.Controls.ItemMonitor<T>.RemoveNodes(ItemCollectio
n)
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.408
3
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(St
ring)
7
Pegasus.Common.Common.TranformButtonToOperationTyp
e(String)
Sum: 18
Average: 1.8
Minimum: 1
Maximum: 7
Standard deviation:
1.83
3
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.NE
T</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.N
ET</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
inst
ruct
ions
IL
Cyc
lom
atic
Co
mpl
IL
N
es
ti
ng
De
#
Par
am
ete
rs
#
Va
ria
ble
s
#
Ov
erl
oa
ds
Per
cen
tag
e
Cov
era
Full Name
exit
y
(ILC
C)
pt
h
ge
CheckApproval() 289 12 1 0 3 1 0
Pegasus.Controls.AuthenticationPromp
t.CheckApproval()
RenderTree(IEnumerable<T
>,TreeLayout)
203 21 2 2 11 1 0
Pegasus.Controls.TreeViewBase<T>.Re
nderTree(IEnumerable<T>,TreeLayout)
CreateItemNode(T,IList,Tr
eeLayout)
212 24 3 3 11 1 0
Pegasus.Controls.TreeViewBase<T>.Cre
ateItemNode(T,IList,TreeLayout)
EnsureNodeIsVisible(T) 99 6 2 1 11 1 0
Pegasus.Controls.TreeViewBase<T>.Ens
ureNodeIsVisible(T)
TryFindItemNode(ItemColl
ection,String,Boolean)
91 10 5 3 8 1 0
Pegasus.Controls.TreeViewBase<T>.Try
FindItemNode(ItemCollection,String,Bo
olean)
ApplyAutoCollapse() 204 23 3 0 13 1 0
Pegasus.Controls.TreeViewBase<T>.Ap
plyAutoCollapse()
.cctor() 257 1 0 0 1 1 0
Pegasus.Controls.TreeViewBase<T>..cc
tor()
OnItemCollectionChanged(
Object,NotifyCollectionCha
ngedEventArgs)
159 13 4 2 10 1 0
Pegasus.Controls.ItemMonitor<T>.OnIt
emCollectionChanged(Object,NotifyCol
lectionChangedEventArgs)
HandleRemovedChildItems(
ICollection<T>,NotifyCollec
tionChangedEventArgs)
142 12 2 2 9 1 0
Pegasus.Controls.ItemMonitor<T>.Hand
leRemovedChildItems(ICollection<T>,N
otifyCollectionChangedEventArgs)
OnRender(DrawingContext) 499 27 6 1 12 1 0
Pegasus.Controls.Ruler.OnRender(Draw
ingContext)
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.0
554
1.
72
05
1.1
136
3.7
26
9
0 0
Variance:
12
546
64.
89
2.
96
1.2
4
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 WHERE
IsPropertyGetter AND
IsStatic AND
ChangesTypeState
// Generated property getter Resources.get_ResourceManager()
// provokes a read-only property lazy-initialized
AND !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 instance Full Name
_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._BaseCurrencyId
_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
ReportingService2005SoapChan
nel
N/A
Pegasus.Main.RSServiceReference05.ReportingService2005SoapC
hannel
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,RoutedEventArg
s)
1
Pegasus.Controls.AuthenticationPrompt.ok_Click(Object,Route
dEventArgs)
cancel_Click(Object,RoutedEven
tArgs)
2
Pegasus.Controls.AuthenticationPrompt.cancel_Click(Object,R
outedEventArgs)
btnClose_Click(Object,RoutedEv
entArgs)
2
Pegasus.Controls.AuthenticationPrompt.btnClose_Click(Object,
RoutedEventArgs)
gMain_MouseMove(Object,Mouse
EventArgs)
2
Pegasus.Controls.AuthenticationPrompt.gMain_MouseMove(Obj
ect,MouseEventArgs)
_this_KeyUp(Object,KeyEventAr
gs)
7
Pegasus.Controls.AuthenticationPrompt._this_KeyUp(Object,K
eyEventArgs)
ok_Click(Object,RoutedEventArg
s)
2
Pegasus.Controls.PegasusMessageBox.ok_Click(Object,RoutedE
ventArgs)
yes_Click(Object,RoutedEventAr
gs)
2
Pegasus.Controls.PegasusMessageBox.yes_Click(Object,Routed
EventArgs)
no_Click(Object,RoutedEventArg
s)
2
Pegasus.Controls.PegasusMessageBox.no_Click(Object,RoutedE
ventArgs)
cancel_Click(Object,RoutedEven
tArgs)
2
Pegasus.Controls.PegasusMessageBox.cancel_Click(Object,Rout
edEventArgs)
Sum: 22
Average: 2.2
Minimum: 0
Maximum: 7
Standard deviation:
1.72
05
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
#
li
n
es
of
co
Full Name
de
(L
O
C)
get_GetFreightCategoryAccessControlLi
st()
1
Pegasus.Common.Common.get_GetFreightCategoryAccess
ControlList()
set_GetFreightCategoryAccessControlLi
st(ArrayList)
1
Pegasus.Common.Common.set_GetFreightCategoryAccess
ControlList(ArrayList)
PreserveLayoutOnRefreshPropertyChan
ged(DependencyObject,DependencyPro
pertyChangedEventArgs)
0
Pegasus.Controls.TreeViewBase<T>.PreserveLayoutOnRefr
eshPropertyChanged(DependencyObject,DependencyProp
ertyChangedEventArgs)
NodeSortDescriptionsPropertyChanged(
DependencyObject,DependencyPropert
yChangedEventArgs)
9
Pegasus.Controls.TreeViewBase<T>.NodeSortDescriptionsP
ropertyChanged(DependencyObject,DependencyPropertyC
hangedEventArgs)
SelectNodesOnRightClickPropertyChang
ed(DependencyObject,DependencyProp
ertyChangedEventArgs)
0
Pegasus.Controls.TreeViewBase<T>.SelectNodesOnRightCli
ckPropertyChanged(DependencyObject,DependencyProper
tyChangedEventArgs)
xamcboFreightType_SelectedItemChang
ed(Object,RoutedPropertyChangedEven
tArgs<Object>)
1
Pegasus.General.UIElements.Central.PRCIDocDefMaster.xa
mcboFreightType_SelectedItemChanged(Object,RoutedPr
opertyChangedEventArgs<Object>)
xamDataGridScanDoc_RecordActivating
(Object,RecordActivatingEventArgs)
9
Pegasus.General.UIElements.Central.PRCIDocDefMaster.xa
mDataGridScanDoc_RecordActivating(Object,RecordActiva
tingEventArgs)
RefreshExpAccountsAndChargeCodeList
s()
6
Pegasus.Accounts.UIElements.Voucher.RefreshExpAccount
sAndChargeCodeLists()
xamComboCurrency_SelectedItemChan
ged(Object,RoutedPropertyChangedEve
ntArgs<Object>)
8
Pegasus.Accounts.UIElements.Voucher.xamComboCurrenc
y_SelectedItemChanged(Object,RoutedPropertyChangedEv
entArgs<Object>)
cboFreightCategory_SelectionChanged(
Object,SelectionChangedEventArgs)
1
Pegasus.Accounts.UIElements.Voucher.cboFreightCategory
_SelectionChanged(Object,SelectionChangedEventArgs)
Sum: 36
Average:
3.
6
Minimum: 0
Maximum: 9
Standard deviation:
3.
69
32
Variance:
13
.6
4
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
UpdateReportExecutionSnapshotR
equest
4
Pegasus.Main.RSServiceReference05.UpdateReportExecutionS
napshotRequest
UpdateReportExecutionSnapshotR
esponse
3
Pegasus.Main.RSServiceReference05.UpdateReportExecutionS
napshotResponse
CreateReportHistorySnapshotResp
onse
5
Pegasus.Main.RSServiceReference05.CreateReportHistorySnap
shotResponse
DeleteReportHistorySnapshotResp
onse
3
Pegasus.Main.RSServiceReference05.DeleteReportHistorySnap
shotResponse
CreateDataDrivenSubscriptionReq
uest
10
Pegasus.Main.RSServiceReference05.CreateDataDrivenSubscri
ptionRequest
CreateDataDrivenSubscriptionResp
onse
4
Pegasus.Main.RSServiceReference05.CreateDataDrivenSubscri
ptionResponse
SetDataDrivenSubscriptionProperti
esRequest
10
Pegasus.Main.RSServiceReference05.SetDataDrivenSubscriptio
nPropertiesRequest
SetDataDrivenSubscriptionProperti
esResponse
3
Pegasus.Main.RSServiceReference05.SetDataDrivenSubscriptio
nPropertiesResponse
GetDataDrivenSubscriptionPropert
iesRequest
3
Pegasus.Main.RSServiceReference05.GetDataDrivenSubscripti
onPropertiesRequest
GetDataDrivenSubscriptionPropert
iesResponse
12
Pegasus.Main.RSServiceReference05.GetDataDrivenSubscripti
onPropertiesResponse
Sum: 57
Average: 5.7
Minimum: 3
Maximum: 12
Standard deviation: 3.34
81
Variance:
11.2
1
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
instan
ce
Full Name
btnMastersMenuKeyTransportComp
anies
4
Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyTranspo
rtCompanies
btnMastersMenuKeyInquiryEvaluatio
ns
4
Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyInquiryE
valuations
btnMastersMenuKeyWarehouseType
ofGoods
4
Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyWareho
useTypeofGoods
btnMastersMenuKeyDocumentsDefi
nitions
4
Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyDocume
ntsDefinitions
gigMastersMenuKeyMasterShippingL
ines
4
Pegasus.Main.RibbonMenuTest.gigMastersMenuKeyMasterS
hippingLines
giMastersMenuKeyMasterLeasingCo
mpany
4
Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterLe
asingCompany
giMastersMenuKeyMasterContainerS
tatus
4
Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterCo
ntainerStatus
giMastersMenuKeyMasterContainerC
lassification
4
Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterCo
ntainerClassification
giMastersMenuKeyMasterStorageCal
culation
4
Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterSto
rageCalculation
giMastersMenuKeyMasterShippingLi
nes
4
Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterShi
ppingLines
Sum: 40
Average: 4
Minimum: 4
Maximum: 4
Standard deviation: 0
Variance: 0

More Related Content

Viewers also liked

What is future of web with reference to html5 will it devalue current present...
What is future of web with reference to html5 will it devalue current present...What is future of web with reference to html5 will it devalue current present...
What is future of web with reference to html5 will it devalue current present...Shahzad
 
White Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application ArchitectureWhite Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application ArchitectureShahzad
 
OR Mapping- nhibernate Presentation
OR Mapping- nhibernate PresentationOR Mapping- nhibernate Presentation
OR Mapping- nhibernate PresentationShahzad
 
Case Study For Replication For PCMS
Case Study For Replication For PCMSCase Study For Replication For PCMS
Case Study For Replication For PCMSShahzad
 
Srs sso-version-1.2-stable version-0
Srs sso-version-1.2-stable version-0Srs sso-version-1.2-stable version-0
Srs sso-version-1.2-stable version-0Shahzad
 
WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2Shahzad
 
Software Bugs A Software Architect Point Of View
Software Bugs    A Software Architect Point Of ViewSoftware Bugs    A Software Architect Point Of View
Software Bugs A Software Architect Point Of ViewShahzad
 
Erp implementation failuer at hp
Erp implementation failuer at hpErp implementation failuer at hp
Erp implementation failuer at hpAqib Khan
 
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource GroupLINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource GroupShahzad
 
Case study NIKE-ERP
Case study NIKE-ERPCase study NIKE-ERP
Case study NIKE-ERPashu5341
 
ERP Implementation Coca-Cola Hellenic
ERP Implementation Coca-Cola HellenicERP Implementation Coca-Cola Hellenic
ERP Implementation Coca-Cola HellenicStathis Simeonidis
 
Air India - ERP Implementation Case Study
Air India - ERP Implementation Case StudyAir India - ERP Implementation Case Study
Air India - ERP Implementation Case StudyArgha Ray
 
ERP Case Study On Sony Corporation
ERP Case Study On Sony CorporationERP Case Study On Sony Corporation
ERP Case Study On Sony CorporationParimal Patel
 
Nike Final's ERP Implementation
Nike Final's ERP ImplementationNike Final's ERP Implementation
Nike Final's ERP Implementationsoumya.parhi
 
UML- Unified Modeling Language
UML- Unified Modeling LanguageUML- Unified Modeling Language
UML- Unified Modeling LanguageShahzad
 

Viewers also liked (18)

What is future of web with reference to html5 will it devalue current present...
What is future of web with reference to html5 will it devalue current present...What is future of web with reference to html5 will it devalue current present...
What is future of web with reference to html5 will it devalue current present...
 
White Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application ArchitectureWhite Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application Architecture
 
OR Mapping- nhibernate Presentation
OR Mapping- nhibernate PresentationOR Mapping- nhibernate Presentation
OR Mapping- nhibernate Presentation
 
Case Study For Replication For PCMS
Case Study For Replication For PCMSCase Study For Replication For PCMS
Case Study For Replication For PCMS
 
Srs sso-version-1.2-stable version-0
Srs sso-version-1.2-stable version-0Srs sso-version-1.2-stable version-0
Srs sso-version-1.2-stable version-0
 
WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2
 
Software Bugs A Software Architect Point Of View
Software Bugs    A Software Architect Point Of ViewSoftware Bugs    A Software Architect Point Of View
Software Bugs A Software Architect Point Of View
 
Erp implementation failuer at hp
Erp implementation failuer at hpErp implementation failuer at hp
Erp implementation failuer at hp
 
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource GroupLINQ 2 SQL Presentation To Palmchip  And Trg, Technology Resource Group
LINQ 2 SQL Presentation To Palmchip And Trg, Technology Resource Group
 
BMW ERP base
BMW ERP baseBMW ERP base
BMW ERP base
 
Case study NIKE-ERP
Case study NIKE-ERPCase study NIKE-ERP
Case study NIKE-ERP
 
ERP Implementation Coca-Cola Hellenic
ERP Implementation Coca-Cola HellenicERP Implementation Coca-Cola Hellenic
ERP Implementation Coca-Cola Hellenic
 
Air India - ERP Implementation Case Study
Air India - ERP Implementation Case StudyAir India - ERP Implementation Case Study
Air India - ERP Implementation Case Study
 
Tata Steel-ppt
Tata Steel-pptTata Steel-ppt
Tata Steel-ppt
 
ERP Case Study On Sony Corporation
ERP Case Study On Sony CorporationERP Case Study On Sony Corporation
ERP Case Study On Sony Corporation
 
Nike Final's ERP Implementation
Nike Final's ERP ImplementationNike Final's ERP Implementation
Nike Final's ERP Implementation
 
Erp success of dabur
Erp success of daburErp success of dabur
Erp success of dabur
 
UML- Unified Modeling Language
UML- Unified Modeling LanguageUML- Unified Modeling Language
UML- Unified Modeling Language
 

Similar to Pegasus ERP Cargo Management System Architecture Report

V mware advanced cloud proof of concept (poc)
V mware advanced cloud proof of concept (poc)V mware advanced cloud proof of concept (poc)
V mware advanced cloud proof of concept (poc)solarisyougood
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
Azure Signalr Service
Azure Signalr ServiceAzure Signalr Service
Azure Signalr ServiceAndrea Tosato
 
GoGrid/AppZero: "Moving Windows Server Applications to the Cloud in 3 Easy St...
GoGrid/AppZero: "Moving Windows Server Applications to the Cloud in 3 Easy St...GoGrid/AppZero: "Moving Windows Server Applications to the Cloud in 3 Easy St...
GoGrid/AppZero: "Moving Windows Server Applications to the Cloud in 3 Easy St...GoGrid Cloud Hosting
 
ThoughtWorks Technology Radar Roadshow - Brisbane
ThoughtWorks Technology Radar Roadshow - BrisbaneThoughtWorks Technology Radar Roadshow - Brisbane
ThoughtWorks Technology Radar Roadshow - BrisbaneThoughtworks
 
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)VMware Tanzu
 
086 Microsoft Application Platform 2009 2010
086 Microsoft Application Platform 2009 2010086 Microsoft Application Platform 2009 2010
086 Microsoft Application Platform 2009 2010GeneXus
 
From Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaFrom Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaAlexandre Morgaut
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volutionQAware GmbH
 
OpenShift Taiwan Vol.1 Technology Overview
OpenShift Taiwan Vol.1 Technology OverviewOpenShift Taiwan Vol.1 Technology Overview
OpenShift Taiwan Vol.1 Technology OverviewJason Peng
 
Put Your Existing Application On Windows Azure
Put Your Existing Application On Windows AzurePut Your Existing Application On Windows Azure
Put Your Existing Application On Windows AzureMaarten Balliauw
 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkRed Hat Developers
 
Microsoft Azure - Introduction to microsoft's public cloud
Microsoft Azure - Introduction to microsoft's public cloudMicrosoft Azure - Introduction to microsoft's public cloud
Microsoft Azure - Introduction to microsoft's public cloudAtanas Gergiminov
 
GDG Cloud Southlake #9 Secure Cloud Networking - Beyond Cloud Boundaries
GDG Cloud Southlake #9 Secure Cloud Networking - Beyond Cloud BoundariesGDG Cloud Southlake #9 Secure Cloud Networking - Beyond Cloud Boundaries
GDG Cloud Southlake #9 Secure Cloud Networking - Beyond Cloud BoundariesJames Anderson
 

Similar to Pegasus ERP Cargo Management System Architecture Report (20)

V mware advanced cloud proof of concept (poc)
V mware advanced cloud proof of concept (poc)V mware advanced cloud proof of concept (poc)
V mware advanced cloud proof of concept (poc)
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Azure Signalr Service
Azure Signalr ServiceAzure Signalr Service
Azure Signalr Service
 
GoGrid/AppZero: "Moving Windows Server Applications to the Cloud in 3 Easy St...
GoGrid/AppZero: "Moving Windows Server Applications to the Cloud in 3 Easy St...GoGrid/AppZero: "Moving Windows Server Applications to the Cloud in 3 Easy St...
GoGrid/AppZero: "Moving Windows Server Applications to the Cloud in 3 Easy St...
 
ThoughtWorks Technology Radar Roadshow - Brisbane
ThoughtWorks Technology Radar Roadshow - BrisbaneThoughtWorks Technology Radar Roadshow - Brisbane
ThoughtWorks Technology Radar Roadshow - Brisbane
 
Docker In Bank Unrated
Docker In Bank UnratedDocker In Bank Unrated
Docker In Bank Unrated
 
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
 
ClearPass 6.3.6 Release Notes
ClearPass 6.3.6 Release NotesClearPass 6.3.6 Release Notes
ClearPass 6.3.6 Release Notes
 
ClearPass 6.3.6 Release Notes
ClearPass 6.3.6 Release NotesClearPass 6.3.6 Release Notes
ClearPass 6.3.6 Release Notes
 
Oreilly solinea-managing-openstack
Oreilly solinea-managing-openstackOreilly solinea-managing-openstack
Oreilly solinea-managing-openstack
 
086 Microsoft Application Platform 2009 2010
086 Microsoft Application Platform 2009 2010086 Microsoft Application Platform 2009 2010
086 Microsoft Application Platform 2009 2010
 
From Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaFrom Web App Model Design to Production with Wakanda
From Web App Model Design to Production with Wakanda
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volution
 
OpenShift Taiwan Vol.1 Technology Overview
OpenShift Taiwan Vol.1 Technology OverviewOpenShift Taiwan Vol.1 Technology Overview
OpenShift Taiwan Vol.1 Technology Overview
 
Put Your Existing Application On Windows Azure
Put Your Existing Application On Windows AzurePut Your Existing Application On Windows Azure
Put Your Existing Application On Windows Azure
 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Microsoft Azure - Introduction to microsoft's public cloud
Microsoft Azure - Introduction to microsoft's public cloudMicrosoft Azure - Introduction to microsoft's public cloud
Microsoft Azure - Introduction to microsoft's public cloud
 
GDG Cloud Southlake #9 Secure Cloud Networking - Beyond Cloud Boundaries
GDG Cloud Southlake #9 Secure Cloud Networking - Beyond Cloud BoundariesGDG Cloud Southlake #9 Secure Cloud Networking - Beyond Cloud Boundaries
GDG Cloud Southlake #9 Secure Cloud Networking - Beyond Cloud Boundaries
 
aXsGuard Gatekeeper
aXsGuard GatekeeperaXsGuard Gatekeeper
aXsGuard Gatekeeper
 

More from Shahzad

Srs sso-version-1.2-stable version
Srs sso-version-1.2-stable versionSrs sso-version-1.2-stable version
Srs sso-version-1.2-stable versionShahzad
 
Exploration note - none windows based authentication for WCF
Exploration note - none windows based authentication for WCFExploration note - none windows based authentication for WCF
Exploration note - none windows based authentication for WCFShahzad
 
Software architecture to analyze licensing needs for pcms- pegasus cargo ma...
Software architecture   to analyze licensing needs for pcms- pegasus cargo ma...Software architecture   to analyze licensing needs for pcms- pegasus cargo ma...
Software architecture to analyze licensing needs for pcms- pegasus cargo ma...Shahzad
 
A cross referenced whitepaper on cloud computing
A cross referenced whitepaper on cloud computingA cross referenced whitepaper on cloud computing
A cross referenced whitepaper on cloud computingShahzad
 
Software architecture case study - why and why not sql server replication
Software architecture   case study - why and why not sql server replicationSoftware architecture   case study - why and why not sql server replication
Software architecture case study - why and why not sql server replicationShahzad
 
To Study E T L ( Extract, Transform, Load) Tools Specially S Q L Server I...
To Study  E T L ( Extract, Transform, Load) Tools Specially  S Q L  Server  I...To Study  E T L ( Extract, Transform, Load) Tools Specially  S Q L  Server  I...
To Study E T L ( Extract, Transform, Load) Tools Specially S Q L Server I...Shahzad
 
To Analyze Cargo Loading Optimization Algorithm
To Analyze Cargo Loading Optimization AlgorithmTo Analyze Cargo Loading Optimization Algorithm
To Analyze Cargo Loading Optimization AlgorithmShahzad
 
Whitepaper To Study Filestream Option In Sql Server
Whitepaper To Study Filestream Option In Sql ServerWhitepaper To Study Filestream Option In Sql Server
Whitepaper To Study Filestream Option In Sql ServerShahzad
 
Data Structure In C#
Data Structure In C#Data Structure In C#
Data Structure In C#Shahzad
 
Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1Shahzad
 
Software Development The Agile Way
Software Development The Agile WaySoftware Development The Agile Way
Software Development The Agile WayShahzad
 

More from Shahzad (12)

Srs sso-version-1.2-stable version
Srs sso-version-1.2-stable versionSrs sso-version-1.2-stable version
Srs sso-version-1.2-stable version
 
Exploration note - none windows based authentication for WCF
Exploration note - none windows based authentication for WCFExploration note - none windows based authentication for WCF
Exploration note - none windows based authentication for WCF
 
Software architecture to analyze licensing needs for pcms- pegasus cargo ma...
Software architecture   to analyze licensing needs for pcms- pegasus cargo ma...Software architecture   to analyze licensing needs for pcms- pegasus cargo ma...
Software architecture to analyze licensing needs for pcms- pegasus cargo ma...
 
A cross referenced whitepaper on cloud computing
A cross referenced whitepaper on cloud computingA cross referenced whitepaper on cloud computing
A cross referenced whitepaper on cloud computing
 
Software architecture case study - why and why not sql server replication
Software architecture   case study - why and why not sql server replicationSoftware architecture   case study - why and why not sql server replication
Software architecture case study - why and why not sql server replication
 
To Study E T L ( Extract, Transform, Load) Tools Specially S Q L Server I...
To Study  E T L ( Extract, Transform, Load) Tools Specially  S Q L  Server  I...To Study  E T L ( Extract, Transform, Load) Tools Specially  S Q L  Server  I...
To Study E T L ( Extract, Transform, Load) Tools Specially S Q L Server I...
 
To Analyze Cargo Loading Optimization Algorithm
To Analyze Cargo Loading Optimization AlgorithmTo Analyze Cargo Loading Optimization Algorithm
To Analyze Cargo Loading Optimization Algorithm
 
Asp
AspAsp
Asp
 
Whitepaper To Study Filestream Option In Sql Server
Whitepaper To Study Filestream Option In Sql ServerWhitepaper To Study Filestream Option In Sql Server
Whitepaper To Study Filestream Option In Sql Server
 
Data Structure In C#
Data Structure In C#Data Structure In C#
Data Structure In C#
 
Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1
 
Software Development The Agile Way
Software Development The Agile WaySoftware Development The Agile Way
Software Development The Agile Way
 

Recently uploaded

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Pegasus ERP Cargo Management System Architecture Report

  • 1. Analytical Architecture Report Application: 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 DevelopmentEnvironment:[Release-6,DesktopVersion] MicrosoftVisual Studio2008, .Net3.5, WindowsPresentationFoundation,Infragistic GUI Controls,SQL Server2008 Application Metrics Number of IL instructions: 894149 Number of lines of code: 121062 Number of lines of comment: 0 Percentage comment: 0 Number of assemblies: 15 Number of classes: 596 Number of types: 638 Number of abstract classes: 1 Number of interfaces: 4 Number of value types: 2 Number of exception classes: 2 Number of attribute classes: 0 Number of delegate classes: 1 Number of enumerations classes: 36 Number of generic type definitions: 5 Number of generic method definitions: 0 Percentage of public types: 90.6% Percentage of public methods: 42.45% Percentage of classes with at least one public field: 48.12% Stat # Occurren ces Avg StdD ev Max Properti es on Interface s 4 Interface s 0 0 0 properties on Pegasus.Common.ICommon Methods on Interface s 4 Interface s 26.25 44.31 103 methods on Pegasus.Main.RSServiceReference05.ReportingService2005Soap Argumen ts on 105 Methods 1 0 1 arguments on Pegasus.Common.ICommon.getPropertyValue(String)
  • 2. Methods on Interface s Public Properti es 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.39 108 public methods on Pegasus.Main.RSServiceReference05.ReportingService2005SoapClien t Argumen ts on Public Methods on Classes 4019 Methods 0.49 1.11 10 arguments on Pegasus.Main.RSServiceReference05.GetDataDrivenSubscriptionProp ertiesResponse..ctor(ServerInfoHeader,String,ExtensionSettings,Dat aRetrievalPlan,String,ActiveState,String,String,String,ParameterVal ueOrFieldReference[]) IL Instructi ons in non- abstract Methods 9608 Methods 93.06 195.6 6 4585 IL instructions in Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity() Cyclomat ic complexi ty on non abstract Methods 9608 Methods 6.69 14.69 CC = 561 for Pegasus.Main.RibbonMenuTest.System.Windows.Markup.IComponent Connector.Connect(Int32,Object) Assemblies Metrics Assembly # Typ es # Abstr act Type s # IL instruc tion # lin es of cod e # lines of comm ent % comm ent Affer ent Coupl ing Effer ent Coupl ing Relati onal Cohesi on Instab ility Abstrac tness Dista nce Pegasus.Com mon v1.0.0.0 8 2 1246 198 0 0 202 34 0.38 0.14 0.25 0.61 Pegasus.Contr ols v1.0.0.0 25 0 9811 144 9 0 0 225 168 1.52 0.43 0.04 0.53 Pegasus.Searc hEngine 5 0 11428 145 3 0 0 160 122 0.2 0.43 0 0.57
  • 3. v1.0.0.0 Pegasus.Gene ral v1.0.0.0 87 0 88574 121 68 0 0 146 231 1.82 0.61 0 0.39 Pegasus.Secur ity v1.0.0.0 6 0 4577 642 0 0 0 96 0.17 1 0 0 Pegasus.Acco unts v1.0.0.0 23 0 49606 659 2 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.NVOC C v1.0.0.0 24 0 85322 115 47 0 0 0 225 0.38 1 0 0 Pegasus.Ware house v1.0.0.0 22 0 95694 127 24 0 0 0 243 0.23 1 0 0 Pegasus.Shipp ingLine v1.0.0.0 24 0 86359 116 79 0 0 0 225 0.38 1 0 0 Pegasus.PRCI v1.0.0.0 12 0 44695 602 2 0 0 0 198 0.5 1 0 0 Pegasus.Cargo v1.0.0.0 42 0 149950 203 58 0 0 0 223 1.14 1 0 0 Pegasus.Flight Cargo v1.0.0.0 18 0 56634 753 9 0 0 0 183 0.39 1 0 0 Pegasus.Main v1.0.0.52 307 1 129476 177 81 0 0 0 282 2.55 1 0.01 0.01 Pegasus.TMS v1.0.0.0 32 0 80263 108 44 0 0 0 187 0.09 1 0 0 Visual NDepend View
  • 4.
  • 6.
  • 7. Assemblies Dependencies Assembly 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 ; Infragistics3.Wpf.DataPresenter.v9.1 v9.1.20091.2091 ; Pegasus.Common v1.0.0.0 ; Pegasus.Controls v1.0.0.0 ; Pegasus.General v1.0.0.0 ; Pegasus.Security v1.0.0.0 ; Pegasus.Accounts 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
  • 8. 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 v1.0.0.0 mscorlib v4.0.0.0 ; System v4.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 ; -
  • 9. 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 -
  • 10. 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 Diagram Blue : Assemblies of your application. Yellow : Tiers assemblies referenced by assemblies of your application.
  • 11.
  • 12. Assemblies build order Pegasus.Common Pegasus.Controls Pegasus.SearchEngine Pegasus.General Pegasus.Security Pegasus.Accounts Pegasus.Job Pegasus.NVOCC Pegasus.Warehouse Pegasus.ShippingLine Pegasus.PRCI Pegasus.Cargo Pegasus.FlightCargo Pegasus.Main Pegasus.TMS NDepend information and warnings 11/05/2010 15:02:12 Begin full analysis with NDepend v3.2.0 No Baseline for Comparison loaded. Assemblies loaded from {C:WINDOWSMicrosoft.NETFrameworkv4.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.0 Assemblies loaded from {C:WINDOWSMicrosoft.NETFrameworkv4.0.30319WPF} PresentationFramework.dll v4.0.0.0 WindowsBase.dll v4.0.0.0 PresentationCore.dll v4.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.Common.BSLbinDebug} Pegasus.Common.dll v1.0.0.0 NHibernate.dll v2.1.0.4000 HibernatingRhinos.NHibernate.Profiler.Appender.dll v0.9.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.GeneralbinDebug} 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.2091 Assemblies loaded from {D:ShareMePegasusPegasus.SecuritybinDebug} Pegasus.Security.dll v1.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.AccountsbinDebug} Pegasus.Accounts.dll v1.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.JobbinDebug} Pegasus.Job.dll v1.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.NVOCCbinDebug} Pegasus.NVOCC.dll v1.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.WarehousebinDebug} Pegasus.Warehouse.dll v1.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.ShippingLinebinDebug} Pegasus.ShippingLine.dll v1.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.PRCIbinDebug} Pegasus.PRCI.dll v1.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.AirFreightbinDebug} Pegasus.Cargo.dll v1.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasus.FlightCargobinDebug} Pegasus.FlightCargo.dll v1.0.0.0 Assemblies loaded from {D:ShareMePegasusPegasusbinDebug} Pegasus.Main.exe v1.0.0.52 Pegasus.TMS.dll v1.0.0.0 Infragistics3.Wpf.Ribbon.v9.1.dll v9.1.20091.2091
  • 13. 0 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:ShareMePegasusPegasus.GeneralbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:ShareMePegasusPegasus.SecuritybinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:ShareMePegasusPegasus.AccountsbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:ShareMePegasusPegasus.JobbinDebugPegasus.BusinessObjects.dll v0.0 2 293 248 bytes - D:ShareMePegasusPegasus.NVOCCbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:ShareMePegasusPegasus.WarehousebinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:ShareMePegasusPegasus.ShippingLinebinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:ShareMePegasusPegasus.PRCIbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:ShareMePegasusPegasus.AirFreightbinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:ShareMePegasusPegasus.FlightCargobinDebugPegasus.BusinessObjects.dll v0.0 2 297 856 bytes - D:ShareMePegasusPegasusbinDebugPegasus.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 WorkProjectsPegasusPegasus.Common.BSLProperties} referenced by the PDB file of the assembly {Pegasus.Common} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.Common.BSL} referenced by the PDB file of the assembly {Pegasus.Common} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.Common.BSLUtilities} referenced by the PDB file of the assembly {Pegasus.Common} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.Common.BSLLanguages} referenced by the PDB file of the assembly {Pegasus.Common} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.Controls} referenced by the PDB file of the assembly {Pegasus.Controls} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.ControlsProperties} referenced by the PDB file of the assembly {Pegasus.Controls} can't be found.
  • 14. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.SearchEngine} referenced by the PDB file of the assembly {Pegasus.SearchEngine} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.SearchEngineProperties} referenced by the PDB file of the assembly {Pegasus.SearchEngine} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.General} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsTransportRepair} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsCentral} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsCargo} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {e:Shoaib WorkProjectsPegasusPegasus.GeneralUIElements} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsMain} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsAdministration} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsHRPayroll} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsShippingLines} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralUIElementsInventory} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralControls} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.GeneralProperties} referenced by the PDB file of the assembly {Pegasus.General} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.SecurityProperties} referenced by the PDB file of the assembly {Pegasus.Security} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.SecurityUIElements} referenced by the PDB file of the assembly {Pegasus.Security} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AccountsUIElements} referenced by the PDB file of the assembly {Pegasus.Accounts} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AccountsProperties} referenced by the PDB file of the assembly {Pegasus.Accounts} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.JobProperties} referenced by the PDB file of the assembly {Pegasus.Job} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.JobUIElements} referenced by the PDB file of the assembly {Pegasus.Job} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.NVOCCUIElements} referenced by the PDB file of the assembly {Pegasus.NVOCC} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.NVOCCProperties} referenced by the PDB file of the assembly {Pegasus.NVOCC} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.WarehouseUIElements} referenced by the PDB file of the assembly {Pegasus.Warehouse} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.WarehouseProperties} referenced by the PDB file of the assembly {Pegasus.Warehouse} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.ShippingLineProperties} referenced by the PDB file of the assembly {Pegasus.ShippingLine} can't be found.
  • 15. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.ShippingLineUIElements} referenced by the PDB file of the assembly {Pegasus.ShippingLine} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.PRCIUIElements} referenced by the PDB file of the assembly {Pegasus.PRCI} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.PRCIProperties} referenced by the PDB file of the assembly {Pegasus.PRCI} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightUIElements} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightProperties} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlers} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersCnF} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersMulti} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersSea} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersLand} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.AirFreightHandlersAir} referenced by the PDB file of the assembly {Pegasus.Cargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.FlightCargoUIElements} referenced by the PDB file of the assembly {Pegasus.FlightCargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.FlightCargoHandlersAir} referenced by the PDB file of the assembly {Pegasus.FlightCargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus.FlightCargoProperties} referenced by the PDB file of the assembly {Pegasus.FlightCargo} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusRibbonClassesUtil} referenced by the PDB file of the assembly {Pegasus.Main} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasus} referenced by the PDB file of the assembly {Pegasus.Main} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusControls} referenced by the PDB file of the assembly {Pegasus.Main} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusSecurity} referenced by the PDB file of the assembly {Pegasus.Main} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusProperties} referenced by the PDB file of the assembly {Pegasus.Main} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPegasusService ReferencesRSServiceReference05} referenced by the PDB file of the assembly {Pegasus.Main} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPEGASUS.TMSUIElements} referenced by the PDB file of the assembly {Pegasus.TMS} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPEGASUS.TMSUIElementsMasters} referenced by the PDB file of the assembly {Pegasus.TMS} can't be found. WARNING: The source directory {E:Shoaib WorkProjectsPegasusPEGASUS.TMSProperties} 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.
  • 16. {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#Nb LinesOfCode NbILInstructions > 200 OR // http://www.ndepend.com/Metrics.aspx#Nb ILInstructions CyclomaticComplexity > 20 OR // http://www.ndepend.com/Metrics.aspx#CC ILCyclomaticComplexity > 50 OR // http://www.ndepend.com/Metrics.aspx#IL CC ILNestingDepth > 4 OR // http://www.ndepend.com/Metrics.aspx#IL NestingDepth NbParameters > 5 OR // http://www.ndepend.com/Metrics.aspx#Nb Parameters NbVariables > 8 OR // http://www.ndepend.com/Metrics.aspx#Nb Variables NbOverloads > 6 ) // http://www.ndepend.com/Metrics.aspx#Nb Overloads 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$LibNDepend.CQL.dll // You can define your own attribute to mark "Generated". HasAttribute "OPTIONAL:NDepend.CQL.GeneratedAttribute") methods # li n es of c o # IL inst ruc tion s Cyc lom atic Co mpl exi ty IL Cyc lom atic Co mpl exi IL N es ti ng D ep # Par am ete rs # Va ria ble s # Ov erl oa ds Full Name
  • 17. d e (L O C) (CC ) ty (IL CC) th CheckApproval() 5 8 289 N/A 12 1 0 3 1 Pegasus.Controls.AuthenticationProm pt.CheckApproval() RenderTree(IEnumerable< T>,TreeLayout) 3 8 203 N/A 21 2 2 11 1 Pegasus.Controls.TreeViewBase<T>.R enderTree(IEnumerable<T>,TreeLayo ut) CreateItemNode(T,IList,Tr eeLayout) 3 2 212 N/A 24 3 3 11 1 Pegasus.Controls.TreeViewBase<T>.C reateItemNode(T,IList,TreeLayout) EnsureNodeIsVisible(T) 2 1 99 N/A 6 2 1 11 1 Pegasus.Controls.TreeViewBase<T>.E nsureNodeIsVisible(T) TryFindItemNode(ItemColl ection,String,Boolean) 1 4 91 N/A 10 5 3 8 1 Pegasus.Controls.TreeViewBase<T>.T ryFindItemNode(ItemCollection,String ,Boolean) ApplyAutoCollapse() 3 4 204 N/A 23 3 0 13 1 Pegasus.Controls.TreeViewBase<T>.A pplyAutoCollapse() .cctor() 3 5 257 N/A 1 0 0 1 1 Pegasus.Controls.TreeViewBase<T>..c ctor() OnItemCollectionChanged (Object,NotifyCollectionC hangedEventArgs) 3 1 159 N/A 13 4 2 10 1 Pegasus.Controls.ItemMonitor<T>.OnI temCollectionChanged(Object,Notify CollectionChangedEventArgs) HandleRemovedChildItem s(ICollection<T>,NotifyCol lectionChangedEventArgs) 2 1 142 N/A 12 2 2 9 1 Pegasus.Controls.ItemMonitor<T>.Ha ndleRemovedChildItems(ICollection<T >,NotifyCollectionChangedEventArgs) OnRender(DrawingContex t) 4 8 499 N/A 27 6 1 12 1 Pegasus.Controls.Ruler.OnRender(Dra wingContext) Sum: 3 3 2 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: 1 4 91 0 1 0 0 1 1 Maximum: 5 8 499 0 27 6 3 13 1 Standard deviation: 1 2. 3 8 4 112 .01 0 8.0 554 1. 72 05 1.1 136 3.7 26 9 0 Variance: 1 5 12 546 0 64. 89 2. 96 1.2 4 13. 89 0
  • 18. 3. 3 6 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 # lin es of cod e (LO C) 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(Objec t,SelectionChangedEventArgs) 435 Pegasus.PRCI.UIElements.PRCICosting.cboJobCard_Selectio nChanged(Object,SelectionChangedEventArgs) xamExpenses_CellUpdated(Object,Ce llUpdatedEventArgs) 406 Pegasus.ShippingLine.UIElements.SHQuotation.xamExpense s_CellUpdated(Object,CellUpdatedEventArgs) intialLoad() 358 Pegasus.Main.RptNVOCC.intialLoad() intialLoad() 346 Pegasus.Main.RptSL.intialLoad() xamExpenses_CellUpdated(Object,Ce llUpdatedEventArgs) 345 Pegasus.FlightCargo.UIElements.Quotation.xamExpenses_C ellUpdated(Object,CellUpdatedEventArgs) SaveRecord() 327 Pegasus.PRCI.UIElements.PRCICosting.SaveRecord() Sum: 4 824 Average: 482 .4 Minimum: 327 Maximum: 801 Standard deviation: 163 .65
  • 19. Variance: 26 781 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 instru ctions Full Name ApplyReportsTabSecurity() 4 585 Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity () System.Windows.Markup.IComponent Connector.Connect(Int32,Object) 4 358 Pegasus.Main.RibbonMenuTest.System.Windows.Markup. IComponentConnector.Connect(Int32,Object) IntialLoad() 3 892 Pegasus.Main.RptFreight.IntialLoad() xamExpenses_CellUpdated(Object,Ce llUpdatedEventArgs) 3 870 Pegasus.ShippingLine.UIElements.SHQuotation.xamExpe nses_CellUpdated(Object,CellUpdatedEventArgs) xamExpenses_CellUpdated(Object,Ce llUpdatedEventArgs) 3 177 Pegasus.FlightCargo.UIElements.Quotation.xamExpenses _CellUpdated(Object,CellUpdatedEventArgs) intialLoad() 3 061 Pegasus.Main.RPTFLC.intialLoad() cboJobCard_SelectionChanged(Objec t,SelectionChangedEventArgs) 3 028 Pegasus.PRCI.UIElements.PRCICosting.cboJobCard_Selec tionChanged(Object,SelectionChangedEventArgs) CheckGrid() 2 866 Pegasus.Warehouse.UIElements.WHConBreaking.CheckG rid() ValidateRecord() 2 636 Pegasus.General.UIElements.Cargo.RateMaster.Validate Record() SaveRecord() 2 452 Pegasus.PRCI.UIElements.PRCICosting.SaveRecord() Sum: 33 925 Average: 3 392 Minimum: 2 452 Maximum: 4 585 Standard deviation: 696.7 8 Variance: 485 497
  • 20. 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 Cyclo matic Comp lexity (ILCC) Full Name System.Windows.Markup.IComponent Connector.Connect(Int32,Object) 561 Pegasus.Main.RibbonMenuTest.System.Windows.Markup. IComponentConnector.Connect(Int32,Object) xamExpenses_CellUpdated(Object,Cel lUpdatedEventArgs) 268 Pegasus.ShippingLine.UIElements.SHQuotation.xamExpe nses_CellUpdated(Object,CellUpdatedEventArgs) ApplyReportsTabSecurity() 245 Pegasus.Main.RibbonMenuTest.ApplyReportsTabSecurity( ) xamExpenses_CellUpdated(Object,Cel lUpdatedEventArgs) 194 Pegasus.FlightCargo.UIElements.Quotation.xamExpenses _CellUpdated(Object,CellUpdatedEventArgs) SaveRecord() 191 Pegasus.Accounts.UIElements.PostunPost.SaveRecord() GetWHConBreakDetail() 185 Pegasus.Warehouse.UIElements.WHConBreaking.GetWH ConBreakDetail() cboJobCard_SelectionChanged(Object ,SelectionChangedEventArgs) 184 Pegasus.PRCI.UIElements.PRCICosting.cboJobCard_Selec tionChanged(Object,SelectionChangedEventArgs) GetExpensesFromGrid() 177 Pegasus.TMS.UIElements.TMSQuotation.GetExpensesFro mGrid() SaveRecord() 163 Pegasus.PRCI.UIElements.PRCICosting.SaveRecord() xamExpenses_CellUpdated(Object,Cel lUpdatedEventArgs) 156 Pegasus.Warehouse.UIElements.WHQuotation.xamExpen ses_CellUpdated(Object,CellUpdatedEventArgs) Sum: 2 324 Average: 232.4 Minimum: 156 Maximum: 561 Standard deviation: 114.4 1 Variance: 13 090
  • 21. 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 Nes tin g De pth Full Name MakeChargeCodeList(Boolean,Int32, Int32,Int32,Int32,Int32,Int32,Int32) 21 Pegasus.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.MakeChargeC odeList(Boolean,Int32,Int32,Int32,Int32,Decimal) MakeChargeCodeList(Boolean,Int32, Int32,Int32,Int32,Decimal) 18 Pegasus.NVOCC.UIElements.NVQuotation.MakeChargeCodeLi st(Boolean,Int32,Int32,Int32,Int32,Decimal) MakeChargeCodeList(Boolean,Int32, Int32,Int32,Int32,Decimal,Int32) 17 Pegasus.Handlers.QuotationHandler.MakeChargeCodeList(Bo olean,Int32,Int32,Int32,Int32,Decimal,Int32) xamWHConBreakDetail_CellActivati ng(Object,CellActivatingEventArgs) 17 Pegasus.Warehouse.UIElements.WHConBreaking.xamWHCon BreakDetail_CellActivating(Object,CellActivatingEventArgs) CheckGrid() 17 Pegasus.Warehouse.UIElements.WHConBreaking.CheckGrid() MakeChargeCodeList(Boolean,Int32, Int32,Int32,Int32,Decimal) 17 Pegasus.FlightCargo.UIElements.Quotation.MakeChargeCode List(Boolean,Int32,Int32,Int32,Int32,Decimal) CheckGrid() 14 Pegasus.General.UIElements.Central.PRCIDocDefMaster.Che ckGrid() Control_GotFocusExcludeGrids(Obje ct,RoutedEventArgs) 13 Pegasus.General.EventMethods.Control_GotFocusExcludeGri ds(Object,RoutedEventArgs) Sum: 173 Average: 17. 3 Minimum: 13 Maximum: 21
  • 22. Standard deviation: 2.3 259 Variance: 5.4 1 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 Perce ntage Comm ent # line s of cod e (LO C) Full Name cboClient_KeyDown(Object,Ke yEventArgs) N/A 16 Pegasus.Cargo.UIElements.CustomerInquiry.cboClient_Ke yDown(Object,KeyEventArgs) ShowRecordFromList(Object,M ouseButtonEventArgs) N/A 52 Pegasus.Cargo.UIElements.CustomerInquiry.ShowRecordF romList(Object,MouseButtonEventArgs) ValidateRecord() N/A 47 Pegasus.Cargo.UIElements.CustomerInquiry.ValidateReco rd() EvalKeyDown(Object,KeyEvent Args) N/A 16 Pegasus.Cargo.UIElements.CustomerInquiry.EvalKeyDown (Object,KeyEventArgs) TypeKeyDown(Object,KeyEven tArgs) N/A 16 Pegasus.Cargo.UIElements.CustomerInquiry.TypeKeyDow n(Object,KeyEventArgs) CategoryKeyDown(Object,KeyE ventArgs) N/A 16 Pegasus.Cargo.UIElements.CustomerInquiry.CategoryKey Down(Object,KeyEventArgs) SaveRecord() N/A 36 Pegasus.Cargo.UIElements.CustomerInquiry.SaveRecord() EnableDisable(Boolean) N/A 18 Pegasus.Cargo.UIElements.CustomerInquiry.EnableDisabl e(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
  • 23. 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 # Pa ra m et er s Full Name UpdateTransactionDetail(WHJobCardHea d,Commodity,WHMaster,WHRack,WHLoc ation,Units,Boolean,Boolean,Int32,Int32) 10 Pegasus.Warehouse.UIElements.WHCommercialInvoice.U pdateTransactionDetail(WHJobCardHead,Commodity,WH Master,WHRack,WHLocation,Units,Boolean,Boolean,Int32 ,Int32) CCUpdateSpaceAllocation(WHJobCardHe ad,Commodity,WHMaster,WHRack,WHLo cation,Units,Boolean,Boolean,Int32,Int3 2) 10 Pegasus.Warehouse.UIElements.WHDeliveryOrder.CCUpd ateSpaceAllocation(WHJobCardHead,Commodity,WHMast er,WHRack,WHLocation,Units,Boolean,Boolean,Int32,Int 32) .ctor(ServerInfoHeader,String,ExtensionS ettings,DataRetrievalPlan,String,ActiveSt ate,String,String,String,ParameterValue OrFieldReference[]) 10 Pegasus.Main.RSServiceReference05.GetDataDrivenSubsc riptionPropertiesResponse..ctor(ServerInfoHeader,String, ExtensionSettings,DataRetrievalPlan,String,ActiveState,S tring,String,String,ParameterValueOrFieldReference[]) UpdateSpaceAllocation(WHJobCardHead, Commodity,WHMaster,WHRack,WHLocati on,Units,Boolean,Boolean,Int32,Int32) 10 Pegasus.Warehouse.UIElements.WHCommercialInvoice.U pdateSpaceAllocation(WHJobCardHead,Commodity,WHM aster,WHRack,WHLocation,Units,Boolean,Boolean,Int32,I nt32) GetDataDrivenSubscriptionProperties(Str ing,String&,ExtensionSettings&,DataRetr ievalPlan&,String&,ActiveState&,String& ,String&,String&,ParameterValueOrField Reference[]&) 10 Pegasus.Main.RSServiceReference05.ReportingService200 5SoapClient.GetDataDrivenSubscriptionProperties(String, String&,ExtensionSettings&,DataRetrievalPlan&,String&, ActiveState&,String&,String&,String&,ParameterValueOr FieldReference[]&)
  • 24. CreateDataDrivenSubscription(BatchHea der,String,ExtensionSettings,DataRetriev alPlan,String,String,String,ParameterVal ueOrFieldReference[],String&) 9 Pegasus.Main.RSServiceReference05.ReportingService200 5SoapClient.CreateDataDrivenSubscription(BatchHeader, String,ExtensionSettings,DataRetrievalPlan,String,String, String,ParameterValueOrFieldReference[],String&) .ctor(ServerInfoHeader,String,ExtensionS ettings,String,ActiveState,String,String,S tring,ParameterValue[]) 9 Pegasus.Main.RSServiceReference05.GetSubscriptionProp ertiesResponse..ctor(ServerInfoHeader,String,ExtensionS ettings,String,ActiveState,String,String,String,Parameter Value[]) GetSubscriptionProperties(String,String& ,ExtensionSettings&,String&,ActiveState &,String&,String&,String&,ParameterVal ue[]&) 9 Pegasus.Main.RSServiceReference05.ReportingService200 5SoapClient.GetSubscriptionProperties(String,String&,Ext ensionSettings&,String&,ActiveState&,String&,String&,St ring&,ParameterValue[]&) MakeChargeCodeList(Boolean,Int32,Int32 ,Int32,Int32,Int32,Int32,Int32) 8 Pegasus.TMS.UIElements.TMSQuotation.MakeChargeCode List(Boolean,Int32,Int32,Int32,Int32,Int32,Int32,Int32) .ctor(BatchHeader,String,ExtensionSetti ngs,DataRetrievalPlan,String,String,Strin g,ParameterValueOrFieldReference[]) 8 Pegasus.Main.RSServiceReference05.CreateDataDrivenSu bscriptionRequest..ctor(BatchHeader,String,ExtensionSet tings,DataRetrievalPlan,String,String,String,ParameterVa lueOrFieldReference[]) Sum: 93 Average: 9. 3 Minimum: 8 Maximum: 10 Standard deviation: 0. 78 10 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 # Vari able s Full Name xamWHConBreakDetail_CellActivati 55 Pegasus.Warehouse.UIElements.WHConBreaking.xamWHCon
  • 25. ng(Object,CellActivatingEventArgs) BreakDetail_CellActivating(Object,CellActivatingEventArgs) xamWHConMoveDetail_CellActivati ng(Object,CellActivatingEventArgs) 53 Pegasus.Warehouse.UIElements.WHConMoveHead.xamWHCo nMoveDetail_CellActivating(Object,CellActivatingEventArgs) xamDgGrn_CellActivating(Object,C ellActivatingEventArgs) 39 Pegasus.Warehouse.UIElements.WHGRN.xamDgGrn_CellActi vating(Object,CellActivatingEventArgs) xamExpenses_CellUpdated(Object, CellUpdatedEventArgs) 37 Pegasus.TMS.UIElements.TMSQuotation.xamExpenses_CellUp dated(Object,CellUpdatedEventArgs) CheckGrid() 34 Pegasus.Warehouse.UIElements.WHConMoveHead.CheckGrid () btnGenerateEDI_Click(Object,Rout edEventArgs) 33 Pegasus.ShippingLine.UIElements.SHManifest.btnGenerateED I_Click(Object,RoutedEventArgs) btnGenerateEDI_Click(Object,Rout edEventArgs) 33 Pegasus.NVOCC.UIElements.NVManifest.btnGenerateEDI_Cli ck(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.45 93 Variance: 71.5 6 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 # Method s Full Name ReportingService2005SoapCli ent 211 Pegasus.Main.RSServiceReference05.ReportingService2005Soap Client
  • 26. 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
  • 27. 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
  • 28. 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 # Method s 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.ReportParamete r 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 MasterBillofLadin g 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.99 4 25.083 Variance: 0.00010462 1 295 629.16
  • 29. 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 WHERE ContainsNamespaceDependencyCycle // 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_viewl et_swf.html // You can also read this article // http://www.theserverside.net/tt/articles/showarticle.tss?id=ControllingDep endencies // 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 bla ck 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.
  • 30. // 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 couplin g (TypeCe ) Full Name ReportingService2005SoapCli ent 262 Pegasus.Main.RSServiceReference05.ReportingService2005Soap Client 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</N ame> 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
  • 31. // 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 instanc e # interfaces implement ed Depth of inheritan ce # Childre n 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 ExplicitBindingLibr ary 0 0 1 0 Pegasus.SearchEngine.ExplicitBindingLi brary Resources 0 0 1 0 Pegasus.SearchEngine.Properties.Resou rces 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
  • 32. 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 # Childre n # lines of code (LOC ) Full Name 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+CodeD esc 0 0 Pegasus.ShippingLine.UIElements.SHContainerTracking+Co deDesc InvalidDataSourceReference 0 0 Pegasus.Main.RSServiceReference05.InvalidDataSourceRef erence
  • 33. 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+Code Desc 0 0 Pegasus.NVOCC.UIElements.NVContainerTracking+CodeDe sc 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 instan ce # Childr en Depth of inheritan ce 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+CodeDes c SalesTaxCalculationType 8 0 1 Pegasus.NVOCC.UIElements.SalesTaxCalculation Type NVEstimation+CodeDesc 8 0 1 Pegasus.NVOCC.UIElements.NVEstimation+Code
  • 34. Desc NVCosting+CodeDesc 8 0 1 Pegasus.NVOCC.UIElements.NVCosting+CodeDes c NVContainerTracking+Co deDesc 8 0 1 Pegasus.NVOCC.UIElements.NVContainerTrackin g+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
  • 35. 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+MessageBoxButtons N/A Pegasus.Controls.Message+MessageBoxButtons 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
  • 36. 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 # Method s Full Name ReportingService2005SoapCha nnel 0 Pegasus.Main.RSServiceReference05.ReportingService2005Soap Channel 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 a re 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
  • 37. 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
  • 38. 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
  • 39. 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 (MethodC a) 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(ItemMonito r<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(TreeViewIte m) 0 Pegasus.Controls.CategoryTree.OnNodeCollapsed(TreeView Item) 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}
  • 40. // <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. fields Afferent 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
  • 41. // 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
  • 42. _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 code (LOC ) Full Name 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(IEnumerabl e<T>) 4 Pegasus.Controls.ItemMonitor<T>.UnregisterRootItems(IEnum erable<T>) RegisterRootItems(IEnumerable< T>) 4 Pegasus.Controls.ItemMonitor<T>.RegisterRootItems(IEnumera ble<T>)
  • 43. RegisterItem(String,ICollection< T>) 8 Pegasus.Controls.ItemMonitor<T>.RegisterItem(String,ICollecti on<T>) RemoveNodes(ItemCollection) 6 Pegasus.Controls.ItemMonitor<T>.RemoveNodes(ItemCollectio n) 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.408 3 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(St ring) 7 Pegasus.Common.Common.TranformButtonToOperationTyp e(String) Sum: 18 Average: 1.8 Minimum: 1
  • 44. Maximum: 7 Standard deviation: 1.83 3 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.NE T</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
  • 45. 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.N ET</Name> WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE CouldBePrivate fields Size of instance Full Name _this 4 Pegasus.Controls.AuthenticationPrompt._this
  • 46. 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 inst ruct ions IL Cyc lom atic Co mpl IL N es ti ng De # Par am ete rs # Va ria ble s # Ov erl oa ds Per cen tag e Cov era Full Name
  • 47. exit y (ILC C) pt h ge CheckApproval() 289 12 1 0 3 1 0 Pegasus.Controls.AuthenticationPromp t.CheckApproval() RenderTree(IEnumerable<T >,TreeLayout) 203 21 2 2 11 1 0 Pegasus.Controls.TreeViewBase<T>.Re nderTree(IEnumerable<T>,TreeLayout) CreateItemNode(T,IList,Tr eeLayout) 212 24 3 3 11 1 0 Pegasus.Controls.TreeViewBase<T>.Cre ateItemNode(T,IList,TreeLayout) EnsureNodeIsVisible(T) 99 6 2 1 11 1 0 Pegasus.Controls.TreeViewBase<T>.Ens ureNodeIsVisible(T) TryFindItemNode(ItemColl ection,String,Boolean) 91 10 5 3 8 1 0 Pegasus.Controls.TreeViewBase<T>.Try FindItemNode(ItemCollection,String,Bo olean) ApplyAutoCollapse() 204 23 3 0 13 1 0 Pegasus.Controls.TreeViewBase<T>.Ap plyAutoCollapse() .cctor() 257 1 0 0 1 1 0 Pegasus.Controls.TreeViewBase<T>..cc tor() OnItemCollectionChanged( Object,NotifyCollectionCha ngedEventArgs) 159 13 4 2 10 1 0 Pegasus.Controls.ItemMonitor<T>.OnIt emCollectionChanged(Object,NotifyCol lectionChangedEventArgs) HandleRemovedChildItems( ICollection<T>,NotifyCollec tionChangedEventArgs) 142 12 2 2 9 1 0 Pegasus.Controls.ItemMonitor<T>.Hand leRemovedChildItems(ICollection<T>,N otifyCollectionChangedEventArgs) OnRender(DrawingContext) 499 27 6 1 12 1 0 Pegasus.Controls.Ruler.OnRender(Draw ingContext) 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.0 554 1. 72 05 1.1 136 3.7 26 9 0 0 Variance: 12 546 64. 89 2. 96 1.2 4 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
  • 48. // 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
  • 49. 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 WHERE IsPropertyGetter AND IsStatic AND ChangesTypeState // Generated property getter Resources.get_ResourceManager() // provokes a read-only property lazy-initialized AND !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
  • 50. // This naming convention provokes debate. // Don't hesitate to customize the regex of // NameLike to your preference. fields Size of instance Full Name _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._BaseCurrencyId
  • 51. _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 ReportingService2005SoapChan nel N/A Pegasus.Main.RSServiceReference05.ReportingService2005SoapC hannel 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
  • 52. // 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,RoutedEventArg s) 1 Pegasus.Controls.AuthenticationPrompt.ok_Click(Object,Route dEventArgs) cancel_Click(Object,RoutedEven tArgs) 2 Pegasus.Controls.AuthenticationPrompt.cancel_Click(Object,R outedEventArgs)
  • 53. btnClose_Click(Object,RoutedEv entArgs) 2 Pegasus.Controls.AuthenticationPrompt.btnClose_Click(Object, RoutedEventArgs) gMain_MouseMove(Object,Mouse EventArgs) 2 Pegasus.Controls.AuthenticationPrompt.gMain_MouseMove(Obj ect,MouseEventArgs) _this_KeyUp(Object,KeyEventAr gs) 7 Pegasus.Controls.AuthenticationPrompt._this_KeyUp(Object,K eyEventArgs) ok_Click(Object,RoutedEventArg s) 2 Pegasus.Controls.PegasusMessageBox.ok_Click(Object,RoutedE ventArgs) yes_Click(Object,RoutedEventAr gs) 2 Pegasus.Controls.PegasusMessageBox.yes_Click(Object,Routed EventArgs) no_Click(Object,RoutedEventArg s) 2 Pegasus.Controls.PegasusMessageBox.no_Click(Object,RoutedE ventArgs) cancel_Click(Object,RoutedEven tArgs) 2 Pegasus.Controls.PegasusMessageBox.cancel_Click(Object,Rout edEventArgs) Sum: 22 Average: 2.2 Minimum: 0 Maximum: 7 Standard deviation: 1.72 05 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 # li n es of co Full Name
  • 54. de (L O C) get_GetFreightCategoryAccessControlLi st() 1 Pegasus.Common.Common.get_GetFreightCategoryAccess ControlList() set_GetFreightCategoryAccessControlLi st(ArrayList) 1 Pegasus.Common.Common.set_GetFreightCategoryAccess ControlList(ArrayList) PreserveLayoutOnRefreshPropertyChan ged(DependencyObject,DependencyPro pertyChangedEventArgs) 0 Pegasus.Controls.TreeViewBase<T>.PreserveLayoutOnRefr eshPropertyChanged(DependencyObject,DependencyProp ertyChangedEventArgs) NodeSortDescriptionsPropertyChanged( DependencyObject,DependencyPropert yChangedEventArgs) 9 Pegasus.Controls.TreeViewBase<T>.NodeSortDescriptionsP ropertyChanged(DependencyObject,DependencyPropertyC hangedEventArgs) SelectNodesOnRightClickPropertyChang ed(DependencyObject,DependencyProp ertyChangedEventArgs) 0 Pegasus.Controls.TreeViewBase<T>.SelectNodesOnRightCli ckPropertyChanged(DependencyObject,DependencyProper tyChangedEventArgs) xamcboFreightType_SelectedItemChang ed(Object,RoutedPropertyChangedEven tArgs<Object>) 1 Pegasus.General.UIElements.Central.PRCIDocDefMaster.xa mcboFreightType_SelectedItemChanged(Object,RoutedPr opertyChangedEventArgs<Object>) xamDataGridScanDoc_RecordActivating (Object,RecordActivatingEventArgs) 9 Pegasus.General.UIElements.Central.PRCIDocDefMaster.xa mDataGridScanDoc_RecordActivating(Object,RecordActiva tingEventArgs) RefreshExpAccountsAndChargeCodeList s() 6 Pegasus.Accounts.UIElements.Voucher.RefreshExpAccount sAndChargeCodeLists() xamComboCurrency_SelectedItemChan ged(Object,RoutedPropertyChangedEve ntArgs<Object>) 8 Pegasus.Accounts.UIElements.Voucher.xamComboCurrenc y_SelectedItemChanged(Object,RoutedPropertyChangedEv entArgs<Object>) cboFreightCategory_SelectionChanged( Object,SelectionChangedEventArgs) 1 Pegasus.Accounts.UIElements.Voucher.cboFreightCategory _SelectionChanged(Object,SelectionChangedEventArgs) Sum: 36 Average: 3. 6 Minimum: 0 Maximum: 9 Standard deviation: 3. 69 32 Variance: 13 .6 4 WARNING: The following CQL constraint is not satisfied. 10 types on 1155 tested match the condition. --> Group {Naming Conventions Name too long}
  • 55. // <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 UpdateReportExecutionSnapshotR equest 4 Pegasus.Main.RSServiceReference05.UpdateReportExecutionS napshotRequest UpdateReportExecutionSnapshotR esponse 3 Pegasus.Main.RSServiceReference05.UpdateReportExecutionS napshotResponse CreateReportHistorySnapshotResp onse 5 Pegasus.Main.RSServiceReference05.CreateReportHistorySnap shotResponse DeleteReportHistorySnapshotResp onse 3 Pegasus.Main.RSServiceReference05.DeleteReportHistorySnap shotResponse CreateDataDrivenSubscriptionReq uest 10 Pegasus.Main.RSServiceReference05.CreateDataDrivenSubscri ptionRequest CreateDataDrivenSubscriptionResp onse 4 Pegasus.Main.RSServiceReference05.CreateDataDrivenSubscri ptionResponse SetDataDrivenSubscriptionProperti esRequest 10 Pegasus.Main.RSServiceReference05.SetDataDrivenSubscriptio nPropertiesRequest SetDataDrivenSubscriptionProperti esResponse 3 Pegasus.Main.RSServiceReference05.SetDataDrivenSubscriptio nPropertiesResponse GetDataDrivenSubscriptionPropert iesRequest 3 Pegasus.Main.RSServiceReference05.GetDataDrivenSubscripti onPropertiesRequest GetDataDrivenSubscriptionPropert iesResponse 12 Pegasus.Main.RSServiceReference05.GetDataDrivenSubscripti onPropertiesResponse Sum: 57 Average: 5.7 Minimum: 3 Maximum: 12 Standard deviation: 3.34
  • 56. 81 Variance: 11.2 1 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 instan ce Full Name btnMastersMenuKeyTransportComp anies 4 Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyTranspo rtCompanies btnMastersMenuKeyInquiryEvaluatio ns 4 Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyInquiryE valuations btnMastersMenuKeyWarehouseType ofGoods 4 Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyWareho useTypeofGoods btnMastersMenuKeyDocumentsDefi nitions 4 Pegasus.Main.RibbonMenuTest.btnMastersMenuKeyDocume ntsDefinitions gigMastersMenuKeyMasterShippingL ines 4 Pegasus.Main.RibbonMenuTest.gigMastersMenuKeyMasterS hippingLines giMastersMenuKeyMasterLeasingCo mpany 4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterLe asingCompany giMastersMenuKeyMasterContainerS tatus 4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterCo ntainerStatus giMastersMenuKeyMasterContainerC lassification 4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterCo ntainerClassification giMastersMenuKeyMasterStorageCal culation 4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterSto rageCalculation giMastersMenuKeyMasterShippingLi nes 4 Pegasus.Main.RibbonMenuTest.giMastersMenuKeyMasterShi ppingLines Sum: 40 Average: 4 Minimum: 4 Maximum: 4 Standard deviation: 0