Mining Software Attributes from Source Code Repositories

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software quality management systems lack efficient methods to analyze and improve software quality by extracting relevant attributes from source code across multiple versions and repositories, leading to potential defects and unintended consequences in software development.

Innovation Solution

A system that uses programmatic analysis to mine attributes from source code in software repositories, including the use of a crawler to detect and parse source files, construct syntax trees, and store attributes in a database, allowing for querying and statistical analysis of software quality metrics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If programmatic analysis is used to mine attributes from source code in repositories, then software quality assessment capability is improved, but system complexity and resource consumption increase

Engineering Contradiction:
Improvesoftware quality assessmentVSAvoidanalysis system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system segments the source code analysis process into distinct components: a crawler module that detects source files, a parser module that extracts syntax data, and a database module that stores mined attributes. This segmentation allows each component to specialize in specific tasks, improving overall analysis precision while managing system complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary database layer that stores mined attributes from multiple versions of applications. This intermediary structure decouples the complex analysis processes from the quality assessment queries, allowing precise measurements to be stored and retrieved without requiring the full analysis system to be active during assessment.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If comprehensive attributes are mined from multiple versions of applications, then software quality measurement accuracy is improved, but data processing time and storage requirements increase

Engineering Contradiction:
Improvequality measurement accuracyVSAvoiddata processing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary actions by proactively crawling and parsing source files from multiple versions of applications, mining attributes in advance, and storing them in a database before quality assessment is needed. This preliminary data preparation eliminates the need for time-consuming analysis during actual quality measurements, significantly reducing processing time while maintaining comprehensive attribute coverage.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If source code from multiple repositories is analyzed, then software quality insights are improved, but computational resources and energy consumption increase

Engineering Contradiction:
Improvesoftware quality insightsVSAvoidcomputational energy consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts only the essential attributes from source code that are relevant to software quality assessment, rather than analyzing and processing all possible code characteristics. The crawler and parser are configured to mine specific attributes (such as code metrics, structural properties, and quality indicators) from multiple repositories, reducing computational energy consumption while maintaining reliable quality insights.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9361094B1Mining application repositories
Publication Date: 2016.06.07 ACCENTURE GLOBAL SERVICES LTD
  • US9361094B1 patent drawing
  • US9361094B1 patent drawing
  • US9361094B1 patent drawing

AI summary

A system includes a database that stores attributes of applications that are descriptive of source code included in the applications and identification data that identifies the applications to which the attributes apply. The attributes are mined through a programmatic analysis of one or more repositories in which the applications are stored, and the programmatic analysis includes programmatic analysis of the source code included in the applications to derive the attributes. The system also includes a computer system configured to handle queries against the attributes of the applications stored in the database and provide output based on the handling of queries against the attributes of the applications stored in the database.