Dependency Manager Plug-in for Software Module Version Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software development processes face challenges in managing dependencies, particularly in ensuring that the latest versions of referenced resources are incorporated into software projects while maintaining compatibility and efficiently sharing resources among developers.

Innovation Solution

A system and method for programming and compiling software projects that utilize a central repository to filter and select the most recent versions of software modules based on predetermined rules, allowing for dynamic fetching of resources and ensuring compatibility through the use of masks and a dependency manager plug-in within a standard development environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual dependency management is used, then developers have control over specific versions, but the process is time-consuming and inefficient

Engineering Contradiction:
Improvesoftware development efficiencyVSAvoidtime for dependency management
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The dependency manager plug-in automatically resolves dependencies by parsing package manifest files, querying version information from remote repositories, and selecting appropriate versions without requiring manual developer intervention. The system self-manages the complex tasks of dependency resolution, version selection, and resource fetching.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary actions by pre-resolving dependencies during the compilation process. The dependency manager queries repository indices before compilation to determine the latest compatible versions, ensuring that all required resources are prepared in advance and automatically fetched, eliminating the need for manual version selection during development.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If the latest version of a resource is always selected, then the software is updated with new features, but compatibility issues may arise with existing code

Engineering Contradiction:
Improveversion flexibilityVSAvoidcompatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The dependency manager changes the parameter of version selection by parsing version specifications from package manifest files and querying remote repositories for available versions. It dynamically determines the latest compatible version based on the specified parameters, allowing flexibility in version selection while maintaining compatibility through structured version comparison and selection algorithms.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If a central repository is used, then resources are shared among multiple developers, but network dependency increases

Engineering Contradiction:
Improveresource sharing capabilityVSAvoidsystem architecture
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The dependency manager plug-in acts as an intermediary between developers and remote repositories. It queries repository indices for version information, resolves dependencies locally, and manages the fetching of resources. This intermediary layer simplifies the architecture by centralizing the complex logic of dependency resolution and version management within the plug-in, while enabling resource sharing among multiple developers through the central repository.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8464228B2Binary library
Publication Date: 2013.06.11 NAVITAIRE LLC
  • US8464228B2 patent drawing
  • US8464228B2 patent drawing
  • US8464228B2 patent drawing

AI summary

The subject matter of this specification can be embodied in, among other things, a process that includes receiving, during a computer programming process for a software program, a specification of a software module having a defined functionality for use by the software program. The software module is stored in a central repository having different versions of the software module. The process also includes compiling the software program. The compilation initiates steps including filtering versions of the software module that do not meet the specification. The specification corresponds to more than one version of the software module. The steps also include selecting, from versions that have not been filtered out, a version of the software module. The selection is based on one or more predetermined rules. The process also includes returning the selected version of the software module for local storage with the software program.