Code Reading Support via Already Read Graph

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large-scale software development, deciphering source code is difficult due to complex structures, and existing tools struggle to distinguish already read and unread parts of functions or class diagrams, leading to inefficiencies in code reading and collaboration among developers.

Innovation Solution

A code reading supporting device that includes a code information storage, user operation storage, and an already read graph generator, which analyzes source code to identify function and code block information, tracks user interactions, and generates an already read graph to visually differentiate read and unread sections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If code reading is performed by viewing source code on display or printed sheet, then code reading can be performed, but work of deciphering source code becomes difficult and requires high skill when software becomes large in scale

Engineering Contradiction:
Improvecode reading efficiencyVSAvoidsoftware structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the complex source code into functions and further into code blocks, creating a hierarchical structure that can be managed and understood in smaller units. The calling relationship diagram divides the large-scale software into discrete function nodes, making the overall structure comprehensible.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a calling relationship diagram as an intermediary visual representation between the raw source code and the reader's understanding. This diagram serves as a mediator that simplifies the complex code structure into readable visual form.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If calling relationship of functions is displayed in diagram, then code reading is supported, but it cannot be confirmed which part of the function is already read and which part is unread

Engineering Contradiction:
Improvecode reading easeVSAvoidreading progress information
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent applies local quality by differentiating the visual representation of code blocks based on their reading status. Read code blocks are displayed with one visual characteristic (e.g., shaded or highlighted), while unread code blocks display differently, allowing local differentiation within the overall diagram.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent uses color or visual state changes to indicate the reading status of code blocks. By changing the visual appearance of code blocks based on whether they have been read, the system maintains information about reading progress while preserving ease of code reading.

Inventive Principle:
Principle #32Color changes

3Productivity

If execution path is displayed on UML class diagram or sequence diagram, then debugging is supported, but it cannot be discriminated which part of the class diagram is already read and which part is unread

Engineering Contradiction:
Improvedebugging efficiencyVSAvoidreading status information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent applies local quality by differentiating the visual representation of code blocks based on their reading status. Read code blocks are displayed with one visual characteristic (e.g., shaded or highlighted), while unread code blocks display differently, allowing local differentiation within the overall diagram.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent uses color or visual state changes to indicate the reading status of code blocks. By changing the visual appearance of code blocks based on whether they have been read, the system maintains information about reading progress while preserving ease of code reading.

Inventive Principle:
Principle #32Color changes

4Productivity

If plurality of workers share code reading, then large-scale code can be reviewed, but confirming progress or sharing contents understood by each member becomes difficult

Engineering Contradiction:
Improvecode reading throughputVSAvoidindividual reading progress information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent implements feedback by automatically tracking and recording which code blocks have been read by each worker. This reading status information is fed back to the system and can be shared among multiple workers, allowing them to see what has already been reviewed and avoid redundant work.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent creates a visual copy or representation of the code structure with reading status markers that can be shared among multiple workers. This copied visual representation with embedded status information allows team members to understand each other's progress without directly observing their work.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11726781B2Code reading supporting device, code reading supporting method, and storage medium
Publication Date: 2023.08.15 KK TOSHIBA
  • US11726781B2 patent drawing
  • US11726781B2 patent drawing
  • US11726781B2 patent drawing

AI summary

According to one embodiment, a code information storage is configured to store information on a plurality of functions, a calling relationship between the plurality of functions, and code blocks in the respective plurality of functions. A user operation storage is configured to store information of an already read code block. An already read graph generator is configured to generate an already read graph expressing an already read function including the already read code block, all the code blocks included in the already read function, and a calling relationship between the already read code block and the already read function. An expression of the already read code block differs from an expression of the other code block.