Software Microservice Generation via Genetic Algorithm Evolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The process of analyzing and adapting existing software to generate new software services is time-consuming and costly, especially when the existing code is poorly documented or undocumented.
Innovation Solution
A computer-implemented method using a genetic algorithm to iteratively adapt software components by removing unnecessary portions, with verification tests to ensure the required functionality is maintained, until a stopping condition is met.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If existing software is manually analyzed and adapted to generate new software services, then the required functionality can be extracted, but the process is time-consuming and costly
Solution Approach 1:
The system enables self-service through automated software service generation using genetic algorithms. The existing software automatically analyzes its own codebase, identifies required functionality, and generates new microservices without human intervention, replacing manual analysis with self-directed automated processes.
Solution Approach 2:
Manual mechanical analysis of software code is replaced with an automated genetic algorithm system. The mechanical process of human developers reviewing and extracting functionality from legacy code is substituted with an automated computational system that uses verification tests and iterative evolution to generate services.
2Ease of manufacture
If existing software is adapted to create new services, then legacy functionality can be utilized, but extraneous code and poor documentation increase complexity and cost
Solution Approach 1:
The system extracts only the required functionality from existing software while leaving extraneous code behind. Through automated analysis and genetic algorithm evolution, it identifies and extracts necessary components, separating them from unnecessary legacy code that would otherwise increase complexity.
Solution Approach 2:
The system changes parameters of the software component through iterative genetic algorithm evolution. It modifies code structure, removes unnecessary portions, and optimizes the extracted functionality across multiple generations, transforming complex legacy code into simplified microservices with optimized parameters.
3Reliability
If comprehensive verification tests are applied to ensure functionality, then service quality is improved, but the generation process becomes more time-consuming
Solution Approach 1:
The system applies verification tests selectively rather than comprehensively to all code. It focuses verification efforts on critical paths and required functionality identified through automated analysis, applying partial verification that is sufficient to ensure quality without the overhead of exhaustive testing of all code paths.
Solution Approach 2:
Verification tests provide feedback to the genetic algorithm during the service generation process. The test results feed back into the evolution process, guiding which candidate services are selected for the next generation, enabling continuous improvement of service quality while maintaining efficient iteration through targeted rather than exhaustive verification.
Data Source
AI summary
A computer implemented method of generating a software service for providing required software functionality can include accessing a software component having functionality including and exceeding the required functionality; defining verification test for verifying that the software component includes the required functionality; applying a genetic algorithm to the software component to iteratively adapt the software component over a plurality of generations, wherein each generation of the software component is adapted by removal of one or more portions of the software component of a preceding generation, wherein the adaptation for a generation is selected from a set of candidate adaptations based on a determination of a fitness of the component so adapted, the fitness being determined by the verification test, wherein the iteration of the genetic algorithm ceases in response to a stopping condition such that, on cessation, the latest generation of the software component constitutes the software service.

