Source Code Verification via Log-Based Model Representation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In model-driven software development, verifying compliance of source code with sequence diagrams is time-consuming and cumbersome due to the lack of direct correspondence between the code and diagrams, especially when using procedural programming languages like 'C'.

Innovation Solution

A method and system that generate logging statements based on metadata tagged in the specification, execute the source code to create log files, and then represent the source code in a modeling language for verification, ensuring compliance with the original specification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If peer review manually inspects source code to confirm compliance with sequence diagrams, then verification accuracy is maintained, but verification time and effort increase significantly

Engineering Contradiction:
Improveverification accuracyVSAvoidverification time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent introduces an intermediary verification system that includes a sequence diagram parser, code analyzer, and compliance checker. This intermediary automatically compares source code against sequence diagrams by parsing both formats, identifying corresponding elements, and verifying compliance without requiring manual peer review, thus maintaining accuracy while reducing time consumption

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the manual mechanical process of peer review with an automated computational verification system. The system uses algorithms to parse sequence diagrams, analyze source code structure, and automatically determine compliance, substituting human inspection with machine-based verification that is both accurate and efficient

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

2Manufacturing precision

If source code is manually inspected against sequence diagrams, then detailed compliance checking is possible, but the process becomes cumbersome and complex

Engineering Contradiction:
Improvecompliance checking detailVSAvoidverification process complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent segments the verification process into distinct modular components: sequence diagram parsing, source code analysis, element matching, and compliance reporting. Each module handles a specific aspect of verification, making the overall complex process manageable and systematic while maintaining detailed compliance checking capabilities

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The verification system performs self-service by automatically analyzing both the sequence diagrams and source code, identifying corresponding elements, and determining compliance without external intervention. The system serves itself by having the code speak its own structure through parsing and analysis, eliminating the need for complex manual verification procedures

Inventive Principle:
Principle #25Self-service

3Reliability

If formal structured development approaches are used with model-driven software development, then software quality is improved, but the verification process becomes more time-consuming

Engineering Contradiction:
Improvesoftware qualityVSAvoidverification efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by automatically generating verification artifacts during the model-driven development process itself. The verification system is integrated into the development workflow, performing compliance checks as part of the normal development process rather than as a separate post-processing step, thus maintaining quality without sacrificing productivity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The verification system serves multiple functions: it parses sequence diagrams, analyzes source code, performs compliance checking, and generates verification reports. This multi-functional approach consolidates what would otherwise require multiple separate processes into a single unified system, improving verification efficiency while maintaining the quality standards of formal structured development

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

Data Source

PatentUS10929108B2Methods and systems for verifying a software program
Publication Date: 2021.02.23 SIEMENS INDUSTRY SOFTWARE INC
  • US10929108B2 patent drawing
  • US10929108B2 patent drawing
  • US10929108B2 patent drawing

AI summary

Methods and Systems for verifying a software program in an integrated-development environment are disclosed. In one embodiment, a method of verifying the software program in the integrated-development environment includes generating a source code of a software program in comprising logging statements based on a specification of the software program. Furthermore, the method includes executing the source code with the logging statements and generating one or more log files during execution of the source code based on the logging statements. Moreover, the method includes generating a representation of the source code in a modeling language based on the one or more log files. The method includes verifying compliance of the source code with the specification by comparing the representation of the source code in the modeling language with the specification in the modeling language.