Top Banner
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 Development Environment: [Release-7, Web Version] Microsoft Visual Studio 2010, .Net 4.0, Silverlight 4.0, Infragistic GUI Controls, SQL Server 2008 Application Metrics Number of IL instructions: 737591 Number of lines of code: 102123 Number of lines of comment: 45003 Percentage comment: 30 Number of assemblies: 3 Number of classes: 1824 Number of types: 1846 Number of abstract classes: 3 Number of interfaces: 8 Number of value types: 2 Number of exception classes: 2 Number of attribute classes: 1 Number of delegate classes: 0 Number of enumerations classes: 12 Number of generic type definitions: 3 Number of generic method definitions: 2 Percentage of public types: 88.68% Percentage of public methods: 86.72% Percentage of classes with at least one public field: 5.2% Stat # Occurren ces Avg StdDev Max Properties on Interfaces 8 Interfac es 0 0 0 properties on PCMS_SL.SRBusinessManager.IBusinessManager
70

To study pcms pegasus erp cargo management system-release-7 from architecture perspective.

May 11, 2015

Download

Technology

shahzad saeed

To study pcms pegasus erp cargo management system-release-7 from architecture perspective.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Analytical Architecture ReportApplication:Pegasus ERP Cargo Management System is one of the software solutions for cargo industry, which is totally integrated with Accounts. Designed by experts from cargo and software industry it provides one stop solution for data entry and decision support. The implementation of detailed function level checks ensures reliability & date integrity of system. The embedded security through appropriate Access Controls allows complete control of user access and data manipulation.

www.comsoftusa.us

www.comsoftuae.com

Development Environment: [Release-7, Web Version]Microsoft Visual Studio 2010, .Net 4.0, Silverlight 4.0, Infragistic GUI Controls, SQL Server 2008

Application MetricsNumber of IL instructions: 737591Number of lines of code: 102123Number of lines of comment: 45003Percentage comment: 30Number of assemblies: 3Number of classes: 1824Number of types: 1846Number of abstract classes: 3Number of interfaces: 8Number of value types: 2Number of exception classes: 2Number of attribute classes: 1Number of delegate classes: 0Number of enumerations classes: 12Number of generic type definitions: 3Number of generic method definitions: 2Percentage of public types: 88.68% Percentage of public methods: 86.72% Percentage of classes with at least one public field: 5.2%

Stat# Occurrences

AvgStdDev Max

Properties on Interfaces

8 Interface

s 0 0

0 properties on PCMS_SL.SRBusinessManager.IBusinessManager

Methods on Interfaces

8 Interface

s

197.5 361.47

1042 methods on PCMS_SL.SRBusinessManager.IBusinessManager

Arguments on Methods on Interfaces

1580 Methods 1.53 1.31

11 arguments on PCMS_SL.SRBusinessManager.IBusinessManager.BeginDTOPostUnpostGetByFilters(Int32,Int32,Int32,DateTi

me,DateTime,Boolean,Int16,Boolean,Boolean,AsyncCallback,Object)

Page 2: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Public Properties on Classes

1824 Classes 6.52 10.4

85 public properties on Pegasus.BusinessObjects.ShippingLine.SHBLMaster

Public Methods on Classes

1824 Classes

17.96 59.75

2099 public methods on PCMS_SL.SRBusinessManager.BusinessManagerClient

Arguments on Public Methods on Classes

32767 Methods

0.8 2.05

57 arguments on Pegasus.BusinessObjects.MultiFreight.MultiMBL..ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,MultiJobCard,IList,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTim

e)

IL Instructions in non-abstract Methods

38025 Methods 19.4 48.42

1868 IL instructions in Pegasus.BusinessObjects.PRCI.PRCICosting.getAllCosting(ISession,Int32,Int32,FreightType,ModuleMaster,Int

32,Int32)

Cyclomatic complexity on non abstract Methods

38025 Methods 1.93 4.64

CC = 156 for PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTr

ip.ConvertFromDTOTraTrip(ObservableCollection<DTOTraTrip>,ISession)

Assemblies Metrics

Assembly

# Ty

pes

# Abstract

Types

# IL instruction

# lines of code

# lines

of com

ment

% com

ment

Afferent

Coupling

Efferent

Coupling

Relational

Cohesion

Instability

Abstractness

Distance

Pegasus.Controls v1.0.0.0

9 1 2524 428 162 27 93 22 0.89 0.19 0.11 0.7

PCMS-SL v1.0.0.0

1143

2 421862

55756

6515 10 0 199 3.45 1 0 0

PCMS-SL.Web

694 7 313205

45939

38326

45 0 148 7.74 1 0.01 0.01

Page 3: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

v1.0.0.0

Visual NDepend View

Page 4: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Assemblies Abstractness vs. Instability

Page 5: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.
Page 6: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Assemblies Dependencies

Assembly Depends on...Is referenced by...

Pegasus.Controls v1.0.0.0

mscorlib v4.0.0.0 ; System.Windows.Controls v2.0.5.0 ; System.Windows.Controls.Data.Input v2.0.5.0 ; System v4.0.0.0 ;

PCMS-SL v1.0.0.0 ;

PCMS-SL v1.0.0.0

System.Windows.Controls.Navigation v2.0.5.0 ; Pegasus.Controls v1.0.0.0 ; mscorlib v4.0.0.0 ; System.Windows.Controls v2.0.5.0 ; System v4.0.0.0 ; System.ServiceModel v4.0.0.0 ; System.Windows.Controls.Data.Input v2.0.5.0 ; Infragistics.Silverlight.XamWebComboEditor.v10.1 v10.1.20101.2081 ; Infragistics.Silverlight.XamWebGrid.v10.1 v10.1.20101.2081 ; Infragistics.Silverlight.XamWebRibbon.v10.1 v10.1.20101.2081 ; Infragistics.Silverlight.XamWebDialogWindow.v10.1 v10.1.20101.2081 ; Infragistics.Silverlight.XamWebTree.v10.1 v10.1.20101.2081 ; Infragistics.Silverlight.XamWebEditors.v10.1 v10.1.20101.2081 ; System.Net v4.0.0.0 ; System.Core v4.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ; Infragistics.Silverlight.v10.1 v10.1.20101.2081 ; System.Runtime.Serialization v4.0.0.0 ;

-

PCMS-SL.Web v1.0.0.0

mscorlib v4.0.0.0 ; System v4.0.0.0 ; System.Runtime.Serialization v4.0.0.0 ; System.ServiceModel v4.0.0.0 ; NHibernate v2.1.0.4000 ; System.Data v4.0.0.0 ; System.ServiceModel.Web v4.0.0.0 ; System.Core v4.0.0.0 ; System.Xml v4.0.0.0 ; Microsoft.VisualBasic v10.0.0.0 ; System.Web v4.0.0.0 ;

-

Assemblies Dependencies DiagramBlue : Assemblies of your application.Yellow : Tiers assemblies referenced by assemblies of your application.

Page 7: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.
Page 8: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Assemblies build orderPegasus.ControlsPCMS-SLPCMS-SL.Web

NDepend information and warnings11/05/2010 09:38:55 Begin full analysis with NDepend v3.2.0No Baseline for Comparison loaded.Assemblies loaded from {C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319} mscorlib.dll v4.0.0.0 System.dll v4.0.0.0 System.ServiceModel.dll v4.0.0.0 System.Net.dll v4.0.0.0 System.Core.dll v4.0.0.0 Microsoft.VisualBasic.dll v10.0.0.0 System.Runtime.Serialization.dll v4.0.0.0 System.Data.dll v4.0.0.0 System.ServiceModel.Web.dll v4.0.0.0 System.Xml.dll v4.0.0.0 System.Web.dll v4.0.0.0Assemblies loaded from {D:\ShareMe\PCMS-SLApp-New\PCMS-SL\Bin\Debug} PCMS-SL.dll v1.0.0.0 Pegasus.Controls.dll v1.0.0.0 System.Windows.Controls.Navigation.dll v2.0.5.0 System.Windows.Controls.dll v2.0.5.0 System.Windows.Controls.Data.Input.dll v2.0.5.0 Infragistics.Silverlight.XamWebComboEditor.v10.1.dll v10.1.20101.2081 Infragistics.Silverlight.XamWebGrid.v10.1.dll v10.1.20101.2081 Infragistics.Silverlight.XamWebRibbon.v10.1.dll v10.1.20101.2081 Infragistics.Silverlight.XamWebDialogWindow.v10.1.dll v10.1.20101.2081 Infragistics.Silverlight.XamWebTree.v10.1.dll v10.1.20101.2081 Infragistics.Silverlight.XamWebEditors.v10.1.dll v10.1.20101.2081 Infragistics.Silverlight.v10.1.dll v10.1.20101.2081Assemblies loaded from {D:\ShareMe\PCMS-SLApp-New\PCMS-SL.Web\bin} PCMS-SL.Web.dll v1.0.0.0 NHibernate.dll v2.1.0.4000800 source files parsed ; all source files found ; all source files in-sync with PDB0 CQL constraint has been extracted from code.No dependency cycle detected in assemblies referencement graph.11/05/2010 09:39:06 Analyse dependencies of your application.11/05/2010 09:39:07 Building the report (standard).WARNING: Cant' load the assembly {System.Windows}: Can't find the .NET assembly {System.Windows} 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 {System.Windows.Browser}: Can't find the .NET assembly {System.Windows.Browser} in specified folders. Has it been compiled properly? Is the NDepend project missing the containing folder of the .NET assembly?WARNING: Assembly {System.Net} doesn't contain any type.WARNING: No application or third party assembly found in directory {C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\WPF}WARNING: Assembly {System.Windows} is referenced by {PCMS-SL} but is not found.WARNING: Assembly {System.Windows.Browser} is referenced by {PCMS-SL} but is not found.WARNING: Assembly {System.Windows} is referenced by {Pegasus.Controls} but is not found.

Page 9: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

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 40132 tested match the condition. --> Group {Code Quality} // <Name>Quick summary of methods to refactor</Name>WARN IF Count > 0 IN SELECT    TOP 10 METHODS /*OUT OF "YourGeneratedCode" */ WHERE 

                                    // Metrics' definitions  ( NbLinesOfCode > 30 OR           // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode    NbILInstructions > 200 OR       // http://www.ndepend.com/Metrics.aspx#NbILInstructions    CyclomaticComplexity > 20 OR    // http://www.ndepend.com/Metrics.aspx#CC    ILCyclomaticComplexity > 50 OR  // http://www.ndepend.com/Metrics.aspx#ILCC    ILNestingDepth > 4 OR           // http://www.ndepend.com/Metrics.aspx#ILNestingDepth    NbParameters > 5 OR             // http://www.ndepend.com/Metrics.aspx#NbParameters    NbVariables > 8 OR              // http://www.ndepend.com/Metrics.aspx#NbVariables    NbOverloads > 6 )               // http://www.ndepend.com/Metrics.aspx#NbOverloads     AND 

  // Here are some ways to avoid taking account of generated methods.  !( NameIs "InitializeComponent()" OR     // NDepend.CQL.GeneratedAttribute is defined in      // the redistributable assembly $NDependInstallDir$\Lib\NDepend.CQL.dll

Page 10: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

     // You can define your own attribute to mark "Generated".     HasAttribute "OPTIONAL:NDepend.CQL.GeneratedAttribute") 

methods

# lines of code (LOC)

