| Both sides previous revision Previous revision | |
| public:00-sip-ra:05-general-requirements-on-proposals:05-1-requirements:05-1-10-encapsulation:start [2026/09/15 13:30] – nick_dido | public:00-sip-ra:05-general-requirements-on-proposals:05-1-requirements:05-1-10-encapsulation:start [2026/09/15 13:39] (current) – nick_dido |
|---|
| [[public:00-sip-ra:05-general-requirements-on-proposals:05-1-requirements:start|Return to Requirements]] | [[public:00-sip-ra:05-general-requirements-on-proposals:05-1-requirements:start|Return to Requirements]] |
| |
| Encapsulation separates externally observable behavior and [[public:99_annexes:annex-b-terms-and-definitions:i:interface|Interfaces]] from implementation internals. This separation supports independently developed implementations that can interoperate and, when they satisfy the same applicable contracts and conformance conditions, substitute for one another. | Encapsulation separates externally observable behavior and [[public:99_annexes:annex-b-terms-and-definitions:i:interface|Interfaces]] from implementation internals. This separation supports independently developed implementations that can interoperate and, when they satisfy the same applicable Interface Contracts and conformance conditions, substitute for one another. |
| |
| ===== Requirements ===== | ===== Requirements ===== |
| |
| * **[[public:00-sip-ra:99-annexes:annex-c-requirements:gpr-018-independent-substitutable-and-interoperable-implementations|GPR-018 — Independent, Substitutable, and Interoperable Implementations]]:** The proposed specification SHALL define externally observable behavior, Interfaces, and conformance conditions that permit independently developed implementations to be substitutable and [[public:99_annexes:annex-b-terms-and-definitions:i:interoperability|Interoperable]] | ^ Requirement ^ Level ^ Statement ^ |
| | | [[public:00-sip-ra:99-annexes:annex-c-requirements:gpr-018-independent-substitutable-and-interoperable-implementations|GPR-018 — Independent, Substitutable, and Interoperable Implementations]] | Mandatory | {{section>public:00-sip-ra:99-annexes:annex-c-requirements:gpr-018-independent-substitutable-and-interoperable-implementations#Statement&noheader&nofooter&noeditbtn}} | |
| * **[[public:00-sip-ra:99-annexes:annex-c-requirements:gpr-019-implementation-replacement-without-client-changes|GPR-019 — Implementation Replacement Without Client Changes]]:** An implementation SHOULD be replaceable by an alternative implementation satisfying the same applicable Interface Contracts and conformance conditions without requiring changes to conforming clients | | [[public:00-sip-ra:99-annexes:annex-c-requirements:gpr-019-implementation-replacement-without-client-changes|GPR-019 — Implementation Replacement Without Client Changes]] | Recommended | {{section>public:00-sip-ra:99-annexes:annex-c-requirements:gpr-019-implementation-replacement-without-client-changes#Statement&noheader&nofooter&noeditbtn}} | |
| |
| ===== Notes for Editors ===== | ===== Notes for Editors ===== |
| | |
| | The requirement Statements displayed in this section are transcluded from their authoritative Annex C requirement records and are not independently maintained copies. |
| |
| GPR-018 is mandatory because it uses ''SHALL''. | GPR-018 is mandatory because it uses ''SHALL''. |
| Substitutability does not require implementations to have identical internal designs, technologies, performance characteristics, or deployment configurations. It requires them to satisfy the same applicable externally observable behavior, Interface Contracts, and conformance conditions. | Substitutability does not require implementations to have identical internal designs, technologies, performance characteristics, or deployment configurations. It requires them to satisfy the same applicable externally observable behavior, Interface Contracts, and conformance conditions. |
| |
| GPR-019 applies to conforming clients that use only the standardized Interfaces and behavior defined by the proposed specification. A client that depends on implementation-specific extensions may require changes when the implementation is replaced. | GPR-019 applies to conforming clients that rely only on the standardized Interfaces, behavior, and capabilities defined by the proposed specification. A client that relies on implementation-specific extensions or undocumented behavior may require modification when its implementation is replaced. |
| |
| After the Annex C records are created and reviewed, replace each locally maintained Statement with a transclusion of its authoritative Statement. | Make changes to a Statement on its corresponding Annex C requirement page. |
| |
| ---- | ---- |