Reference¶
A quick tour of the main types exposed by the parser. All objects are plain dataclasses for easy inspection.
Root: CML¶
domains: list[Domain]context_maps: list[ContextMap]stakeholders, stakeholder_groupsvalue_registers- Helpers:
get_domain,get_subdomain,get_context_map,get_context,get_aggregate,get_entity,get_use_case
Requirements Analysis¶
UseCase¶
name,actor,interactionsbenefit,scope,level
UserStory¶
name,role,feature,benefit
Stakeholder¶
name,influence,interest,priority,impact,consequences
StakeholderGroup¶
name,stakeholders(list ofStakeholder)
ValueRegister¶
name,contextvalues(list ofValue)clusters(list ofValueCluster)
Value¶
name,is_core,demonstratorstakeholders(list ofStakeholder)
ValueCluster¶
name,core_value,demonstratorvalues(list ofValue)
Strategic DDD¶
Domain¶
name,visionsubdomains(with convenience lists:core,supporting,generic)
Subdomain¶
name,type(CORE_DOMAIN,SUPPORTING_DOMAIN,GENERIC_SUBDOMAIN)vision,entitiesimplementations: contexts that implement this subdomain
ContextMap¶
name,type,statecontexts: list[Context]relationships: list[Relationship]get_context(name)
Context¶
name,type,vision,responsibilities,implementation_technology,knowledge_levelaggregates,services,modules,implements(subdomains)- Helpers:
get_aggregate,get_service,get_module,get_subdomain
Relationship¶
- Endpoints:
left,right(Context) type(seeRelationshipTypeenum, e.g.,ACL,PL,Customer-Supplier)- Attributes:
roles,implementation_technology,downstream_rights,exposed_aggregates
Tactical DDD¶
Aggregate¶
name,ownerentities,value_objects,domain_events,enums,services,command_events,data_transfer_objects- Helpers:
get_entity,get_value_object,get_enum,get_service
Entity¶
name,is_aggregate_root,attributes,operations,extends,is_abstract- Helpers:
get_attribute,get_operation
ValueObject¶
name,attributes,operations,extends,is_abstract
DomainEvent¶
name,attributes,operations,extends,persistent,is_abstract
Service¶
name,operations
Attribute¶
name,type- Flags:
is_reference,is_key visibility(if present),collection_type
Operation¶
name,return_typeparameters: list[Parameter]visibility,throws,is_abstract
Parameter¶
name,type,is_reference
Enum¶
name,values,is_aggregate_lifecycle
Application layer extensions¶
Application:commands,flows,coordinations,servicesCommandEvent,DataTransferObjectModule:name,aggregates,services,domain_objectsFlowandFlowStep: support simple command/event flows.Coordination:name,steps(list of coordination strings).
For concrete examples of each object in context, see test_full_coverage.cml and test_tactical_ddd.py.