Intermediary Module for Legacy Application Undo Redo
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Legacy software applications with inseparable front-end UIs and back-end transactional logic pose challenges for upgrading to include new UIs and undo/redo functionality, requiring significant programming efforts and often making it difficult to integrate newer software with older systems.
Innovation Solution
A method that uses an intermediary module to map user inputs from a new UI to a legacy UI, storing commands in a command stack to enable undo and redo operations, allowing the system to serially run through the stack to revert or restore previous states, thereby extending legacy software with modern UI and undo/redo capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If legacy software applications are upgraded to include new UI and undo/redo functionality, then software modernization and user interface improvement are achieved, but programming effort and integration complexity increase significantly
Solution Approach 1:
An intermediary module is introduced between the new UI and the legacy application. This module captures user inputs from the new UI, translates them into commands compatible with the legacy application, and manages a command stack to enable undo/redo functionality. The intermediary acts as a mediator that decouples the new UI from the legacy transactional logic, allowing modernization without requiring complex integration or rewriting of the legacy codebase.
2Adaptability or versatility
If new UI is integrated with legacy application, then user interface modernization is achieved, but separation of UI and transactional logic becomes difficult
Solution Approach 1:
The intermediary module serves as a buffer that receives user inputs from the new UI and translates them into legacy application commands. This creates a clear separation where the new UI handles user interaction while the intermediary manages the translation layer, and the legacy application maintains its transactional logic unchanged. The intermediary effectively decouples the UI layer from the transactional logic without requiring integration complexity.
3Adaptability or versatility
If undo/redo functionality is added to stateless legacy applications, then functional capability is improved, but modification effort and system complexity increase
Solution Approach 1:
The intermediary module performs preliminary action by capturing and storing user inputs in a command stack before the legacy application executes them. Each user input is pushed onto the command stack, creating a history of commands. When undo is requested, the system pops commands from the stack and reverses them in reverse order. This preliminary capture and storage of commands enables undo/redo functionality without modifying the stateless legacy application, adding minimal complexity while significantly improving functional capability.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In a system and method for recalling a state in an application, a processor may store in a memory data representing a first set of previously executed commands, the first set representing a current application state, and, for recalling a previously extant application state different than the current application state, the processor may modify the data to represent a second set of commands and may execute in sequence the second set of commands.