Interface Evolution Management via Consumer Roles
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As software systems become increasingly complex, managing dependencies and maintaining readability and performance becomes challenging, leading to potential unusability and unmanageability without effective complexity management.
Innovation Solution
A system utilizing a software development kit (SDK) and runtime system that characterizes interface evolution by determining consumer roles and compatibility policies, disabling interface use if changes are binary- or source-incompatible, thereby managing dependencies across the software program's life cycle.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software systems add new features and components to increase sophistication and functionality, then the system capabilities are improved, but the code size and complexity increase leading to defects and maintenance risks
Solution Approach 1:
The patent applies segmentation by dividing the software system into modular components with distinct interfaces. Each module is independently versioned and managed, allowing the system to grow in functionality while maintaining manageable complexity through clear separation of concerns and localized changes.
2Ease of repair
If software systems are modularized with independent components and explicit interfaces, then maintainability and understandability are improved, but the system requires additional mechanisms to manage interface evolution and compatibility
Solution Approach 1:
The patent uses parameter changes by versioning interfaces and tracking compatibility policies as configurable parameters. The system manages interface evolution by assigning version numbers and compatibility levels (source-compatible, binary-compatible, incompatible) to interface changes, allowing automated dependency resolution without manual intervention.
Solution Approach 2:
The system implements feedback mechanisms by automatically detecting interface changes, analyzing compatibility policies, and notifying consumers of breaking changes. This feedback loop enables the system to adapt to interface evolution while maintaining compatibility where possible, reducing the burden of manual interface management.
3Reliability
If the system disables interface use for binary-incompatible changes to maintain compatibility, then reliability is improved, but productivity decreases due to restricted interface evolution
Solution Approach 1:
The patent applies dynamics by making the system's compatibility enforcement adaptive rather than static. The system dynamically determines whether to disable interface use based on the specific compatibility policy associated with each interface change, allowing flexible balancing between reliability and productivity on a case-by-case basis.
Data Source
AI summary
The disclosed embodiments provide a system that facilitates the development and maintenance of a software program. This system includes a software development kit (SDK) and a runtime system for the software program. During operation, the system obtains a role associated with a dependency of a consumer in the software program on an interface. Next, the system obtains a compatibility policy for the interface. Finally, the system uses the role and the compatibility policy to manage use of the interface by the consumer in the software program.