# IL instructions

Cyclomatic Complexity (CC)

IL Cyclomatic Complexity (ILCC)

IL Nesting Depth

# Parameters

# Variables

# Overloads

Full Name

SetButtonMode(Buttons+ButtonsMode)

116

647 12 12 1 1 1 1Pegasus.Controls.Buttons.SetButtonMode(Buttons+ButtonsMode)

Enabled(Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean)

8 42 1 1 0 8 0 1

Pegasus.Controls.Buttons.Enabled(Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean)

EnableDisable(Object) 59

299 9 10 7 1 3 1 Pegasus.Controls.Buttons.EnableDisable(Object)

Show(Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean)

8 74 9 17 1 8 0 1

Pegasus.Controls.Buttons.Show(Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean)

SetButtonAccess(IList) 19

136 7 13 5 1 5 1 Pegasus.Controls.Buttons.SetButtonAccess(IList)

UserControl_KeyDown(Object,KeyEventArgs)

21 226 22 29 2 2 1 1

Pegasus.Controls.Buttons.UserControl_KeyDown(Object,KeyEventArgs)

ButtonTool_Click(Object,RibbonToolEventArgs)

31 219 19 28 9 2 4 1

PCMS_SL.MainPCMS.ButtonTool_Click(Object,RibbonToolEventArgs)

SetPageMenuSettingsForButtonTool(ButtonTool)

362

1 477 68 71 3 1 3 1

PCMS_SL.MainPCMS.SetPageMenuSettingsForButtonTool(ButtonTool)

SetPageMenuSettingsForGalleryTool(GalleryTool)

407

1 760 57 58 2 1 3 1

PCMS_SL.MainPCMS.SetPageMenuSettingsForGalleryTool(GalleryTool)

openTab(String,String,String)

56

293 13 22 3 3 12 1 PCMS_SL.MainPCMS.openTab(String,String,String)

Sum: 1 0

5 173

217 261 33 28 32 10

Page 11: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

87

Average:

10

8.7

517.3

21.7

26.1

3.3

2.8 3.2 1

Minimum: 8 42 1 1 0 1 0 1

Maximum:407

1 760 68 71 9 8 12 1

Standard deviation:

14

1.6

576.35

21.293

20.988

2.7221

2.6758

3.340

70

Variance:

20 050

332 176

453.41

440.49

7.41

7.16

11.16 0

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 tested match the condition. --> Group {Code Quality} // <Name>Methods too big (NbLinesOfCode)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE    NbLinesOfCode > 30    ORDER BY NbLinesOfCode DESC

// METHODS WHERE NbLinesOfCode > 30 are extremely complex // and should be split in smaller methods // (except if they are automatically generated by a tool).// See the definition of the NbLinesOfCode metric here // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode

methods

# lines of code (LOC)

Full Name

SetPageMenuSettingsForGalleryTool(GalleryTool)

40

PCMS_SL.MainPCMS.SetPageMenuSettingsForGalleryTool(GalleryTool)

Page 12: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

7

SetPageMenuSettingsForButtonTool(ButtonTool)

362

PCMS_SL.MainPCMS.SetPageMenuSettingsForButtonTool(ButtonTool)

getAllCosting(ISession,Int32,Int32,FreightType,ModuleMaster,Int32,Int32)

334

Pegasus.BusinessObjects.PRCI.PRCICosting.getAllCosting(ISession,Int32,Int32,FreightType,ModuleMaster,Int32,Int32)

DTOVoucherSaveUpdate(ISession,DTOVoucher,IList<DTOVoucherDetails>,IList<DTOVoucherDetails>,IList<DTOVoucherDetails>)

180

PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOAccounts.DTOVoucher.DTOVoucherSaveUpdate(ISession,DTOVoucher,IList<DTOVoucherDetails>,IList<DTOVoucherDetails>,IList<DTOVoucherDetails>)

xamDGCustomerWiseRateMaster_CellEnteredEditMode(Object,EditingCellEventArgs)

159

PCMS_SL.ViewManager.Masters.Central.CustomerWiseRateMaster.xamDGCustomerWiseRateMaster_CellEnteredEditMode(Object,EditingCellEventArgs)

xamDGRateMaster_CellEnteredEditMode(Object,EditingCellEventArgs)

159

PCMS_SL.ViewManager.Masters.Central.RateMaster.xamDGRateMaster_CellEnteredEditMode(Object,EditingCellEventArgs)

CheckGrid()147

PCMS_SL.ViewManager.TMS.TMSJobCard.CheckGrid()

GetWHSARacksAndLocations(WHMaster)

146

Pegasus.BusinessObjects.Warehouse.WHSARack.GetWHSARacksAndLocations(WHMaster)

ImplementMainMenuSecurity()146

PCMS_SL.MainPCMS.ImplementMainMenuSecurity()

EnableDisableControls(Boolean)143

PCMS_SL.ViewManager.TMS.TMSJobCard.EnableDisableControls(Boolean)

Sum:

2 183

Average:

21

8.3

Minimum:143

Maximum:407

Standard deviation: 99.67

Page 13: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

6

Variance:

9 935

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 tested match the condition. --> Group {Code Quality} // <Name>Methods too big (NbILInstructions)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE   NbILInstructions > 200   ORDER BY NbILInstructions DESC

// METHODS WHERE NbILInstructions > 200 are extremely complex // and should be split in smaller methods // (except if they are automatically generated by a tool).// See the definition of the NbILInstructions metric here // http://www.ndepend.com/Metrics.aspx#NbILInstructions

methods

# IL instructions

Full Name

getAllCosting(ISession,Int32,Int32,FreightType,ModuleMaster,Int32,Int32)

1 86

8

Pegasus.BusinessObjects.PRCI.PRCICosting.getAllCosting(ISession,Int32,Int32,FreightType,ModuleMaster,Int32,Int32)

SetPageMenuSettingsForGalleryTool(GalleryTool)

1 76

0

PCMS_SL.MainPCMS.SetPageMenuSettingsForGalleryTool(GalleryTool)

SetPageMenuSettingsForButtonTool(ButtonTool)

1 47

7

PCMS_SL.MainPCMS.SetPageMenuSettingsForButtonTool(ButtonTool)

CheckGrid()1

315

PCMS_SL.ViewManager.TMS.TMSJobCard.CheckGrid()

DTOVoucherSaveUpdate(ISession,DTOVoucher,IList<DTOVoucherDetails>,IList<DTOVoucherDetails>,IList<DTOVoucherDetails>)

1 18

7

PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOAccounts.DTOVoucher.DTOVoucherSaveUpdate(ISession,DTOVoucher,IList<DTOVoucherDetails>,IList<DTOVoucherDetails>,IList<DTOVoucherDetails>)

xamDGRateMaster_CellEnteredEditMode(Object,EditingCellEventArgs)

976

PCMS_SL.ViewManager.Masters.Central.RateMaster.xamDGRateMaster_CellEnteredEditMode(Object,EditingCellEventArgs)

xamDGCustomerWiseRateMaster_CellEnteredEditMode(Object,EditingCellEventArgs)

976

PCMS_SL.ViewManager.Masters.Central.CustomerWiseRateMaster.xamDGCustomerWiseRateMaster_CellEnteredEditMode(Object,EditingCellEventArgs)

EnableDisableControls(Boolean) 92 PCMS_SL.ViewManager.TMS.TMSJobCard.EnableDisabl

Page 14: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

1 eControls(Boolean)

GetWHSARacksAndLocations(WHMaster)

904

Pegasus.BusinessObjects.Warehouse.WHSARack.GetWHSARacksAndLocations(WHMaster)

ConvertFromDTOTraTrip(ObservableCollection<DTOTraTrip>,ISession)

891

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTrip.ConvertFromDTOTraTrip(ObservableCollection<DTOTraTrip>,ISession)

Sum:12 27

5

Average:1

227

Minimum: 891

Maximum:1

868

Standard deviation:34

6.94

Variance:

120

367

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 tested match the condition. --> Group {Code Quality} // <Name>Methods too complex (CyclomaticComplexity)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE   CyclomaticComplexity > 20   ORDER BY CyclomaticComplexity DESC

// METHODS WHERE CyclomaticComplexity > 15 are hard to understand and maintain.// METHODS WHERE CyclomaticComplexity > 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 CyclomaticComplexity metric here // http://www.ndepend.com/Metrics.aspx#CC

methods

Cyclomatic Complexity (CC)

Full Name

Page 15: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

ConvertFromDTOTraTrip(ObservableCollection<DTOTraTrip>,ISession)

110PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTrip.ConvertFromDTOTraTrip(ObservableCollection<DTOTraTrip>,ISession)

ConvertFromDTOTraTrip(IList<DTOTraTrip>,ISession)

110 PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTrip.ConvertFromDTOTraTrip(IList<DTOTraTrip>,ISession)

ConvertFromDTOTraTrip(DTOTraTrip,ISession)

109 PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTrip.ConvertFromDTOTraTrip(DTOTraTrip,ISession)

ConvertFromDTOCustomerWiseRateMaster(DTOCustomerWiseRateMaster,ISession)

99PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOMain.DTOCustomerWiseRateMaster.ConvertFromDTOCustomerWiseRateMaster(DTOCustomerWiseRateMaster,ISession)

ConvertFromDTORateMaster(DTORateMaster,ISession) 94

PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOMain.DTORateMaster.ConvertFromDTORateMaster(DTORateMaster,ISession)

ConvertFromDTOTraTripShifting(DTOTraTripShifting,ISession)

89PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTripShifting.ConvertFromDTOTraTripShifting(DTOTraTripShifting,ISession)

EnableDisableControls(Boolean)

87 PCMS_SL.ViewManager.TMS.TMSJobCard.EnableDisableControls(Boolean)

SetDefaultValues(ISession) 86 Pegasus.BusinessObjects.SLParentClass<T>.SetDefaultValues(ISession)

CheckGrid() 85 PCMS_SL.ViewManager.Masters.Central.RateMaster.CheckGrid()

CheckGrid() 85 PCMS_SL.ViewManager.Masters.Central.CustomerWiseRateMaster.CheckGrid()

Sum: 954

Average: 95.4

Minimum: 85

Maximum: 110

Standard deviation: 10.21

Variance: 104.24

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 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 

Page 16: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

// in smaller methods // (except if they are automatically generated by a tool).// See the definition of the ILCyclomaticComplexity metric here // http://www.ndepend.com/Metrics.aspx#ILCC

methods

IL Cyclomatic Complexity (ILCC)

Full Name

ConvertFromDTOTraTrip(IList<DTOTraTrip>,ISession)

156 PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTrip.ConvertFromDTOTraTrip(IList<DTOTraTrip>,ISession)

ConvertFromDTOTraTrip(ObservableCollection<DTOTraTrip>,ISession)

156PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTrip.ConvertFromDTOTraTrip(ObservableCollection<DTOTraTrip>,ISession)

ConvertFromDTOTraTrip(DTOTraTrip,ISession)

152 PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTrip.ConvertFromDTOTraTrip(DTOTraTrip,ISession)

ConvertFromDTOCustomerWiseRateMaster(DTOCustomerWiseRateMaster,ISession)

138PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOMain.DTOCustomerWiseRateMaster.ConvertFromDTOCustomerWiseRateMaster(DTOCustomerWiseRateMaster,ISession)

ConvertFromDTORateMaster(DTORateMaster,ISession) 131

PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOMain.DTORateMaster.ConvertFromDTORateMaster(DTORateMaster,ISession)

EnableDisableControls(Boolean)

125 PCMS_SL.ViewManager.TMS.TMSJobCard.EnableDisableControls(Boolean)

ConvertFromDTOTraTripShifting(DTOTraTripShifting,ISession)

122PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTripShifting.ConvertFromDTOTraTripShifting(DTOTraTripShifting,ISession)

ConvertFromDTOTraJobcardMaster(DTOTraJobcardMaster,ISession)

117PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraJobcardMaster.ConvertFromDTOTraJobcardMaster(DTOTraJobcardMaster,ISession)

ConvertFromDTOTMSInquiry(DTOTMSInquiry,ISession) 117

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTMSInquiry.ConvertFromDTOTMSInquiry(DTOTMSInquiry,ISession)

ConvertFromDTOPRCIScannedDocDocuments(DTOPRCIScannedDocDocuments,ISession)

117PCMS_SL.Web.DTOBusinessObjects.DTOPRCI.DTOPRCIScannedDocDocuments.ConvertFromDTOPRCIScannedDocDocuments(DTOPRCIScannedDocDocuments,ISession)

Sum: 1 331

Average: 133.1

Minimum: 117

Page 17: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Maximum: 156

Standard deviation: 15.495

Variance: 240.09

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 tested match the condition. --> Group {Code Quality} // <Name>Methods too complex (ILNestingDepth)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE   ILNestingDepth > 4   ORDER BY ILNestingDepth DESC

// METHODS WHERE ILNestingDepth > 4 are hard // to understand and maintain. // METHODS WHERE ILNestingDepth > 8 is higher // than 8 are extremely complex // and should be split in smaller methods // (except if they are automatically generated by a tool). // See the definition of the NbILInstructions metric here // http://www.NDepend.com/Metrics.aspx#ILNestingDepth

methods

IL Nesting Depth

Full Name

SetDefaultValues(ISession) 78 Pegasus.BusinessObjects.SLParentClass<T>.SetDefaultValues(ISession)

setFreightSearchCriteria(ICriteria,ISession)

16 Pegasus.BusinessObjects.SLParentClass<T>.setFreightSearchCriteria(ICriteria,ISession)

setFreightSearchCriteria(ICriteria)

16 Pegasus.BusinessObjects.ParentClass<T>.setFreightSearchCriteria(ICriteria)

CheckDataThere(ISession) 12 Pegasus.BusinessObjects.General.Accounts.AccountSettings.CheckDataThere(ISession)

EnableDisableControls(Boolean)

11 PCMS_SL.ViewManager.Masters.Others.Commodities.EnableDisableControls(Boolean)

ValidatedData() 10 PCMS_SL.ViewManager.Accounts.ChargeCode.ValidatedData()

getSearchList(Type,Boolean,ISession)

9 Pegasus.BusinessObjects.SLParentClass<T>.getSearchList(Type,Boolean,ISession)

getSearchListForAllCargo(Type,Boolean,ISession)

9 Pegasus.BusinessObjects.SLParentClass<T>.getSearchListForAllCargo(Type,Boolean,ISession)

getSearchList(Type,Boolean) 9 Pegasus.BusinessObjects.ParentClass<T>.getSearchList(Type,Boolean)

getSearchListForAllCargo(Type,Boolean)

9 Pegasus.BusinessObjects.ParentClass<T>.getSearchListForAllCargo(Type,Boolean)

Page 18: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Sum: 179

Average: 17.9

Minimum: 9

Maximum: 78

Standard deviation: 20.201

Variance: 408.09

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 tested match the condition. --> Group {Code Quality} // <Name>Methods poorly commented (PercentageComment)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE   PercentageComment < 20 AND   NbLinesOfCode > 10    ORDER BY PercentageComment ASC

// METHODS WHERE %Comment < 20 and that have // at least 10 lines of code should be more commented.// See the definition of the PercentageComment metric here // http://www.ndepend.com/Metrics.aspx#PercentageComment

methods

Percentage Comment

# lines of code (LOC)

Full Name

ConvertFromTraImprovementOppertunity(IList<TraImprovementOppertunity>)

014

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraImprovementOppertunity.ConvertFromTraImprovementOppertunity(IList<TraImprovementOppertunity>)

ConvertFromDTOTraImprovementOppertunity(DTOTraImprovementOppertunity,ISession)

0 45

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraImprovementOppertunity.ConvertFromDTOTraImprovementOppertunity(DTOTraImprovementOppertunity,ISession)

ConvertFromDTOTraImprovementOppertunity(ObservableCollection<DTOTraImprovementOppertunity>,ISession)

0 15

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraImprovementOppertunity.ConvertFromDTOTraImprovementOppertunity(ObservableCollection<DTOTraImprovementOppertunity>,ISession)

Page 19: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

ConvertFromDTOTraQuotationExpenseDetail(IList<DTOTraQuotationExpenseDetail>,ISession)

0 11

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraQuotationExpenseDetail.ConvertFromDTOTraQuotationExpenseDetail(IList<DTOTraQuotationExpenseDetail>,ISession)

ConvertFromTraImprovementOppertunity(TraImprovementOppertunity)

043

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraImprovementOppertunity.ConvertFromTraImprovementOppertunity(TraImprovementOppertunity)

ConvertFromTraImprovementOppertunity(ObservableCollection<TraImprovementOppertunity>)

0 14

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraImprovementOppertunity.ConvertFromTraImprovementOppertunity(ObservableCollection<TraImprovementOppertunity>)

ConvertFromDTOTraImprovementOppertunity(IList<DTOTraImprovementOppertunity>,ISession)

0 15

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraImprovementOppertunity.ConvertFromDTOTraImprovementOppertunity(IList<DTOTraImprovementOppertunity>,ISession)

ConvertFromTraImprovementOppertunity(IList<TraImprovementOppertunity>)

0 19

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraImprovementOppertunitySearchList.ConvertFromTraImprovementOppertunity(IList<TraImprovementOppertunity>)

ConvertFromTraTripContainer(TraTripContainer) 0

26

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTripContainer.ConvertFromTraTripContainer(TraTripContainer)

ConvertFromTraTripContainer(ObservableCollection<TraTripContainer>)

032

PCMS_SL.Web.DTOBusinessObjects.DTOTMS.DTOTraTripContainer.ConvertFromTraTripContainer(ObservableCollection<TraTripContainer>)

Sum: 0234

Average: 02

3.4

Minimum: 0 11

Maximum: 0 45

Standard deviation: 0

11.926

Variance: 0

14

2.24

Page 20: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 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

# Parameters

Full Name

.ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,SeaJobCard,SeaMBL,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

57

Pegasus.BusinessObjects.SeaFreight.SeaHBL..ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,SeaJobCard,SeaMBL,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

.ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,CnFJobCard,CnFMBL,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

57

Pegasus.BusinessObjects.CnF.CnFHBL..ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,CnFJobCard,CnFMBL,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

Page 21: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

.ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,CnFJobCard,IList,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

57

Pegasus.BusinessObjects.CnF.CnFMBL..ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,CnFJobCard,IList,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

.ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,SeaJobCard,IList,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

57

Pegasus.BusinessObjects.SeaFreight.SeaMBL..ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,SeaJobCard,IList,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

.ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,MultiJobCard,IList,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

57

Pegasus.BusinessObjects.MultiFreight.MultiMBL..ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,MultiJobCard,IList,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

.ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,MultiJobCard,MultiMBL,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

57

Pegasus.BusinessObjects.MultiFreight.MultiHBL..ctor(String,String,String,Boolean,String,String,String,String,Boolean,CargoType,RateType,Int32,Decimal,Decimal,Decimal,DateTime,DateTime,String,String,String,FreightCategory,Client,Client,Client,CurrencyRate,Decimal,String,String,Locations,String,VesselMaster,String,String,String,Decimal,Units,Boolean,String,Decimal,String,String,String,FreightType,ShippingLines,ModuleMaster,Employees,String,MultiJobCard,MultiMBL,IList,IList,Company,Boolean,Employees,DateTime,Employees,DateTime)

.ctor(String,Int16,DateTime,String,String,Bo 5 Pegasus.BusinessObjects.SeaFreight.SeaJob

Page 22: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

olean,Decimal,Decimal,Decimal,Int32,DateTime,Int16,String,String,String,String,String,String,String,Boolean,Boolean,Boolean,Boolean,String,String,Company,FreightCategory,ModuleMaster,FreightType,Terms,PaymentTerms,Client,Client,Client,Client,Units,Employees,Employees,Employees,CargoType,IList,String,SeaJobCard,SeaQuotation,IList,IList,IList,IList,IList,IList,IList,IList,DateTime,Employees,DateTime)

5

Card..ctor(String,Int16,DateTime,String,String,Boolean,Decimal,Decimal,Decimal,Int32,DateTime,Int16,String,String,String,String,String,String,String,Boolean,Boolean,Boolean,Boolean,String,String,Company,FreightCategory,ModuleMaster,FreightType,Terms,PaymentTerms,Client,Client,Client,Client,Units,Employees,Employees,Employees,CargoType,IList,String,SeaJobCard,SeaQuotation,IList,IList,IList,IList,IList,IList,IList,IList,DateTime,Employees,DateTime)

.ctor(String,Int16,DateTime,String,String,Boolean,Decimal,Decimal,Decimal,Int32,DateTime,Int16,String,String,String,String,String,String,String,Boolean,Boolean,Boolean,Boolean,String,String,Company,FreightCategory,ModuleMaster,FreightType,Terms,PaymentTerms,Client,Client,Client,Client,Units,Employees,Employees,Employees,CargoType,IList,String,CnFJobCard,CnFQuotation,IList,IList,IList,IList,IList,IList,IList,DateTime,Employees,DateTime)

54

Pegasus.BusinessObjects.CnF.CnFJobCard..ctor(String,Int16,DateTime,String,String,Boolean,Decimal,Decimal,Decimal,Int32,DateTime,Int16,String,String,String,String,String,String,String,Boolean,Boolean,Boolean,Boolean,String,String,Company,FreightCategory,ModuleMaster,FreightType,Terms,PaymentTerms,Client,Client,Client,Client,Units,Employees,Employees,Employees,CargoType,IList,String,CnFJobCard,CnFQuotation,IList,IList,IList,IList,IList,IList,IList,DateTime,Employees,DateTime)

.ctor(String,Int16,DateTime,String,String,Boolean,Decimal,Decimal,Decimal,Int32,DateTime,Int16,String,String,String,String,String,String,String,Boolean,Boolean,Boolean,Boolean,String,String,Company,FreightCategory,ModuleMaster,FreightType,Terms,PaymentTerms,Client,Client,Client,Client,Units,Employees,Employees,Employees,CargoType,IList,String,MultiJobCard,MultiQuotation,IList,IList,IList,IList,IList,IList,IList,DateTime,Employees,DateTime)

54

Pegasus.BusinessObjects.MultiFreight.MultiJobCard..ctor(String,Int16,DateTime,String,String,Boolean,Decimal,Decimal,Decimal,Int32,DateTime,Int16,String,String,String,String,String,String,String,Boolean,Boolean,Boolean,Boolean,String,String,Company,FreightCategory,ModuleMaster,FreightType,Terms,PaymentTerms,Client,Client,Client,Client,Units,Employees,Employees,Employees,CargoType,IList,String,MultiJobCard,MultiQuotation,IList,IList,IList,IList,IList,IList,IList,DateTime,Employees,DateTime)

