Centralized Static Analysis for Multi-Language Codebases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional static analysis tools are limited in their ability to operate across multiple programming languages and require individual configuration and maintenance on each developer's workstation, leading to burdensome management and often result in undetected coding errors and omissions in large software development projects.

Innovation Solution

A centralized system for asynchronous static analysis in a collaborative software development environment that clones a source repository, determines the programming languages used, selects and instantiates appropriate static analysis tools, and stores results, eliminating the need for individual tool installation and configuration on workstations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional static analysis tools are installed on each developer's workstation, then each developer can perform static analysis locally, but the complexity of selection, configuration, and maintenance increases substantially

Engineering Contradiction:
Improvestatic analysis capabilityVSAvoidtool management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the static analysis capability into a centralized cloud-based service. Instead of each developer having separate tools on their workstations, the system consolidates multiple static analysis tools into a single centralized platform that all developers access through their code repositories. This eliminates the need for individual installation, configuration, and maintenance on each workstation while maintaining comprehensive static analysis coverage.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The centralized static analysis service provides universal functionality by supporting multiple programming languages and codebases through a single platform. The service can analyze different types of code repositories (e.g., Java, Python, JavaScript) using the same infrastructure, making the system multi-functional and eliminating the need for separate tool installations for each language or project type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If multiple static analysis tools are deployed to support multiple programming languages, then language-specific analysis coverage improves, but the burden of selecting and configuring appropriate tools for each developer increases

Engineering Contradiction:
Improvemulti-language supportVSAvoidtool configuration ease
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The system implements self-service by automatically detecting the programming language and analyzing the codebase type, then autonomously selecting and configuring the appropriate static analysis tool from its multi-language support library. Developers simply need to connect their code repository to the service, and the system handles tool selection and configuration automatically based on the detected code characteristics, eliminating the manual burden of matching tools to languages.

Inventive Principle:
Principle #25Self-service

3Reliability

If static analysis is performed continuously to detect coding errors, then error detection capability improves, but developer workflow may be interrupted

Engineering Contradiction:
Improveerror detection capabilityVSAvoiddeveloper workflow efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs static analysis periodically triggered by specific events in the development workflow, such as code commits or pull requests, rather than continuously monitoring all developer activities. This event-driven approach ensures that code is analyzed at appropriate moments when changes are made, maintaining error detection capability while minimizing interruptions to the overall developer workflow and maintaining productivity.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS11157591B2Asynchronous static analysis system for a collaborative software development environment
Publication Date: 2021.10.26 ATLASSIAN PTY LTD
  • US11157591B2 patent drawing
  • US11157591B2 patent drawing
  • US11157591B2 patent drawing

AI summary

A collaborative software development environment includes a centralized repository security service that monitors a repository database of the collaborative software development environment for change notifications or events. When a change is noticed (e.g., pull request), the source repository is cloned and suitable images are spun up by an orchestrator, each of which is configured to perform a static analysis operation against the source code of the cloned repository. Results of each static analysis operation are stored in a database that can be accessed by client devices.