Runtime Architecture Extraction via Abstract Graph Transformation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


