Dependency Graph

Online documentation:

Dependency Matrix

Online documentation:

Visualizing Code Metrics through Treemaping

With the Online documentation, understand how Treemaping can help you see patterns in your code base, that would be hard to spot with other ways.

Abstractness versus Instability Diagram

The Abstractness versus Instability Diagram helps to detect which assemblies are potentially painful to maintain (i.e concrete and stable) and which assemblies are potentially useless (i.e abstract and instable).

Online documentation:

For beginners: Where to start

Code queries and rules results are truncated to list a maximum of 100 code elements in this report

Does this report gets too large?

Quick Tips

Main
Main \ Rules
Main \ Quality Gates
Main \ Quality Gates \ Quality Gates
Main \ Rules \ Code Smells
Main \ Rules \ Object Oriented Design
Main \ Rules \ Design
Main \ Rules \ Architecture
Main \ Rules \ Immutability
Main \ Rules \ Naming Conventions
Main \ Group of Queries \ Hot Spots
Main \ Group of Queries \ Object Oriented Design
Main \ Group of Queries \ API Breaking Changes
Main \ Group of Queries \ Code Coverage
Main \ Group of Queries \ Dead Code
Main \ Group of Queries \ Code Diff Summary
Main \ Metrics \ Application Statistics
Main \ Metrics \ Assemblies Metrics
Main \ Metrics \ Namespaces Metrics
Main \ Metrics \ Types Metrics
Main \ Assemblies Dependencies
Main \ Namespaces Dependencies
Main \ Types Dependencies
Main \ Build Order
Main \ Analysis Log
Main \ Abstractness vs. Instability
Main \ Trend Charts
ndepend report summary application nameChapter12FinalCode (v1.0.0.0)report build date08/28/2023 22:19:48analysis duration01:14.481ndepend version 2023.1.1   Professional Developer Editionbaseline for comparisonBaseline is same code base snapshot.code coverage data Not Defined. To import Code Coverage Data, please read this online documentation.
Get started.Quick tips.Back to NDepend. The present HTML report is a summary of data gathered by the analysis.
It is recommended to use the NDepend interactive UI capabilities
to make the most of NDepend by mastering all aspects of your code.

Diagrams

.NET Assemblies Dependency Graph
Dependency Graph
View as ?fullscaled
.NET Assemblies Dependency Matrix
Dependency Matrix
View as ?fullscaled
Treemap View
Treemap Metric View
View as ?fullscaled
Abstractness versus Instability
Abstractness vs. Instability

Application Metrics

Note: Further Application Statistics are available.
# Lines of Code
246      no diff
6   (NotMyCode)      no diff
Estimated Dev Effort   9.97d      no diff
# Types
24      no diff
1   Assemblies      no diff
10   Namespaces      no diff
70   Methods      no diff
7   Fields      no diff
20   Source Files      no diff
160   Third-Party Elements      no diff
CommentN/A because some assemblies are written in a language different than C#
Debt
7.92%      no diff
Rating   B   2h 19min effort to reach  A
Debt   6h 19min      no diff
The technical-debt is incomplete because no coverage data specified.      
CoverageN/A because no coverage data specified
Method Complexity
17   Max      no diff
1.41   Average      no diff
Quality Gates
Fail2
Warn0
Pass9
Rules
Critical1
Violated11
Ok152
Issues
All33
Blocker0
Critical0
High8
Medium19
Low6
Suppressed0

Quality Gates summary

902
graphHelp Some Quality Gates fail. The build
can be stopped upon quality gate
failure. Online documentation.
graphHelp Quality Gates that measure diff cannot
be run on the baseline. Hence they
have blank trend and baseline value.
NameTrendBaseline ValueValueGroup
warning   Percentage Coverage
okwarningN/A %warningN/A %Project Rules \ Quality Gates
warning   Percentage Coverage on New Code
okwarningN/A %warningN/A %Project Rules \ Quality Gates
warning   Percentage Coverage on Refactored Code
okwarningN/A %warningN/A %Project Rules \ Quality Gates
warning   Blocker Issues
okwarning0 issueswarning0 issuesProject Rules \ Quality Gates
warning   Critical Issues
okwarning0 issueswarning0 issuesProject Rules \ Quality Gates
warning   New Blocker / Critical / High Issues
warning0 issuesProject Rules \ Quality Gates
warningCritical   Critical Rules Violated
okwarningCritical1 ruleswarningCritical1 rulesProject Rules \ Quality Gates
warning   Percentage Debt
okwarning7.92 %warning7.92 %Project Rules \ Quality Gates
warning   New Debt since Baseline
warning0 man-daysProject Rules \ Quality Gates
warningCritical   Debt Rating per Namespace
okwarningCritical1 namespaceswarningCritical1 namespacesProject Rules \ Quality Gates
warning   New Annual Interest since Baseline
warning0 man-daysProject Rules \ Quality Gates

Rules summary

152111
  • Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 0
  • Number of Rules violated: 12
graphHelp Rules can be checked live at
development-time, from within Visual
Studio. Online documentation.
graphHelp Rules that rely on diff cannot be
run on the baseline. Hence they
have blank # Issues Fixed or Added.
Name# IssuesAddedFixedElementsGroup
warning   Avoid methods potentially poorly commented
100 methodProject Rules \ Code Smells
warning   A stateless class or structure might be turned into a static type
100 typeProject Rules \ Object Oriented Design
warning   Non-static classes should be instantiated or turned to static
1100 typesProject Rules \ Object Oriented Design
warning   Methods should be declared static if possible
100 methodProject Rules \ Object Oriented Design
warning   Avoid namespaces with few types
500 namespacesProject Rules \ Design
warning   Don't use obsolete types, methods or fields
100 methodProject Rules \ Design
warningCritical   Avoid namespaces mutually dependent
400 membersProject Rules \ Architecture
warning   Avoid namespaces dependency cycles
100 namespaceProject Rules \ Architecture
warning   Fields should be marked as ReadOnly when possible
100 fieldProject Rules \ Immutability
warning   Record classes should be immutable
100 typeProject Rules \ Immutability
warning   Avoid prefixing type name with parent namespace name
500 typesProject Rules \ Naming Conventions
warning   Avoid naming types and namespaces with the same identifier
100 typeProject Rules \ Naming Conventions