.ctor(String,Int16,DateTime,String,String,Boolean,Decimal,Decimal,Decimal,Int32,DateTime,Int16,String,String,String,String,String,String,String,Boolean,Boolean,Boolean,Boolean,String,String,Company,FreightCategory,ModuleMaster,FreightType,Terms,PaymentTerms,Client,Client,Client,Client,Units,Employees,Employees,Employees,CargoType,IList,String,LandJobCard,LandQuotation,IList,IList,IList,IList,IList,IList,DateTime,Employees,DateTime)

53

Pegasus.BusinessObjects.LandFreight.LandJobCard..ctor(String,Int16,DateTime,String,String,Boolean,Decimal,Decimal,Decimal,Int32,DateTime,Int16,String,String,String,String,String,String,String,Boolean,Boolean,Boolean,Boolean,String,String,Company,FreightCategory,ModuleMaster,FreightType,Terms,PaymentTerms,Client,Client,Client,Client,Units,Employees,Employees,Employees,CargoType,IList,String,LandJobCard,LandQuotation,IList,IList,IList,IList,IList,IList,DateTime,Employees,DateTime)

Sum:558

Average: 55

Page 23: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

.8

Minimum: 53

Maximum: 57

Standard deviation:

1.5363

Variance:

2.3601

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 tested match the condition. --> Group {Code Quality} // <Name>Methods with too many local variables (NbVariables)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE   NbVariables > 15   ORDER BY NbVariables DESC

// METHODS WHERE NbVariables > 8 are hard to understand and maintain.// METHODS WHERE NbVariables > 15 are extremely complex // and should be split in smaller methods // (except if they are automatically generated by a tool).// See the definition of the Nbvariables metric here // http://www.ndepend.com/Metrics.aspx#Nbvariables

methods

# Variables

Full Name

GetWHSARacksAndLocations(WHMaster)

27 Pegasus.BusinessObjects.Warehouse.WHSARack.GetWHSARacksAndLocations(WHMaster)

getSearchList(Type,Boolean) 26 Pegasus.BusinessObjects.ParentClass<T>.getSearchList(Type,Boolean)

getSearchList(Type) 26 Pegasus.BusinessObjects.ParentClass<T>.getSearchList(Type)

getSearchList(Boolean,String) 26 Pegasus.BusinessObjects.General.ParentObjects.Freight.JobCard.getSearchList(Boolean,String)

getSearchListForAllCargo(Type,Boolean)

26 Pegasus.BusinessObjects.ParentClass<T>.getSearchListForAllCargo(Type,Boolean)

getSearchList(Type,ISession) 25 Pegasus.BusinessObjects.SLParentClass<T>.getSearchList(Type,ISession)

Page 24: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

getSearchListForAllCargo(Type,Boolean,ISession)

25 Pegasus.BusinessObjects.SLParentClass<T>.getSearchListForAllCargo(Type,Boolean,ISession)

getSearchList(Type,Boolean,ISession)

25 Pegasus.BusinessObjects.SLParentClass<T>.getSearchList(Type,Boolean,ISession)

xamDG_CellExitingEditMode(Object,ExitEditingCellEventArgs)

24 PCMS_SL.ViewManager.Accounts.Voucher.xamDG_CellExitingEditMode(Object,ExitEditingCellEventArgs)

getList(Object[,],String) 24 Pegasus.BusinessObjects.ParentClass<T>.getList(Object[,],String)

Sum: 254

Average: 25.4

Minimum: 24

Maximum: 27

Standard deviation: 0.91653

Variance: 0.84002

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 tested match the condition. --> Group {Code Quality} // <Name>Methods with too many overloads (NbOverloads)</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE   NbOverloads > 6   ORDER BY NbOverloads DESC

// METHODS WHERE NbOverloads > 6 might // be a problem to maintain and provoke higher coupling // than necessary. // This might also reveal a potential misused of the // C# and VB.NET language that since C#3 and VB9 support // object initialization. This feature helps reducing the number // of constructors of a class.// See the definition of the NbOverloads metric here // http://www.ndepend.com/Metrics.aspx#NbOverloads

methods

# Overloads

Full Name

Validate(ArrayList,ArrayList,String,Nullable<Int16>,ISession)

7 Pegasus.BusinessObjects.SLParentClass<T>.Validate(ArrayList,ArrayList,String,Nullable<Int16>,ISession)

Validate(ArrayList,String,Nullable<Int32>,ISession)

7 Pegasus.BusinessObjects.SLParentClass<T>.Validate(ArrayList,String,Nullable<Int32>,ISession)

Validate(ArrayList,ArrayList,String,Nullable<Int32>,ISession)

7 Pegasus.BusinessObjects.SLParentClass<T>.Validate(ArrayList,ArrayList,String,Nullable<Int32>,ISession)

Validate(String,String,String,Nullable<Int32>,ISession)

7 Pegasus.BusinessObjects.SLParentClass<T>.Validate(String,String,String,Nullable<Int32>,ISession)

Validate(ISession) 7 Pegasus.BusinessObjects.SLParentClass<T>.Validate(

Page 25: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

ISession)

Validate(String,String,ISession) 7 Pegasus.BusinessObjects.SLParentClass<T>.Validate(String,String,ISession)

Validate(String,String,String,Nullable<Int16>,ISession)

7 Pegasus.BusinessObjects.SLParentClass<T>.Validate(String,String,String,Nullable<Int16>,ISession)

Validate(ArrayList,ArrayList,String,Nullable<Int16>)

7 Pegasus.BusinessObjects.ParentClass<T>.Validate(ArrayList,ArrayList,String,Nullable<Int16>)

Validate(ArrayList,String,Nullable<Int32>)

7 Pegasus.BusinessObjects.ParentClass<T>.Validate(ArrayList,String,Nullable<Int32>)

Validate(ArrayList,ArrayList,String,Nullable<Int32>)

7 Pegasus.BusinessObjects.ParentClass<T>.Validate(ArrayList,ArrayList,String,Nullable<Int32>)

Sum: 70

Average: 7

Minimum: 7

Maximum: 7

Standard deviation: 0

Variance: 0

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 tested match the condition. --> Group {Code Quality \ Type Metrics} // <Name>Types with too many methods</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE   NbMethods > 20   ORDER BY NbMethods DESC

// TYPES WHERE NbMethods > 20 might be hard to // understand and maintain // but there might be cases where it is relevant // to have a high value for NbMethods. // For example, the System.Windows.Forms.DataGridView // standard class has more than 1000 methods.// See the definition of the NbMethods metric here // http://www.ndepend.com/Metrics.aspx#NbMethods

types# Methods

Full Name

BusinessManagerClient 4 711

PCMS_SL.SRBusinessManager.BusinessManagerClient

BusinessManagerClient+BusinessManagerClientChannel

1 043

PCMS_SL.SRBusinessManager.BusinessManagerClient+BusinessManagerClientChannel

IBusinessManager 1 042

PCMS_SL.SRBusinessManager.IBusinessManager

BusinessManager 523 PCMS_SL.Web.BusinessManagers.BusinessManager

IBusinessManager 521 PCMS_SL.Web.BusinessManagers.IBusinessManager

Page 26: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

SHHBLMaster 176 Pegasus.BusinessObjects.ShippingLine.SHHBLMaster

NVBLMaster 176 Pegasus.BusinessObjects.NVOCC.NVBLMaster

SHBLMaster 176 Pegasus.BusinessObjects.ShippingLine.SHBLMaster

NVHBLMaster 176 Pegasus.BusinessObjects.NVOCC.NVHBLMaster

NVJobCardHead 159 Pegasus.BusinessObjects.NVOCC.NVJobCardHead

Sum: 8 703

Average: 870.3

Minimum: 159

Maximum: 4 711

Standard deviation: 1 322

Variance:1

748 706

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 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

BusinessManagerClient

2 092 PCMS_SL.SRBusinessManager.BusinessManagerClient

TMSJobCard 88 PCMS_SL.ViewManager.TMS.TMSJobCard

TMSVehicle 87 PCMS_SL.ViewManager.Masters.TMS.TMSVehicle

MainPCMS 87 PCMS_SL.MainPCMS

Page 27: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

SHBLMaster 85 Pegasus.BusinessObjects.ShippingLine.SHBLMaster

NVHBLMaster 85 Pegasus.BusinessObjects.NVOCC.NVHBLMaster

SHHBLMaster 85 Pegasus.BusinessObjects.ShippingLine.SHHBLMaster

NVBLMaster 85 Pegasus.BusinessObjects.NVOCC.NVBLMaster

PRCICustomerFeedback

82 PCMS_SL.ViewManager.PRCI.PRCICustomerFeedback

TMSQuotation 81 PCMS_SL.ViewManager.TMS.TMSQuotation

Sum: 2 857

Average: 285.7

Minimum: 81

Maximum: 2 092

Standard deviation: 602.1

Variance: 362 528

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 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

BusinessManagerClient

0.99968 2 092 4 711 PCMS_SL.SRBusinessManager.BusinessManagerClient

NVHBLMaster 0.98864 85 176 Pegasus.BusinessObjects.NVOCC.NVHBLMaster

SHBLMaster 0.98864 85 176 Pegasus.BusinessObjects.ShippingLine.SHBLMaster

Page 28: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

NVBLMaster 0.98864 85 176 Pegasus.BusinessObjects.NVOCC.NVBLMaster

SHHBLMaster 0.98864 85 176 Pegasus.BusinessObjects.ShippingLine.SHHBLMaster

NVJobCardHead 0.98742 75 159 Pegasus.BusinessObjects.NVOCC.NVJobCardHead

SHJobCardHead 0.98734 75 158 Pegasus.BusinessObjects.ShippingLine.SHJobCardHead

FlightJobCard 0.98592 67 142 Pegasus.BusinessObjects.FlightCargo.FlightJobCard

WHJobCardHead 0.98148 50 108 Pegasus.BusinessObjects.Warehouse.WHJobCardHead

FlightMAWB 0.97959 44 98 Pegasus.BusinessObjects.FlightCargo.FlightMAWB

Sum: 9.876 2 743 6 080

Average: 0.9876 274.3 608

Minimum: 0.97959 44 98

Maximum: 0.99968 2 092 4 711

Standard deviation: 0.0050149

606.06

1 367

Variance: 2.5149E-05

367 313

1 871 246

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 tested match the condition. --> Group {Code Quality \ Type Metrics} // <Name>Types with poor cohesion (LCOMHS)</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE   LCOMHS > 0.95 AND   NbFields > 10 AND   NbMethods >10   ORDER BY LCOMHS DESC

// TYPES WHERE LCOMHS > 1.0 AND NbFields > 10 AND // NbMethods >10 should be avoided. // Note that this constraint is stronger // than the constraint // TYPES WHERE LCOM > 0.8 AND NbFields > 10 AND NbMethods >10. // See the definition of the LCOMHS metric here // http://www.ndepend.com/Metrics.aspx#LCOMHS

types

LCOM Henderson-Sellers (LCOMHS)

# Fields

# Methods

Full Name

BusinessManagerClient

0.99989 2 092 4 711 PCMS_SL.SRBusinessManager.BusinessManagerClient

Page 29: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

SHHBLMaster 0.99429 85 176 Pegasus.BusinessObjects.ShippingLine.SHHBLMaster

