-
-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathInsurance-Example_Alternative-Relationship-Syntax.cml
66 lines (50 loc) · 2.15 KB
/
Insurance-Example_Alternative-Relationship-Syntax.cml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/* Example Context Map written with 'ContextMapper DSL' */
ContextMap InsuranceContextMapAlternative {
type = SYSTEM_LANDSCAPE
state = TO_BE
/* Add bounded contexts to this context map: */
contains CustomerManagementContext
contains CustomerSelfServiceContext
contains PrintingContext
contains PolicyManagementContext
contains RiskManagementContext
contains DebtCollection
/* Define the context relationships: */
CustomerSelfServiceContext Customer-Supplier CustomerManagementContext
PrintingContext[OHS,PL] Upstream-Downstream [ACL]CustomerManagementContext
PolicyManagementContext[ACL] Downstream-Upstream [OHS,PL]PrintingContext
RiskManagementContext Partnership PolicyManagementContext
CustomerManagementContext[OHS,PL] Upstream-Downstream [CF]PolicyManagementContext
DebtCollection[ACL] Downstream-Upstream [OHS,PL]PrintingContext
PolicyManagementContext Shared-Kernel DebtCollection
}
/* Bounded Context Definitions */
BoundedContext CustomerManagementContext implements CustomerManagementDomain
BoundedContext CustomerSelfServiceContext implements CustomerManagementDomain
BoundedContext PrintingContext implements PrintingDomain
BoundedContext PolicyManagementContext implements PolicyManagementDomain
BoundedContext RiskManagementContext implements RiskManagementDomain
BoundedContext DebtCollection implements DebtsDomain
/* Domain & Subdomain Definitions */
Domain InsuranceDomain {
Subdomain CustomerManagementDomain {
type = CORE_DOMAIN
domainVisionStatement = "Subdomain managing everything customer-related."
}
Subdomain PolicyManagementDomain {
type = CORE_DOMAIN
domainVisionStatement = "Subdomain managing contracts and policies."
}
Subdomain PrintingDomain {
type = SUPPORTING_DOMAIN
domainVisionStatement = "Service (external system) to solve printing for all kinds of documents (debts, policies, etc.)"
}
Subdomain RiskManagementDomain {
type = GENERIC_SUBDOMAIN
domainVisionStatement = "Subdomain supporting everything which relates to risk management."
}
Subdomain DebtsDomain {
type = GENERIC_SUBDOMAIN
domainVisionStatement = "Subomain including everything related to the incoming money (debts, dunning, etc.)"
}
}