Application Statistics

Stat # Occurences Avg StdDev Max
Properties on interfaces 2 interfaces 415 properties on Packt.CloudySkiesAir.Chapter12.Flight.Scheduling.IFlightInfo
Methods on interfaces 2 interfaces 516 methods on Packt.CloudySkiesAir.Chapter12.Flight.Scheduling.IFlightInfo
Arguments on methods on interfaces 10 methods 0.10.31 arguments on Packt.CloudySkiesAir.Chapter12.Flight.Scheduling.IFlightInfo.set_Status(FlightStatus)
Public properties on classes 24 Classes 1.712.178 public properties on Packt.CloudySkiesAir.Chapter12.Flight.Scheduling.Search.FlightSearch
Public methods on classes 24 classes 5.834.517 public methods on Packt.CloudySkiesAir.Chapter12.Flight.Scheduling.Search.FlightSearch
Arguments on public methods on classes 140 methods 0.550.664 arguments on Packt.CloudySkiesAir.Chapter12.Flight.Baggage.BaggageCalculator.CalculatePrice(Int32,Int32,Int32,Boolean)
IL instructions in non-abstract methods 152 methods 13.4728.08274 IL instructions in Packt.CloudySkiesAir.Chapter12.Flight.Scheduling.FlightScheduler.Search(FlightSearch)
Cyclomatic complexity on non abstract Methods 152 Methods 1.83.05 CC = 30 for Packt.CloudySkiesAir.Chapter12.Flight.Scheduling.FlightScheduler.Search(FlightSearch)

Assemblies Metrics

If you wish to define thresholds on assemblies' Code Metrics, consider writing some Rules.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.

If you wish to define thresholds on types' Code Metrics, consider writing some Rule.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.

Types Metrics : Code Quality

Type Name Type Rank# Lines Of Code# IL Instructions# Lines Of Comment% CommentCyclomatic ComplexityIL Cyclomatic Complexity% CoverageAfferent CouplingEfferent Coupling Type Namespace
NullableContextAttribute5.6807---1-216System.Runtime.CompilerServices
EmbeddedAttribute2.2504---1-33Microsoft.CodeAnalysis
IFlightInfo2.18-------106Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
NullableAttribute2.06019---2-127System.Runtime.CompilerServices
AirportEvent1.53616600525-618Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
Airport1.081370001114-613Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
FlightStatus1.06-------32Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
FlightFilterBase0.8504---1-45Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
FlightInfoBase0.661278001212-318Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
ICargoItem0.42--002--26Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
BoardingStatus0.25-------12Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
Passenger0.251456001415-112Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
FlightSearch0.251660001617-110Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
DateHelpers0.242110011-17Packt.CloudySkiesAir.Chapter12 .Helpers
FlightScheduler0.2434357002439-124Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
BoardingProcessor0.1541295001837-023Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
BaggageCalculator0.1527167001011-012Packt.CloudySkiesAir.Chapter12 .Flight.Baggage
PassengerFlightInfo0.155440056-010Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
FreightFlightInfo0.155450056-013Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
Flight0.151140012-04Packt.CloudySkiesAir.Chapter12 .Flight
FlightTracker0.1526269001321-025Packt.CloudySkiesAir.Chapter12 .Flight
RefSafetyRulesAttribute0.1507---1-06System.Runtime.CompilerServices
Program0.15190012-06Packt.CloudySkiesAir.Chapter12
AirportFilter0.157430068-014Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
CargoItem0.156470067-014Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
CharterFlightInfo0.1511780057-021Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
FlightDurationFilter0.1598400917-010Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
FlightTimeFilter0.15886001119-011Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search


  

Types Metrics : Code Members and Inheritance

Type Name # Instance Methods Nb Static Methods Nb Properties # Fields# Children ClassesDepth Of Inheritance Tree Type Namespace
NullableContextAttribute100102System.Runtime.CompilerServices
EmbeddedAttribute100002Microsoft.CodeAnalysis
IFlightInfo6050--Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
NullableAttribute200102System.Runtime.CompilerServices
AirportEvent1423201Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
Airport1003301Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
FlightStatus------Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
FlightFilterBase200031Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
FlightInfoBase1205431Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
ICargoItem4030--Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
BoardingStatus------Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
Passenger1507601Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
FlightSearch1708801Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
DateHelpers010001Packt.CloudySkiesAir.Chapter12 .Helpers
FlightScheduler600101Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
BoardingProcessor802301Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
BaggageCalculator421401Packt.CloudySkiesAir.Chapter12 .Flight.Baggage
PassengerFlightInfo601102Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
FreightFlightInfo602202Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
Flight200001Packt.CloudySkiesAir.Chapter12 .Flight
FlightTracker700101Packt.CloudySkiesAir.Chapter12 .Flight
RefSafetyRulesAttribute100102System.Runtime.CompilerServices
Program110001Packt.CloudySkiesAir.Chapter12
AirportFilter602202Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
CargoItem702201Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
CharterFlightInfo301102Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
FlightDurationFilter602202Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
FlightTimeFilter803302Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search


  

Types Metrics : Lack Of Cohesion Of Methods and Association Between Classes

