Legacy Source Code Service Identification via Structured Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current approaches to migrating to Service Oriented Architecture (SOA) either neglect existing IT assets or lack flexibility in adapting to changing business needs, as they do not effectively reuse legacy software.

Innovation Solution

A system that maps legacy software code into defined elements of SOA by identifying service candidates through structured and unstructured analyses, using a source code analyzer, repository, target profile analyzer, search module, ranking engine, and procedure aggregator to match and rank code elements with predefined heuristics, and compare interface definitions to entry and exit points.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a top-down approach is used to define a target service architecture model, then the business model and service descriptions can be clearly defined, but existing IT assets and legacy software are not considered

Engineering Contradiction:
Improveflexibility to adapt to changing business needsVSAvoidexisting IT assets
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The system performs preliminary analysis of legacy source code to extract service candidates, interfaces, and data structures before the SOA migration process begins. This preliminary action ensures that existing IT assets are identified and cataloged in advance, allowing them to be considered during the subsequent service mapping and migration phases, thus preventing loss of information while maintaining adaptability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary system that acts as a bridge between legacy software and SOA services. This intermediary automatically analyzes legacy code, identifies service candidates, and maps them to target SOA service definitions. By serving as an intermediary layer, it enables the integration of existing IT assets into the new service-oriented architecture without requiring a complete top-down redesign, thus preserving valuable legacy investments while achieving adaptability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If a bottom-up approach is used to convert an existing system into SOA, then existing systems can be migrated, but the process does not align with business models or maximize flexibility

Engineering Contradiction:
Improveexisting IT assetsVSAvoidflexibility to rapidly adapt IT to changing business needs
Core Design Contradiction:
Loss of informationVSAdaptability or versatility

Solution Approach 1:

The system incorporates feedback mechanisms where the analysis results of legacy code are continuously refined and mapped against target service definitions. The automatic identification and ranking of service candidates provide feedback that helps align the bottom-up migration process with business model requirements. This feedback loop ensures that while existing IT assets are preserved, the resulting SOA architecture also achieves the desired flexibility and adaptability.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If manual analysis of legacy code is performed to identify service candidates, then detailed understanding can be achieved, but the process is time-consuming and inefficient

Engineering Contradiction:
Improveidentification accuracy of service candidatesVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent replaces manual mechanical analysis of legacy code with an automated computer-based system. The system uses software tools to automatically parse, analyze, and extract service candidates from legacy source code, interfaces, and data structures. This substitution of manual mechanics with automated computational processes maintains high identification accuracy while dramatically reducing the time required for analysis, thus resolving the contradiction between precision and time consumption.

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

4Quantity of substance

If comprehensive analysis of all source code elements is performed, then all potential service candidates can be identified, but the complexity of the system increases

Engineering Contradiction:
Improvenumber of service candidates identifiedVSAvoidsystem complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system segments the complex task of legacy code analysis into distinct modular components: parsing source code, extracting interfaces, identifying data structures, ranking service candidates, and mapping to target services. Each module handles a specific aspect of the analysis independently. This segmentation allows comprehensive identification of service candidates while managing system complexity through modular design, where each segment can be developed, maintained, and optimized separately.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7831608B2Service identification in legacy source code using structured and unstructured analyses
Publication Date: 2010.11.09 WRP IP MANAGEMENT LLC
  • US7831608B2 patent drawing
  • US7831608B2 patent drawing
  • US7831608B2 patent drawing

AI summary

Identifying service candidates in legacy source code, including a source code analyzer performing structured and unstructured analyses of computer software source code procedures, a repository storing results of the analyses, a target profile analyzer analyzing a target service description of a Service Oriented Architecture and formulating a query therefrom, a search module querying the repository to identify source code elements that match the target service description, and combining any matches within a predefined distance from each other within the source code, a ranking engine ranking the combined matches in accordance with predefined heuristics, and a procedure aggregator aggregating the combined matches by their location in propinquity to the procedures, comparing interface definitions defined for the service description to entry and exit points of the procedures to identify candidate procedures having similar input and output parameters, and producing a ranked list of candidate procedures that map into the target element.