NVHBLMaster 0.99429 85 176 Pegasus.BusinessObjects.NVOCC.NVHBLMaster

SHBLMaster 0.99429 85 176 Pegasus.BusinessObjects.ShippingLine.SHBLMaster

NVBLMaster 0.99429 85 176 Pegasus.BusinessObjects.NVOCC.NVBLMaster

NVJobCardHead 0.99367 75 159 Pegasus.BusinessObjects.NVOCC.NVJobCardHead

SHJobCardHead 0.99363 75 158 Pegasus.BusinessObjects.ShippingLine.SHJobCardHead

FlightJobCard 0.99291 67 142 Pegasus.BusinessObjects.FlightCargo.FlightJobCard

WHJobCardHead 0.99065 50 108 Pegasus.BusinessObjects.Warehouse.WHJobCardHead

FlightMAWB 0.98969 44 98 Pegasus.BusinessObjects.FlightCargo.FlightMAWB

Sum: 9.9376 2 743 6 080

Average: 0.99376 274.3 608

Minimum: 0.98969 44 98

Maximum: 0.99989 2 092 4 711

Standard deviation:

0.0025853

606.06

1 367

Variance: 6.683685E-06

367 313

1 871 246

WARNING: The following CQL constraint is not satisfied. 2 assemblies on 25 tested match the condition. --> Group {Design} // <Name>Assembly should not contain namespaces dependency cycles</Name>WARN IF Count > 0 IN SELECT TOP 10 ASSEMBLIES WHEREContainsNamespaceDependencyCycle

// Dependency cycles between namespaces must be avoided// in order to have a levelized and comprehensive design.// More info available on the screencast 'Reduce the complexity'// http://s3.amazonaws.com/NDependOnlineDemos/NDependReducingComplexity_viewlet_swf.html// You can also read this article// http://www.theserverside.net/tt/articles/showarticle.tss?id=ControllingDependencies

// For any assembly matched, to display internal namespaces dependency cycle(s),// just right-click the assembly and select://   --> View internal Dependency Cycles on Graph   ... or ...//   --> View internal Dependency Cycles on Matrix (Recommended)//  In the Matrix, dependency cycles are represented with red squares and blac

Page 30: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

k cells.//  To browse easily dependency cycles, the Matrix comes with the option://   --> Display Direct and Indirect Dependencies    

assemblies # lines of code (LOC)

Full Name

PCMS-SL 55 756 PCMS-SL

PCMS-SL.Web 45 939 PCMS-SL.Web

Sum: 101 695

Average: 50 847

Minimum: 45 939

Maximum: 55 756

Standard deviation:

4 908

Variance: 24 093 344

WARNING: The following CQL constraint is not satisfied. 10 types on 1846 tested match the condition. --> Group {Design} // <Name>Type should not have too many responsabilities (Efferent Coupling)</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE   TypeCe > 50   ORDER BY TypeCe DESC 

// The Efferent Coupling (TypeCe) for a particular type is // the number of types it directly depends on. Notice that // types declared in third party assemblies are taken into account. 

// Types that depends on too many others type (more than 50) // are complex and have more than one responsability. They // are good candidate for refactoring.

// More information available in this article:// http://codebetter.com/blogs/patricksmacchia/archive/2008/02/15/code-metrics-on-coupling-dead-code-design-flaws-and-re-engineering.aspx

types

Efferent coupling (TypeCe)

Full Name

BusinessManagerClient 772 PCMS_SL.SRBusinessManager.BusinessManagerClient

BusinessManager 314 PCMS_SL.Web.BusinessManagers.BusinessManager

IBusinessManager 239 PCMS_SL.Web.BusinessManagers.IBusinessManage

Page 31: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

r

BusinessManagerClient+BusinessManagerClientChannel

238 PCMS_SL.SRBusinessManager.BusinessManagerClient+BusinessManagerClientChannel

IBusinessManager 237 PCMS_SL.SRBusinessManager.IBusinessManager

SLParentClass<T> 170 Pegasus.BusinessObjects.SLParentClass<T>

MainPCMS 145 PCMS_SL.MainPCMS

TMSJobCard 143 PCMS_SL.ViewManager.TMS.TMSJobCard

TMSQuotation 134 PCMS_SL.ViewManager.TMS.TMSQuotation

CustomerWiseRateMaster 118 PCMS_SL.ViewManager.Masters.Central.CustomerWiseRateMaster

Sum: 2 510

Average: 251

Minimum: 118

Maximum: 772

Standard deviation: 183.51

Variance: 33 675

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 tested match the condition. --> Group {Design} // <Name>A stateless class or structure might be turned into a static type</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE  SizeOfInst ==0 AND

  // For accuracy, this constraint doesn't take  // account of types that implement some interfaces.  // and classes that have a base class and don't  // derive directly from System.Object, or classes  // that have sub-classes children.    NbInterfacesImplemented == 0 AND                             ((IsClass AND DepthOfInheritance == 1               AND NbChildren == 0)              OR IsStructure) AND                     !IsStatic AND  !IsGeneric  // this rule indicates stateless types that might   // eventually be turned into static classes.  // See the definition of the SizeOfInst metric here   // http://www.ndepend.com/Metrics.aspx#SizeOfInst

types

Size of instance

# interfaces implemented

Depth of inheritance

# Children

Full Name

Page 32: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Message 0 0 1 0 Pegasus.Controls.Message

ArrayList 0 0 1 0 System.Collections.ArrayList

PCMSResource 0 0 1 0 PCMS_SL.PCMSResource

sGlobal 0 0 1 0 PCMS_SL.sGlobal

Resources 0 0 1 0 PCMS_SL.Properties.Resources

DynamicObjectBuilder

0 0 1 0 PCMS.DS.DynamicObjectBuilder

DTOConverter 0 0 1 0 PCMS_SL.Web.DTOBusinessObjects.DTOConverter

clsNHiber 0 0 1 0 Pegasus.Common.clsNHiber

SuperGlobals 0 0 1 0 Pegasus.BusinessObjects.SuperGlobals

sGlobal 0 0 1 0 Pegasus.BusinessObjects.sGlobal

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 2145 tested match the condition. --> Group {Design} // <Name>Class with no descendant should be sealed if possible</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE   IsClass AND   NbChildren ==0 AND   !IsSealed AND   !IsStatic   // AND !IsPublic <-- You might want to add this condition   //                   if you are developping a framework  //                   with classes that are intended to be   //                   sub-classed by your clients.  ORDER BY NbLinesOfCode

types# Children

# lines of code (LOC)

Full Name

DTOAllocationDetailItemSummary

0 0 PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOAccounts.DTOAllocationDetailItemSummary

Page 33: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

DTOAccountWithEntity

0 0 PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOAccounts.DTOAccountWithEntity

VourcherItem 0 0 PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOAccounts.VourcherItem

DTOAllocationDetailBag

0 0 PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOAccounts.DTOAllocationDetailBag

DTOPRCIInvoiceTaxType

0 0 PCMS_SL.Web.DTOBusinessObjects.DTOPRCI.DTOPRCIInvoiceTaxType

TreeDataItem 0 0 PCMS_SL.ViewManager.Accounts.TreeDataItem

CargoEnquiryContainers

0 0 Pegasus.BusinessObjects.General.Cargo.CargoEnquiryContainers

AreaLocations 0 0 PCMS_SL.SRBusinessManager.AreaLocations

TreeDataItemCOA 0 0 PCMS_SL.ViewManager.Accounts.TreeDataItemCOA

ProductPieces 0 0 Pegasus.BusinessObjects.Warehouse.ProductPieces

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 2145 tested match the condition. --> Group {Design} // <Name>Classes that are candidate to be turned into Structures</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE   IsClass AND  !IsStatic AND  SizeOfInst > 0 AND  SizeOfInst <= 16 AND    // Structure instance must not be too big,                           // else it degrades performance.

  NbChildren == 0 AND     // Must not have children

  DepthOfInheritance == 1 // Must derive directly from System.Object

  // AND IsSealed    <-- You might want to add this condition   //                     to restreint the set.  // AND IsImmutable <-- Structures should be immutable type.  // AND !IsPublic   <-- You might want to add this condition if   //                     you are developping a framework with classes   //                     that are intended to be sub-classed by   //                     your clients.

types

Size of instance

# Children

Depth of inheritance

Full Name

Page 34: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

App+<>c__DisplayClass2

8 0 1 PCMS_SL.App+<>c__DisplayClass2

DTOPRCIInvoiceTaxType 12 0 1 PCMS_SL.SRBusinessManager.DTOPRCIInvoiceTaxType

DTOTraImprovementOppertunityCombo

16 0 1 PCMS_SL.SRBusinessManager.DTOTraImprovementOppertunityCombo

DTOTraSituationTypeMasterCombo

14 0 1 PCMS_SL.SRBusinessManager.DTOTraSituationTypeMasterCombo

DTOTraMultiPointMovementCombo

12 0 1 PCMS_SL.SRBusinessManager.DTOTraMultiPointMovementCombo

DTOTraTripCombo 12 0 1 PCMS_SL.SRBusinessManager.DTOTraTripCombo

DTOTraTripShiftingCombo

12 0 1 PCMS_SL.SRBusinessManager.DTOTraTripShiftingCombo

DTOTraFlatMovementCombo

12 0 1 PCMS_SL.SRBusinessManager.DTOTraFlatMovementCombo

DTOTraVehicleMovementCombo

12 0 1 PCMS_SL.SRBusinessManager.DTOTraVehicleMovementCombo

DTOPDCClearanceUpdate

16 0 1 PCMS_SL.SRBusinessManager.DTOPDCClearanceUpdate

Sum: 126 0 10

Average: 12.6 0 1

Minimum: 8 0 1

Maximum: 16 0 1

Standard deviation: 2.2 0 0

Variance: 4.84 0 0

WARNING: The following CQL constraint is not satisfied. 10 namespaces on 117 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.BusinessObjects.General.Shipping 1 Pegasus.BusinessObjects.General.Shipping

Page 35: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Lines.ISOCode Lines.ISOCode

Pegasus.Common.Utilities 1 Pegasus.Common.Utilities

Pegasus.BusinessObjects.General.Inventory

1 Pegasus.BusinessObjects.General.Inventory

System.Collections 1 System.Collections

PCMS_SL.Properties 1 PCMS_SL.Properties

Pegasus.BusinessObjects.Job 2 Pegasus.BusinessObjects.Job

Pegasus.BusinessObjects.INV 2 Pegasus.BusinessObjects.INV

Pegasus.BusinessObjects.General.HRPayroll

2 Pegasus.BusinessObjects.General.HRPayroll

PCMS_SL.Web.DTOBusinessObjects 2 PCMS_SL.Web.DTOBusinessObjects

PCMS_SL.Web 2 PCMS_SL.Web

Sum: 15

Average: 1.5

Minimum: 1

Maximum: 2

Standard deviation: 0.5

Variance: 0.25

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 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

Message+DialogResult N/A Pegasus.Controls.Message+DialogResult

Message+MessageBoxButtons N/A Pegasus.Controls.Message+MessageBoxButtons

Page 36: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Message+MessageBoxImage N/A Pegasus.Controls.Message+MessageBoxImage

Buttons+ButtonsMode N/A Pegasus.Controls.Buttons+ButtonsMode

sGlobal+pParams 0 PCMS_SL.sGlobal+pParams

