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
Download Code
Copy to Clipboard