Polyphasic Module Dependency Resolution via Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software systems face increased complexity and maintenance risks due to growing dependencies, leading to performance issues and unmanageability, which modularization attempts to address but requires effective dependency resolution mechanisms.

Innovation Solution

A system that resolves dependencies by obtaining module declarations, analyzing available modules, and creating execution contexts to manage software programs throughout their life cycle, using recursive dependency resolution and version management to select appropriate modules for execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If software systems are modularized to reduce complexity, then maintainability and readability improve, but dependency resolution complexity increases

Engineering Contradiction:
ImprovemaintainabilityVSAvoiddependency resolution complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The system segments the software into modular components with explicit dependency declarations. Each module declares its dependencies through module declarations, allowing the dependency resolution system to process modules independently rather than analyzing the entire software system at once. This segmentation reduces the complexity of dependency resolution by breaking it down into smaller, manageable unit resolution tasks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary dependency resolution during the compilation phase before execution. Module declarations are processed and dependencies are resolved in advance, creating a resolved dependency graph that guides subsequent compilation and execution. This preliminary action prevents dependency resolution complexity from affecting runtime performance and allows for upfront detection of circular dependencies and other resolution issues.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If new features are added to increase functionality, then software capability improves, but code size and dependency count increase

Engineering Contradiction:
ImprovefunctionalityVSAvoidcode size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

New features are implemented as separate modules rather than integrating them into existing codebases. Each new feature module declares its specific dependencies on existing modules, allowing the system to include only the necessary code for each feature. This segmentation enables functionality to grow without proportionally increasing overall code size, as unused modules and their dependencies can be excluded from the final build.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The module system provides universal interfaces and dependency management mechanisms that work across all software components. Common functionality is encapsulated in shared modules that can be reused across multiple features, reducing redundant code. The universal dependency resolution mechanism handles all module relationships through a consistent interface, eliminating the need for feature-specific integration code.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If modules are developed independently to improve maintainability, then ease of development improves, but dependency conflicts and version management complexity increase

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidversion management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Module declarations including version requirements are processed preliminarily during the build configuration phase. The dependency resolution system analyzes all module declarations upfront, determining compatible version combinations before compilation begins. This preliminary version resolution allows independent developers to specify their module version requirements without worrying about conflicts, as the resolution system automatically identifies compatible sets.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The dependency resolution system provides feedback about version compatibility and dependency conflicts during the build configuration phase. When version conflicts are detected, the system reports them to developers, allowing for resolution before compilation. This feedback mechanism enables independent module development while maintaining version consistency across the entire software system.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9116707B2Dependency resolution in polyphasic modules
Publication Date: 2015.08.25 ORACLE INT CORP
  • US9116707B2 patent drawing
  • US9116707B2 patent drawing
  • US9116707B2 patent drawing

AI summary

Some embodiments provide a system that facilitates the development, maintenance, and execution of a software program. During operation, the system obtains a module declaration for a module to be used in the software program. Next, the system resolves one or more dependencies of the module using the module declaration and a list of available modules for the software program. Finally, the system uses the resolved dependencies to manage the software program throughout the life cycle of the software program.