TMSJobCard+CustomClass 1 PCMS_SL.ViewManager.TMS.TMSJobCard+CustomClass

TMSQuotation+CustomClass 1 PCMS_SL.ViewManager.TMS.TMSQuotation+CustomClass

TMSMultiPointMovement+CustomClass

1 PCMS_SL.ViewManager.TMS.TMSMultiPointMovement+CustomClass

TMSMultiPointMovement+CustomClassContainers

1 PCMS_SL.ViewManager.TMS.TMSMultiPointMovement+CustomClassContainers

TMSTrips+CustomClass 1 PCMS_SL.ViewManager.TMS.TMSTrips+CustomClass

Sum: 5

Average: 0.5

Minimum: 0

Maximum: 1

Standard deviation: 0.5

Variance: 0.25

WARNING: The following CQL constraint is not satisfied. 1 types on 2145 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.

Page 37: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

types # Methods

Full Name

IBusinessManagerChannel

0 PCMS_SL.SRBusinessManager.IBusinessManagerChannel

Sum: 0

Average: 0

Minimum: 0

Maximum: 0

Standard deviation: 0

Variance: 0

WARNING: The following CQL constraint is not satisfied. 1 assemblies on 25 tested match the condition. --> Group {Design} // <Name>Assemblies with poor cohesion (RelationalCohesion)</Name>WARN IF Count > 0 IN SELECT TOP 10 ASSEMBLIES WHERE   NbTypes > 20 AND // Relational Cohesion metrics is relevant only if there are several types   (RelationalCohesion < 1.5 OR    RelationalCohesion > 4.0)

// As classes inside an assembly should be strongly related, // the cohesion should be high. On the other hand, a value // which is too high may indicate over-coupling. A good range // for RelationalCohesion is 1.5 to 4.0.// See the definition of the RelationalCohesion metric here // http://www.ndepend.com/Metrics.aspx#RelationalCohesion

assemblies # Types

Relational cohesion

Full Name

PCMS-SL.Web 694 7.7392 PCMS-SL.Web

Sum: 694 7.7392

Average: 694 7.7392

Minimum: 694 7.7392

Maximum: 694 7.7392

Standard deviation:

0 NaN

Variance: 0 -4.437898E-07

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 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

Page 38: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

// 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

BusinessManagerClient

8 389 PCMS_SL.SRBusinessManager.BusinessManagerClient

MainPCMS 600 PCMS_SL.MainPCMS

TMSVehicle 592 PCMS_SL.ViewManager.Masters.TMS.TMSVehicle

TMSJobCard 577 PCMS_SL.ViewManager.TMS.TMSJobCard

PRCICustomerFeedback

573 PCMS_SL.ViewManager.PRCI.PRCICustomerFeedback

TMSQuotation 553 PCMS_SL.ViewManager.TMS.TMSQuotation

TMSTrips 536 PCMS_SL.ViewManager.TMS.TMSTrips

Invoice 520 PCMS_SL.ViewManager.PRCI.Invoice

TMSInquiry 508 PCMS_SL.ViewManager.TMS.TMSInquiry

Client 501 PCMS_SL.ViewManager.Masters.Main.Client

Sum: 13 349

Average: 1 334

Minimum: 501

Maximum: 8 389

Standard deviation: 2 351

Variance: 5 530 002

WARNING: The following CQL constraint is not satisfied. 381 types on 2145 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: 54 962

Average: 144.26

Minimum: 4

Page 39: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Maximum: 8 807

Standard deviation:

542.51

Variance: 294 320

WARNING: The following CQL constraint is not satisfied. 1 types on 2145 tested match the condition. --> Group {Design \ Performance} // <Name>Attribute classes should be sealed</Name>WARN IF Count > 0 IN SELECT TYPES WHERE   IsAttributeClass AND   !IsSealed AND   !IsAbstract AND   IsPublic AND   !IsInFrameworkAssembly 

// The .NET Framework class library provides methods // for retrieving custom attributes. By default, // these methods search the attribute inheritance // hierarchy; for example System.Attribute.GetCustomAttribute // searches for the specified attribute type, or any // attribute type that extends the specified attribute // type. Sealing the attribute eliminates the search // through the inheritance hierarchy, and can improve // performance.

types

# lines of code (LOC)

Full Name

ReferencePreservingDataContractFormatAttribute

4 PCMS_SL.Web.BusinessManagers.ReferencePreservingDataContractFormatAttribute

Sum: 4

Average: 4

Minimum: 4

Maximum: 4

Standard deviation: 0

Variance: 0

WARNING: The following CQL constraint is not satisfied. 10 methods on 39605 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 

Page 40: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

                          // context of this application.

 !IsPublic AND            // Public methods might be used by                           // client applications of your assemblies.

 !IsEntryPoint AND        // Main() method is not used by-design.

 !IsExplicitInterfaceImpl // The IL code never explicitely  AND                      // calls explicit interface methods                           // implementation.

 !IsClassConstructor AND  // The IL code never explicitely                           // calls class constructors.

 !IsFinalizer             // The IL code never explicitely                           // calls finalizers.

methods

Afferent coupling (MethodCa)

Full Name

LayoutRoot_MouseLeftButtonUp(Object,MouseButtonEventArgs)

0 Pegasus.Controls.Buttons.LayoutRoot_MouseLeftButtonUp(Object,MouseButtonEventArgs)

LayoutRoot_KeyUp(Object,KeyEventArgs)

0 Pegasus.Controls.Buttons.LayoutRoot_KeyUp(Object,KeyEventArgs)

btnOk_Click(Object,RoutedEventArgs)

0 Pegasus.Controls.Buttons.btnOk_Click(Object,RoutedEventArgs)

btnMbOk_Click(Object,RoutedEventArgs)

0 Pegasus.Controls.Buttons.btnMbOk_Click(Object,RoutedEventArgs)

btnMbCancel_Click(Object,RoutedEventArgs)

0 Pegasus.Controls.Buttons.btnMbCancel_Click(Object,RoutedEventArgs)

btn_Click(Object,RoutedEventArgs) 0 Pegasus.Controls.Buttons.btn_Click(Object,RoutedEventArgs)

_this_Loaded(Object,RoutedEventArgs)

0 Pegasus.Controls.PegasusMessageBox._this_Loaded(Object,RoutedEventArgs)

ok_Click(Object,RoutedEventArgs) 0 Pegasus.Controls.PegasusMessageBox.ok_Click(Object,RoutedEventArgs)

yes_Click(Object,RoutedEventArgs) 0 Pegasus.Controls.PegasusMessageBox.yes_Click(Object,RoutedEventArgs)

no_Click(Object,RoutedEventArgs) 0 Pegasus.Controls.PegasusMessageBox.no_Click(Object,RoutedEventArgs)

Sum: 0

Average: 0

Minimum: 0

Maximum: 0

Standard deviation: 0

Page 41: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Variance: 0

WARNING: The following CQL constraint is not satisfied. 10 fields on 17591 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

dtObjects 0 PCMS_SL.LoginScreen.dtObjects

s 0 PCMS_SL.SLSearchEngine.s

_BaseCurrencyMask

0 PCMS_SL.sGlobal._BaseCurrencyMask

CommonBranchId

0 PCMS_SL.ViewManager.TMS.TMSJobCard.CommonBranchId

CustomerSelected

0 PCMS_SL.ViewManager.TMS.TMSJobCard.CustomerSelected

CommonBranchId

0 PCMS_SL.ViewManager.TMS.TMSQuotation.CommonBranchId

CommonBranchId

0 PCMS_SL.ViewManager.TMS.TMSMultiPointMovement.CommonBranchId

CommonBranchId

0 PCMS_SL.ViewManager.TMS.TMSImprovementOppertunity.CommonBranchId

CommonBranchId

0 PCMS_SL.ViewManager.TMS.TMSDeliveryOrder.CommonBranchId

CommonBranchId

0 PCMS_SL.ViewManager.TMS.TMSTWB.CommonBranchId

Page 42: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Sum: 0

Average: 0

Minimum: 0

Maximum: 0

Standard deviation:

0

Variance: 0

WARNING: The following CQL constraint is not satisfied. 5 types on 1846 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

ArrayList 0 System.Collections.ArrayList

Helper 0 PCMS_SL.Web.BusinessManagers.Helper

VourcherItem 0 PCMS_SL.Web.DTOBusinessObjects.DTOGeneral.DTOAccounts.VourcherItem

ICommon 0 Pegasus.Common.ICommon

CargoEnquiryContainers

0 Pegasus.BusinessObjects.General.Cargo.CargoEnquiryContainers

Sum: 0

Average: 0

Minimum: 0

Maximum: 0

Standard deviation: 0

Variance: 0

Page 43: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

WARNING: The following CQL constraint is not satisfied. 10 fields on 17620 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

objControl 4 Pegasus.Controls.Buttons.objControl

spOperations 4 Pegasus.Controls.Buttons.spOperations

btnPost 4 Pegasus.Controls.Buttons.btnPost

btnPrint 4 Pegasus.Controls.Buttons.btnPrint

btnFind 4 Pegasus.Controls.Buttons.btnFind

btnDelete 4 Pegasus.Controls.Buttons.btnDelete

btnClear 4 Pegasus.Controls.Buttons.btnClear

btnEdit 4 Pegasus.Controls.Buttons.btnEdit

btnSave 4 Pegasus.Controls.Buttons.btnSave

btnCancel 4 Pegasus.Controls.Buttons.btnCancel

Sum: 40

Average: 4

Minimum: 4

Maximum: 4

Standard deviation:

0

Variance: 0

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 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 

Page 44: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

  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

openTab(String,String,String)

56 PCMS_SL.MainPCMS.openTab(String,String,String)

.ctor() 16 PCMS_SL.MainPCMS..ctor()

.ctor(Exception) 4 PCMS_SL.ErrorWindow..ctor(Exception)

.ctor(Uri) 4 PCMS_SL.ErrorWindow..ctor(Uri)

.ctor(String,String) 3 PCMS_SL.ErrorWindow..ctor(String,String)

.ctor() 5 PCMS_SL.LoginScreen..ctor()

set_NoticeText(String) 1 PCMS_SL.WaitingWindow.set_NoticeText(String)

.ctor() 2 PCMS_SL.WaitingWindow..ctor()

set_SearchList(IList) 2 PCMS_SL.SLSearchEngine.set_SearchList(IList)

set_FormType(Type) 1 PCMS_SL.SLSearchEngine.set_FormType(Type)

Sum: 94

Average: 9.4

Minimum: 1

Maximum: 56

Standard deviation: 16.076

Variance: 258.44

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 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 (LO

Full Name

Page 45: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

C)

.ctor() N/A Pegasus.Controls.Message..ctor()

set_ClickedButton(Button) 1 Pegasus.Controls.Buttons.set_ClickedButton(Button)

set_ShouldButtonDisableAfterSave(Boolean)

1 Pegasus.Controls.Buttons.set_ShouldButtonDisableAfterSave(Boolean)

RoutedEvents(Object,RoutedEventArgs)

6 Pegasus.Controls.Buttons.RoutedEvents(Object,RoutedEventArgs)

GridDoubleClick() 6 Pegasus.Controls.Buttons.GridDoubleClick()

AllowAll(Boolean) 13 Pegasus.Controls.Buttons.AllowAll(Boolean)

SetButtonCaption(String) 1 Pegasus.Controls.Buttons.SetButtonCaption(String)

