Software-Issue Graph for Dependency Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing project management software systems face challenges in managing large-scale software development projects with numerous software issues, where issues are often duplicative, overlapping, or have complex relationships, making it difficult for developers to determine which issues to address next and how they are related.
Innovation Solution
A software-issue graph is constructed using nodes and edges to represent software-issue reports and their relationships, allowing for the determination of dependencies, duplicates, and genus-species relationships, facilitating faster searches and memory-efficient encoding of these relationships.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the number of software issues tracked increases to cover more development tasks, then the completeness of issue tracking improves, but the difficulty of determining relationships between issues and selecting which to address next increases
Solution Approach 1:
The patent segments the complex issue tracking system into distinct components: issue reports are divided into structured fields (title, description, status, priority), and relationships between issues are segmented into specific types (duplicate, blocking, related). This segmentation allows the system to manage large numbers of issues systematically while maintaining clarity in relationships.
Solution Approach 2:
The patent introduces an intermediary issue relationship model that mediates between raw issue reports and developer decision-making. This model automatically analyzes and categorizes relationships between issues, serving as an intermediary layer that reduces the complexity developers would otherwise face when analyzing hundreds or thousands of issues.
2Measurement precision
If developers manually analyze relationships between numerous software issues, then the accuracy of issue prioritization may improve, but the time required to make decisions increases significantly
Solution Approach 1:
The patent performs preliminary action by automatically analyzing issue relationships and generating prioritization recommendations before developers need to make decisions. The system pre-processes issue data, identifies relationships (duplicates, blocking issues, dependencies), and prepares prioritization suggestions in advance, so developers receive ready-analyzed information when they need to decide what to work on next.
Solution Approach 2:
The patent implements feedback mechanisms where the system continuously monitors issue status changes, updates relationship analyses automatically, and provides ongoing prioritization recommendations. As issues are resolved or new issues are added, the system feedback loops update the relationship graph and re-prioritize accordingly, maintaining accurate recommendations without requiring repeated manual analysis.
3Adaptability or versatility
If the system tracks detailed relationships between all software issues, then the usefulness of issue management improves, but the computational resources required to maintain and search the issue repository increases
Solution Approach 1:
The patent applies local quality by focusing computational resources on analyzing relationships only where relevant. Rather than uniformly analyzing all possible issue pairs, the system identifies and analyzes relationships locally around each issue based on criteria such as shared code files, similar descriptions, or temporal proximity. This selective approach maintains useful relationship tracking while reducing overall computational burden.
Data Source
AI summary
Provided is a process, including: obtaining a plurality of software-issue reports; obtaining a pull request; forming a software-issue graph having a plurality of nodes corresponding to the software-issue reports and a plurality of edges indicating relationships between the software-issue reports; determining that the pull request addresses a given software-issue report; selecting a subset of nodes in the software-issue graph addressed by the pull request; and designating the pull request as being associated with the plurality of software-issue reports corresponding to the selected subset of nodes.