Type Name Lack Of Cohesion Of MethodsLack Of Cohesion Of Methods HSAssociation Between Classes Type Namespace
NullableContextAttribute001System.Runtime.CompilerServices
EmbeddedAttribute001Microsoft.CodeAnalysis
IFlightInfo--0Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
NullableAttribute001System.Runtime.CompilerServices
AirportEvent0012Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
Airport003Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
FlightStatus--0Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
FlightFilterBase001Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
FlightInfoBase0010Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
ICargoItem--6Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
BoardingStatus--0Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
Passenger002Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
FlightSearch001Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
DateHelpers002Packt.CloudySkiesAir.Chapter12 .Helpers
FlightScheduler0034Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
BoardingProcessor0.250.3326Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
BaggageCalculator0013Packt.CloudySkiesAir.Chapter12 .Flight.Baggage
PassengerFlightInfo007Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
FreightFlightInfo003Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
Flight002Packt.CloudySkiesAir.Chapter12 .Flight
FlightTracker0.570.6731Packt.CloudySkiesAir.Chapter12 .Flight
RefSafetyRulesAttribute001System.Runtime.CompilerServices
Program002Packt.CloudySkiesAir.Chapter12
AirportFilter004Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
CargoItem009Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
CharterFlightInfo0016Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights
FlightDurationFilter006Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search
FlightTimeFilter008Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search

Namespaces Metrics

If you wish to define thresholds on namespaces' Code Metrics, consider writing some Code Rules.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Namespaces # lines of code# IL instruction # Types # lines of comment% Comment% CoverageAfferent CouplingEfferent Coupling
Microsoft.CodeAnalysis041---12
Chapter12.dll::System.Runtime .CompilerServices0333---73
Packt.CloudySkiesAir.Chapter1219100-03
Packt.CloudySkiesAir.Chapter12 .Helpers211100-14
Packt.CloudySkiesAir.Chapter12 .Flight27283200-010
Packt.CloudySkiesAir.Chapter12 .Flight.Boarding55351300-08
Packt.CloudySkiesAir.Chapter12 .Flight.Baggage27167100-04
Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling53593400-312
Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search40277500-15
Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights41319700-29

Quality Gates
902

ok   Quality Gate Pass:    Percentage Coverage

Scalar Result: N/A %

ok   Quality Gate Pass:    Percentage Coverage on New Code

Scalar Result: N/A %

ok   Quality Gate Pass:    Percentage Coverage on Refactored Code

Scalar Result: N/A %

ok   Quality Gate Pass:    Blocker Issues

No issue matched

ok   Quality Gate Pass:    Critical Issues

No issue matched

ok   Quality Gate Pass:    New Blocker / Critical / High Issues

No issue matched

ok   Quality Gate Fail:    Critical Rules Violated

1 rule matched

1 ruleissuesFull Name
Avoid namespaces mutually dependent0

4 issues

Rule
ok   Quality Gate Pass:    Percentage Debt

Scalar Result: 7.92 %

ok   Quality Gate Pass:    New Debt since Baseline

Scalar Result: 0 man-days

ok   Quality Gate Fail:    Debt Rating per Namespace

1 namespace matched

1 namespacedebtRatingdebtRatiodevTimeInManDaydebtInManDayissuesFull Name
namespacePackt.CloudySkiesAir.Chapter12 .Flight.Scheduling0D027.4102d 0h04h 27min0

First 5 of 10 issues

Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling
ok   Quality Gate Pass:    New Annual Interest since Baseline

Scalar Result: 0 man-days