AllowForCusser() 9 Pegasus.Controls.Buttons.AllowForCusser()

ButtonTypeGrid() 6 Pegasus.Controls.Buttons.ButtonTypeGrid()

ShowMessages(String) 3 Pegasus.Controls.Buttons.ShowMessages(String)

Sum: 46

Average: 4.6

Minimum: 0

Maximum: 13

Standard deviation: 3.9799

Variance: 15.84

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 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

Message 0 Pegasus.Controls.Message

PCMSResource 47 PCMS_SL.PCMSResource

MainPCMS 1 274 PCMS_SL.MainPCMS

ErrorWindow 22 PCMS_SL.ErrorWindow

LoginScreen 195 PCMS_SL.LoginScreen

WaitingWindow 9 PCMS_SL.WaitingWindow

App 25 PCMS_SL.App

PageTest 51 PCMS_SL.PageTest

SLSearchEngine 68 PCMS_SL.SLSearchEngine

Page 46: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

ValidationException

4 PCMS_SL.ValidationException

Sum: 1 695

Average: 169.5

Minimum: 0

Maximum: 1 274

Standard deviation:

372.08

Variance: 138 443

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 tested match the condition. --> Group {Encapsulation \ Types Optimal Encapsulation} // <Name>Types that could be declared as 'private' in C#,  'Private' in VB.NET</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE   CouldBePrivate

types

# lines of code (LOC)

Full Name

sGlobal+pParams 0 PCMS_SL.sGlobal+pParams

TMSJobCard+CustomClass 1 PCMS_SL.ViewManager.TMS.TMSJobCard+CustomClass

TMSQuotation+CustomClass 1 PCMS_SL.ViewManager.TMS.TMSQuotation+CustomClass

TMSMultiPointMovement+CustomClass

1 PCMS_SL.ViewManager.TMS.TMSMultiPointMovement+CustomClass

TMSMultiPointMovement+CustomClassContainers

1 PCMS_SL.ViewManager.TMS.TMSMultiPointMovement+CustomClassContainers

TMSTrips+CustomClass 1 PCMS_SL.ViewManager.TMS.TMSTrips+CustomClass

PRCIJobClosing+CustomClass 1 PCMS_SL.ViewManager.PRCI.PRCIJobClosing+CustomClass

PRCICustomerFeedback+CustomClass

1 PCMS_SL.ViewManager.PRCI.PRCICustomerFeedback+CustomClass

UserManagement+UserGroupClass

1 PCMS_SL.ViewManager.Security.UserManagement+UserGroupClass

Commodities+CustomClass 1 PCMS_SL.ViewManager.Masters.Others.Commodities+CustomClass

Sum: 9

Average: 0.9

Page 47: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

Minimum: 0

Maximum: 1

Standard deviation: 0.3

Variance: 0.09

WARNING: The following CQL constraint is not satisfied. 4 fields on 17620 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

objToOpen 4 PCMS_SL.MainPCMS.objToOpen

pSection 4 Pegasus.BusinessObjects.sGlobal+pParams.pSection

pName 4 Pegasus.BusinessObjects.sGlobal+pParams.pName

pValue 4 Pegasus.BusinessObjects.sGlobal+pParams.pValue

Sum: 16

Average: 4

Minimum: 4

Maximum: 4

Standard deviation:

0

Variance: 0

WARNING: The following CQL constraint is not satisfied. 10 fields on 17620 tested match the condition. --> Group {Encapsulation \ Fields Optimal Encapsulation} // <Name>Fields that could be declared as 'private' in C#,  'Private' in VB.NET</Name>WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE   CouldBePrivate

fields Size of instance

Full Name

objControl 4 Pegasus.Controls.Buttons.objControl

spOperations 4 Pegasus.Controls.Buttons.spOperations

btnPost 4 Pegasus.Controls.Buttons.btnPost

btnPrint 4 Pegasus.Controls.Buttons.btnPrint

Page 48: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

btnFind 4 Pegasus.Controls.Buttons.btnFind

btnDelete 4 Pegasus.Controls.Buttons.btnDelete

btnClear 4 Pegasus.Controls.Buttons.btnClear

btnEdit 4 Pegasus.Controls.Buttons.btnEdit

btnSave 4 Pegasus.Controls.Buttons.btnSave

btnCancel 4 Pegasus.Controls.Buttons.btnCancel

Sum: 40

Average: 4

Minimum: 4

Maximum: 4

Standard deviation:

0

Variance: 0

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 tested match the condition. --> Group {Test Coverage} // <Name>Complex methods should be 100% covered by tests</Name>WARN IF Count > 0 IN SELECT TOP 10 METHODS  /*OUT OF "YourGeneratedCode" */  WHERE      // These metrics' definitions are available here:      // http://www.ndepend.com/Metrics.aspx#MetricsOnMethods     (  NbILInstructions > 200 OR         ILCyclomaticComplexity > 50 OR         ILNestingDepth > 4 OR        NbParameters > 5 OR         NbVariables > 8 OR        NbOverloads > 6 ) AND      PercentageCoverage < 100

// To run this constraint properly coverage data must be // gathered from NCover™ or Visual Studio™ Coverage.// This can be done throught the menu: //   NDepend -> Coverage -> Import Coverage Files// This can be done at analysis time throught the menu: // Project Properties -> Analysis -> Code Coverage// More information on how to import coverage data here:// http://www.ndepend.com/Coverage.aspx

methods # IL instructions

IL Cyclomatic Complexi

IL Nesting Dep

# Parameters

# Variables

# Overloads

Percentage Coverage

Full Name

Page 49: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

ty (ILCC)

th

SetButtonMode(Buttons+ButtonsMode)

647 12 1 1 1 1 0 Pegasus.Controls.Buttons.SetButtonMode(Buttons+ButtonsMode)

Enabled(Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean)

42 1 0 8 0 1 0

Pegasus.Controls.Buttons.Enabled(Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean)

EnableDisable(Object) 299 10 7 1 3 1 0 Pegasus.Controls.Buttons.EnableDisable(Object)

Show(Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean)

74 17 1 8 0 1 0

Pegasus.Controls.Buttons.Show(Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean)

SetButtonAccess(IList) 136 13 5 1 5 1 0 Pegasus.Controls.Buttons.SetButtonAccess(IList)

UserControl_KeyDown(Object,KeyEventArgs) 226 29 2 2 1 1 0

Pegasus.Controls.Buttons.UserControl_KeyDown(Object,KeyEventArgs)

ButtonTool_Click(Object,RibbonToolEventArgs)

219 28 9 2 4 1 0 PCMS_SL.MainPCMS.ButtonTool_Click(Object,RibbonToolEventArgs)

SetPageMenuSettingsForButtonTool(ButtonTool)

1 477 71 3 1 3 1 0

PCMS_SL.MainPCMS.SetPageMenuSettingsForButtonTool(ButtonTool)

SetPageMenuSettingsForGalleryTool(GalleryTool)

1 760 58 2 1 3 1 0

PCMS_SL.MainPCMS.SetPageMenuSettingsForGalleryTool(GalleryTool)

openTab(String,String,String)

293 22 3 3 12 1 0 PCMS_SL.MainPCMS.openTab(String,String,String)

Sum: 5 173

261 33 28 32 10 0

Average: 517.3

26.1

3.3

2.8 3.2 1 0

Minimum: 42 1 0 1 0 1 0

Maximum: 1 760

71 9 8 12 1 0

Standard deviation:576.35

20.988

2.7221

2.6758

3.340

70 0

Variance: 332 176

440.49

7.41

7.16

11.16

0 0

WARNING: The following CQL constraint is not satisfied. 1885 fields on 17620 tested match the condition. --> Group {Purity / Immutability / Side-Effects}

Page 50: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

// <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: 7 050

Average: 3.7401

Minimum: 0

Maximum: 4

Standard deviation:

0.81713

Variance: 0.66771

WARNING: The following CQL constraint is not satisfied. 2 types on 2145 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.

Page 51: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

// 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. 3 methods on 40132 tested match the condition. --> Group {Purity / Immutability / Side-Effects} // <Name>Instance Property Getter should be immutable</Name>WARN IF Count > 0 IN SELECT METHODS WHEREIsPropertyGetter AND!IsStatic ANDChangesObjectState

// 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_AllowedOperations()

2 PCMS_SL.AppSecurity.AppClientSecurity.get_AllowedOperations()

get_Columns() 3 PCMS.DS.DataTable.get_Columns()

get_Rows() 4 PCMS.DS.DataTable.get_Rows()

Sum: 9

Average: 3

Minimum: 2

Maximum: 4

Standard deviation: 0.8165

Variance: 0.66667

WARNING: The following CQL constraint is not satisfied. 6 methods on 40132 tested match the condition. --> Group {Purity / Immutability / Side-Effects} // <Name>Static Property Getter should be immutable</Name>WARN IF Count > 0 IN SELECT METHODS  WHEREIsPropertyGetter AND

Page 52: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

IsStatic ANDChangesTypeState

// Generated property getter Resources.get_ResourceManager()// provokes a read-only property lazy-initializedAND !FullNameLike "Resources.get_ResourceManager()"

// This rule might be violated in the case of object lazy initialized// when the property getter is accessed the first time.    

methods # lines of code (LOC)

Full Name

get_Instance() 3 Pegasus.Controls.PegasusMessageBox.get_Instance()

get_ResourceManager()

4 PCMS_SL.PCMSResource.get_ResourceManager()

get_Client() 10 PCMS_SL.sGlobal.get_Client()

get_Instance() 3 PCMS_SL.AppSecurity.AppClientSecurity.get_Instance()

get_Instance() 5 Pegasus.Common.clsNHiber.get_Instance()

get_Instance() 3 Pegasus.Common.Common.get_Instance()

Sum: 28

Average: 4.6667

Minimum: 3

Maximum: 10

Standard deviation: 2.4944

Variance: 6.2222

WARNING: The following CQL constraint is not satisfied. 10 fields on 17620 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

_GridType 1 Pegasus.Controls.Buttons._GridType

objControl 4 Pegasus.Controls.Buttons.objControl

Page 53: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

shouldButtonDisableAfterSave

1 Pegasus.Controls.Buttons.shouldButtonDisableAfterSave

buttonClicked 4 Pegasus.Controls.Buttons.buttonClicked

ButtonPageList 4 Pegasus.Controls.Buttons.ButtonPageList

_ClickedButton 4 Pegasus.Controls.Buttons._ClickedButton

spOperations 4 Pegasus.Controls.Buttons.spOperations

btnPost 4 Pegasus.Controls.Buttons.btnPost

btnPrint 4 Pegasus.Controls.Buttons.btnPrint

btnFind 4 Pegasus.Controls.Buttons.btnFind

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 17620 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.Controls.PegasusMessageBox._Instance

resourceMan 0 PCMS_SL.PCMSResource.resourceMan

resourceCulture 0 PCMS_SL.PCMSResource.resourceCulture

mTons 0 PCMS_SL.sGlobal.mTons

mChg 0 PCMS_SL.sGlobal.mChg

_Employee 0 PCMS_SL.sGlobal._Employee

_BranchID 0 PCMS_SL.sGlobal._BranchID

_FYID 0 PCMS_SL.sGlobal._FYID

_BaseCurrency 0 PCMS_SL.sGlobal._BaseCurrency

Page 54: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

