Runtime Architecture Extraction via Abstract Graph Transformation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods struggle to statically extract a sound runtime architecture from object-oriented systems, as they often bear little resemblance to their code architecture, making it difficult to achieve a complete and accurate representation of runtime structures, especially for large systems.

Innovation Solution

The approach involves using ownership domain annotations to specify architectural intent in code, enabling a static analysis to extract a true runtime architecture by creating an abstract graph and transforming it into a runtime graph that represents containment information, thereby capturing the actual system structure at runtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If static analysis is used to extract runtime architecture, then analysis time and resource consumption are reduced, but the ability to capture accurate runtime structures deteriorates

Engineering Contradiction:
Improveanalysis timeVSAvoidaccuracy of runtime structure representation
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The patent introduces an intermediary representation layer between the code architecture and the desired runtime architecture. This intermediary uses abstract graphs with nodes representing types and objects, and edges representing containment relationships, serving as a bridge that can be derived from code but accurately represents runtime structures through proper transformation rules.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent transforms the abstract graph into a runtime graph by changing the representation parameters - specifically, by creating nodes for actual runtime objects rather than just types, and by establishing containment relationships that reflect real runtime hierarchies. This parameter transformation enables accurate runtime architecture extraction without dynamic analysis.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If dynamic analysis is used to extract runtime architecture, then accuracy of runtime structure representation is improved, but analysis time and resource consumption increase

Engineering Contradiction:
Improveaccuracy of runtime structure representationVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent creates a static copy of the runtime architecture through the abstract graph representation. By copying the runtime structure into a static graph format that can be derived from code without execution, the system achieves accurate runtime architecture extraction without the time and resource costs of dynamic analysis.

Inventive Principle:
Principle #26Copying

3Ease of manufacture

If code architecture is used to represent runtime architecture, then ease of extraction is improved, but accuracy of runtime structure representation deteriorates

Engineering Contradiction:
Improveease of extractionVSAvoidaccuracy of runtime structure representation
Core Design Contradiction:
Ease of manufactureVSMeasurement precision

Solution Approach 1:

The patent segments the architecture representation into two distinct parts: the code architecture (source code structure) and the runtime architecture (actual execution structure). By using the abstract graph as an intermediate that can be derived from code but represents runtime concepts, the system maintains ease of extraction from code while achieving accurate runtime structure representation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8584099B1Apparatuses and methods for producing runtime architectures of computer program modules
Publication Date: 2013.11.12 CARNEGIE MELLON UNIV
  • US8584099B1 patent drawing
  • US8584099B1 patent drawing
  • US8584099B1 patent drawing

AI summary

Apparatuses and methods for producing run-time architectures of computer program modules. One embodiment includes creating an abstract graph from the computer program module and from containment information corresponding to the computer program module, wherein the abstract graph has nodes including types and objects, and wherein the abstract graph relates an object to a type, and wherein for a specific object the abstract graph relates the specific object to a type containing the specific object; and creating a runtime graph from the abstract graph, wherein the runtime graph is a representation of the true runtime object graph, wherein the runtime graph represents containment information such that, for a specific object, the runtime graph relates the specific object to another object that contains the specific object.