Requirements

Tool Requirements

Validation Core

Bazel Component Validator

Tools.BazelComponentDependableElementConsistency
Description:

The validator shall report an error when a

Bazel dependable_element target exists without a corresponding package <<SEooC>> in the PlantUML component diagram, or when a package <<SEooC>> exists without a corresponding Bazel dependable_element target.

Tools.BazelComponentComponentConsistency
Description:

The validator shall report an error when a

Bazel component target exists under a dependable element without a corresponding <<component>> entity in PlantUML under the same parent, or when a <<component>> entity exists in PlantUML without a corresponding Bazel component target under the expected parent.

Tools.BazelComponentUnitConsistency
Description:

The validator shall report an error when a

Bazel unit target exists under a component without a corresponding <<unit>> entity in PlantUML under the same parent component, or when a <<unit>> entity exists in PlantUML without a corresponding Bazel unit target under the expected parent.

Tools.BazelComponentNameCaseInsensitive
Description:

The validator shall match element names

between Bazel and PlantUML case-insensitively, using the PlantUML name (the last segment of the entity id), and the Bazel target name on the Bazel side.

Tools.BazelComponentParentContext
Description:

The validator shall verify that each Bazel

element and its PlantUML counterpart share the same parent context: components directly under a dependable element use the dependable element as parent; more deeply nested components use their immediate enclosing component as parent.

Tools.BazelComponentNonEmptyComposition
Description:

The validator shall report an error when a

Bazel dependable_element or component target decomposes into zero nested component or unit targets, even when the corresponding PlantUML entity likewise shows no nested elements.

Component Model Validator

Tools.ComponentModelCrossFileDeclarationConsistency
Description:

When an entity with the same id is declared

in more than one static PlantUML file, the validator shall report an error if the declarations disagree on stereotype or element type, and shall otherwise merge their relations into a single entity.

Tools.ComponentModelSingleHomeDecomposition
Description:

The validator shall report an error when an

entity’s children are declared across more than one static PlantUML file and no single file declares the full set of children declared for that entity anywhere.

Tools.ComponentModelAnchoring
Description:

The validator shall report an error when a

<<component>> or <<unit>> is not nested directly under a <<SEooC>> or a <<component>>, naming its source location and any other declaration of the same name.

Component Sequence Validator

Tools.ComponentSequenceIdentifierConsistency
Description:

The validator shall report an error when a

unit defined in the component diagram is not referenced by any participant in the sequence diagrams, when a participant uid in a sequence diagram does not match any unit id in the component diagram, or when a participant uid matches multiple unit ids ambiguously.

Tools.ComponentSequenceInterfaceConnectionConsistency
Description:

The validator shall report an error when two

units are connected through an interface in the component diagram but no function-call interaction between those units appears in any sequence diagram, or when a cross-unit function call appears in a sequence diagram but the component diagram does not define a shared interface between those units.

Sequence Internal API Validator

Tools.ComponentSequenceInternalApiMethodNameConsistency
Description:

When component, sequence, and internal API

diagrams are provided, the validator shall report an error when a function used in a sequence interaction is not declared in any shared interface of the participating units as defined in the component diagram.

Tools.ComponentSequenceInternalApiConsumerProviderRoleConsistency
Description:

When component, sequence, and internal API

diagrams are provided, the validator shall report an error when a cross-unit sequence interaction does not match consumer/provider roles derived from the shared interfaces in the component diagram: the caller shall require and the callee shall provide an interface on which the called method is declared.

Tools.ComponentSequenceInternalApiInterfaceCoverage
Description:

When component, sequence, and internal API

diagrams are provided, the validator shall report an error when a function declared in a validated interface is never called in any sequence interaction. Self-calls count as valid usage.

Tools.InternalApiInterfaceMerge
Description:

When an interface is declared in more than

one internal API file, the validator shall treat it as one interface holding the union of the methods declared in all of its declarations.

Component Internal API Validator

Tools.ComponentInternalApiInterfaceDeclarationConsistency
Description:

The validator shall report an error when an

interface declared in the component diagram is not declared as an interface in the internal API diagram.

Component Public API Validator

Tools.ComponentPublicApiInterfaceDeclarationConsistency
Description:

The validator shall report an error when a

public API interface declared in the component diagram is not declared as an interface in the public API class diagram.

Tools.ComponentPublicApiSeoocRelationshipConsistency
Description:

The validator shall report an error when a

public API interface declared in the component diagram is not connected by an interface-binding relationship from the SEooC in the component diagram.

Class Design Implementation Validator

Tools.ClassDesignImplementationEntityConsistency
Description:

The validator shall report an error when an

entity modeled in the unit design class diagram has no corresponding entity in the implementation class diagram, or when the matching implementation entity differs in entity type. Consistency of type aliases, variables, methods, enum literals, relationships, and template parameters is specified by the dedicated requirements below.

Tools.ClassDesignImplementationDeclarationMerge
Description:

When the same class id is declared more than

once across the unit design class diagrams, the validator shall merge the declarations and unite their relationships if at most one of them has a body, and shall report an error when two declarations have a body or when their entity type or stereotype differs.

Tools.ClassDesignImplementationTemplateParameterConsistency
Description:

The validator shall report an error when

template parameters modeled on a unit design entity or method differ from the template parameters on the matching implementation entity or method.

Tools.ClassDesignImplementationTypeAliasConsistency
Description:

The validator shall report an error when a

type alias modeled in a unit design entity is missing from the matching implementation entity, or when the matching implementation type alias differs in original type.

Tools.ClassDesignImplementationVariableConsistency
Description:

The validator shall report an error when a

variable modeled in a unit design entity is missing from the matching implementation entity, or when the matching implementation variable differs in data type, visibility, or static flag.

Tools.ClassDesignImplementationMethodConsistency
Description:

The validator shall report an error when a

method modeled in a unit design entity is missing from the matching implementation entity, or when the matching implementation method differs in return type, visibility, parameters, or method modifiers (static, virtual, abstract, override, constructor, destructor, or noexcept).

Tools.ClassDesignImplementationEnumLiteralConsistency
Description:

The validator shall report an error when an

enum literal modeled in a unit design enum is missing from the matching implementation enum, or when the matching implementation enum literal data differs from the unit design.

Tools.ClassDesignImplementationRelationshipConsistency
Description:

The validator shall report an error when a

relationship modeled in a unit design entity is missing from the matching implementation entity, or when the matching implementation relationship differs in source, target, or relationship type.

Tools.ClassDesignImplementationFreeFunctionConsistency
Description:

The validator shall report an error when a

free function modeled in the unit design is missing from the implementation, or when the matching implementation free function differs in return type, parameters, or template parameters.

Tools.ClassDesignImplementationTypeNormalization
Description:

The validator shall normalize namespace

separators, the std:: type prefix, and pointer or reference spacing before comparing entity references and type names between unit design and implementation class diagrams.

Class Design Sequence Validator

Tools.ClassDesignSequenceParticipantClassConsistency
Description:

The validator shall report an error when a

sequence participant that represents a designed runtime element has no matching class in the unit design class diagram, or when the participant matches multiple design classes ambiguously.

Tools.ClassDesignSequenceMessageOperationConsistency
Description:

The validator shall report an error when a

message or self-call in a sequence diagram targets a design class that neither declares nor inherits the called operation through its base classes or interfaces. The comparison shall match at least the operation name and may additionally compare parameter arity and normalized parameter types when both diagrams provide that information.