File-Based Dependency Management for Software Teams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software development collaboration tools face challenges in managing complex software dependencies in file-based team environments, leading to inefficiencies, downtime, and communication issues due to the lack of effective versioning and relationship management between software modules.

Innovation Solution

A method for managing complex object dependencies in a team-based project environment involves creating a configuration file that defines characteristics and relationships of software modules, allowing for versioning and instantiation within the project environment, enabling flexible and efficient management of dependencies and attributes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a centralized holistic version control system is used to manage software dependencies, then version control and project coordination are achieved, but downstream developers are forestalled from working when upstream code is unavailable, reducing productivity

Engineering Contradiction:
Improveversion control reliabilityVSAvoiddeveloper productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the monolithic centralized version control system into individual file-level dependency managers. Each file maintains its own dependency relationships and versioning information independently, allowing local resolution without blocking other files. This segmentation enables developers to work on files with available dependencies while upstream dependencies are being updated.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system allows partial loading and execution of software modules by resolving available dependencies locally. Instead of requiring complete availability of all upstream dependencies, the system enables developers to work with the subset of dependencies that are currently available, performing partial actions that can be completed immediately.

Inventive Principle:
Principle #16Partial or excessive action

2Ease of operation

If copies of database or files are made on an individual basis to enable collaboration, then accessibility and collaboration are improved, but substantial maintenance and support issues arise as multiple copies proliferate

Engineering Contradiction:
Improvecollaboration accessibilityVSAvoidmaintenance complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent extracts the dependency relationship information from the centralized system and embeds it directly within each file's metadata. This extraction allows each file to stand independently with its own dependency graph, eliminating the need for multiple synchronized copies while maintaining collaboration capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of copying entire databases or file systems, the patent copies only the essential dependency relationship metadata into each file. This selective copying reduces maintenance overhead while preserving the ability to work independently across different locations.

Inventive Principle:
Principle #26Copying

3Ease of manufacture

If traditional holistic approaches are used to model code relationships, then version control is straightforward for simple projects, but wasted effort and downtime occur in complex projects with many interdependent modules

Engineering Contradiction:
Improveversion control simplicityVSAvoidproject downtime
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent divides the project into independently manageable file units, each with its own dependency model. This segmentation allows parallel processing and development of different file modules without requiring coordination across the entire project, significantly reducing downtime in complex projects.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary resolution of file-level dependencies during file creation or modification, before the actual development work begins. This preliminary action prepares the dependency graph in advance, allowing developers to immediately work on files without waiting for upstream dependencies to be resolved.

Inventive Principle:
Principle #10Preliminary action

4Device complexity

If no versioning mechanism is implemented for complex software models, then implementation is simpler, but communication failures and project delays occur when dependencies are missing

Engineering Contradiction:
Improvesystem complexityVSAvoidproject reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

Each file automatically manages its own versioning and dependency tracking without requiring external centralized coordination. The file-level dependency information is self-contained within the file metadata, enabling automatic resolution and reducing communication failures.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9449298B2Managing complex dependencies in a file-based team environment
Publication Date: 2016.09.20 EMC IP HLDG CO LLC
  • US9449298B2 patent drawing
  • US9449298B2 patent drawing
  • US9449298B2 patent drawing

AI summary

Techniques managing complex dependencies in a file-based team environment are provided. A software module is represented as an object. The object is defined via a file. The file includes relationships, and some of the relationships define dependencies to other objects. In some cases, attributes for the object are also included in the file and are defined via references to still other objects. The relationships and the attributes are carried with the object via the file.