This is where you change properties of the currently selected architecture diagram, and the currently selected cell in the diagram editor.
To edit a property, double click its current value.
Diagram properties:
- Name. The diagram name appears in any companion products that display diagrams.
- Locked. If a diagram is locked, it will not be possible to make structural changes to the diagram. This is automatically set when you create a diagram from the LSM in the Model tab - useful where you wish to keep the structure of the architecture diagram consistent with the structure of the model. You will be able to e.g. adjust the layering of cells within their local scope, but not e.g. move cells to a new parent cell.
- Enforce. This determines whether the diagram will be applied outside of Structure101 Studio. Set this to false for diagrams you are still working on a diagram, or just want to use it within Structure101 Studio and not appearing in or being checked by companion products.
- Strict. Strict layering means that code associated with a cell should only use code associated with cells on the next immediate level. If this is set to "No" then cells can use any cells at lower levels on the diagram. If it is set to "Yes" then cells can use cells immediately below them, but dependencies on cells below that will be flagged as violations.
- Excludes. You can always exclude code from a diagram by simply not mapping it to any cell. For example if you create a diagram from an LSM, you could subsequently delete a number of cells. This property lets you define a number of patterns to explicitly exclude items - it is useful if some physical entities would otherwise undesirably map to a cell in the diagram.
- Description. You can enter a textual description of the diagram here, and it will appear in companion products. When you get Structure101 Studio to create diagrams, it automatically indicates the source of the diagram here.
Selected cell properties:
The lower section of properties viewer relate to just a single cell currently selected in the architecture diagram editor.
- Name. The name that appear within the cell on the diagram.
- Description. Add whatever text you want to describe the architectural component represented by the cell.
- Pattern. Code from the currently loaded build is mapped to cells by patterns, and it is this mapping that Structure101 uses in order do determine if there are any violations to the dependency constraints expressed by the diagram. Patterns are matched against fully qualified names according to the containment hierarchy in the currently selected model. A "*" maps to any string and a "?" maps to any classes in the preceding package (see Transformations for more details on pattern-matching). A pattern can contain multiple expressions separated by a ",".
- Visibility. This can be "public" or "private" - change it by double-clicking the current value. Private cells should only be used by other cells at the same scope. Dependencies on private cells from an outside scope will result in violations even if the dependencies flow downward. This is useful to differentiate between public (e.g. API) and private (e.g. implementation) sub-components.
- Drill. If set to "yes", a cell that has been expanded and has a nested diagram, but is currently collapsed, will still be drilled into when resolving cell patterns. Hence it is possible to resolve nodes to hidden patterns. This may be desired for large diagrams where users want to condense the image, yet still retain rules not visible to the eye.
- Background. The fill color for the cell.
- Foreground. The cell border color.
Note: An important behavior is that a physical entity maps to the cell with the most specific expression. For example if you include 2 cells, one with expression a.b.* and the other with the expression a.b.c.*, then the entity a.b.c.D will map to the latter (a.b.c.* is more specific than a.b.*). The effects of this can be at the same time subtle and powerful. For example you could move the cell that maps to a.b.c.* into a completely different parent cell (e.g. x.y.*).