# Portability

> The degree to which software runs on another platform or environment without code changes.

Record: `architecture:portability`
Kind: quality-attribute
Layer: [Resource Core](https://banes-lab.com/records/layer/resource-core.md)
Severity: contextual
Scope: application, infrastructure, runtime
Canonical: https://banes-lab.com/ontology#architecture-portability

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Verification](https://banes-lab.com/records/architecture/verification.md) and before [Platform Independence](https://banes-lab.com/records/architecture/platform-independence.md).

## Repair

- Refactored by: Add Adapter, Externalize Platform Dependency
- Detected by: platform-specific imports in core
- Violated by: direct dependency on non-abstracted platform APIs
- Measured by: portability violation count
- Enforced by: dependency rules

## Requires

- [Abstraction](https://banes-lab.com/records/architecture/abstraction.md)
- [Standards](https://banes-lab.com/records/lexicon/standards.md)

## Reinforces

- [Replaceability](https://banes-lab.com/records/architecture/replaceability.md)

## Enables

- [Platform Migration](https://banes-lab.com/records/lexicon/platform-migration.md)

## Conflicts with

- [Platform-Specific Coupling](https://banes-lab.com/records/lexicon/platform-specific-coupling.md)

## In tension with

- [Platform Optimization](https://banes-lab.com/records/lexicon/platform-optimization.md)

## Tensions

- [Portability / Platform Optimization](https://banes-lab.com/records/tension/platform-optimization-portability.md)

## Severity

- [contextual](https://banes-lab.com/records/vocabulary/severity-contextual.md)

## Category

- [Portability / Infrastructure / Deployment](https://banes-lab.com/records/architecture-category/portability-infrastructure-deployment.md)

## Reinforced by

- [Interoperability](https://banes-lab.com/records/architecture/interoperability.md)
- [Platform Independence](https://banes-lab.com/records/architecture/platform-independence.md)
- [Containerization](https://banes-lab.com/records/architecture/containerization.md)
- [Protocol Independence](https://banes-lab.com/records/architecture/protocol-independence.md)
- [Configuration Externalization](https://banes-lab.com/records/architecture/configuration-externalization.md)
- [Low Coupling](https://banes-lab.com/records/architecture/low-coupling.md)
- [Independence](https://banes-lab.com/records/architecture/independence.md)
- [Case Dialect](https://banes-lab.com/records/architecture/case-dialect.md)

## Linked from

- [Semantic operations](https://banes-lab.com/pag/guide/tool-invocation.md)
- [The behavior document](https://banes-lab.com/disciplined-methodology/start/the-behavior-document.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Portability / Infrastructure / Deployment](https://banes-lab.com/ontology/principles/architecture-category-portability-infrastructure-deployment.md)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [Taxonomy / Classification / Naming](https://banes-lab.com/ontology/principles/architecture-category-taxonomy-classification-naming.md)
- [Core Vocabulary](https://banes-lab.com/ontology/lexicon/lexicon-category-core-vocabulary.md)
- [Portability / Infrastructure / Deployment](https://banes-lab.com/ontology/lexicon/lexicon-category-portability-infrastructure-deployment.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
