Clustering Sample Programs for Software Componentization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing information processing systems face challenges in efficiently identifying suitable software components from a large number of sample programs due to the generation of multiple classification results with varying numbers of clusters, making it burdensome to determine which clusters are suitable for software componentization.
Innovation Solution
An information processing apparatus that performs clustering of sample programs based on features and execution performances, calculates evaluation values for each cluster, and selects the most suitable clustering result to streamline the creation of software components by identifying clusters with high reusability and utility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If multiple clustering results with varying numbers of clusters are generated to classify sample programs, then the classification comprehensiveness is improved, but the complexity of determining suitable clusters for software componentization increases
Solution Approach 1:
The system automatically calculates evaluation values for each cluster based on reusability indices and execution performances, and autonomously selects the most suitable clustering result without requiring manual analysis. The information processing apparatus performs self-evaluation and self-selection of optimal clusters, eliminating the burden on users to manually determine suitable clusters from multiple clustering results.
2Reliability
If multiple clustering results are generated to ensure high reusability of software components, then the quality of software components is improved, but the processing time and computational load increase
Solution Approach 1:
The system pre-calculates and stores reusability indices and execution performances for each sample program before clustering. These preliminary computed values are then reused during the evaluation of multiple clustering results, avoiding redundant computations and reducing the time required to assess different clustering configurations.
Solution Approach 2:
The system evaluates multiple clustering results by changing the number of clusters parameter and selecting the configuration that optimizes the balance between reusability and execution performance. By systematically varying this parameter and using automated evaluation, the system efficiently identifies the optimal clustering configuration without exhaustive manual analysis.
3Productivity
If automated evaluation and selection of clustering results is implemented, then the productivity of software component creation is improved, but the computational complexity of the system increases
Solution Approach 1:
The evaluation process is segmented into distinct components: calculating reusability indices for each cluster, computing execution performances, determining evaluation values based on both metrics, and selecting the optimal clustering result. This segmentation allows each component to be handled independently and efficiently, reducing overall computational complexity while maintaining automated productivity.
Data Source
AI summary
A computer acquires a plurality of clustering results, each of which differs in the number of clusters, by performing clustering that classifies a plurality of sample programs into two or more clusters based on features associated with description and an execution performance of each sample program. The computer calculates, for each of the two or more clusters in each of the clustering results, a first evaluation value based on an index value for reusability of sample programs included in the cluster and the execution performances of the sample programs. The computer calculates, for each of the clustering results, a second evaluation value based on two or more of the first evaluation values corresponding to the two or more clusters. The computer selects, based on the second evaluation values corresponding to the clustering results, one clustering result amongst the multiple clustering results.


