JPetStore

110
Pareto solutions
5
Exemplars
2 (α=0.5)
Clusters
0.63
HV ratio
0.539
Silhouette

Canonical reference (S*)

Canonical reference (S*)
— canonical reference (S*)
Wang, Bornais & Rubin (ASE 2024) — ground truth del benchmark
3 services · key: sstar_jpetstore_primario
Metrics
Interface count1.667
Msg cohesion0.586
Domain cohesion0.233
Inter-svc calls39.000
Structural MQ0.104
Conceptual MQ0.089
BC penalty0.782
NMI (BC align.)0.149
Data ownership0.000
Verified facts
  • BCs contained: —
  • BCs fragmented: —
  • FK crossings between services: 0
  • Shared tables: CATEGORY, INVENTORY, ITEM, PRODUCT
  • High-uncertainty classes: 0
Benefits
    Risks
      Services
      account:
      catalog:
      order:
      Services & data

      Exemplars

      #1#2#3#4#5
      Exemplar 1: Structural-Best
      Structural-Best constraint anchor
      ['The decomposition creates eight services distributed across three active bounded contexts, with User Authentication fully contained in a single service and Product Catalog and Order Management fragmented across multiple services.', 'Metrics show moderate class cohesion (CHM\u202f0.65) but low domain cohesion (CHD\u202f0.26) and a high inter‑service relational noise score of 54.']
      8 services · Cluster 2 — highest domain cohesion (n=102) · key: 16_10_18_47_26_754284
      Metrics
      Interface count1.000
      Msg cohesion0.647
      Domain cohesion0.262
      Inter-svc calls54.000
      Structural MQ0.299
      Conceptual MQ0.673
      BC penalty0.678
      NMI (BC align.)0.193
      Data ownership0.000
      Verified facts
      • BCs contained: User Authentication
      • BCs fragmented: Order Management, Product Catalog
      • FK crossings between services: 0
      • Shared tables: CATEGORY, INVENTORY, ITEM, LINEITEM, PRODUCT, SEQUENCE
      • High-uncertainty classes: 15
      Benefits
      • User Authentication’s containment in one service (majority_share 1.0) reduces coupling between contexts.
      • There are no foreign key crossings (n_fk_crossings 0), eliminating the need for distributed transactions across services.
      • The class cohesion metric (CHM 0.65) indicates a reasonable level of internal cohesion within services.
      Risks
      • Product Catalog and Order Management are fragmented, which can increase coordination overhead and coupling.
      • A high IRN of 54 suggests many inter‑service relationships, raising the risk of complex coordination despite zero FK crossings.
      • Twelve of fifteen classes have entropy above the high‑uncertainty threshold (0.6), indicating uncertainty in their bounded‑context placement.
      Services
      LineItemManagementService: Manages creation, retrieval, and persistence of line item data for orders and carts.
      ActionBeanFramework: Provides a reusable abstract base for action beans handling user requests across the application.
      ShoppingCartService: Handles user shopping cart operations, including adding, removing, and viewing cart items.
      ItemDataService: Manages persistence and retrieval of item records used in the catalog and orders.
      UserAccountAuthenticationService [User Authentication]: Provides user authentication, registration, and account management functionalities.
      OrderManagementService [Order Management]: Processes order creation, tracking, and lifecycle management for purchases.
      +2 more services
      ProductCatalogService [Product Catalog]: Manages product and category data, supporting browsing and catalog operations.
      SequenceGeneratorService: Generates and persists sequential identifiers used across the system.
      Services & data
      Exemplar 2: Highest conceptual quality (cluster 1 medoid)
      Cluster medoid cluster medoid
      The current decomposition defines 16 services distributed across three fragmented bounded contexts: Product Catalog, Order Management, and User Authentication. Metrics show a high modular quality score (CMQ = 0.946) but moderate cohesion (CHM = 0.647) and low domain cohesion (CHD = 0.262).
      16 services · Cluster 1 — highest conceptual quality (n=8) · key: run10_eps0.55_step0.025_ms2
      Metrics
      Interface count1.000
      Msg cohesion0.647
      Domain cohesion0.262
      Inter-svc calls86.000
      Structural MQ-0.116
      Conceptual MQ0.946
      BC penalty0.658
      NMI (BC align.)0.173
      Data ownership0.000
      Verified facts
      • BCs contained: —
      • BCs fragmented: Order Management, Product Catalog, User Authentication
      • FK crossings between services: 0
      • Shared tables: CATEGORY, INVENTORY, ITEM, LINEITEM, ORDERS, ORDERSTATUS, PRODUCT, SEQUENCE
      • High-uncertainty classes: 15
      Benefits
      • CMQ of 0.946 suggests the services are largely independent, supporting scalability.
      • CHM of 0.647 indicates reasonable internal cohesion within services, facilitating maintainability.
      • IRN of 86 reflects a high number of inter-service relationships, which can be leveraged for rich business interactions.
      Risks
      • SMQ is -0.1156, indicating potential modularity violations that may increase coupling.
      • All three bounded contexts are marked as fragmented, increasing the risk of cross‑context coupling and inconsistent domain models.
      • Twelve classes have entropy above the high‑uncertainty threshold (0.6), creating uncertainty in their bounded‑context assignment.
      Services
      ProductCatalogService [Product Catalog]: Provides catalog browsing, retrieval and management of products and categories.
      OrderManagementService [Order Management]: Creates, updates and queries orders together with their line items.
      ShoppingCartService: Maintains a user's shopping cart contents and cart‑related actions.
      AccountAuthenticationService [User Authentication]: Authenticates users and handles account‑related session operations.
      AccountManagementService: Stores and updates core account information for customers.
      CartItemService: Represents and manipulates individual items inside a shopping cart.
      +10 more services
      CategoryService: Manages product category hierarchy and related metadata.
      ItemService: Handles detailed information for catalog items.
      LineItemService: Encapsulates a single line item within an order.
      OrderProcessingService: Persists order aggregates and drives order lifecycle events.
      ProductService: Manages product data, attributes and availability.
      SequenceService: Generates sequential identifiers for domain entities.
      ItemMappingService: Maps item domain objects to and from persistent storage.
      SequenceMappingService: Handles persistence mapping for sequence generators.
      BaseActionService: Provides common functionality for action beans used in the web layer.
      OrderActionService: Executes web actions related to order creation and modification.
      Services & data
      Exemplar 3: BC-Optimal
      BC-Optimal constraint anchor
      The decomposition consists of five services (0‑4) each containing the classes listed in facts.services. User Authentication forms a contained bounded context with a single service (service 3) holding all four of its classes, achieving a majority share of 1.0. Product Catalog and Order Management are fragmented bounded contexts, with majority shares of 0.75 and 0.5833 respectively, spread across multiple services.
      5 services · Cluster 2 — highest domain cohesion (n=102) · key: 16_10_18_47_19_086460__mover_1
      Metrics
      Interface count1.250
      Msg cohesion0.569
      Domain cohesion0.316
      Inter-svc calls45.000
      Structural MQ0.236
      Conceptual MQ0.351
      BC penalty0.689
      NMI (BC align.)0.700
      Data ownership0.000
      Verified facts
      • BCs contained: User Authentication
      • BCs fragmented: Order Management, Product Catalog
      • FK crossings between services: 0
      • Shared tables: CATEGORY, INVENTORY, ITEM, LINEITEM, PRODUCT, SEQUENCE
      • High-uncertainty classes: 15
      Benefits
      • Zero foreign key crossings (0) eliminates the need for distributed transactions across services.
      • User Authentication’s contained status and full majority share (1.0) suggests high cohesion within its service, reducing coupling.
      • The overall CHM metric of 0.568657434238063 indicates moderate class cohesion across the system, supporting manageable refactoring.
      Risks
      • Fragmented bounded contexts for Product Catalog (status fragmented, majority share 0.75) and Order Management (status fragmented, majority share 0.5833) indicate cross‑service cohesion issues that may increase coupling.
      • Twelve classes are flagged as uncertain with entropy_norm above the high uncertainty threshold (0.6), e.g., Item (0.9068), suggesting potential misallocation across services.
      • Shared tables (e.g., CATEGORY, ITEM) are accessed by multiple services, which could lead to data consistency challenges despite no foreign key crossings.
      Services
      OrderProcessingService: Handles creation, update, and retrieval of customer orders.
      ProductCatalogService [Product Catalog]: Manages product listings, categories, and catalog data for the store.
      ShoppingCartService [Order Management]: Manages shopping cart contents, item quantities, and prepares orders.
      AccountAuthenticationService [User Authentication]: Authenticates users, manages account credentials and sessions.
      SequenceGeneratorService: Generates unique sequential identifiers for entities across the system.
      Services & data
      Exemplar 4: Highest domain cohesion (cluster 2 medoid)
      Cluster medoid cluster medoid
      ['The system is split into five services, allocating the listed classes across three bounded contexts, with User Authentication fully contained in a single service.', 'Order Management and Product Catalog are fragmented, each spreading their classes over multiple services.']
      5 services · Cluster 2 — highest domain cohesion (n=102) · key: 16_10_18_47_26_805332__mover_2
      Metrics
      Interface count1.250
      Msg cohesion0.569
      Domain cohesion0.316
      Inter-svc calls48.000
      Structural MQ0.214
      Conceptual MQ0.486
      BC penalty0.715
      NMI (BC align.)0.560
      Data ownership0.000
      Verified facts
      • BCs contained: User Authentication
      • BCs fragmented: Order Management, Product Catalog
      • FK crossings between services: 0
      • Shared tables: CATEGORY, INVENTORY, ITEM, LINEITEM, PRODUCT
      • High-uncertainty classes: 15
      Benefits
      • User Authentication enjoys perfect service cohesion, as its four classes reside in one service.
      • There are no foreign‑key crossings between services, eliminating the need for distributed transactions.
      • The Service Modularity Quality (SMQ) metric is 0.214, indicating a baseline level of modular separation.
      Risks
      • Order Management (majority_share 0.3333) and Product Catalog (majority_share 0.75) are fragmented, meaning their classes are split across several services, which can increase coupling and coordination cost.
      • Twelve of the fifteen classes have high uncertainty entropy (>0.6), suggesting ambiguous placement and potential refactoring effort.
      • The Cohesion Metric (CHM) is 0.569, reflecting moderate cohesion and room for improvement.
      Services
      OrderItemManagement [Order Management]: Manages items and line items within orders, handling their persistence and mapping.
      OrderProcessingService: Processes order lifecycle operations, including creation, state transitions, and sequencing.
      ProductCatalogService [Product Catalog]: Provides catalog operations for products and categories, handling retrieval and persistence.
      ShoppingCartService: Manages shopping cart contents, adding and removing cart items for customers.
      UserAccountService [User Authentication]: Handles user account authentication, registration, and credential management.
      Services & data
      Exemplar 5: Compromise
      Compromise constraint anchor
      The application is decomposed into eight services, with the User Authentication bounded context fully contained in service 4 (majority_share = 1.0). Order Management and Product Catalog are fragmented, each spreading their classes across several services (majority_share = 0.3333 and 0.375 respectively).
      8 services · Cluster 2 — highest domain cohesion (n=102) · key: 16_10_18_48_34_364224__mover_1
      Metrics
      Interface count1.000
      Msg cohesion0.647
      Domain cohesion0.262
      Inter-svc calls53.000
      Structural MQ0.271
      Conceptual MQ0.594
      BC penalty0.684
      NMI (BC align.)0.606
      Data ownership0.000
      Verified facts
      • BCs contained: User Authentication
      • BCs fragmented: Order Management, Product Catalog
      • FK crossings between services: 0
      • Shared tables: CATEGORY, INVENTORY, ITEM, LINEITEM, PRODUCT, SEQUENCE
      • High-uncertainty classes: 15
      Benefits
      • User Authentication’s containment eliminates cross‑service foreign‑key dependencies, reflected by zero foreign‑key crossings, reducing distributed transaction risk.
      • The overall low CHD (0.262) and moderate CHM (0.647) indicate acceptable cohesion‑distribution, suggesting the current service split is not overly tangled.
      • Six shared tables (CATEGORY, INVENTORY, ITEM, LINEITEM, PRODUCT, SEQUENCE) are accessed across services, which can be managed via bounded‑context APIs rather than direct cross‑service writes.
      Risks
      • Fragmented bounded contexts (Order Management and Product Catalog) have low majority_share, meaning many classes are spread across services, increasing coupling and coordination overhead.
      • High uncertainty entropy for 12 of 15 classes (entropy_norm > 0.6), such as Item (0.9068) and ProductMapper (0.8591), signals ambiguous ownership and potential refactoring needs.
      • Shared tables accessed by multiple services may introduce data consistency challenges despite zero foreign‑key crossings.
      Services
      LineItemManagement: Handles creation, retrieval, and mapping of line item data within orders.
      ItemDataMapper: Maps Item domain objects to database records and vice versa.
      ShoppingCartManagement: Manages user shopping carts, including adding, removing items and persisting cart state.
      CategoryCatalogService: Provides operations for product categories, including retrieval and mapping to the data store.
      UserAccountAuthentication [User Authentication]: Manages user accounts, authentication, and related actions.
      SequenceGeneratorService: Generates and persists sequential identifiers used across the system.
      +2 more services
      ProductCatalogManagement [Product Catalog]: Handles product catalog operations, including product retrieval, creation, and mapping.
      OrderProcessingService [Order Management]: Processes orders, coordinates the order lifecycle, and persists order data.
      Services & data

      Pairwise comparisons

      1↔21↔31↔41↔52↔32↔42↔53↔43↔54↔5
      Exemplar 1 vs Exemplar 2
      Interface count+0.0000
      Msg cohesion+0.0000
      Domain cohesion+0.0000
      Inter-svc calls+32.0000
      Structural MQ-0.4142
      Conceptual MQ+0.2730
      BC penalty-0.0202
      NMI (BC align.)-0.0196
      Data ownership+0.0000
      • Classes moved: 9
      • BCs fixed (A→B): —
      • BCs broken (A→B): User Authentication
      • Δ FK crossings: +0
      • Δ shared tables: +2
      Exemplar 1 vs Exemplar 3
      B moves five classes (Item, LineItem, ItemMapper, LineItemMapper, AbstractActionBean) to different services without altering foreign‑key crossings or shared tables. The moves improve inter‑service relationship cohesion (CHD +0.0547) and NMI_filtered (+0.5067) and lower IRN (‑9) but increase IFN (+0.25), reduce CHM (‑0.0780), lower SMQ (‑0.0624) and CMQ (‑0.3222) and raise penalty_swm (+0.0104).
      Interface count+0.2500
      Msg cohesion-0.0780
      Domain cohesion+0.0547
      Inter-svc calls-9.0000
      Structural MQ-0.0624
      Conceptual MQ-0.3222
      BC penalty+0.0104
      NMI (BC align.)+0.5067
      Data ownership+0.0000
      • Classes moved: 5
      • BCs fixed (A→B): —
      • BCs broken (A→B): —
      • Δ FK crossings: +0
      • Δ shared tables: +0
      Exemplar 1 vs Exemplar 4
      Interface count+0.2500
      Msg cohesion-0.0780
      Domain cohesion+0.0547
      Inter-svc calls-6.0000
      Structural MQ-0.0846
      Conceptual MQ-0.1874
      BC penalty+0.0369
      NMI (BC align.)+0.3667
      Data ownership+0.0000
      • Classes moved: 5
      • BCs fixed (A→B): —
      • BCs broken (A→B): —
      • Δ FK crossings: +0
      • Δ shared tables: -1
      Exemplar 1 vs Exemplar 5
      B moves three domain classes (Category, Item, CategoryMapper) from services 6/3 to service 3, reducing IRN by 1.0 (better) but decreasing SMQ by 0.027331 and CMQ by 0.079167 (worse) and increasing penalty_swm by 0.005659 (worse), while raising NMI_filtered by 0.413196 (better). No foreign‑key crossings, shared tables, or bounded‑context changes are introduced.
      Interface count+0.0000
      Msg cohesion+0.0000
      Domain cohesion+0.0000
      Inter-svc calls-1.0000
      Structural MQ-0.0273
      Conceptual MQ-0.0792
      BC penalty+0.0057
      NMI (BC align.)+0.4132
      Data ownership+0.0000
      • Classes moved: 3
      • BCs fixed (A→B): —
      • BCs broken (A→B): —
      • Δ FK crossings: +0
      • Δ shared tables: +0
      Exemplar 2 vs Exemplar 3
      Interface count+0.2500
      Msg cohesion-0.0780
      Domain cohesion+0.0547
      Inter-svc calls-41.0000
      Structural MQ+0.3518
      Conceptual MQ-0.5952
      BC penalty+0.0305
      NMI (BC align.)+0.5263
      Data ownership+0.0000
      • Classes moved: 12
      • BCs fixed (A→B): User Authentication
      • BCs broken (A→B): —
      • Δ FK crossings: +0
      • Δ shared tables: -2
      Exemplar 2 vs Exemplar 4
      Interface count+0.2500
      Msg cohesion-0.0780
      Domain cohesion+0.0547
      Inter-svc calls-38.0000
      Structural MQ+0.3296
      Conceptual MQ-0.4604
      BC penalty+0.0571
      NMI (BC align.)+0.3863
      Data ownership+0.0000
      • Classes moved: 12
      • BCs fixed (A→B): User Authentication
      • BCs broken (A→B): —
      • Δ FK crossings: +0
      • Δ shared tables: -3
      Exemplar 2 vs Exemplar 5
      Interface count+0.0000
      Msg cohesion+0.0000
      Domain cohesion+0.0000
      Inter-svc calls-33.0000
      Structural MQ+0.3868
      Conceptual MQ-0.3521
      BC penalty+0.0258
      NMI (BC align.)+0.4328
      Data ownership+0.0000
      • Classes moved: 10
      • BCs fixed (A→B): User Authentication
      • BCs broken (A→B): —
      • Δ FK crossings: +0
      • Δ shared tables: -2
      Exemplar 3 vs Exemplar 4
      Interface count+0.0000
      Msg cohesion+0.0000
      Domain cohesion+0.0000
      Inter-svc calls+3.0000
      Structural MQ-0.0222
      Conceptual MQ+0.1348
      BC penalty+0.0266
      NMI (BC align.)-0.1400
      Data ownership+0.0000
      • Classes moved: 5
      • BCs fixed (A→B): —
      • BCs broken (A→B): —
      • Δ FK crossings: +0
      • Δ shared tables: -1
      Exemplar 3 vs Exemplar 5
      B adds two services (3 vs 5) and moves six classes, improving cohesion (CHM +0.07802), modular quality (SMQ +0.035045, CMQ +0.24301) and reducing interface count (IFN -0.25) and penalty (penalty_swm -0.004732). However, B worsens domain cohesion (CHD -0.054743), raises inter‑service relational complexity (IRN +8) and lowers NMI_filtered (-0.093515), indicating increased coupling.
      Interface count-0.2500
      Msg cohesion+0.0780
      Domain cohesion-0.0547
      Inter-svc calls+8.0000
      Structural MQ+0.0350
      Conceptual MQ+0.2430
      BC penalty-0.0047
      NMI (BC align.)-0.0935
      Data ownership+0.0000
      • Classes moved: 6
      • BCs fixed (A→B): —
      • BCs broken (A→B): —
      • Δ FK crossings: +0
      • Δ shared tables: +0
      Exemplar 4 vs Exemplar 5
      Interface count-0.2500
      Msg cohesion+0.0780
      Domain cohesion-0.0547
      Inter-svc calls+5.0000
      Structural MQ+0.0573
      Conceptual MQ+0.1082
      BC penalty-0.0313
      NMI (BC align.)+0.0465
      Data ownership+0.0000
      • Classes moved: 7
      • BCs fixed (A→B): —
      • BCs broken (A→B): —
      • Δ FK crossings: +0
      • Δ shared tables: +1