Software Component Recommendation System Using Multi-Criteria Scoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software development systems lack effective search functionality for software components based on business logic and technical requirements, and do not provide a learning mechanism to recommend components for application development with minimal developer assistance, hindering rapid application development (RAD).

Innovation Solution

A system and method that receive user inputs for software application requirements, calculate requirements matching scores and performance scores for existing software components, combine these scores with associated weights, and recommend suitable components for development, utilizing a component selection model that learns from developer actions and updates based on user selections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If software components are developed and stored in existing systems, then software components can be reused for new applications, but there is no search functionality based on business logic and technical requirements

Engineering Contradiction:
Improvesoftware development speedVSAvoidcomponent search capability
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces a component search and recommendation system as an intermediary between developers and software components. This system includes a user interface for receiving requirements, a component repository storing software components with metadata, and a matching mechanism that compares requirements against component characteristics to provide relevant suggestions, thereby enabling effective search and selection without manual browsing

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system incorporates feedback mechanisms where developer selections and usage patterns of software components are captured and used to refine future recommendations. The component selection model learns from historical data and updates its matching algorithms, improving the accuracy of component recommendations over time based on actual developer behavior and success metrics

Inventive Principle:
Principle #23Feedback

2Extent of automation

If existing systems store software components, then components are available for reuse, but there is no learning mechanism to recommend components with minimal developer assistance

Engineering Contradiction:
Improvecomponent recommendation automationVSAvoidsystem complexity
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The component recommendation system performs self-service by automatically analyzing developer actions, tracking component usage patterns, and updating the component selection model without requiring manual intervention. The system autonomously learns from historical data and refines its recommendation algorithms, reducing the need for developer assistance in component selection over time

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system captures feedback from developer selections and component performance data to continuously improve the recommendation model. Historical usage data and success metrics are fed back into the system to train and update the component selection model, enabling increasingly accurate automated recommendations with minimal developer input

Inventive Principle:
Principle #23Feedback

3Measurement precision

If multiple software components are evaluated based on multiple criteria, then more accurate component selection is achieved, but the evaluation process becomes more complex

Engineering Contradiction:
Improvecomponent selection accuracyVSAvoidevaluation process complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the component evaluation process into distinct independent criteria: business logic matching, technical requirements matching, and performance metrics. Each criterion is evaluated separately through specific comparison operations, and the results are aggregated to produce an overall component ranking, making the complex multi-criteria evaluation manageable and systematic

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9977656B1Systems and methods for providing software components for developing software applications
Publication Date: 2018.05.22 WIPRO LTD
  • US9977656B1 patent drawing
  • US9977656B1 patent drawing
  • US9977656B1 patent drawing

AI summary

This disclosure relates to methods and systems for providing software components for developing software applications. In one embodiment, a method for providing software components for developing software applications is provided. The method comprises receiving user input requirements associated with the software application; determining a requirements matching score for every software component existing in an application development environment, based on a comparison between the received requirements and a requirements model, wherein the requirements model is generated based on historic user requirements and usage; determining a performance score based on a response time associated with the software components; determining weights corresponding to the requirements matching score and the performance score based on the requirements matching score; determining a combined score based on the determined scores and associated weights; selecting software components for developing the software application based on the determined combined scores; and providing the selected software components to the user.