Skip to main content

Software Design Ontology

Software Engineering
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 01 October 2026
Audio Overview
AI SEARCH

FLOW ALGEBRA — SOFTWARE DESIGN ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/entity-graph/computational-entities/software-entities/software-design-ontology-2.html

FLOW SOFTWARE_DESIGN_ONTOLOGY {

  META {
    DOMAIN = "Entity Graph"
    SUBDOMAIN = "Computational Entities / Software Entities"
    ONTOLOGY = "Software Design Ontology"
    PURPOSE = "Formalise software design entities, abstractions, modules, interfaces, responsibilities, patterns, principles, data structures, algorithms, dependencies, constraints and design-decision relationships."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    SOFTWARE_DESIGN
    SOFTWARE_SYSTEM
    SOFTWARE_COMPONENT
    MODULE
    PACKAGE
    CLASS
    OBJECT
    INTERFACE
    API
    FUNCTION
    METHOD
    SERVICE
    RESPONSIBILITY
    COLLABORATION
    ABSTRACTION
    ENCAPSULATION
    INFORMATION_HIDING
    SEPARATION_OF_CONCERNS
    MODULARITY
    COHESION
    COUPLING
    DEPENDENCY
    ASSOCIATION
    AGGREGATION
    COMPOSITION
    INHERITANCE
    POLYMORPHISM
    DELEGATION
    DATA_MODEL
    DATA_STRUCTURE
    ALGORITHM
    STATE
    STATE_MACHINE
    EVENT
    MESSAGE
    CONTROL_FLOW
    DATA_FLOW
    DESIGN_PATTERN
    CREATIONAL_PATTERN
    STRUCTURAL_PATTERN
    BEHAVIOURAL_PATTERN
    FACTORY_PATTERN
    BUILDER_PATTERN
    SINGLETON_PATTERN
    ADAPTER_PATTERN
    FACADE_PATTERN
    DECORATOR_PATTERN
    COMPOSITE_PATTERN
    PROXY_PATTERN
    OBSERVER_PATTERN
    STRATEGY_PATTERN
    COMMAND_PATTERN
    STATE_PATTERN
    TEMPLATE_METHOD_PATTERN
    ITERATOR_PATTERN
    DESIGN_PRINCIPLE
    SINGLE_RESPONSIBILITY_PRINCIPLE
    OPEN_CLOSED_PRINCIPLE
    LISKOV_SUBSTITUTION_PRINCIPLE
    INTERFACE_SEGREGATION_PRINCIPLE
    DEPENDENCY_INVERSION_PRINCIPLE
    DRY_PRINCIPLE
    KISS_PRINCIPLE
    YAGNI_PRINCIPLE
    DESIGN_DECISION
    ALTERNATIVE
    TRADEOFF
    RATIONALE
    CONSTRAINT
    REQUIREMENT
    QUALITY_ATTRIBUTE
    MAINTAINABILITY
    TESTABILITY
    EXTENSIBILITY
    REUSABILITY
    PERFORMANCE
    SECURITY
    COMPLEXITY
    CODE_SMELL
    TECHNICAL_DEBT
    REFACTORING
    DESIGN_MODEL
    DIAGRAM
    VERSION
    CONFIGURATION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    CONTAINS
    DECOMPOSES_INTO
    DEFINES
    DECLARES
    IMPLEMENTS
    EXPOSES
    USES
    CALLS
    DEPENDS_ON
    ASSOCIATED_WITH
    AGGREGATES
    COMPOSED_OF
    INHERITS_FROM
    DELEGATES_TO
    COLLABORATES_WITH
    HAS_RESPONSIBILITY
    ENCAPSULATES
    HIDES
    ABSTRACTS
    SEPARATES
    HAS_COHESION
    HAS_COUPLING
    APPLIES_PATTERN
    FOLLOWS_PRINCIPLE
    SATISFIES
    CONSTRAINED_BY
    AFFECTS
    HAS_QUALITY_ATTRIBUTE
    HAS_DECISION
    HAS_ALTERNATIVE
    HAS_TRADEOFF
    HAS_RATIONALE
    REFACTORS
    HAS_TECHNICAL_DEBT
    HAS_STATE
    TRANSITIONS_TO
    SENDS
    RECEIVES
    PRECEDES
    FOLLOWS
    HAS_VERSION
    HAS_CONFIGURATION
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    MAPS_TO
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    REQUIREMENTS
    DESIGN_DOCUMENTS
    DESIGN_MODELS
    UML_OR_EQUIVALENT_MODELS
    SOURCE_CODE
    MODULE_AND_PACKAGE_DATA
    CLASS_AND_INTERFACE_DATA
    API_SPECIFICATIONS
    DEPENDENCY_GRAPHS
    CALL_GRAPHS
    DATA_MODELS
    CONTROL_FLOW_GRAPHS
    DESIGN_PATTERN_DATA
    DESIGN_PRINCIPLE_DATA
    DESIGN_DECISION_RECORDS
    QUALITY_METRICS
    CODE_SMELL_DATA
    TECHNICAL_DEBT_DATA
    REFACTORING_HISTORY
    VERSION_DATA
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_DESIGN_IDENTIFIERS
    NORMALISE_COMPONENT_MODULE_AND_PACKAGE_NAMES
    NORMALISE_CLASS_AND_INTERFACE_NAMES
    NORMALISE_FUNCTION_AND_METHOD_SIGNATURES
    NORMALISE_DEPENDENCY_TYPES
    NORMALISE_PATTERN_NAMES
    NORMALISE_PRINCIPLE_NAMES
    NORMALISE_DESIGN_DECISION_IDENTIFIERS
    NORMALISE_QUALITY_ATTRIBUTE_TERMS
    NORMALISE_CODE_SMELL_TERMS
    NORMALISE_TECHNICAL_DEBT_TERMS
    NORMALISE_VERSION_IDENTIFIERS
    RESOLVE_DESIGN_ENTITY_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS SOFTWARE_DESIGN_PIPELINE {
    REQUIREMENTS_AND_CONSTRAINTS
      -> RESPONSIBILITY_IDENTIFICATION
      -> ABSTRACTION_AND_DECOMPOSITION
      -> INTERFACE_DESIGN
      -> DATA_AND_CONTROL_DESIGN
      -> DEPENDENCY_ANALYSIS
      -> PATTERN_AND_PRINCIPLE_MAPPING
      -> QUALITY_AND_TRADEOFF_ANALYSIS
      -> VALIDATION
      -> OUTPUT
  }

  PROCESS RESPONSIBILITY_REASONING {
    REQUIREMENT
      -> REQUIRED_BEHAVIOUR_OR_DATA

    REQUIRED_BEHAVIOUR_OR_DATA
      -> RESPONSIBILITY

    RESPONSIBILITY
      -> CANDIDATE_MODULE_CLASS_COMPONENT_OR_SERVICE

    RESPONSIBILITY_ASSIGNMENT
      -> COHESION_AND_COUPLING_ANALYSIS
  }

  PROCESS DECOMPOSITION_REASONING {
    SOFTWARE_SYSTEM_OR_COMPONENT
      -> SUBPROBLEMS

    SUBPROBLEMS
      -> MODULES_OR_COMPONENTS

    MODULES_OR_COMPONENTS
      -> RESPONSIBILITIES

    RESPONSIBILITIES
      -> BOUNDARIES_AND_INTERFACES
  }

  PROCESS INTERFACE_REASONING {
    COMPONENT_OR_MODULE
      -> PROVIDED_OPERATIONS

    CLIENT_REQUIREMENTS
      -> REQUIRED_OPERATIONS

    PROVIDED_AND_REQUIRED_OPERATIONS
      -> INTERFACE_CONTRACT

    INTERFACE_CONTRACT
      -> DEPENDENCY_DIRECTION
  }

  PROCESS DEPENDENCY_REASONING {
    DESIGN_ENTITY
      -> DIRECT_DEPENDENCIES

    DIRECT_DEPENDENCIES
      -> DEPENDENCY_GRAPH

    DEPENDENCY_GRAPH
      -> TRANSITIVE_DEPENDENCIES

    DEPENDENCY_GRAPH
      -> CYCLE_COUPLING_AND_CHANGE_IMPACT_ANALYSIS
  }

  PROCESS PATTERN_REASONING {
    DESIGN_STRUCTURE_OR_PROBLEM
      -> PATTERN_FEATURES

    PATTERN_FEATURES
      -> CANDIDATE_DESIGN_PATTERN

    CANDIDATE_DESIGN_PATTERN
      -> STRUCTURAL_AND_BEHAVIOURAL_VALIDATION

    VALIDATED_PATTERN
      -> PARTICIPANTS_AND_RELATIONSHIPS
  }

  PROCESS PRINCIPLE_REASONING {
    DESIGN_MODEL
      -> DESIGN_RELATIONS

    DESIGN_RELATIONS
      -> PRINCIPLE_SPECIFIC_CHECKS

    PRINCIPLE_SPECIFIC_CHECKS
      -> SUPPORTING_EVIDENCE
      OR -> POTENTIAL_VIOLATION

    POTENTIAL_VIOLATION
      -> CONTEXT_AND_TRADEOFF_REVIEW
  }

  PROCESS DATA_DESIGN_REASONING {
    DOMAIN_INFORMATION
      -> DATA_ENTITIES

    DATA_ENTITIES
      -> DATA_MODEL

    DATA_MODEL
      -> DATA_STRUCTURES

    DATA_STRUCTURES + OPERATIONS
      -> ALGORITHM_AND_ACCESS_PATTERN
  }

  PROCESS STATE_AND_BEHAVIOUR_REASONING {
    ENTITY_WITH_STATE
      -> STATE_SET

    STATE_SET
      -> TRANSITIONS

    TRANSITIONS
      -> TRIGGERS_EVENTS_AND_GUARDS

    STATE_MODEL
      -> BEHAVIOURAL_CONSTRAINTS
  }

  PROCESS QUALITY_REASONING {
    DESIGN + QUALITY_REQUIREMENT
      -> RELEVANT_DESIGN_PROPERTIES

    DESIGN_PROPERTIES
      -> QUALITY_EFFECTS

    QUALITY_EFFECTS
      -> SUPPORTING_OR_ADVERSE_RELATIONS

    QUALITY_RELATIONS
      -> TRADEOFF_ANALYSIS
  }

  PROCESS REFACTORING_REASONING {
    CODE_SMELL_OR_DESIGN_DEBT
      -> REFACTORING_CANDIDATE

    REFACTORING_CANDIDATE
      -> BEHAVIOUR_PRESERVATION_REQUIREMENT

    REFACTORING
      -> DESIGN_STRUCTURE_CHANGE

    DESIGN_STRUCTURE_CHANGE
      -> QUALITY_AND_DEPENDENCY_REASSESSMENT
  }

  RULES {
    IF DESIGN_PATTERN_IS_ASSERTED
    THEN REQUIRE STRUCTURAL_OR_BEHAVIOURAL_EVIDENCE

    IF DESIGN_PRINCIPLE_IS_ASSESSED
    THEN PRESERVE DESIGN_CONTEXT_AND_TRADEOFFS

    IF COMPONENT_DEPENDS_ON_ANOTHER
    THEN PRESERVE DEPENDENCY_DIRECTION_AND_INTERFACE_CONTEXT

    IF HIGH_COUPLING_IS_INFERRED
    THEN REQUIRE DEFINED_METRIC_OR_RELATIONAL_EVIDENCE

    IF HIGH_COHESION_IS_INFERRED
    THEN REQUIRE RESPONSIBILITY_AND_INTERNAL_RELATION_CONTEXT

    IF REFACTORING_IS_ASSERTED
    THEN DISTINGUISH STRUCTURAL_CHANGE_FROM INTENDED_EXTERNAL_BEHAVIOUR_CHANGE

    IF DESIGN_QUALITY_IS_COMPARED
    THEN REQUIRE REQUIREMENT_CONSTRAINT_VERSION_AND_CONTEXT

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND DESIGN_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        DESIGN_DOCUMENTATION_COMPLETENESS,
        ENTITY_IDENTITY_CERTAINTY,
        DEPENDENCY_GRAPH_COMPLETENESS,
        INTERFACE_SPECIFICATION_QUALITY,
        PATTERN_EVIDENCE_QUALITY,
        PRINCIPLE_ASSESSMENT_CONTEXT,
        QUALITY_METRIC_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF DESIGN_DOCUMENTATION_AND_SOURCE_DIVERGE
    THEN PRESERVE_BOTH_AND_REDUCE_UNIFIED_MODEL_CONFIDENCE

    IF PATTERN_OR_PRINCIPLE_EVIDENCE_IS_PARTIAL
    THEN REDUCE_CLASSIFICATION_CONFIDENCE

    IF MULTIPLE_INDEPENDENT_DESIGN_ARTEFACTS_CONVERGE
    THEN INCREASE_CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        SOFTWARE_SYSTEM_IDENTIFIER,
        CANONICAL_IDENTIFIER,
        MODULE_OR_NAMESPACE,
        VERSION,
        CONFIGURATION
      )

    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
    THEN A SEMANTICALLY_EQUIVALENT_TO B

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    SOFTWARE_DESIGN != SOFTWARE_ARCHITECTURE
    DESIGN_MODEL != SOURCE_CODE
    CLASS != OBJECT
    INTERFACE != IMPLEMENTATION
    DEPENDENCY != CALL_RELATION_IN_ALL_CASES
    ASSOCIATION != AGGREGATION
    AGGREGATION != COMPOSITION
    INHERITANCE != COMPOSITION
    DESIGN_PATTERN != CODE_TEMPLATE
    PRINCIPLE != ABSOLUTE_RULE
    COUPLING != DEPENDENCY_COUNT_ALONE
    COHESION != CLASS_SIZE
    CODE_SMELL != CONFIRMED_DEFECT
    TECHNICAL_DEBT != BUG_COUNT
    REFACTORING != FEATURE_CHANGE
    QUALITY_ATTRIBUTE != SINGLE_METRIC
    DESIGN_TRADEOFFS_MUST_BE_PRESERVED
    VERSION_AND_REQUIREMENT_CONTEXT_AFFECT_DESIGN_ASSESSMENT
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_SOFTWARE_SYSTEM_IDENTIFIER
    CHECK_COMPONENT_MODULE_AND_CLASS_IDENTITIES
    CHECK_RESPONSIBILITIES
    CHECK_INTERFACES
    CHECK_DEPENDENCIES
    CHECK_ASSOCIATION_AGGREGATION_AND_COMPOSITION
    CHECK_INHERITANCE
    CHECK_DATA_MODEL
    CHECK_CONTROL_AND_STATE_MODELS
    CHECK_DESIGN_PATTERNS
    CHECK_DESIGN_PRINCIPLES
    CHECK_DESIGN_DECISIONS
    CHECK_QUALITY_ATTRIBUTE_RELATIONS
    CHECK_CODE_SMELLS_AND_TECHNICAL_DEBT
    CHECK_REFACTORING_RELATIONS
    CHECK_VERSION_AND_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_SOFTWARE_DESIGN_ENTITIES
    RESPONSIBILITY_RELATIONS
    DECOMPOSITION_RELATIONS
    MODULE_CLASS_AND_COMPONENT_RELATIONS
    INTERFACE_RELATIONS
    DEPENDENCY_GRAPHS
    ASSOCIATION_AGGREGATION_AND_COMPOSITION_RELATIONS
    INHERITANCE_RELATIONS
    DATA_MODEL_RELATIONS
    CONTROL_FLOW_RELATIONS
    STATE_MODEL_RELATIONS
    DESIGN_PATTERN_RELATIONS
    DESIGN_PRINCIPLE_RELATIONS
    DESIGN_DECISION_RELATIONS
    QUALITY_AND_TRADEOFF_RELATIONS
    CODE_SMELL_RELATIONS
    TECHNICAL_DEBT_RELATIONS
    REFACTORING_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON REQUIREMENT_OR_DESIGN_CHANGE {
      NORMALISE
      RESOLVE_DESIGN_ENTITIES
      UPDATE_RESPONSIBILITIES
      UPDATE_DECOMPOSITION
      UPDATE_INTERFACES
      UPDATE_DEPENDENCY_GRAPH
      UPDATE_PATTERN_AND_PRINCIPLE_RELATIONS
      REASSESS_QUALITY_AND_TRADEOFFS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON SOURCE_REFACTORING_OR_METRIC_CHANGE {
      LINK_EVIDENCE
      UPDATE_IMPLEMENTED_DESIGN_MODEL
      UPDATE_COUPLING_AND_COHESION_RELATIONS
      UPDATE_CODE_SMELL_AND_TECHNICAL_DEBT_RELATIONS
      REASSESS_DESIGN_QUALITY
      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_CLASS
      BY_INTERFACE
      BY_RESPONSIBILITY
      BY_DEPENDENCY
      BY_PATTERN
      BY_PRINCIPLE
      BY_DECISION
      BY_DATA_MODEL
      BY_STATE_MODEL
      BY_QUALITY_ATTRIBUTE
      BY_REFACTORING
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      ANALYSE_RESPONSIBILITIES
      ANALYSE_DESIGN_DECOMPOSITION
      ANALYSE_INTERFACES
      BUILD_DEPENDENCY_GRAPH
      ANALYSE_DESIGN_PATTERNS
      ANALYSE_DESIGN_PRINCIPLES
      ANALYSE_DATA_AND_STATE_DESIGN
      TRACE_DESIGN_DECISIONS
      ANALYSE_QUALITY_AND_TRADEOFFS
      ANALYSE_REFACTORING_AND_TECHNICAL_DEBT
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_DESIGN_FROM_ARCHITECTURE_AND_IMPLEMENTATION
      DISTINGUISH_ASSOCIATION_AGGREGATION_COMPOSITION_AND_INHERITANCE
      PRESERVE_REQUIREMENT_CONSTRAINT_VERSION_AND_CONFIGURATION_CONTEXT
      DISTINGUISH_PATTERN_OR_PRINCIPLE_EVIDENCE_FROM_UNSUPPORTED_LABEL
      PRESERVE_DESIGN_TRADEOFFS
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_SOFTWARE_DESIGN_INFERENCE
    }
  }

  TERMINAL {
    RESULT =
      VALIDATED(
        SEMANTICALLY_NORMALISED(
          EVIDENCE_LINKED(
            CONFIDENCE_AWARE(
              SOFTWARE_DESIGN_KNOWLEDGE
            )
          )
        )
      )
  }
}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