-
Notifications
You must be signed in to change notification settings - Fork 0
Subsystem
The subsystem line specifies the full name and the alias. In our example it is:
subsystem Elevator, ELEV 1-99
The grammar is:
subsystem_header = "subsystem" SP subsystem_name subsystem_alias SP num_range EOL* // Declares the name of the subsystem
subsystem_name = icaps_name
subsystem_alias = ',' SP acword
num_range = ordinal '-' ordinal
Here we have the keyword subsystem followed by an icaps_name a comma space and then
the short name (alias). This works just like it does for the domain name alias so please refer to that
explanation.
There is also a number range after a single required space. Each end of the range is an ordinal as defined in the
grammar:
ordinal = r'[1-9][0-9]*' // A counting number starting at 1
Numbers are primarily used for naming relationships within a subsystem. Thus, relationships in the
Elevator subsystem will be named R1, R2, ...
And, yes, if we hit the upper bound we'll need to defrag (renumber) our subsystem boundaries. In practice, this doesn't happen often if you are generous with your number ranges. I typically set them at 50 or 100, because if I have that many relationships in a subsystem it is likely well past time to refactor.
Copyright 2023-2026 © Leon Starr under MIT Open Source License