Skip to main content

Refactoring 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 — REFACTORING ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/entity-graph/computational-entities/software-entities/refactoring-ontology.html

FLOW REFACTORING_ONTOLOGY {

  META {
    DOMAIN = "Entity Graph"
    SUBDOMAIN = "Computational Entities / Software Entities"
    ONTOLOGY = "Refactoring Ontology"
    PURPOSE = "Formalise software refactoring entities, code smells, structural transformations, behaviour preservation, dependencies, tests, quality effects, technical debt and refactoring provenance."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    REFACTORING
    SOFTWARE_SYSTEM
    SOFTWARE_COMPONENT
    SOURCE_CODE
    SOURCE_FILE
    MODULE
    PACKAGE
    CLASS
    INTERFACE
    METHOD
    FUNCTION
    FIELD
    VARIABLE
    PARAMETER
    EXPRESSION
    STATEMENT
    CODE_STRUCTURE
    DESIGN_STRUCTURE
    DEPENDENCY
    CALL_RELATION
    INHERITANCE_RELATION
    COMPOSITION_RELATION
    COUPLING
    COHESION
    COMPLEXITY
    CODE_SMELL
    DUPLICATED_CODE
    LONG_METHOD
    LARGE_CLASS
    LONG_PARAMETER_LIST
    FEATURE_ENVY
    DATA_CLUMP
    PRIMITIVE_OBSESSION
    SWITCH_STATEMENT_SMELL
    SHOTGUN_SURGERY
    DIVERGENT_CHANGE
    DEAD_CODE
    SPECULATIVE_GENERALITY
    TEMPORARY_FIELD
    MESSAGE_CHAIN
    MIDDLE_MAN
    INAPPROPRIATE_INTIMACY
    TECHNICAL_DEBT
    REFACTORING_OPERATION
    RENAME
    EXTRACT_METHOD
    INLINE_METHOD
    EXTRACT_CLASS
    INLINE_CLASS
    MOVE_METHOD
    MOVE_FIELD
    EXTRACT_INTERFACE
    PULL_UP_METHOD
    PUSH_DOWN_METHOD
    ENCAPSULATE_FIELD
    REPLACE_CONDITIONAL_WITH_POLYMORPHISM
    INTRODUCE_PARAMETER_OBJECT
    REMOVE_DEAD_CODE
    SIMPLIFY_CONDITIONAL
    CHANGE_SIGNATURE
    BEFORE_STATE
    AFTER_STATE
    BEHAVIOUR
    OBSERVABLE_BEHAVIOUR
    BEHAVIOUR_PRESERVATION
    PRECONDITION
    POSTCONDITION
    INVARIANT
    TEST
    TEST_CASE
    REGRESSION_TEST
    TEST_RESULT
    BUILD
    VERSION
    COMMIT
    CHANGESET
    DIFF
    METRIC
    QUALITY_ATTRIBUTE
    MAINTAINABILITY
    READABILITY
    TESTABILITY
    MODULARITY
    EXTENSIBILITY
    PERFORMANCE
    RISK
    TOOL
    AUTOMATED_REFACTORING
    MANUAL_REFACTORING
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    CONTAINS
    TARGETS
    DETECTS
    INDICATES
    MOTIVATES
    REFACTORS
    TRANSFORMS
    RENAMES
    EXTRACTS
    INLINES
    MOVES
    ENCAPSULATES
    REPLACES
    REMOVES
    SIMPLIFIES
    CHANGES
    PRESERVES
    REQUIRES
    HAS_PRECONDITION
    HAS_POSTCONDITION
    HAS_INVARIANT
    BEFORE
    AFTER
    DEPENDS_ON
    CALLS
    INHERITS_FROM
    COMPOSED_OF
    AFFECTS
    REDUCES
    INCREASES
    HAS_METRIC
    HAS_QUALITY_ATTRIBUTE
    HAS_TECHNICAL_DEBT
    VERIFIED_BY
    TESTED_BY
    REGRESSION_TESTED_BY
    BUILT_AS
    COMMITTED_AS
    HAS_DIFF
    HAS_VERSION
    PERFORMED_BY
    PRECEDES
    FOLLOWS
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    SOURCE_CODE
    SOURCE_REPOSITORIES
    VERSION_HISTORY
    COMMIT_HISTORY
    DIFF_DATA
    STATIC_ANALYSIS_DATA
    CODE_SMELL_DATA
    COMPLEXITY_METRICS
    COUPLING_METRICS
    COHESION_METRICS
    DEPENDENCY_GRAPHS
    CALL_GRAPHS
    TEST_DEFINITIONS
    TEST_RESULTS
    BUILD_RESULTS
    REFACTORING_TOOL_OUTPUT
    CODE_REVIEW_DATA
    TECHNICAL_DEBT_DATA
    QUALITY_METRICS
    PERFORMANCE_METRICS
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_REFACTORING_IDENTIFIERS
    NORMALISE_SOURCE_ENTITY_IDENTIFIERS
    NORMALISE_FILE_PATHS
    NORMALISE_CLASS_METHOD_AND_FUNCTION_SIGNATURES
    NORMALISE_CODE_SMELL_NAMES
    NORMALISE_REFACTORING_OPERATION_NAMES
    NORMALISE_METRIC_NAMES_AND_UNITS
    NORMALISE_TEST_IDENTIFIERS
    NORMALISE_BUILD_VERSION_AND_COMMIT_IDENTIFIERS
    NORMALISE_DEPENDENCY_TYPES
    NORMALISE_QUALITY_ATTRIBUTE_TERMS
    RESOLVE_BEFORE_AND_AFTER_ENTITY_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS REFACTORING_PIPELINE {
    SOURCE_STATE
      -> STRUCTURAL_ANALYSIS
      -> CODE_SMELL_OR_IMPROVEMENT_OPPORTUNITY
      -> REFACTORING_CANDIDATE
      -> PRECONDITION_CHECK
      -> TRANSFORMATION
      -> AFTER_STATE
      -> BUILD_AND_TEST
      -> BEHAVIOUR_PRESERVATION_ANALYSIS
      -> QUALITY_REASSESSMENT
      -> OUTPUT
  }

  PROCESS CODE_SMELL_REASONING {
    SOURCE_STRUCTURE + METRICS
      -> SMELL_INDICATORS

    SMELL_INDICATORS
      -> CODE_SMELL_CANDIDATE

    CODE_SMELL_CANDIDATE
      -> CONTEXTUAL_VALIDATION

    VALIDATED_SMELL
      -> REFACTORING_OPPORTUNITY
  }

  PROCESS REFACTORING_SELECTION {
    CODE_SMELL_OR_DESIGN_PROBLEM
      -> CANDIDATE_REFACTORINGS

    CANDIDATE_REFACTORINGS
      -> PRECONDITION_ANALYSIS

    PRECONDITION_ANALYSIS
      -> APPLICABLE_REFACTORINGS

    APPLICABLE_REFACTORINGS
      -> RISK_AND_IMPACT_ANALYSIS

    SELECTED_REFACTORING
      -> TRANSFORMATION_PLAN
  }

  PROCESS TRANSFORMATION_REASONING {
    BEFORE_STATE
      -> SELECTED_REFACTORING

    SELECTED_REFACTORING
      -> STRUCTURAL_TRANSFORMATION

    STRUCTURAL_TRANSFORMATION
      -> AFTER_STATE

    BEFORE_STATE + AFTER_STATE
      -> STRUCTURAL_DIFF
  }

  PROCESS BEHAVIOUR_PRESERVATION_REASONING {
    BEFORE_STATE
      -> OBSERVABLE_BEHAVIOUR_BASELINE

    AFTER_STATE
      -> OBSERVED_BEHAVIOUR_AFTER

    BASELINE + AFTER_BEHAVIOUR
      -> EQUIVALENCE_OR_DIFFERENCE_ANALYSIS

    TEST_AND_SEMANTIC_EVIDENCE
      -> BEHAVIOUR_PRESERVATION_CONFIDENCE
  }

  PROCESS DEPENDENCY_IMPACT_REASONING {
    TARGET_ENTITY
      -> DIRECT_DEPENDENCIES

    DIRECT_DEPENDENCIES
      -> TRANSITIVE_DEPENDENCIES

    REFACTORING_OPERATION
      -> POTENTIALLY_AFFECTED_REFERENCES

    AFFECTED_REFERENCES
      -> UPDATE_OR_VALIDATION_REQUIREMENTS
  }

  PROCESS TESTING_REASONING {
    REFACTORED_BUILD
      -> EXISTING_TEST_SUITE

    EXISTING_TEST_SUITE
      -> REGRESSION_TEST_EXECUTION

    REGRESSION_RESULTS
      -> PASS_FAIL_OR_INCONCLUSIVE

    FAILURE
      -> BEHAVIOUR_CHANGE_OR_TEST_ADAPTATION_ANALYSIS
  }

  PROCESS QUALITY_REASONING {
    BEFORE_METRICS + AFTER_METRICS
      -> METRIC_DELTA

    METRIC_DELTA
      -> COUPLING_CHANGE
      -> COHESION_CHANGE
      -> COMPLEXITY_CHANGE

    STRUCTURAL_AND_METRIC_CHANGES
      -> QUALITY_ATTRIBUTE_EFFECTS

    QUALITY_ATTRIBUTE_EFFECTS
      -> TRADEOFF_ANALYSIS
  }

  PROCESS TECHNICAL_DEBT_REASONING {
    CODE_SMELLS + DESIGN_PROBLEMS + MAINTENANCE_COST
      -> TECHNICAL_DEBT_CANDIDATE

    REFACTORING
      -> DEBT_ITEM_IMPACT

    AFTER_STATE
      -> RESIDUAL_TECHNICAL_DEBT

    RESIDUAL_TECHNICAL_DEBT
      -> FUTURE_REFACTORING_CANDIDATES
  }

  RULES {
    IF REFACTORING_IS_ASSERTED
    THEN REQUIRE INTENT_TO_PRESERVE_EXTERNALLY_OBSERVABLE_BEHAVIOUR

    IF CODE_SMELL_IS_DETECTED
    THEN DO_NOT AUTOMATICALLY ASSERT DEFECT

    IF TESTS_PASS_AFTER_REFACTORING
    THEN DO_NOT ASSERT COMPLETE_BEHAVIOURAL_EQUIVALENCE

    IF PUBLIC_INTERFACE_CHANGES
    THEN CHECK WHETHER_CHANGE_IS_STILL_REFACTORING_UNDER_DEFINED_SCOPE

    IF ENTITY_IS_RENAMED
    THEN PRESERVE BEFORE_AND_AFTER_IDENTITY_MAPPING

    IF ENTITY_IS_MOVED
    THEN UPDATE REFERENCES_DEPENDENCIES_AND_NAMESPACE_CONTEXT

    IF QUALITY_METRIC_IMPROVES
    THEN DO_NOT ASSERT ALL_QUALITY_ATTRIBUTES_IMPROVE

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND REFACTORING_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        SOURCE_IDENTITY_CERTAINTY,
        BEFORE_AFTER_MAPPING_COMPLETENESS,
        STATIC_ANALYSIS_QUALITY,
        TEST_COVERAGE_AND_RESULT_QUALITY,
        BEHAVIOUR_OBSERVABILITY,
        DEPENDENCY_GRAPH_COMPLETENESS,
        METRIC_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF TEST_COVERAGE_IS_LIMITED
    THEN REDUCE_BEHAVIOUR_PRESERVATION_CONFIDENCE

    IF DYNAMIC_BEHAVIOUR_IS_UNOBSERVED
    THEN REDUCE_EQUIVALENCE_CONFIDENCE

    IF STATIC_ANALYSIS_TESTS_AND_RUNTIME_EVIDENCE_CONVERGE
    THEN INCREASE_CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        PROJECT_OR_REPOSITORY,
        BEFORE_IDENTIFIER,
        AFTER_IDENTIFIER,
        REFACTORING_OPERATION,
        VERSION_OR_COMMIT_CONTEXT
      )

    IF REFACTORING_MAP_CONFIRMS_CONTINUITY
    THEN BEFORE_ENTITY SEMANTICALLY_EQUIVALENT_TO AFTER_ENTITY

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    REFACTORING != FEATURE_DEVELOPMENT
    REFACTORING != BUG_FIXING_IN_INTENT
    CODE_SMELL != DEFECT
    CODE_SMELL != TECHNICAL_DEBT_IN_ALL_CASES
    STRUCTURAL_CHANGE != BEHAVIOURAL_CHANGE
    TEST_PASS != PROOF_OF_BEHAVIOURAL_EQUIVALENCE
    RENAME != NEW_SEMANTIC_ENTITY_WHEN_CONTINUITY_IS_ESTABLISHED
    MOVE != DUPLICATION
    METRIC_IMPROVEMENT != UNIVERSAL_DESIGN_IMPROVEMENT
    LOWER_COMPLEXITY != AUTOMATICALLY_HIGHER_PERFORMANCE
    TECHNICAL_DEBT_REDUCTION != COMPLETE_DEBT_ELIMINATION
    AUTOMATED_REFACTORING != ERROR_FREE_TRANSFORMATION_WITHOUT_VALIDATION
    REFACTORING_SCOPE_MUST_DEFINE_OBSERVABLE_BEHAVIOUR_BOUNDARY
    VERSION_COMMIT_CONFIGURATION_AND_LANGUAGE_CONTEXT_AFFECT_ANALYSIS
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_SOURCE_ENTITY_IDENTITIES
    CHECK_BEFORE_AND_AFTER_STATES
    CHECK_CODE_SMELL_EVIDENCE
    CHECK_REFACTORING_OPERATION
    CHECK_PRECONDITIONS
    CHECK_STRUCTURAL_TRANSFORMATION
    CHECK_DEPENDENCY_IMPACT
    CHECK_BUILD_RESULT
    CHECK_TEST_RESULTS
    CHECK_BEHAVIOUR_PRESERVATION_EVIDENCE
    CHECK_METRIC_DELTAS
    CHECK_QUALITY_ATTRIBUTE_EFFECTS
    CHECK_TECHNICAL_DEBT_RELATIONS
    CHECK_VERSION_AND_COMMIT_CONTEXT
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_REFACTORING_ENTITIES
    CODE_SMELL_RELATIONS
    REFACTORING_CANDIDATE_RELATIONS
    REFACTORING_OPERATION_RELATIONS
    BEFORE_AFTER_ENTITY_MAPPINGS
    STRUCTURAL_DIFF_RELATIONS
    DEPENDENCY_IMPACT_RELATIONS
    BUILD_AND_TEST_RELATIONS
    BEHAVIOUR_PRESERVATION_RELATIONS
    METRIC_DELTA_RELATIONS
    QUALITY_ATTRIBUTE_RELATIONS
    TECHNICAL_DEBT_RELATIONS
    REFACTORING_HISTORY
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON REFACTORING_EVENT {
      NORMALISE
      RESOLVE_BEFORE_AND_AFTER_IDENTITIES
      UPDATE_SOURCE_STRUCTURE
      UPDATE_DEPENDENCY_GRAPH
      UPDATE_CALL_GRAPH
      UPDATE_TEST_RELATIONS
      UPDATE_METRICS
      REASSESS_BEHAVIOUR_PRESERVATION
      REASSESS_TECHNICAL_DEBT
      UPDATE_CONFIDENCE
    }

    ON NEW_TEST_RUNTIME_OR_REVIEW_EVIDENCE {
      LINK_EVIDENCE
      UPDATE_BEHAVIOUR_EVIDENCE
      UPDATE_QUALITY_RELATIONS
      REASSESS_REFACTORING_OUTCOME
      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_REFACTORING
      BY_CODE_SMELL
      BY_SOURCE_ENTITY
      BY_OPERATION
      BY_BEFORE_STATE
      BY_AFTER_STATE
      BY_DEPENDENCY
      BY_TEST
      BY_METRIC
      BY_QUALITY_ATTRIBUTE
      BY_TECHNICAL_DEBT
      BY_VERSION
      BY_COMMIT
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      DETECT_CODE_SMELLS
      SELECT_REFACTORING_CANDIDATES
      TRACE_STRUCTURAL_TRANSFORMATIONS
      MAP_BEFORE_AND_AFTER_ENTITIES
      ANALYSE_DEPENDENCY_IMPACT
      ANALYSE_TEST_RESULTS
      ANALYSE_BEHAVIOUR_PRESERVATION
      ANALYSE_QUALITY_METRICS
      ANALYSE_TECHNICAL_DEBT
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_REFACTORING_FROM_FEATURE_CHANGE_AND_BUG_FIX_INTENT
      DISTINGUISH_CODE_SMELL_FROM_DEFECT
      PRESERVE_BEFORE_AFTER_VERSION_COMMIT_LANGUAGE_AND_CONFIGURATION_CONTEXT
      DISTINGUISH_TEST_SUCCESS_FROM_PROOF_OF_BEHAVIOURAL_EQUIVALENCE
      PRESERVE_REFACTORING_TRADEOFFS_AND_TECHNICAL_DEBT_CONTEXT
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_REFACTORING_INFERENCE
    }
  }

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

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