Skip to main content

Architecture Validator Modeling Guidelines


Users should first read and follow the official SAP Solution Diagram Guidelines, which define the standardized visual language, iconography, and layout conventions used for representing SAP solution architectures. Following these guidelines helps ensure diagrams are consistent, clear, and easier for others to interpret.

Because the Architecture Validator analyzes the draw.io XML structure (not just the visual layout), a set of additional modeling guidelines is provided to ensure diagrams can be interpreted and validated accurately.

Guidelines

As the validator works on the underlying Draw.io XML structure, it is important that diagrams are modeled not only for visual clarity but also so that logical connections between components are accurately represented in the XML.

While some heuristics marked with ✅ can compensate for diagrams that do not fully follow the recommended modeling practices, it is still strongly advised to adhere to the guidelines. Heuristics cannot reliably cover all edge cases, and deviations may result in missing information or inaccurate validation results. Guidelines that currently lack sufficient heuristic support are marked with a ❌.

✅ Connectors

The most critical guideline is to ensure that entities are logically connected using proper connectors. A connector must snap to the target entity so that the relationship remains intact even if the diagram is rearranged. This is done by dragging the connector endpoint to a snap point on the entity until the connector highlights in green. To verify the connection, move either the source or target entity—if the connector remains attached, the connection is valid.

edge2

edge3

The following examples illustrate common issues observed in diagrams. In the first case, the connector pointing to "Secrets Manager" does not originate from a valid source entity; instead, it attaches to an intermediate point on another connector leading to "Amazon Rekognition PPE Detection".

negative-connector-example-1

This becomes clearer when the connector to "Amazon Rekognition PPE Detection" is removed.

negative-connector-example-2

Another example shows a connector that does not attach to any source entity at all. While heuristics exist to infer the intended connection, these mechanisms operate within defined distance thresholds. In this case, the connector exceeds that threshold, so proper modeling is required to avoid misinterpretation.

negative-connector-example-3

✅ Text Fields / Annotated Text

Text in Draw.io can be added in several ways, and it plays a significant role during validation because it conveys key information about the components and services in an architecture.

The most reliable approach is to add text directly to an entity by double-clicking the entity. This ensures clear association between the text and the component during validation.

destination-service-icon

Where this is not feasible, a text field may be placed inside a shape. In such cases, both the text and the text field boundaries must be fully contained within the shape. Otherwise, the validator may not correctly detect the associated text.

textfield-inside-shape

If adding text directly to an icon is not appropriate, a text field may instead be placed immediately below the icon. This relationship is inferred through a heuristic; however, as with any heuristic, it may not work in all scenarios. To improve detection, ensure that the center of the text field’s top edge aligns closely with the center of the icon’s bottom edge.

destination-service-with-textfield

✅ Legend / Additional Text

If a legend is included in the architecture, all legend elements must be placed within a container that includes the text "Legend". This is necessary because the validator currently ignores any objects located outside the main architecture area.

legend

For descriptive or explanatory text placed inside the architecture, ensure there is at least 50 pixels of spacing between the text and the actual architecture so that it can also be excluded during validation.

❌ Layering

Layering two identical icons on top of each other is currently not being handled.

✅ Grouping

Grouping multiple entities into a single draggable object is a common modeling practice. However, this introduces challenges during extraction, as the coordinates of child elements become relative to the group, requiring adjustments before further processing. Although a heuristic exists to handle grouped structures, it is recommended to avoid grouping or remove groups before running validation. Testing has shown that grouping can create numerous edge cases, particularly when combined with other guideline deviations.

While the extraction process continues to improve, the most reliable validation results are achieved when the guidelines above are followed. This includes using proper connector links, annotating text by double-clicking directly on entities, and avoiding grouping.