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 alias when present, otherwise the PlantUML 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.

Component Sequence Validator

Tools.ComponentSequenceAliasConsistency
Description:

The validator shall report an error when a

unit alias defined in the component diagram does not appear among the participants in any sequence diagram, or when a participant alias in a sequence diagram does not match any unit alias in the component diagram.

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.

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.

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.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.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.