_FinanialYear 0 PCMS_SL.sGlobal._FinanialYear

Sum: 0

Average: 0

Minimum: 0

Maximum: 0

Standard deviation:

0

Variance: 0

WARNING: The following CQL constraint is not satisfied. 3 types on 2145 tested match the condition. --> Group {Naming Conventions} // <Name>Abstract base class should be suffixed with 'Base'</Name>WARN IF Count > 0 IN SELECT TOP 10 TYPES WHERE   IsAbstract AND   IsClass AND

  // equivalent to:   DepthOfDeriveFrom "System.Object" == 1  DepthOfInheritance == 1 AND 

  ((!IsGeneric AND !NameLike "Base$") OR   ( IsGeneric AND !NameLike "Base<"))

types Depth of inheritance

Full Name

DynamicObject 1 PCMS.DS.DynamicObject

ParentClass<T> 1 Pegasus.BusinessObjects.ParentClass<T>

SLParentClass<T>

1 Pegasus.BusinessObjects.SLParentClass<T>

Sum: 3

Average: 1

Minimum: 1

Maximum: 1

Standard deviation:

0

Variance: 0

WARNING: The following CQL constraint is not satisfied. 6 types on 2145 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 ...

Page 55: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

  !IsGeneratedByCompiler AND 

  // ... if it is declared in a third party assembly.  !IsInFrameworkAssembly     

types

# lines of code (LOC)

Full Name

sGlobal 99 PCMS_SL.sGlobal

sGlobal+pParams 0 PCMS_SL.sGlobal+pParams

getCurrencyActiveListCompletedEventArgs

4 PCMS_SL.SRBusinessManager.getCurrencyActiveListCompletedEventArgs

clsNHiber 15 Pegasus.Common.clsNHiber

sGlobal 79 Pegasus.BusinessObjects.sGlobal

sGlobal+pParams 0 Pegasus.BusinessObjects.sGlobal+pParams

Sum: 197

Average: 32.833

Minimum: 0

Maximum: 99

Standard deviation: 40.445

Variance: 1 635

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 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

Full Name

Page 56: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

(LOC)

btnOk_Click(Object,RoutedEventArgs)

1 Pegasus.Controls.Buttons.btnOk_Click(Object,RoutedEventArgs)

btnMbOk_Click(Object,RoutedEventArgs)

0 Pegasus.Controls.Buttons.btnMbOk_Click(Object,RoutedEventArgs)

btnMbCancel_Click(Object,RoutedEventArgs)

0 Pegasus.Controls.Buttons.btnMbCancel_Click(Object,RoutedEventArgs)

btn_Click(Object,RoutedEventArgs)

1 Pegasus.Controls.Buttons.btn_Click(Object,RoutedEventArgs)

_this_Loaded(Object,RoutedEventArgs)

0 Pegasus.Controls.PegasusMessageBox._this_Loaded(Object,RoutedEventArgs)

ok_Click(Object,RoutedEventArgs)

2 Pegasus.Controls.PegasusMessageBox.ok_Click(Object,RoutedEventArgs)

yes_Click(Object,RoutedEventArgs)

2 Pegasus.Controls.PegasusMessageBox.yes_Click(Object,RoutedEventArgs)

no_Click(Object,RoutedEventArgs)

2 Pegasus.Controls.PegasusMessageBox.no_Click(Object,RoutedEventArgs)

cancel_Click(Object,RoutedEventArgs)

2 Pegasus.Controls.PegasusMessageBox.cancel_Click(Object,RoutedEventArgs)

btnClose_Click(Object,RoutedEventArgs)

1 Pegasus.Controls.PegasusMessageBox.btnClose_Click(Object,RoutedEventArgs)

Sum: 11

Average: 1.1

Minimum: 0

Maximum: 2

Standard deviation: 0.83066

Variance: 0.69

WARNING: The following CQL constraint is not satisfied. 10 methods on 40132 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).

Page 57: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

// Explicit Interface Implementation methods are // discarded because their names are prefixed // with the interface name.      

methods

# lines of code (LOC)

Full Name

BusinessManagerClient_DTOSecurityObjectGetMenuRightsObjectsCompleted(Object,DTOSecurityObjectGetMenuRightsObjectsCompletedEventArgs)

9

PCMS_SL.MainPCMS.BusinessManagerClient_DTOSecurityObjectGetMenuRightsObjectsCompleted(Object,DTOSecurityObjectGetMenuRightsObjectsCompletedEventArgs)

Client_SaveIsolatedStorageCompleted(Object,AsyncCompletedEventArgs) 1

PCMS_SL.LoginScreen.Client_SaveIsolatedStorageCompleted(Object,AsyncCompletedEventArgs)

Client_CurrencyRateGetBaseCurrencyCompleted(Object,CurrencyRateGetBaseCurrencyCompletedEventArgs)

11

PCMS_SL.LoginScreen.Client_CurrencyRateGetBaseCurrencyCompleted(Object,CurrencyRateGetBaseCurrencyCompletedEventArgs)

Client_DTOCompanyComboGetCompaniesCompleted(Object,DTOCompanyComboGetCompaniesCompletedEventArgs)

5

PCMS_SL.LoginScreen.Client_DTOCompanyComboGetCompaniesCompleted(Object,DTOCompanyComboGetCompaniesCompletedEventArgs)

Client_GetDTOFinancialYearsCompleted(Object,GetFinancialYearsCompletedEventArgs)

2PCMS_SL.LoginScreen.Client_GetDTOFinancialYearsCompleted(Object,GetFinancialYearsCompletedEventArgs)

Client_DTOCompanyComboGetBranchesByCompanyIdCompleted(Object,DTOCompanyComboGetBranchesByCompanyIdCompletedEventArgs)

20

PCMS_SL.LoginScreen.Client_DTOCompanyComboGetBranchesByCompanyIdCompleted(Object,DTOCompanyComboGetBranchesByCompanyIdCompletedEventArgs)

Client_GetDTOFinancialYearsByCompanyIdCompleted(Object,GetDTOFinancialYearsByCompanyIdCompletedEventArgs)

8

PCMS_SL.LoginScreen.Client_GetDTOFinancialYearsByCompanyIdCompleted(Object,GetDTOFinancialYearsByCompanyIdCompletedEventArgs)

Client_SetFreightCategoryAccessControlListCompleted(Object,AsyncCompletedEventArgs)

2PCMS_SL.LoginScreen.Client_SetFreightCategoryAccessControlListCompleted(Object,AsyncCompletedEventArgs)

XamSearchDataGrid_CellDoubleClicked(Object,CellClickedEventArgs) 2

PCMS_SL.SLSearchEngine.XamSearchDataGrid_CellDoubleClicked(Object,CellClickedEventArgs)

Page 58: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

BeginPRCIScannedDocDocumentsDownloadFileDTO(Byte[],String,AsyncCallback,Object)

N/A

PCMS_SL.SRBusinessManager.IBusinessManager.BeginPRCIScannedDocDocumentsDownloadFileDTO(Byte[],String,AsyncCallback,Object)

Sum: 60

Average: 6

Minimum: 0

Maximum: 20

Standard deviation:

5.8652

Variance:3

4.4

WARNING: The following CQL constraint is not satisfied. 10 types on 2145 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

DTOPRCICustomerFeedbackModuleDetail

23 PCMS_SL.SRBusinessManager.DTOPRCICustomerFeedbackModuleDetail

PRCIJobStatusManagerManagerStatuses

N/A PCMS_SL.SRBusinessManager.PRCIJobStatusManagerManagerStatuses

DTOTraDriverMaterialIssuanceMa 23 PCMS_SL.SRBusinessManager.DTOTraDriverMaterialI

Page 59: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

sterCombo ssuanceMasterCombo

DTOTraDriverMaterialIssuanceMasterSearchList

31 PCMS_SL.SRBusinessManager.DTOTraDriverMaterialIssuanceMasterSearchList

DTOTraDriverMaterialCollectionMaster

59 PCMS_SL.SRBusinessManager.DTOTraDriverMaterialCollectionMaster

DTOTraDriverMaterialCollectionMasterCombo

23 PCMS_SL.SRBusinessManager.DTOTraDriverMaterialCollectionMasterCombo

DTOTraDriverMaterialCollectionMasterSearchList

31 PCMS_SL.SRBusinessManager.DTOTraDriverMaterialCollectionMasterSearchList

DTOTraEmployeeInductionTrainingSearchList

23 PCMS_SL.SRBusinessManager.DTOTraEmployeeInductionTrainingSearchList

DTOTraImprovementOppertunitySearchList

27 PCMS_SL.SRBusinessManager.DTOTraImprovementOppertunitySearchList

SLParentClassOfDTOOpeningBalanceDetailj0uXDPtn

3 PCMS_SL.SRBusinessManager.SLParentClassOfDTOOpeningBalanceDetailj0uXDPtn

Sum: 243

Average: 24.3

Minimum: 0

Maximum: 59

Standard deviation: 15.337

Variance: 235.21

WARNING: The following CQL constraint is not satisfied. 10 fields on 17620 tested match the condition. --> Group {Naming Conventions \ Name too long} // <Name>Avoid fields with name too long</Name>WARN IF Count > 0 IN SELECT TOP 10 FIELDS WHERE  NameLike "^[^\<]{35,}.*$" AND  !IsInFrameworkAssembly

// The regex matches fields with name longer // than 35 characters.// Field Name doesn't contain the type and // namespace prefix, FullName does.      

fields

Size of instance

Full Name

giMastersMenuKeyMasterLeasingCompany

4 PCMS_SL.MainPCMS.giMastersMenuKeyMasterLeasingCompany

giMastersMenuKeyMasterJobCardStatus

4 PCMS_SL.MainPCMS.giMastersMenuKeyMasterJobCardStatus

giMastersMenuKeyMasterDepositS 4 PCMS_SL.MainPCMS.giMastersMenuKeyMasterDe

Page 60: To study pcms   pegasus erp cargo management system-release-7 from architecture perspective.

tatus positStatus

giMastersMenuKeyMasterShippingTerms

4 PCMS_SL.MainPCMS.giMastersMenuKeyMasterShippingTerms

giMastersMenuKeyMasterFreightCategories

4 PCMS_SL.MainPCMS.giMastersMenuKeyMasterFreightCategories

giMastersMenuKeyMasterJobCategories

4 PCMS_SL.MainPCMS.giMastersMenuKeyMasterJobCategories

giMastersMenuKeyMasterContainerStatus

4 PCMS_SL.MainPCMS.giMastersMenuKeyMasterContainerStatus

giMastersMenuKeyMasterContainerClassification

4 PCMS_SL.MainPCMS.giMastersMenuKeyMasterContainerClassification

giMastersMenuKeyMasterEquipmentsTypes

4 PCMS_SL.MainPCMS.giMastersMenuKeyMasterEquipmentsTypes

gigMastersMenuKeyMasterAdministrationGallery

4 PCMS_SL.MainPCMS.gigMastersMenuKeyMasterAdministrationGallery

Sum: 40

Average: 4

Minimum: 4

Maximum: 4

Standard deviation: 0

Variance: 0

Types MetricsIf the code base analyzed has too many types, NDepend doesn't list Types Metrics to avoid a too big report. The section Types Metrics can be activated by unchecking the option: NDepend Project Properties > Report > Avoid too big report for large code base > Hide section Types Metrics if...It is recommended to use the NDepend interactive UI capabilities to browse large applications.