AI SEARCH
FLOW ALGEBRA — SOFTWARE ARCHITECTURE ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/entity-graph/computational-entities/software-entities/software-architecture-ontology-2.html
FLOW SOFTWARE_ARCHITECTURE_ONTOLOGY {
META {
DOMAIN = "Entity Graph"
SUBDOMAIN = "Computational Entities / Software Entities"
ONTOLOGY = "Software Architecture Ontology"
PURPOSE = "Formalise software architecture entities, components, connectors, interfaces, services, layers, dependencies, deployment structures, architectural decisions, constraints and quality relationships."
LOCALE = "en-GB"
}
ENTITY_TYPES {
SOFTWARE_ARCHITECTURE
SOFTWARE_SYSTEM
SOFTWARE_SUBSYSTEM
ARCHITECTURAL_ELEMENT
COMPONENT
MODULE
PACKAGE
SERVICE
MICROSERVICE
APPLICATION
LIBRARY
DATABASE
DATA_STORE
MESSAGE_BROKER
CACHE
API_GATEWAY
LOAD_BALANCER
INTERFACE
API
ENDPOINT
PORT
CONNECTOR
COMMUNICATION_CHANNEL
PROTOCOL
DEPENDENCY
LAYER
TIER
PRESENTATION_LAYER
APPLICATION_LAYER
DOMAIN_LAYER
DATA_LAYER
CLIENT
SERVER
PEER
NODE
HOST
CONTAINER
VIRTUAL_MACHINE
DEPLOYMENT_UNIT
DEPLOYMENT_TOPOLOGY
ARCHITECTURAL_STYLE
LAYERED_ARCHITECTURE
CLIENT_SERVER_ARCHITECTURE
MICROSERVICES_ARCHITECTURE
SERVICE_ORIENTED_ARCHITECTURE
EVENT_DRIVEN_ARCHITECTURE
PIPE_AND_FILTER_ARCHITECTURE
HEXAGONAL_ARCHITECTURE
CLEAN_ARCHITECTURE
MONOLITHIC_ARCHITECTURE
DISTRIBUTED_ARCHITECTURE
ARCHITECTURAL_PATTERN
DESIGN_PATTERN
ARCHITECTURAL_DECISION
ARCHITECTURAL_DECISION_RECORD
REQUIREMENT
CONSTRAINT
QUALITY_ATTRIBUTE
PERFORMANCE
SCALABILITY
AVAILABILITY
RELIABILITY
SECURITY
MAINTAINABILITY
MODIFIABILITY
TESTABILITY
INTEROPERABILITY
OBSERVABILITY
FAULT_TOLERANCE
COUPLING
COHESION
BOUNDARY
TRUST_BOUNDARY
DATA_FLOW
CONTROL_FLOW
REQUEST
RESPONSE
MESSAGE
EVENT
STATE
FAILURE
BOTTLENECK
RISK
TECHNICAL_DEBT
VERSION
CONFIGURATION
ENVIRONMENT
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
PART_OF
CONTAINS
DECOMPOSES_INTO
CONNECTS_TO
COMMUNICATES_WITH
DEPENDS_ON
CALLS
INVOKES
PROVIDES
CONSUMES
EXPOSES
IMPLEMENTS
USES
READS_FROM
WRITES_TO
PUBLISHES
SUBSCRIBES_TO
SENDS
RECEIVES
ROUTES_TO
LOAD_BALANCES_TO
CACHES
STORES_IN
DEPLOYED_TO
HOSTED_BY
RUNS_ON
HAS_INTERFACE
HAS_ENDPOINT
HAS_PROTOCOL
HAS_LAYER
HAS_TIER
HAS_BOUNDARY
HAS_STYLE
HAS_PATTERN
HAS_DECISION
SATISFIES
CONSTRAINED_BY
HAS_QUALITY_ATTRIBUTE
AFFECTS
HAS_RISK
HAS_TECHNICAL_DEBT
HAS_STATE
TRANSITIONS_TO
HAS_VERSION
HAS_CONFIGURATION
PRECEDES
FOLLOWS
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
MAPS_TO
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
ARCHITECTURE_DOCUMENTS
SYSTEM_CONTEXT_MODELS
COMPONENT_MODELS
MODULE_MODELS
INTERFACE_SPECIFICATIONS
API_SPECIFICATIONS
DEPENDENCY_GRAPHS
DATA_FLOW_DIAGRAMS
DEPLOYMENT_DIAGRAMS
INFRASTRUCTURE_CONFIGURATION
ARCHITECTURAL_DECISION_RECORDS
REQUIREMENTS
QUALITY_ATTRIBUTE_SCENARIOS
RUNTIME_TRACES
DISTRIBUTED_TRACES
PERFORMANCE_METRICS
LOGS
SECURITY_MODELS
FAILURE_DATA
VERSION_DATA
CONFIGURATION_DATA
ENVIRONMENT_DATA
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_ARCHITECTURE_IDENTIFIERS
NORMALISE_SYSTEM_AND_COMPONENT_NAMES
NORMALISE_MODULE_AND_SERVICE_NAMES
NORMALISE_INTERFACE_AND_API_IDENTIFIERS
NORMALISE_ENDPOINTS
NORMALISE_PROTOCOL_NAMES
NORMALISE_DEPENDENCY_TYPES
NORMALISE_LAYER_AND_TIER_NAMES
NORMALISE_ARCHITECTURAL_STYLE_NAMES
NORMALISE_PATTERN_NAMES
NORMALISE_DEPLOYMENT_IDENTIFIERS
NORMALISE_QUALITY_ATTRIBUTE_TERMS
NORMALISE_DECISION_IDENTIFIERS
NORMALISE_VERSION_IDENTIFIERS
RESOLVE_ARCHITECTURAL_ENTITY_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS ARCHITECTURE_REASONING_PIPELINE {
SOFTWARE_SYSTEM
-> SYSTEM_CONTEXT
-> ARCHITECTURAL_DECOMPOSITION
-> COMPONENT_AND_INTERFACE_MAPPING
-> DEPENDENCY_AND_DATA_FLOW_MAPPING
-> DEPLOYMENT_MAPPING
-> DECISION_AND_CONSTRAINT_MAPPING
-> QUALITY_ATTRIBUTE_ANALYSIS
-> VALIDATION
-> OUTPUT
}
PROCESS DECOMPOSITION_REASONING {
SOFTWARE_SYSTEM
-> SUBSYSTEMS_OR_COMPONENTS
SUBSYSTEMS_OR_COMPONENTS
-> RESPONSIBILITIES
RESPONSIBILITIES
-> INTERFACES
INTERFACES
-> CONNECTORS_AND_DEPENDENCIES
DECOMPOSITION
-> ARCHITECTURAL_BOUNDARIES
}
PROCESS INTERFACE_REASONING {
COMPONENT_A
-> PROVIDED_INTERFACE
COMPONENT_B
-> REQUIRED_INTERFACE
PROVIDED_INTERFACE + REQUIRED_INTERFACE
-> COMPATIBILITY_CHECK
COMPATIBLE_INTERFACES
-> CONNECTOR_OR_CALL_RELATION
}
PROCESS DEPENDENCY_REASONING {
COMPONENT_OR_MODULE
-> DIRECT_DEPENDENCIES
DIRECT_DEPENDENCIES
-> DEPENDENCY_GRAPH
DEPENDENCY_GRAPH
-> TRANSITIVE_DEPENDENCIES
DEPENDENCY_GRAPH
-> CYCLE_AND_COUPLING_ANALYSIS
}
PROCESS DATA_FLOW_REASONING {
DATA_SOURCE
-> PRODUCER_COMPONENT
PRODUCER_COMPONENT
-> INTERFACE_OR_MESSAGE
INTERFACE_OR_MESSAGE
-> CONNECTOR_OR_CHANNEL
CONNECTOR_OR_CHANNEL
-> CONSUMER_COMPONENT
DATA_FLOW
-> STORAGE_PROCESSING_AND_TRUST_BOUNDARY_ANALYSIS
}
PROCESS DEPLOYMENT_REASONING {
SOFTWARE_COMPONENT_OR_DEPLOYMENT_UNIT
-> DEPLOYMENT_TARGET
DEPLOYMENT_TARGET
-> HOST_CONTAINER_VM_OR_NODE
DEPLOYED_COMPONENTS
-> NETWORK_AND_RUNTIME_TOPOLOGY
RUNTIME_TOPOLOGY
-> COMMUNICATION_PATHS
}
PROCESS ARCHITECTURAL_STYLE_REASONING {
ARCHITECTURAL_STRUCTURE
-> STRUCTURAL_FEATURES
STRUCTURAL_FEATURES
-> STYLE_PATTERN_MATCHING
STYLE_PATTERN_MATCHING
-> CANDIDATE_ARCHITECTURAL_STYLES
CANDIDATE_STYLES
-> EVIDENCE_AND_CONTEXT_VALIDATION
}
PROCESS DECISION_REASONING {
ARCHITECTURAL_DECISION
-> DECISION_CONTEXT
DECISION_CONTEXT
-> OPTIONS
OPTIONS
-> TRADEOFFS
SELECTED_OPTION
-> RATIONALE
RATIONALE
-> CONSEQUENCES_AND_CONSTRAINTS
}
PROCESS QUALITY_ATTRIBUTE_REASONING {
ARCHITECTURE + QUALITY_SCENARIO
-> RELEVANT_COMPONENTS_AND_PATHS
RELEVANT_COMPONENTS_AND_PATHS
-> ARCHITECTURAL_MECHANISMS
ARCHITECTURAL_MECHANISMS
-> QUALITY_EFFECTS
QUALITY_EFFECTS
-> SUPPORTING_OR_ADVERSE_RELATIONS
}
PROCESS FAILURE_REASONING {
COMPONENT_FAILURE
-> DIRECT_DEPENDENTS
DIRECT_DEPENDENTS
-> FAILURE_PROPAGATION_PATHS
FAILURE_PROPAGATION_PATHS
-> REDUNDANCY_AND_RECOVERY_CHECK
RECOVERY_MECHANISMS
-> RESIDUAL_FAILURE_IMPACT
}
PROCESS PERFORMANCE_REASONING {
REQUEST_OR_WORKLOAD
-> EXECUTION_PATH
EXECUTION_PATH
-> COMPONENT_LATENCIES
-> NETWORK_LATENCIES
-> QUEUEING
-> STORAGE_OR_EXTERNAL_DEPENDENCIES
PATH_METRICS
-> PERFORMANCE_PROFILE
PERFORMANCE_PROFILE
-> BOTTLENECK_HYPOTHESIS
}
RULES {
IF COMPONENT_DEPENDS_ON_ANOTHER_COMPONENT
THEN PRESERVE DEPENDENCY_TYPE_DIRECTION_AND_VERSION_CONTEXT
IF ARCHITECTURAL_STYLE_IS_ASSERTED
THEN REQUIRE STRUCTURAL_FEATURE_EVIDENCE
IF COMPONENTS_COMMUNICATE
THEN PRESERVE INTERFACE_PROTOCOL_AND_RUNTIME_PATH_CONTEXT
IF SOFTWARE_IS_DEPLOYED
THEN DISTINGUISH LOGICAL_ARCHITECTURE_FROM_PHYSICAL_DEPLOYMENT
IF QUALITY_ATTRIBUTE_IS_ASSESSED
THEN REQUIRE SCENARIO_WORKLOAD_ENVIRONMENT_AND_VERSION_CONTEXT
IF FAILURE_PROPAGATION_IS_INFERRED
THEN TRACE DEPENDENCY_PATH_AND_RECOVERY_MECHANISMS
IF DEPENDENCY_GRAPH_HAS_CYCLE
THEN PRESERVE CYCLE_CONTEXT_WITHOUT_AUTOMATICALLY_ASSERTING_ARCHITECTURAL_FAILURE
IF SEMANTIC_IDENTIFIERS_DIFFER
AND ARCHITECTURAL_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
ARCHITECTURE_DOCUMENTATION_COMPLETENESS,
COMPONENT_IDENTITY_CERTAINTY,
INTERFACE_SPECIFICATION_QUALITY,
DEPENDENCY_GRAPH_COMPLETENESS,
DEPLOYMENT_TOPOLOGY_COMPLETENESS,
RUNTIME_TRACE_QUALITY,
QUALITY_METRIC_QUALITY,
PROVENANCE_COMPLETENESS
)
LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}
IF RUNTIME_TOPOLOGY_DIFFERS_FROM_DOCUMENTED_ARCHITECTURE
THEN PRESERVE_BOTH_AND_REDUCE_UNIFIED_MODEL_CONFIDENCE
IF INTERFACE_OR_DEPENDENCY_DATA_IS_INCOMPLETE
THEN REDUCE_IMPACT_ANALYSIS_CONFIDENCE
IF DOCUMENTATION_AND_RUNTIME_EVIDENCE_CONVERGE
THEN INCREASE_CONFIDENCE_SCORE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
SOFTWARE_SYSTEM_IDENTIFIER,
CANONICAL_IDENTIFIER,
VERSION,
ENVIRONMENT,
DEPLOYMENT_CONTEXT
)
IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
SOFTWARE_ARCHITECTURE != SOURCE_CODE_STRUCTURE_ALONE
COMPONENT != DEPLOYMENT_NODE
MODULE != RUNTIME_SERVICE_IN_ALL_CONTEXTS
INTERFACE != IMPLEMENTATION
API != ARCHITECTURE
LOGICAL_ARCHITECTURE != PHYSICAL_DEPLOYMENT
ARCHITECTURAL_STYLE != ARCHITECTURAL_PATTERN_IN_ALL_USAGE
DEPENDENCY != COMMUNICATION_IN_ALL_CASES
DEPENDENCY_CYCLE != AUTOMATIC_FAILURE
QUALITY_ATTRIBUTE != SINGLE_METRIC
PERFORMANCE != LATENCY_ALONE
AVAILABILITY != RELIABILITY
SECURITY_BOUNDARY != NETWORK_BOUNDARY_IN_ALL_CASES
DOCUMENTED_ARCHITECTURE_MAY_DIFFER_FROM_RUNTIME_ARCHITECTURE
VERSION_CONFIGURATION_WORKLOAD_AND_ENVIRONMENT_AFFECT_ARCHITECTURAL_BEHAVIOUR
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_SYSTEM_IDENTIFIER
CHECK_COMPONENT_IDENTITIES
CHECK_MODULE_AND_SERVICE_IDENTITIES
CHECK_INTERFACES
CHECK_ENDPOINTS_AND_PROTOCOLS
CHECK_DEPENDENCIES
CHECK_LAYERS_AND_TIERS
CHECK_ARCHITECTURAL_STYLES
CHECK_PATTERNS
CHECK_DATA_FLOWS
CHECK_DEPLOYMENT_TOPOLOGY
CHECK_ARCHITECTURAL_DECISIONS
CHECK_REQUIREMENT_RELATIONS
CHECK_QUALITY_ATTRIBUTE_RELATIONS
CHECK_FAILURE_PROPAGATION
CHECK_PERFORMANCE_CONTEXT
CHECK_VERSION_CONFIGURATION_AND_ENVIRONMENT
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_SOFTWARE_ARCHITECTURE_ENTITIES
SYSTEM_DECOMPOSITION_RELATIONS
COMPONENT_AND_MODULE_RELATIONS
INTERFACE_AND_API_RELATIONS
CONNECTOR_RELATIONS
DEPENDENCY_GRAPHS
DATA_FLOW_RELATIONS
LAYER_AND_TIER_RELATIONS
ARCHITECTURAL_STYLE_RELATIONS
ARCHITECTURAL_PATTERN_RELATIONS
DEPLOYMENT_TOPOLOGIES
ARCHITECTURAL_DECISION_RELATIONS
REQUIREMENT_AND_CONSTRAINT_RELATIONS
QUALITY_ATTRIBUTE_RELATIONS
FAILURE_PROPAGATION_RELATIONS
PERFORMANCE_PROFILES
BOTTLENECK_HYPOTHESES
RISK_AND_TECHNICAL_DEBT_RELATIONS
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON ARCHITECTURE_OR_CONFIGURATION_CHANGE {
NORMALISE
RESOLVE_ARCHITECTURAL_ENTITIES
UPDATE_DECOMPOSITION
UPDATE_INTERFACES
UPDATE_DEPENDENCY_GRAPH
UPDATE_DATA_FLOWS
UPDATE_DEPLOYMENT_TOPOLOGY
REASSESS_QUALITY_AND_FAILURE_RELATIONS
UPDATE_CONFIDENCE
PRESERVE_VERSION_HISTORY
}
ON NEW_RUNTIME_METRIC_OR_FAILURE_DATA {
LINK_EVIDENCE
UPDATE_RUNTIME_TOPOLOGY
UPDATE_COMMUNICATION_PATHS
UPDATE_PERFORMANCE_PROFILE
REASSESS_FAILURE_PROPAGATION
REASSESS_BOTTLENECKS
UPDATE_CONFIDENCE
RECORD_PROVENANCE
}
ON ONTOLOGY_REVISION {
REMAP_TERMS
CHECK_SEMANTIC_EQUIVALENCE
IDENTIFY_DEPRECATED_TERMS
MIGRATE_RELATIONSHIPS
PRESERVE_PRIOR_VERSION_REFERENCES
}
}
FLOW_HASH {
HASH_INPUT =
CANONICALISE(
ENTITY_TYPES,
RELATIONSHIPS,
RULES,
CONFIDENCE,
SEMANTIC_EQUIVALENCE,
REASONING_CONSTRAINTS,
UPDATE_MODEL
)
FLOW_HASH = SHA256(HASH_INPUT)
}
AI_CONSUMPTION {
INDEX {
ONTOLOGY
ENTITY_TYPES
RELATIONSHIPS
RULES
OUTPUTS
}
RETRIEVE {
BY_SOFTWARE_SYSTEM
BY_COMPONENT
BY_MODULE
BY_SERVICE
BY_INTERFACE
BY_API
BY_DEPENDENCY
BY_LAYER
BY_ARCHITECTURAL_STYLE
BY_DECISION
BY_DEPLOYMENT
BY_QUALITY_ATTRIBUTE
BY_FAILURE
BY_PERFORMANCE
BY_CONFIDENCE
}
REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
ANALYSE_ARCHITECTURAL_DECOMPOSITION
ANALYSE_INTERFACES
BUILD_DEPENDENCY_GRAPH
TRACE_DATA_FLOWS
TRACE_DEPLOYMENT_TOPOLOGY
ANALYSE_ARCHITECTURAL_STYLES
TRACE_ARCHITECTURAL_DECISIONS
ANALYSE_QUALITY_ATTRIBUTES
ANALYSE_FAILURE_PROPAGATION
ANALYSE_PERFORMANCE
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}
RESPONSE_POLICY {
DISTINGUISH_LOGICAL_ARCHITECTURE_FROM_PHYSICAL_DEPLOYMENT
DISTINGUISH_INTERFACE_FROM_IMPLEMENTATION
PRESERVE_VERSION_CONFIGURATION_ENVIRONMENT_WORKLOAD_AND_RUNTIME_CONTEXT
DISTINGUISH_ARCHITECTURAL_STYLE_FROM_UNSUPPORTED_LABEL
PRESERVE_DEPENDENCY_DIRECTION_AND_FAILURE_PATHS
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_SOFTWARE_ARCHITECTURE_INFERENCE
}
}
TERMINAL {
RESULT =
VALIDATED(
SEMANTICALLY_NORMALISED(
EVIDENCE_LINKED(
CONFIDENCE_AWARE(
SOFTWARE_ARCHITECTURE_KNOWLEDGE
)
)
)
)
}
}
END FLOW
Download Code
Copy to Clipboard