SimplCommerce
Components & Dependencies

Intro

Logical decomposition is a representation of the organization of the main source code, where every and each file is put in exactly one logical component.

  • A software system can have one or more logical decompositions.
  • A logical decomposition can be defined in two ways in Sokrates.
  • First approach is based on the folders structure. Components are mapped to folders at defined folder depth relative to the source code root.
  • Second approach is based on explicit definition of each component. In such explicit definitions, components are explicitly named and their files are selected based on explicitly defined path and content filters.
  • A logical decomposition is considered invalid if a file is selected into two or more components.This constraint is introduced in order to facilitate measuring of dependencies among components.
  • Files not assigned to any component are put into a special "Unclassified" component.
Learn more...
Logical Decompositions Overview

Analyzed system has 3 logical decompositions:

  • primary (4 components)
  • modules (42 components)
  • database tables (2 components)
Logical Decomposition #1: PRIMARY
The decompositions is based on folder structure at level 2 (relative to the source code root).
Components
The "primary" logical decomposition has 4 components.
  • 1,275 files, 60,922 lines of code (100.0% vs. main code).
  • "Modules" is biggest, containing 76.99% of code.
  • "SimplCommerce.Infrastructure" is smallest, containing 2.26% of code.


Modules46903 LOC (76%) 1156 files
Database10542 LOC (17%) 18 files
SimplCommerce.WebHost2100 LOC (3%) 51 files
SimplCommerce.Infrastructure1377 LOC (2%) 50 files
Alternative Visuals
Dependencies
Dependencies among components are static code dependencies among files in different components.
  • Analyzed system has 3 links (arrows) between components.
  • The number on the arrow represents the number of files from referring component that depend on files in referred component.
  • These 3 links contain 321 dependencies.
G Database Database SimplCommerce.Infrastructure SimplCommerce.Infrastructure SimplCommerce.WebHost SimplCommerce.WebHost SimplCommerce.WebHost->SimplCommerce.Infrastructure 4 Modules Modules SimplCommerce.WebHost->Modules 6 Modules->SimplCommerce.Infrastructure 311




Show more details about dependencies...


Logical Decomposition #2: MODULES
The decompositions is based on folder structure at level 3 (relative to the source code root).
Components
The "modules" logical decomposition has 42 components.
  • 1,156 files, 46,903 lines of code (77.0% vs. main code).
  • "SimplCommerce.Module.Catalog" is biggest, containing 20.09% of code.
  • "SimplCommerce.Module.StorageLocal" is smallest, containing 0.1% of code.


SimplCommerce.Module.Catalog9421 LOC (15%) 177 files
SimplCommerce.Module.Core8221 LOC (13%) 202 files
SimplCommerce.Module.Orders3940 LOC (6%) 60 files
SimplCommerce.Module.Cms2798 LOC (4%) 62 files
SimplCommerce.Module.Notifications1601 LOC (2%) 52 files
SimplCommerce.Module.Reviews1598 LOC (2%) 42 files
SimplCommerce.Module.News1473 LOC (2%) 36 files
SimplCommerce.Module.Inventory1350 LOC (2%) 27 files
SimplCommerce.Module.Pricing1179 LOC (1%) 30 files
SimplCommerce.Module.ShoppingCart1126 LOC (1%) 26 files
SimplCommerce.Module.PaymentNganLuong1057 LOC (1%) 22 files
SimplCommerce.Module.Contacts1032 LOC (1%) 32 files
SimplCommerce.Module.Tax960 LOC (1%) 25 files
SimplCommerce.Module.Shipments869 LOC (1%) 21 files
SimplCommerce.Module.Comments768 LOC (1%) 23 files
SimplCommerce.Module.Localization742 LOC (1%) 18 files
SimplCommerce.Module.WishList697 LOC (1%) 22 files
SimplCommerce.Module.PaymentMomo687 LOC (1%) 21 files
SimplCommerce.Module.PaymentPaypalExpress621 LOC (1%) 19 files
SimplCommerce.Module.Search561 LOC (<1%) 15 files
SimplCommerce.Module.PaymentBraintree541 LOC (<1%) 17 files
SimplCommerce.Module.ProductRecentlyViewed517 LOC (<1%) 18 files
SimplCommerce.Module.Vendors513 LOC (<1%) 12 files
SimplCommerce.Module.PaymentCashfree481 LOC (<1%) 16 files
SimplCommerce.Module.Payments474 LOC (<1%) 20 files
SimplCommerce.Module.ShippingTableRate473 LOC (<1%) 10 files
SimplCommerce.Module.HangfireJobs450 LOC (<1%) 16 files
SimplCommerce.Module.ProductComparison426 LOC (<1%) 18 files
SimplCommerce.Module.PaymentStripe378 LOC (<1%) 15 files
SimplCommerce.Module.PaymentCoD319 LOC (<1%) 14 files
SimplCommerce.Module.SignalR283 LOC (<1%) 10 files
SimplCommerce.Module.Shipping255 LOC (<1%) 9 files
SimplCommerce.Module.ActivityLog243 LOC (<1%) 13 files
SimplCommerce.Module.SampleData242 LOC (<1%) 10 files
SimplCommerce.Module.ShippingPrices145 LOC (<1%) 8 files
SimplCommerce.Module.EmailSenderSmtp88 LOC (<1%) 4 files
SimplCommerce.Module.StorageAmazonS378 LOC (<1%) 2 files
SimplCommerce.Module.ShippingFree71 LOC (<1%) 4 files
SimplCommerce.Module.StorageAzureBlob64 LOC (<1%) 2 files
SimplCommerce.Module.EmailSenderSendgrid58 LOC (<1%) 2 files
SimplCommerce.Module.DinkToPdf54 LOC (<1%) 2 files
SimplCommerce.Module.StorageLocal49 LOC (<1%) 2 files
Alternative Visuals
Dependencies
Dependencies among components are static code dependencies among files in different components.
  • Analyzed system has 87 links (arrows) between components.
  • The number on the arrow represents the number of files from referring component that depend on files in referred component.
  • These 87 links contain 279 dependencies.