Hot Spots
000

    Code Smells
    000

      Code Smells Regression
      000

        Object Oriented Design
        000

          Design
          000

            Architecture
            000

              API Breaking Changes
              000

                Code Coverage
                000

                  Dead Code
                  000

                    Security
                    000

                      Visibility
                      000

                        Immutability
                        000

                          Naming Conventions
                          000

                            Source Files Organization
                            000

                              This group contains children groups
                              .NET Framework Usage
                              000

                                This group contains children groups
                                API Usage
                                000

                                  Defining JustMyCode
                                  000

                                    This group contains children groups
                                    Trend Metrics
                                    000

                                      Code Diff Summary
                                      000

                                        Rules extracted from Source Code
                                        000

                                          Code Smells
                                          710

                                          warning   Rule Violated:    Avoid methods potentially poorly commented

                                          1 method matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          1 methodPercentage Comment# lines of code (LOC)# lines of commentnbLinesOfCodeNotCommentedDebtAnnual InterestFull Name
                                          methodSearch(FlightSearch)000260002602min 36s016minPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler .Search(FlightSearch)

                                          Object Oriented Design
                                          1130

                                          warning   Rule Violated:    A stateless class or structure might be turned into a static type

                                          1 type matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          1 typemethodsUsingMeDebtSeverityFull Name
                                          classFlight0no method01min 0s0LowPackt.CloudySkiesAir.Chapter12 .Flight.Flight
                                          warning   Rule Violated:    Non-static classes should be instantiated or turned to static

                                          11 types matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          11 typesVisibilityDebtSeverityFull Name
                                          classFlight03Public032min 0s03MediumPackt.CloudySkiesAir.Chapter12 .Flight.Flight
                                          classFlightTracker04Public042min 0s04MediumPackt.CloudySkiesAir.Chapter12 .Flight.FlightTracker
                                          classBoardingProcessor02Public022min 0s02MediumPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessor
                                          classPassenger00Public002min 0s00MediumPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.Passenger
                                          classBaggageCalculator01Public012min 0s01MediumPackt.CloudySkiesAir.Chapter12 .Flight.Baggage.BaggageCalculator
                                          classAirport05Public052min 0s05MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Airport
                                          classFlightScheduler09Public092min 0s09MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler
                                          classAirportFilter10Public102min 0s10MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .AirportFilter
                                          classFlightDurationFilter08Public082min 0s08MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightDurationFilter
                                          classFlightSearch06Public062min 0s06MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightSearch
                                          classFlightTimeFilter07Public072min 0s07MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightTimeFilter
                                          warning   Rule Violated:    Methods should be declared static if possible

                                          1 method matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          1 methodstaticFieldsUsedmethodsCallingMeDebtSeverityFull Name
                                          methodBuildMessage(String,String)0no field0no method00min 30s0MediumPackt.CloudySkiesAir.Chapter12 .Flight.Flight.BuildMessage(String ,String)

                                          Design
                                          1020

                                          warning   Rule Violated:    Avoid namespaces with few types

                                          5 namespaces matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          warning   Rule Violated:    Don't use obsolete types, methods or fields

                                          1 method matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          1 methodobsoleteUsageDebtSeverityFull Name
                                          ctor.ctor()0

                                          1 method

                                          05min0HighPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights .CharterFlightInfo..ctor()

                                          Architecture
                                          611

                                          warningCritical   Critical Rule Violated:    Avoid namespaces mutually dependent

                                          4 members matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          4 types and methodsshouldntUsebecauseNamespaceshouldntUseNamespaceDebtAnnual InterestFull Name
                                          classFlightScheduler1

                                          2 types

                                          namespacePackt.CloudySkiesAir.Chapter12 .Flight.SchedulingnamespacePackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search120min120minPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler
                                          methodSearch(FlightSearch)0

                                          First 5 of 8 methods 8 properties

                                          namespacePackt.CloudySkiesAir.Chapter12 .Flight.SchedulingnamespacePackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search01h 0min220minPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler .Search(FlightSearch)
                                          methodSearch(List<FlightFilterBase>)3

                                          1 method

                                          • methodPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightFilterBase.ShouldInclude (IFlightInfo)
                                          namespacePackt.CloudySkiesAir.Chapter12 .Flight.SchedulingnamespacePackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search315min320minPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler .Search(List<FlightFilterBase>)
                                          interfaceIFlightInfo2

                                          1 type

                                          • enumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights .FlightStatus
                                          namespacePackt.CloudySkiesAir.Chapter12 .Flight.SchedulingnamespacePackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights215min01h 1minPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.IFlightInfo
                                          warning   Rule Violated:    Avoid namespaces dependency cycles

                                          1 namespace matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)

                                          Immutability
                                          1120

                                          warning   Rule Violated:    Fields should be marked as ReadOnly when possible

                                          1 field matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          1 fieldMethodsReadingMeButNotAssigningMeMethodsAssigningMeDebtSeverityFull Name
                                          field_priorityLaneGroups0

                                          3 methods

                                          0no method05min0MediumPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessor ._priorityLaneGroups
                                          warning   Rule Violated:    Record classes should be immutable

                                          1 type matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)

                                          Naming Conventions
                                          1920

                                          warning   Rule Violated:    Avoid prefixing type name with parent namespace name

                                          5 types matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          5 typesnamespaceNameDebtSeverityFull Name
                                          classFlightFlight110min1MediumPackt.CloudySkiesAir.Chapter12 .Flight.Flight
                                          classFlightTrackerFlight010min0MediumPackt.CloudySkiesAir.Chapter12 .Flight.FlightTracker
                                          classBoardingProcessorBoarding210min2MediumPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessor
                                          enumBoardingStatusBoarding410min4MediumPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingStatus
                                          classBaggageCalculatorBaggage310min3MediumPackt.CloudySkiesAir.Chapter12 .Flight.Baggage.BaggageCalculator
                                          warning   Rule Violated:    Avoid naming types and namespaces with the same identifier

                                          1 type matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          1 typenamespacesDebtSeverityFull Name
                                          classFlight0

                                          1 namespace

                                          012min0HighPackt.CloudySkiesAir.Chapter12 .Flight.Flight

                                          Hot Spots

                                          ok   Code Query:    Types Hot Spots

                                          15 types matched

                                          15 typesDebtIssuesAnnual InterestBreaking Point# lines of code (LOC)DebtRatingDebtRatioFull Name
                                          classFlightScheduler001h 39min01

                                          5 issues

                                          001h 19min051y 91d013402D0127.45Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler
                                          classAirportEvent0126min07

                                          1 issue

                                          0320min041y 109d11604C0410.75Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.AirportEvent
                                          classFlight0225min00

                                          5 issues

                                          0226min12357d12100E0073.78Packt.CloudySkiesAir.Chapter12 .Flight.Flight
                                          classBoardingProcessor0317min02

                                          3 issues

                                          056min032y 304d004107A063.58Packt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessor
                                          interfaceIFlightInfo0415min05

                                          1 issue

                                          • Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.IFlightInfo} violates rule 'Avoid namespaces mutually dependent'
                                          011h 1min1488d14N/A03C0314.47Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.IFlightInfo
                                          classFlightTracker0612min03

                                          2 issues

                                          074min 0s013y032605A053.97Packt.CloudySkiesAir.Chapter12 .Flight.FlightTracker
                                          classBaggageCalculator0512min04

                                          2 issues

                                          064min 0s023y022708A073.56Packt.CloudySkiesAir.Chapter12 .Flight.Baggage.BaggageCalculator
                                          enumBoardingStatus0710min06

                                          1 issue

                                          • Packt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingStatus} violates rule 'Avoid prefixing type name with parent namespace name'
                                          082min 0s005y13N/A01D0223.15Packt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingStatus
                                          classCharterFlightInfo085min13

                                          1 issue

                                          0420min1391d071113A083.4Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights .CharterFlightInfo
                                          classPassenger122min 0s14

                                          1 issue

                                          132min 0s101y051414A130.54Packt.CloudySkiesAir.Chapter12 .Flight.Boarding.Passenger
                                          classAirport132min 0s11

                                          1 issue

                                          142min 0s111y061309A120.77Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Airport
                                          classAirportFilter142min 0s08

                                          1 issue

                                          092min 0s061y10710A091.29Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .AirportFilter
                                          classFlightDurationFilter092min 0s09

                                          1 issue

                                          102min 0s081y08911A101.16Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightDurationFilter
                                          classFlightSearch102min 0s10

                                          1 issue

                                          112min 0s071y041612A140.46Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightSearch
                                          classFlightTimeFilter112min 0s12

                                          1 issue

                                          122min 0s091y09806A111.01Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightTimeFilter
                                          ok   Code Query:    Types to Fix Priority

                                          1 type matched

                                          1 typeBreaking PointDebtAnnual InterestIssues# lines of code (LOC)DebtRatingDebtRatioFull Name
                                          classFlightScheduler01y 91d01h 39min01h 19min0

                                          5 issues

                                          0340D027.45Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler
                                          ok   Code Query:    Issues to Fix Priority

                                          33 issues matched

                                          33 issuesDebtAnnual InterestBreaking PointCodeElementFull Name
                                          Medium issue on: methodPackt.CloudySkiesAir.Chapter12 .Flight .Scheduling.FlightScheduler .Search(FlightSearch)192min 36s0816min2659dmethodPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler .Search(FlightSearch)Rule violated: Avoid methods potentially poorly commented
                                          {I:Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.IFlightInfo}0415min001h 1min2588dinterfacePackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.IFlightInfoRule violated: Avoid namespaces mutually dependent
                                          Medium issue on: methodPackt.CloudySkiesAir.Chapter12 .Flight .Flight.BuildMessage(String ,String)320min 30s142min 0s2391dmethodPackt.CloudySkiesAir.Chapter12 .Flight.Flight.BuildMessage(String ,String)Rule violated: Methods should be declared static if possible
                                          High issue on: ctorPackt .CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights .CharterFlightInfo..ctor()155min0620min2491dctorPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights .CharterFlightInfo..ctor()Rule violated: Don't use obsolete types, methods or fields
                                          High issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Flight0612min0720min22219dclassPackt.CloudySkiesAir.Chapter12 .Flight.FlightRule violated: Avoid naming types and namespaces with the same identifier
                                          High issue on: methodPackt.CloudySkiesAir.Chapter12 .Flight .Scheduling.FlightScheduler .Search(List<FlightFilterBase>)0515min0220min21266dmethodPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler .Search(List<FlightFilterBase>)Rule violated: Avoid namespaces mutually dependent
                                          High issue on: classPackt.CloudySkiesAir.Chapter12 .Flight .Scheduling.FlightScheduler0320min0120min20355dclassPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightSchedulerRule violated: Avoid namespaces mutually dependent
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Flight212min 0s132min 0s121yclassPackt.CloudySkiesAir.Chapter12 .Flight.FlightRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.FlightTracker282min 0s152min 0s151yclassPackt.CloudySkiesAir.Chapter12 .Flight.FlightTrackerRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight .Boarding.BoardingProcessor292min 0s172min 0s161yclassPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessorRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.Passenger302min 0s162min 0s131yclassPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.PassengerRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight .Baggage.BaggageCalculator252min 0s092min 0s141yclassPackt.CloudySkiesAir.Chapter12 .Flight.Baggage.BaggageCalculatorRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Airport262min 0s102min 0s091yclassPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.AirportRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight .Scheduling.FlightScheduler272min 0s112min 0s111yclassPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightSchedulerRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .AirportFilter202min 0s122min 0s101yclassPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .AirportFilterRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightDurationFilter222min 0s242min 0s171yclassPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightDurationFilterRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightSearch232min 0s232min 0s191yclassPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightSearchRule violated: Non-static classes should be instantiated or turned to static
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightTimeFilter242min 0s262min 0s181yclassPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightTimeFilterRule violated: Non-static classes should be instantiated or turned to static
                                          High issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.AirportEvent0226min0520min081y 109dclassPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.AirportEventRule violated: Record classes should be immutable
                                          Medium issue on: fieldPackt.CloudySkiesAir.Chapter12 .Flight .Boarding.BoardingProcessor ._priorityLaneGroups175min252min 0s072y 182dfieldPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessor ._priorityLaneGroupsRule violated: Fields should be marked as ReadOnly when possible
                                          High issue on: methodPackt.CloudySkiesAir.Chapter12 .Flight .Scheduling.FlightScheduler .Search(FlightSearch)011h 0min0320min062y 337dmethodPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler .Search(FlightSearch)Rule violated: Avoid namespaces mutually dependent
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Flight0810min222min 0s055yclassPackt.CloudySkiesAir.Chapter12 .Flight.FlightRule violated: Avoid prefixing type name with parent namespace name
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.FlightTracker0710min192min 0s035yclassPackt.CloudySkiesAir.Chapter12 .Flight.FlightTrackerRule violated: Avoid prefixing type name with parent namespace name
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight .Boarding.BoardingProcessor0910min182min 0s015yclassPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessorRule violated: Avoid prefixing type name with parent namespace name
                                          {E:Packt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingStatus}1110min212min 0s045yenumPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingStatusRule violated: Avoid prefixing type name with parent namespace name
                                          Medium issue on: classPackt.CloudySkiesAir.Chapter12 .Flight .Baggage.BaggageCalculator1010min202min 0s025yclassPackt.CloudySkiesAir.Chapter12 .Flight.Baggage.BaggageCalculatorRule violated: Avoid prefixing type name with parent namespace name
                                          High issue on: namespacePackt.CloudySkiesAir.Chapter12 .Flight.Scheduling002h 0min0420min006ynamespacePackt.CloudySkiesAir.Chapter12 .Flight.SchedulingRule violated: Avoid namespaces dependency cycles
                                          Low issue on: classPackt.CloudySkiesAir.Chapter12 .Flight.Flight311min 0s300min 0s3000:00:00classPackt.CloudySkiesAir.Chapter12 .Flight.FlightRule violated: A stateless class or structure might be turned into a static type
                                          Low issue on: namespacePackt .CloudySkiesAir.Chapter12165min310min 0s3100:00:00namespacePackt.CloudySkiesAir.Chapter12Rule violated: Avoid namespaces with few types
                                          Low issue on: namespacePackt.CloudySkiesAir.Chapter12 .Flight.Baggage185min320min 0s3200:00:00namespacePackt.CloudySkiesAir.Chapter12 .Flight.BaggageRule violated: Avoid namespaces with few types
                                          Low issue on: namespacePackt.CloudySkiesAir.Chapter12 .Flight125min270min 0s2700:00:00namespacePackt.CloudySkiesAir.Chapter12 .FlightRule violated: Avoid namespaces with few types
                                          Low issue on: namespacePackt.CloudySkiesAir.Chapter12 .Flight.Boarding135min280min 0s2800:00:00namespacePackt.CloudySkiesAir.Chapter12 .Flight.BoardingRule violated: Avoid namespaces with few types
                                          Low issue on: namespacePackt.CloudySkiesAir.Chapter12 .Flight.Scheduling145min290min 0s2900:00:00namespacePackt.CloudySkiesAir.Chapter12 .Flight.SchedulingRule violated: Avoid namespaces with few types
                                          ok   Code Query:    Debt and Issues per Rule

                                          12 rules matched

                                          12 rulesIssuesDebtAnnual InterestBreaking PointCategoryFull Name
                                          Avoid namespaces dependency cycles04

                                          1 issue

                                          002h 0min0320min006yProject Rules \ ArchitectureRule
                                          Avoid namespaces mutually dependent03

                                          4 issues

                                          011h 50min002h 3min05326dProject Rules \ ArchitectureRule
                                          Avoid prefixing type name with parent namespace name01

                                          5 issues

                                          0250min0710min015yProject Rules \ Naming ConventionsRule
                                          Record classes should be immutable05

                                          1 issue

                                          0326min0420min031y 109dProject Rules \ ImmutabilityRule
                                          Avoid namespaces with few types02

                                          5 issues

                                          0425min100min 0s1000:00:00Project Rules \ DesignRule
                                          Non-static classes should be instantiated or turned to static00

                                          First 5 of 11 issues

                                          0522min0122min041yProject Rules \ Object Oriented DesignRule
                                          Avoid naming types and namespaces with the same identifier10

                                          1 issue

                                          0612min0220min06219dProject Rules \ Naming ConventionsRule
                                          Don't use obsolete types, methods or fields11

                                          1 issue

                                          085min0520min0891dProject Rules \ DesignRule
                                          Fields should be marked as ReadOnly when possible09

                                          1 issue

                                          075min092min 0s022y 182dProject Rules \ ImmutabilityRule
                                          Avoid methods potentially poorly commented07

                                          1 issue

                                          092min 36s0616min0959dProject Rules \ Code SmellsRule
                                          A stateless class or structure might be turned into a static type08

                                          1 issue

                                          101min 0s110min 0s1100:00:00Project Rules \ Object Oriented DesignRule
                                          Methods should be declared static if possible06

                                          1 issue

                                          110min 30s082min 0s0791dProject Rules \ Object Oriented DesignRule
                                          ok   Code Query:    New Debt and Issues per Rule

                                          No rule matched

                                          ok   Code Query:    Debt and Issues per Code Element

                                          24 code elements matched

                                          24 code elementsIssuesDebtAnnual InterestBreaking PointFull Name
                                          namespacePackt.CloudySkiesAir.Chapter12 .Flight.Scheduling04

                                          2 issues

                                          002h 5min0620min006y 91dPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling
                                          methodSearch(FlightSearch)05

                                          2 issues

                                          011h 2min0136min061y 260dPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler .Search(FlightSearch)
                                          classAirportEvent08

                                          1 issue

                                          0226min0720min071y 109dPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.AirportEvent
                                          classFlight00

                                          4 issues

                                          0325min0224min081y 15dPackt.CloudySkiesAir.Chapter12 .Flight.Flight
                                          classFlightScheduler01

                                          2 issues

                                          0422min0322min15356dPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler
                                          methodSearch(List<FlightFilterBase>)11

                                          1 issue

                                          0615min0420min16266dPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler .Search(List<FlightFilterBase>)
                                          interfaceIFlightInfo10

                                          1 issue

                                          • Packt.CloudySkiesAir.Chapter12 .Flight.Scheduling.IFlightInfo} violates rule 'Avoid namespaces mutually dependent'
                                          0515min001h 1min1988dPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.IFlightInfo
                                          classFlightTracker03

                                          2 issues

                                          0912min104min 0s023yPackt.CloudySkiesAir.Chapter12 .Flight.FlightTracker
                                          classBoardingProcessor02

                                          2 issues

                                          0812min094min 0s033yPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessor
                                          classBaggageCalculator06

                                          2 issues

                                          0712min084min 0s043yPackt.CloudySkiesAir.Chapter12 .Flight.Baggage.BaggageCalculator
                                          enumBoardingStatus07

                                          1 issue

                                          • Packt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingStatus} violates rule 'Avoid prefixing type name with parent namespace name'
                                          1010min112min 0s015yPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingStatus
                                          namespacePackt.CloudySkiesAir.Chapter1209

                                          1 issue

                                          115min200min 0s2000:00:00Packt.CloudySkiesAir.Chapter12
                                          namespacePackt.CloudySkiesAir.Chapter12 .Flight20

                                          1 issue

                                          155min230min 0s2200:00:00Packt.CloudySkiesAir.Chapter12 .Flight
                                          namespacePackt.CloudySkiesAir.Chapter12 .Flight.Boarding19

                                          1 issue

                                          165min210min 0s2300:00:00Packt.CloudySkiesAir.Chapter12 .Flight.Boarding
                                          field_priorityLaneGroups21

                                          1 issue

                                          145min182min 0s052y 182dPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessor ._priorityLaneGroups
                                          namespacePackt.CloudySkiesAir.Chapter12 .Flight.Baggage23

                                          1 issue

                                          125min220min 0s2100:00:00Packt.CloudySkiesAir.Chapter12 .Flight.Baggage
                                          ctor.ctor()22

                                          1 issue

                                          135min0520min1891dPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Flights .CharterFlightInfo..ctor()
                                          classPassenger18

                                          1 issue

                                          202min 0s142min 0s121yPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.Passenger
                                          classAirport14

                                          1 issue

                                          212min 0s172min 0s131yPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Airport
                                          classAirportFilter13

                                          1 issue

                                          222min 0s162min 0s141yPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .AirportFilter
                                          classFlightDurationFilter15

                                          1 issue

                                          172min 0s152min 0s091yPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightDurationFilter
                                          classFlightSearch17

                                          1 issue

                                          182min 0s132min 0s111yPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightSearch
                                          classFlightTimeFilter16

                                          1 issue

                                          192min 0s192min 0s101yPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightTimeFilter
                                          methodBuildMessage(String,String)12

                                          1 issue

                                          230min 30s122min 0s1791dPackt.CloudySkiesAir.Chapter12 .Flight.Flight.BuildMessage(String ,String)
                                          ok   Code Query:    New Debt and Issues per Code Element

                                          No code element matched

                                          Object Oriented Design

                                          ok   Validated Rule:    Avoid interfaces too big

                                          No type matched

                                          ok   Validated Rule:    Base class should not use derivatives

                                          No type matched

                                          ok   Validated Rule:    Class shouldn't be too deep in inheritance tree

                                          No type matched

                                          ok   Validated Rule:    Class with no descendant should be sealed if possible

                                          No type matched

                                          ok   Validated Rule:    Overrides of Method() should call base.Method()

                                          No method matched

                                          ok   Validated Rule:    Do not hide base class methods

                                          No method matched

                                          warning   Rule Violated:    A stateless class or structure might be turned into a static type

                                          1 type matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          1 typemethodsUsingMeDebtSeverityFull Name
                                          classFlight0no method01min 0s0LowPackt.CloudySkiesAir.Chapter12 .Flight.Flight
                                          warning   Rule Violated:    Non-static classes should be instantiated or turned to static

                                          11 types matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          11 typesVisibilityDebtSeverityFull Name
                                          classFlight03Public032min 0s03MediumPackt.CloudySkiesAir.Chapter12 .Flight.Flight
                                          classFlightTracker04Public042min 0s04MediumPackt.CloudySkiesAir.Chapter12 .Flight.FlightTracker
                                          classBoardingProcessor02Public022min 0s02MediumPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.BoardingProcessor
                                          classPassenger00Public002min 0s00MediumPackt.CloudySkiesAir.Chapter12 .Flight.Boarding.Passenger
                                          classBaggageCalculator01Public012min 0s01MediumPackt.CloudySkiesAir.Chapter12 .Flight.Baggage.BaggageCalculator
                                          classAirport05Public052min 0s05MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Airport
                                          classFlightScheduler09Public092min 0s09MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.FlightScheduler
                                          classAirportFilter10Public102min 0s10MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .AirportFilter
                                          classFlightDurationFilter08Public082min 0s08MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightDurationFilter
                                          classFlightSearch06Public062min 0s06MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightSearch
                                          classFlightTimeFilter07Public072min 0s07MediumPackt.CloudySkiesAir.Chapter12 .Flight.Scheduling.Search .FlightTimeFilter
                                          warning   Rule Violated:    Methods should be declared static if possible

                                          1 method matched

                                          • Formatting: bold means added, underlined means code was changed, strike-bold means removed (since baseline)
                                          1 methodstaticFieldsUsedmethodsCallingMeDebtSeverityFull Name
                                          methodBuildMessage(String,String)0no field0no method00min 30s0MediumPackt.CloudySkiesAir.Chapter12 .Flight.Flight.BuildMessage(String ,String)
                                          ok   Validated Rule:    Constructor should not call a virtual method

                                          No method matched

                                          ok   Validated Rule:    Avoid the Singleton pattern

                                          No type matched

                                          ok   Validated Rule:    Don't assign static fields from instance methods

                                          No field matched

                                          ok   Validated Rule:    Avoid empty interfaces

                                          No type matched

                                          ok   Validated Rule:    Avoid types initialization cycles

                                          No method matched

                                          API Breaking Changes

                                          ok   Validated Rule:    API Breaking Changes: Types

                                          No type matched

                                          ok   Validated Rule:    API Breaking Changes: Methods

                                          No method matched

                                          ok   Validated Rule:    API Breaking Changes: Fields

                                          No field matched

                                          ok   Validated Rule:    API Breaking Changes: Interfaces and Abstract Classes

                                          No type matched

                                          ok   Validated Rule:    Broken serializable types

                                          No type matched

                                          ok   Validated Rule:    Avoid changing enumerations Flags status

                                          No type matched

                                          Code Coverage

                                          ok   Validated Rule:    Code should be tested

                                          No method matched

                                          ok   Validated Rule:    New Methods should be tested

                                          No method matched

                                          ok   Validated Rule:    Methods refactored should be tested

                                          No method matched

                                          ok   Validated Rule:    Assemblies Namespaces and Types should be tested

                                          No code element parent matched

                                          ok   Validated Rule:    Types almost 100% tested should be 100% tested

                                          No type matched

                                          ok   Validated Rule:    Namespaces almost 100% tested should be 100% tested

                                          No namespace matched

                                          ok   Validated Rule:    Types that used to be 100% covered by tests should still be 100% covered

                                          No method matched

                                          ok   Validated Rule:    Types tagged with FullCoveredAttribute should be 100% covered

                                          No method matched

                                          ok   Validated Rule:    Types 100% covered should be tagged with FullCoveredAttribute

                                          No type matched

                                          ok   Validated Rule:    Methods should have a low C.R.A.P score

                                          No method matched

                                          Dead Code

                                          ok   Validated Rule:    Potentially Dead Types

                                          No type matched

                                          ok   Validated Rule:    Potentially Dead Methods

                                          No method matched

                                          ok   Validated Rule:    Potentially Dead Fields

                                          No field matched

                                          ok   Validated Rule:    Wrong usage of IsNotDeadCodeAttribute

                                          No member matched

                                          Code Diff Summary

                                          » Baseline for comparison : Baseline is same code base snapshot.

                                          ok   Code Query:    New assemblies

                                          No assembly matched

                                          ok   Code Query:    Assemblies removed

                                          No assembly matched

                                          ok   Code Query:    Assemblies where code was changed

                                          No assembly matched

                                          ok   Code Query:    New namespaces

                                          No namespace matched

                                          ok   Code Query:    Namespaces removed

                                          No namespace matched

                                          ok   Code Query:    Namespaces where code was changed

                                          No namespace matched

                                          ok   Code Query:    New types

                                          No type matched

                                          ok   Code Query:    Types removed

                                          No type matched

                                          ok   Code Query:    Types where code was changed

                                          No type matched

                                          ok   Code Query:    Heuristic to find types moved from one namespace or assembly to another

                                          No type matched

                                          ok   Code Query:    Types directly using one or several types changed

                                          No type matched

                                          ok   Code Query:    Types indirectly using one or several types changed

                                          No type matched

                                          ok   Code Query:    New methods

                                          No method matched

                                          ok   Code Query:    Methods removed

                                          No method matched

                                          ok   Code Query:    Methods where code was changed

                                          No method matched

                                          ok   Code Query:    Methods directly calling one or several methods changed

                                          No method matched

                                          ok   Code Query:    Methods indirectly calling one or several methods changed

                                          No method matched

                                          ok   Code Query:    New fields

                                          No field matched

                                          ok   Code Query:    Fields removed

                                          No field matched

                                          ok   Code Query:    Third party types that were not used and that are now used

                                          No type matched

                                          ok   Code Query:    Third party types that were used and that are not used anymore

                                          No type matched

                                          ok   Code Query:    Third party methods that were not used and that are now used

                                          No method matched

                                          ok   Code Query:    Third party methods that were used and that are not used anymore

                                          No method matched

                                          ok   Code Query:    Third party fields that were not used and that are now used

                                          No field matched

                                          ok   Code Query:    Third party fields that were used and that are not used anymore

                                          No field matched

                                          Trend Charts


                                          Size


                                          % Coverage and % Debt


                                          Issues


                                          Rules


                                          Quality Gates


                                          Debt

                                          Assemblies Dependencies

                                          Assembly Depends on Is referenced by
                                          Chapter12 v1.0.0.0System.Runtime v7.0.0.0 ; System.Console v7.0.0.0 ; System.Linq v7.0.0.0 ; System.Collections v7.0.0.0 ; -

                                          Assemblies Build Order

                                          1. Chapter12

                                          Assemblies Build Order

                                          1. Chapter12

                                          Analysis Log : Information and Warnings

                                          Here are Logs emitted during NDepend analysis.
                                          The Warnings can reveal potential flaws concerning the health of the build process.
                                          A particular warn can be disabled through the NDepend interactive UI, panel Error List, tick the checkbox Disabled corresponding to the warn to disable.


                                          Message
                                          warningCriticalBegin full analysis with NDepend v2023.1.1
                                          warningCriticalVisual Studio solution file resolved to absolute file path: from {.\Chapter12FinalCode.sln} to {C:\Dev\repos\RefactoringWithCSharp\Chapter12\Ch12FinalCode\Chapter12FinalCode.sln}
                                          warningCriticalOutput directory resolved to absolute directory path: C:\Dev\repos\RefactoringWithCSharp\Chapter12\Ch12FinalCode\NDependOut
                                          warningCritical.NET Assembly resolved from the Visual Studio solution file {C:\Dev\repos\RefactoringWithCSharp\Chapter12\Ch12FinalCode\Chapter12FinalCode.sln} C:\Dev\repos\RefactoringWithCSharp\Chapter12\Ch12FinalCode\Chapter12\bin\Debug\net7.0\Chapter12.dll
                                          warningCritical.NET Assembly filtered out from the Visual Studio solution file {C:\Dev\repos\RefactoringWithCSharp\Chapter12\Ch12FinalCode\Chapter12FinalCode.sln} Chapter12UnitTests
                                          warningCriticalConcurrent mode
                                          warningCritical.NET Assemblies loaded from {C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.10} System.Linq.dll v7.0.0.0 System.Console.dll v7.0.0.0 System.Collections.dll v7.0.0.0 System.Runtime.dll v7.0.0.0
                                          warningCritical20 source files parsed ; all source files found ; all source files in-sync with PDB
                                          warningCritical0 code rule has been extracted from code.
                                          warningCriticalNo dependency cycle detected in assemblies referencement graph.
                                          warningCriticalDo merge code generated by compiler into application code.
                                          warningCriticalNo SuppressMessageAttribute found in the analyzed code base. Since NDepend v2018.2 SuppressMessageAttribute can be used to suppress NDepend issues. Don't forget to set in your projects the compilation symbol CODE_ANALYSIS to use this attribute to suppress NDepend issues.
                                          warningCriticalAnalyse dependencies of your application.
                                          warningCriticalPersisting code model snapshot in {C:\Dev\repos\RefactoringWithCSharp\Chapter12\Ch12FinalCode\NDependOut\NDependAnalysisResult_Chapter12FinalCode_2023Aug28_22h19m48.ndar}
                                          warningCriticalLog trend metrics values.
                                          warningCriticalExecute queries and rules.
                                          warningCritical2 quality gates fail: - 'Critical Rules Violated' value 1 rules greater than fail threshold 0 rules - 'Debt Rating per Namespace' value 1 namespaces greater than fail threshold 0 namespaces
                                          warningCriticalBuilding the report (standard).
                                          warningCriticalNDepend analysis done. Duration: 01:14.481

                                          Abstractness versus Instability Diagram

                                          The Abstractness versus Instability Diagram helps to detect which assemblies are potentially painful to maintain (i.e concrete and stable) and which assemblies are potentially useless (i.e abstract and instable).

                                          • Abstractness: If an assembly contains many abstract types (i.e interfaces and abstract classes) and few concrete types, it is considered as abstract.
                                          • Instability: An assembly is considered stable if its types are used by a lot of types from other assemblies. In this context stable means painful to modify.

                                          Online documentation: