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 count | 1.667 |
| Msg cohesion | 0.586 |
| Domain cohesion | 0.233 |
| Inter-svc calls | 39.000 |
| Structural MQ | 0.104 |
| Conceptual MQ | 0.089 |
| BC penalty | 0.782 |
| NMI (BC align.) | 0.149 |
| Data ownership | 0.000 |
Verified facts
- BCs contained: —
- BCs fragmented: —
- FK crossings between services: 0
- Shared tables: CATEGORY, INVENTORY, ITEM, PRODUCT
- High-uncertainty classes: 0
Exemplars
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 count | 1.000 |
| Msg cohesion | 0.647 |
| Domain cohesion | 0.262 |
| Inter-svc calls | 54.000 |
| Structural MQ | 0.299 |
| Conceptual MQ | 0.673 |
| BC penalty | 0.678 |
| NMI (BC align.) | 0.193 |
| Data ownership | 0.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.
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 count | 1.000 |
| Msg cohesion | 0.647 |
| Domain cohesion | 0.262 |
| Inter-svc calls | 86.000 |
| Structural MQ | -0.116 |
| Conceptual MQ | 0.946 |
| BC penalty | 0.658 |
| NMI (BC align.) | 0.173 |
| Data ownership | 0.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.
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 count | 1.250 |
| Msg cohesion | 0.569 |
| Domain cohesion | 0.316 |
| Inter-svc calls | 45.000 |
| Structural MQ | 0.236 |
| Conceptual MQ | 0.351 |
| BC penalty | 0.689 |
| NMI (BC align.) | 0.700 |
| Data ownership | 0.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.
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 count | 1.250 |
| Msg cohesion | 0.569 |
| Domain cohesion | 0.316 |
| Inter-svc calls | 48.000 |
| Structural MQ | 0.214 |
| Conceptual MQ | 0.486 |
| BC penalty | 0.715 |
| NMI (BC align.) | 0.560 |
| Data ownership | 0.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.
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 count | 1.000 |
| Msg cohesion | 0.647 |
| Domain cohesion | 0.262 |
| Inter-svc calls | 53.000 |
| Structural MQ | 0.271 |
| Conceptual MQ | 0.594 |
| BC penalty | 0.684 |
| NMI (BC align.) | 0.606 |
| Data ownership | 0.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.
Pairwise comparisons
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