G SimplCommerce.Module.StorageAmazonS3 SimplCommerce.Module.StorageAmazonS3 SimplCommerce.Module.Core SimplCommerce.Module.Core SimplCommerce.Module.StorageAmazonS3->SimplCommerce.Module.Core 2 SimplCommerce.Module.StorageLocal SimplCommerce.Module.StorageLocal SimplCommerce.Module.StorageLocal->SimplCommerce.Module.Core 2 SimplCommerce.Module.Vendors SimplCommerce.Module.Vendors SimplCommerce.Module.Vendors->SimplCommerce.Module.Core 3 SimplCommerce.Module.StorageAzureBlob SimplCommerce.Module.StorageAzureBlob SimplCommerce.Module.StorageAzureBlob->SimplCommerce.Module.Core 2 SimplCommerce.Module.ProductRecentlyViewed SimplCommerce.Module.ProductRecentlyViewed SimplCommerce.Module.Catalog SimplCommerce.Module.Catalog SimplCommerce.Module.ProductRecentlyViewed->SimplCommerce.Module.Catalog 3 SimplCommerce.Module.ProductRecentlyViewed->SimplCommerce.Module.Core 7 SimplCommerce.Module.DinkToPdf SimplCommerce.Module.DinkToPdf SimplCommerce.Module.DinkToPdf->SimplCommerce.Module.Core 2 SimplCommerce.Module.ShoppingCart SimplCommerce.Module.ShoppingCart SimplCommerce.Module.ShoppingCart->SimplCommerce.Module.Catalog 3 SimplCommerce.Module.ShoppingCart->SimplCommerce.Module.Core 8 SimplCommerce.Module.Pricing SimplCommerce.Module.Pricing SimplCommerce.Module.ShoppingCart->SimplCommerce.Module.Pricing 2 SimplCommerce.Module.Inventory SimplCommerce.Module.Inventory SimplCommerce.Module.Inventory->SimplCommerce.Module.Catalog 4 SimplCommerce.Module.Inventory->SimplCommerce.Module.Core 5 SimplCommerce.Module.HangfireJobs SimplCommerce.Module.HangfireJobs SimplCommerce.Module.PaymentPaypalExpress SimplCommerce.Module.PaymentPaypalExpress SimplCommerce.Module.PaymentPaypalExpress->SimplCommerce.Module.ShoppingCart 1 SimplCommerce.Module.Payments SimplCommerce.Module.Payments SimplCommerce.Module.PaymentPaypalExpress->SimplCommerce.Module.Payments 4 SimplCommerce.Module.Orders SimplCommerce.Module.Orders SimplCommerce.Module.PaymentPaypalExpress->SimplCommerce.Module.Orders 1 SimplCommerce.Module.PaymentPaypalExpress->SimplCommerce.Module.Core 1 SimplCommerce.Module.WishList SimplCommerce.Module.WishList SimplCommerce.Module.WishList->SimplCommerce.Module.Catalog 2 SimplCommerce.Module.WishList->SimplCommerce.Module.Core 2 SimplCommerce.Module.PaymentBraintree SimplCommerce.Module.PaymentBraintree SimplCommerce.Module.PaymentBraintree->SimplCommerce.Module.ShoppingCart 2 SimplCommerce.Module.PaymentBraintree->SimplCommerce.Module.Payments 5 SimplCommerce.Module.PaymentBraintree->SimplCommerce.Module.Orders 1 SimplCommerce.Module.PaymentBraintree->SimplCommerce.Module.Core 2 SimplCommerce.Module.Cms SimplCommerce.Module.Cms SimplCommerce.Module.Cms->SimplCommerce.Module.Core 15 SimplCommerce.Module.ProductComparison SimplCommerce.Module.ProductComparison SimplCommerce.Module.ProductComparison->SimplCommerce.Module.Catalog 3 SimplCommerce.Module.ProductComparison->SimplCommerce.Module.Core 3 SimplCommerce.Module.Tax SimplCommerce.Module.Tax SimplCommerce.Module.Catalog->SimplCommerce.Module.Tax 1 SimplCommerce.Module.Catalog->SimplCommerce.Module.Core 31 SimplCommerce.Module.PaymentMomo SimplCommerce.Module.PaymentMomo SimplCommerce.Module.PaymentMomo->SimplCommerce.Module.ShoppingCart 1 SimplCommerce.Module.PaymentMomo->SimplCommerce.Module.Payments 4 SimplCommerce.Module.PaymentMomo->SimplCommerce.Module.Orders 1 SimplCommerce.Module.PaymentMomo->SimplCommerce.Module.Core 1 SimplCommerce.Module.SignalR SimplCommerce.Module.SignalR SimplCommerce.Module.SignalR->SimplCommerce.Module.Core 3 SimplCommerce.Module.Notifications SimplCommerce.Module.Notifications SimplCommerce.Module.Notifications->SimplCommerce.Module.HangfireJobs 2 SimplCommerce.Module.Notifications->SimplCommerce.Module.SignalR 3 SimplCommerce.Module.Notifications->SimplCommerce.Module.Core 8 SimplCommerce.Module.News SimplCommerce.Module.News SimplCommerce.Module.News->SimplCommerce.Module.Core 7 SimplCommerce.Module.Localization SimplCommerce.Module.Localization SimplCommerce.Module.Localization->SimplCommerce.Module.Core 6 SimplCommerce.Module.EmailSenderSendgrid SimplCommerce.Module.EmailSenderSendgrid SimplCommerce.Module.EmailSenderSendgrid->SimplCommerce.Module.Core 2 SimplCommerce.Module.PaymentCashfree SimplCommerce.Module.PaymentCashfree SimplCommerce.Module.PaymentCashfree->SimplCommerce.Module.ShoppingCart 2 SimplCommerce.Module.PaymentCashfree->SimplCommerce.Module.Payments 4 SimplCommerce.Module.PaymentCashfree->SimplCommerce.Module.Orders 1 SimplCommerce.Module.PaymentCashfree->SimplCommerce.Module.Core 2 SimplCommerce.Module.ActivityLog SimplCommerce.Module.ActivityLog SimplCommerce.Module.ActivityLog->SimplCommerce.Module.Core 3 SimplCommerce.Module.PaymentStripe SimplCommerce.Module.PaymentStripe SimplCommerce.Module.PaymentStripe->SimplCommerce.Module.ShoppingCart 2 SimplCommerce.Module.PaymentStripe->SimplCommerce.Module.Payments 4 SimplCommerce.Module.PaymentStripe->SimplCommerce.Module.Orders 1 SimplCommerce.Module.PaymentStripe->SimplCommerce.Module.Core 2 SimplCommerce.Module.Shipments SimplCommerce.Module.Shipments SimplCommerce.Module.Shipments->SimplCommerce.Module.Inventory 2 SimplCommerce.Module.Shipments->SimplCommerce.Module.Catalog 1 SimplCommerce.Module.Shipments->SimplCommerce.Module.Orders 5 SimplCommerce.Module.Shipments->SimplCommerce.Module.Core 2 SimplCommerce.Module.ShippingPrices SimplCommerce.Module.ShippingPrices SimplCommerce.Module.Shipping SimplCommerce.Module.Shipping SimplCommerce.Module.ShippingPrices->SimplCommerce.Module.Shipping 3 SimplCommerce.Module.ShippingPrices->SimplCommerce.Module.Core 1 SimplCommerce.Module.Search SimplCommerce.Module.Search SimplCommerce.Module.Search->SimplCommerce.Module.Catalog 3 SimplCommerce.Module.Search->SimplCommerce.Module.Core 1 SimplCommerce.Module.Payments->SimplCommerce.Module.ShoppingCart 1 SimplCommerce.Module.Payments->SimplCommerce.Module.Orders 2 SimplCommerce.Module.Payments->SimplCommerce.Module.Core 2 SimplCommerce.Module.ShippingFree SimplCommerce.Module.ShippingFree SimplCommerce.Module.ShippingFree->SimplCommerce.Module.ShippingPrices 2 SimplCommerce.Module.ShippingFree->SimplCommerce.Module.Shipping 2 SimplCommerce.Module.ShippingFree->SimplCommerce.Module.Core 1 SimplCommerce.Module.Tax->SimplCommerce.Module.Core 3 SimplCommerce.Module.EmailSenderSmtp SimplCommerce.Module.EmailSenderSmtp SimplCommerce.Module.EmailSenderSmtp->SimplCommerce.Module.Core 3 SimplCommerce.Module.Comments SimplCommerce.Module.Comments SimplCommerce.Module.Comments->SimplCommerce.Module.Core 4 SimplCommerce.Module.PaymentCoD SimplCommerce.Module.PaymentCoD SimplCommerce.Module.PaymentCoD->SimplCommerce.Module.ShoppingCart 1 SimplCommerce.Module.PaymentCoD->SimplCommerce.Module.Payments 3 SimplCommerce.Module.PaymentCoD->SimplCommerce.Module.Orders 1 SimplCommerce.Module.PaymentCoD->SimplCommerce.Module.Core 1 SimplCommerce.Module.Orders->SimplCommerce.Module.ShoppingCart 6 SimplCommerce.Module.Orders->SimplCommerce.Module.Catalog 2 SimplCommerce.Module.Orders->SimplCommerce.Module.ShippingPrices 3 SimplCommerce.Module.Orders->SimplCommerce.Module.Tax 1 SimplCommerce.Module.Orders->SimplCommerce.Module.Core 16 SimplCommerce.Module.Orders->SimplCommerce.Module.Pricing 1 SimplCommerce.Module.SampleData SimplCommerce.Module.SampleData SimplCommerce.Module.SampleData->SimplCommerce.Module.Core 2 SimplCommerce.Module.Reviews SimplCommerce.Module.Reviews SimplCommerce.Module.Reviews->SimplCommerce.Module.Orders 1 SimplCommerce.Module.Reviews->SimplCommerce.Module.Core 8 SimplCommerce.Module.Contacts SimplCommerce.Module.Contacts SimplCommerce.Module.Contacts->SimplCommerce.Module.Core 3 SimplCommerce.Module.PaymentNganLuong SimplCommerce.Module.PaymentNganLuong SimplCommerce.Module.PaymentNganLuong->SimplCommerce.Module.ShoppingCart 1 SimplCommerce.Module.PaymentNganLuong->SimplCommerce.Module.Payments 4 SimplCommerce.Module.PaymentNganLuong->SimplCommerce.Module.Orders 1 SimplCommerce.Module.PaymentNganLuong->SimplCommerce.Module.Core 1 SimplCommerce.Module.ShippingTableRate SimplCommerce.Module.ShippingTableRate SimplCommerce.Module.ShippingTableRate->SimplCommerce.Module.ShippingPrices 2 SimplCommerce.Module.ShippingTableRate->SimplCommerce.Module.Shipping 2 SimplCommerce.Module.ShippingTableRate->SimplCommerce.Module.Core 2 SimplCommerce.Module.Pricing->SimplCommerce.Module.Catalog 1 SimplCommerce.Module.Pricing->SimplCommerce.Module.Core 2




Show more details about dependencies...


Logical Decomposition #3: DATABASE TABLES
The decompositions is based on folder structure at level 3 (relative to the source code root).
Components
The "database tables" logical decomposition has 2 components.
  • 18 files, 10,542 lines of code (17.3% vs. main code).
  • "Database" is biggest, containing 98.94% of code.
  • "Database/MySql" is smallest, containing 1.06% of code.


Database10430 LOC (17%) 17 files
Database/MySql112 LOC (<1%) 1 files
Alternative Visuals
Dependencies
Dependencies among components are static code dependencies among files in different components.
  • Analyzed system has 3 links (arrows) between components.
  • The number on the arrow represents the number of files from referring component that depend on files in referred component.
  • These 3 links contain 27 dependencies.
  • The following explicit meta-rules for finding dependencies are defined:
    • content like ".*\[dbo\][.]\[.*?\].*"
      • extract ("\[dbo\][.]\[.*?\]")
G Database Database [dbo].[Localization_Culture] [dbo].[Localization_Culture] Database->[dbo].[Localization_Culture] 13 [dbo].[Localization_Resource] [dbo].[Localization_Resource] Database->[dbo].[Localization_Resource] 13 [dbo].[Core_Country] [dbo].[Core_Country] Database->[dbo].[Core_Country] 1 Database/MySql Database/MySql




Show more details about dependencies...




2020-09-12 20:46