Aggregated Dependency Visualization for Complex Code Bases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large code bases often suffer from cyclic dependencies, making maintenance difficult and visualizing raw dependencies impractical due to their complexity and scale.

Innovation Solution

A static analysis system generates aggregated dependencies by merging dependency and hierarchical relationships, providing interactive visualizations that help users understand the structure and identify complexity issues, allowing for intuitive exploration and modification of the code base.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If raw dependencies are visualized in large code bases, then complete dependency information is provided, but the visualization becomes less useful due to complexity and scale

Engineering Contradiction:
Improvedependency information completenessVSAvoidvisualization usability
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The patent segments the monolithic dependency graph into multiple hierarchical levels, organizing dependencies from coarse-grained (package level) to fine-grained (source file level). This segmentation allows users to view only the necessary level of detail, reducing visual complexity while preserving complete dependency information when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces hierarchical depth as an additional dimension to the traditional flat dependency graph visualization. By organizing dependencies in multiple levels (packages → modules → source files), the system transforms a two-dimensional overwhelming view into a multi-dimensional structured view, making large code bases manageable.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If cyclic dependencies are present in large code bases, then functional completeness is maintained, but maintenance difficulty increases

Engineering Contradiction:
Improvecode base functionalityVSAvoidmaintenance ease
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent implements feedback mechanisms that automatically detect, highlight, and analyze cyclic dependencies in the code base. The system provides feedback to developers about the presence and impact of cycles, enabling them to make informed decisions about refactoring while maintaining functional completeness.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent introduces an intermediary analysis layer that sits between the raw code base and the developers. This intermediary automatically performs dependency analysis, identifies cyclic patterns, and presents refined information, reducing the direct burden of managing complexity on developers.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If aggregated dependencies are generated, then visualization clarity is improved, but dependency detail may be lost

Engineering Contradiction:
Improvevisualization clarityVSAvoiddependency detail
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent implements dynamic visualization that adapts to user needs. The system can aggregate dependencies for high-level overview when users need clarity, but can dynamically drill down to show detailed dependency information when users click or interact with specific elements, preventing information loss.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent uses a nested structure where aggregated dependency views contain within them the potential for detailed views. Each aggregated node can be expanded to reveal nested levels of detail, allowing the system to provide both clarity at the aggregate level and completeness at the detailed level through hierarchical nesting.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS9552276B1Query-based software dependency analysis
Publication Date: 2017.01.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9552276B1 patent drawing
  • US9552276B1 patent drawing
  • US9552276B1 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for generated aggregated dependencies between software elements in a code base. One of the methods includes receiving a query that defines a dependency between the software elements in a project. Searching a database to identify matching source software elements having the one or more source attributes and target software elements having the one or more target attributes of the query. Identifying pairs of matching source software elements and matching target software elements having the specified relationship, and generating, for each pair of matching source software elements and matching target software elements having the specified relationship, a new dependency in a raw dependency graph, the new dependency being a dependency from a source software element of the pair to the target software element of the pair.