Interface Evolution Management via Consumer Roles

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesoftware functionalityVSAvoidcode complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
ImprovemaintainabilityVSAvoidinterface management complexity
Core Design Contradiction:
Ease of repairVSDevice complexity

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.

Inventive Principle:
Principle #35Parameter changes

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
ImprovecompatibilityVSAvoidinterface evolution speed
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9454360B2Characterizing interface evolution and consumer roles in module systems
Publication Date: 2016.09.27 ORACLE INT CORP
  • US9454360B2 patent drawing
  • US9454360B2 patent drawing
  • US9454360B2 patent drawing

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.