Software Visualization via Coupling and Cohesion Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software visualization technologies fail to effectively highlight regions of coupling and cohesion in large-scale software programs, making it difficult to analyze and maintain these complex systems.

Innovation Solution

A system and method that create a visualization structure for software programs using Data Clumps, Divergence Change, and Shotgun Surgery information, highlighting regions of coupling and cohesion by calculating correlations between class codes, method codes, and change logs to display these issues effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional software visualization technologies are used, then the software program can be displayed, but regions of coupling and cohesion cannot be effectively highlighted

Engineering Contradiction:
Improvedetection precision of coupling and cohesion regionsVSAvoidvisualization system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the software program into class codes and method codes, and further segments the visualization into multiple layers (first layer displaying class codes, second layer displaying method codes). This segmentation allows the system to focus on specific regions where coupling and cohesion occur without overwhelming the user with the entire program structure, thereby improving detection precision while managing system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary processing device that calculates correlations between class codes and method codes, and determines coupling and cohesion regions based on these correlations. This intermediary layer processes the raw software code and change logs to generate the visualization data, effectively bridging the gap between raw code and meaningful visualization, thus improving detection precision without directly complicating the visualization system.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If large-scale software programs are analyzed, then more comprehensive coverage is achieved, but analysis difficulty increases

Engineering Contradiction:
Improvesoftware program scaleVSAvoidanalysis difficulty
Core Design Contradiction:
Quantity of substanceVSDifficulty of detecting and measuring

Solution Approach 1:

The patent adds a new dimension to software analysis by incorporating change logs and calculating correlations over time. Instead of only analyzing the static structure of large-scale software programs, the system analyzes dynamic changes across multiple versions, enabling comprehensive coverage of large programs while reducing analysis difficulty through temporal patterns and correlation metrics.

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

Solution Approach 2:

The patent replaces manual analysis mechanisms with automated correlation calculation and determination mechanisms. The processing device automatically calculates correlations between class codes and method codes based on change logs, and automatically determines coupling and cohesion regions, substituting the mechanical process of manual analysis with an automated system that can handle large-scale programs efficiently.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Adaptability or versatility

If multiple persons process large-scale software programs, then more expertise is available, but maintaining code integrity and consistency becomes difficult

Engineering Contradiction:
Improveteam processing capabilityVSAvoidcode integrity
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent implements feedback by analyzing change logs from multiple processors and calculating correlations to identify coupling and cohesion regions. The visualization system provides feedback to team members about where their changes affect other parts of the system, enabling them to maintain code integrity and consistency even when multiple persons are working on the large-scale software program simultaneously.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9760473B2System and method for visualizing software programs
Publication Date: 2017.09.12 INSTITUTE FOR INFORMATION INDUSTRY
  • US9760473B2 patent drawing
  • US9760473B2 patent drawing
  • US9760473B2 patent drawing

AI summary

A system and a method for visualizing a software program are provided. The system is configured to store the software program and its change logs. The system is further configured to generate a visualization structure of the software program according to at least one of Data Clumps information, Divergence Change information and Shotgun Surgery information, and display the software program according to the visualization structure. The method is applied to the system to implement the operations.