Feature Placement Recommendation in Layered Software Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software design tools for multi-layered applications face challenges in determining the optimal layer placement for new features and managing dependencies among layers, leading to inefficiencies in application architecture evolution.

Innovation Solution

A method and system that analyze layer, feature, and dependency information from program code to recommend the highest layer for new feature placement, using a processor to process data and communicate recommendations to a user interface, thereby facilitating informed layer positioning and managing changes in service or feature dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If automated analysis of program code is used to identify layer, feature, and dependency information, then the precision of feature placement recommendations is improved, but the complexity of the software design tool increases

Engineering Contradiction:
Improveprecision of feature placement recommendationsVSAvoidcomplexity of software design tool
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The software design tool is segmented into distinct functional modules: a code analysis module that automatically analyzes program code to extract layer, feature, and dependency information; a data structure module that organizes this information; and a recommendation module that generates placement suggestions. This segmentation allows each module to specialize in specific tasks, improving measurement precision while managing overall system complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A functional data structure acts as an intermediary between the code analysis process and the recommendation generation process. This data structure systematically organizes layer information, feature information, and dependency information, serving as a mediator that transforms raw code analysis data into structured inputs for recommendation algorithms, thereby improving precision without proportionally increasing complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If manual determination of layer placement for new features is performed, then the complexity of the software design tool is reduced, but the productivity of application architecture evolution decreases

Engineering Contradiction:
Improveproductivity of application architecture evolutionVSAvoidcomplexity of software design tool
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary automated analysis of program code to identify existing layer structures, features, and dependencies before new features need to be placed. By pre-processing the code base and organizing information into functional data structures, the system prepares recommendation data in advance, significantly improving productivity when new features need to be integrated without requiring complex real-time analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The software design tool provides self-service capabilities by automatically analyzing code, extracting relevant information, and generating placement recommendations without requiring manual architectural review. This automation serves the productivity need by reducing the time and expertise required for layer placement decisions, while the modular architecture keeps complexity manageable.

Inventive Principle:
Principle #25Self-service

3Reliability

If comprehensive dependency information is collected through automatic code analysis, then the reliability of feature placement recommendations is improved, but the time required for analysis increases

Engineering Contradiction:
Improvereliability of feature placement recommendationsVSAvoidtime required for code analysis
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary code analysis to build and store dependency information, layer structures, and feature metadata in functional data structures before placement decisions are needed. This pre-computation approach ensures comprehensive and reliable information is available when new features need to be placed, while the initial time investment is made during development phases rather than during frequent feature addition operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system transforms the time dimension of analysis by shifting from real-time or on-demand comprehensive analysis to batch processing during development phases. By organizing dependency and layer information into structured data models that can be reused, the system reduces the time cost of subsequent placement decisions while maintaining high reliability through comprehensive initial analysis.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10740070B2Locating features in a layered software application
Publication Date: 2020.08.11 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10740070B2 patent drawing
  • US10740070B2 patent drawing
  • US10740070B2 patent drawing

AI summary

A new feature can be defined for an application. Data pertaining to layer information, feature information and dependency information for the application can be processed and, based on the processing, an identification can be made of a highest layer of a plurality of layers of the application containing at least a second feature upon which the new feature is dependent. A recommendation can be generated. The recommendation can indicate to place the new feature in the highest layer of the plurality of layers containing the at least the second feature upon which the new feature is dependent. The recommendation can be communicated to a user interface, which can render the recommendation on a display.