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