Code Separation with Semantic Guarantees for Legacy Porting
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Porting software applications to new architectures or platforms often results in non-conforming semantics, leading to potential breaks in business unit information technology (BUIT) satellite applications and other interfacing software, posing a risk to the extension of mission-critical software applications' lifecycle.
Innovation Solution
Automated code transformations that separate code into components while guaranteeing semantic equivalence, using abstract syntax trees and transformational rules to preserve business logic during porting, and employing code separation techniques to identify and map source code to target architecture components.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a full rewrite is performed to port an application to a new architecture or platform, then the application can be extended to new platforms, but the semantics of the rewritten code may not conform to the original application behavior
Solution Approach 1:
The patent segments the application code into distinct components: business logic code and presentation code. The business logic code is extracted and preserved in its original form, while only the presentation code is rewritten for the new platform. This segmentation allows the application to adapt to new platforms while maintaining the original business logic semantics, thus resolving the contradiction between platform adaptability and semantic conformity.
Solution Approach 2:
The patent introduces an intermediary layer in the form of a business logic framework that acts as a mediator between the original application code and the new platform. This framework preserves the original business logic while providing a standardized interface that can be adapted to different platforms, ensuring semantic conformity is maintained during the porting process.
2Adaptability or versatility
If code refactoring is performed to port to a new architecture, then the application can be modernized, but the functionality may change and cause breaking changes in interfacing applications
Solution Approach 1:
The patent applies segmentation by separating the application into business logic components and presentation components. The business logic components are kept unchanged and serve as a stable foundation, while only the presentation components undergo refactoring for architectural modernization. This prevents breaking changes in interfacing applications by preserving the stable business logic interface.
Solution Approach 2:
The patent changes the parameter of code organization from monolithic to separated architecture, transforming how the application is structured without changing the fundamental business logic behavior. This parameter change enables architectural modernization while maintaining compatibility with existing interfaces.
3Adaptability or versatility
If manual code porting is performed, then the application can be ported to new platforms, but the process is time-consuming and error-prone
Solution Approach 1:
The patent segments the porting process into two distinct phases: extraction of business logic code (which is time-consuming but done once) and generation of platform-specific presentation code (which can be automated). This segmentation reduces overall porting time by enabling automation in the second phase while keeping the critical business logic preservation step separate.
Solution Approach 2:
The patent uses copying by extracting the business logic code as a reusable artifact that can be copied and reused across different platforms. This eliminates the need to manually rewrite business logic for each platform, significantly reducing porting time and errors.
4Device complexity
If the application code is tightly coupled, then the application structure is simpler, but the code cannot be effectively separated for semantic preservation during porting
Solution Approach 1:
The patent applies segmentation by introducing a business logic framework that divides tightly coupled code into separable business logic components and presentation components. This segmentation enables semantic preservation during porting while maintaining a manageable code structure, resolving the contradiction between structural simplicity and separability.
Solution Approach 2:
The patent creates a universal business logic framework that serves multiple functions: it preserves original semantics, enables platform adaptation, and maintains code organization. This multi-functionality allows the framework to handle both structural simplicity and separability requirements simultaneously.
Data Source
AI summary
Techniques to perform code separation with semantic guarantees are described. When porting a software application to a different target architecture and potentially to a different set of platforms and programming languages, application functionality will change based at least to accommodate architectural differences. However, business logic should be guaranteed to be semantically preserved, efficiency optimized to the platform benefits and limitations. Code separation identifies candidate components, associates the candidate components with a component classification or type, and automates the determining of which of the candidate components are to be associated with various portions of the target architecture. Automated code separation may include various inference algorithms to determine which components are to be associated with a component type. Also described are various use cases for code separation.


