Software retrieval by samples using concept analysis
Abstract Finding and retrieving software components is one of the tasks of the building-block approach to software reuse. One interesting property of code components unlike other types of software artifacts is that they can be executed. The execution-based retrieval process tends to be too long to be incorporated in practice and faces the problem of non-termination and very long execution time. This paper describes a software component retrieval method using sample input–output behavior of the components (but without actual execution) based on concept analysis. The retrieval uses samples chosen by the developers of the components (rather than generated randomly or provided by the users). Based on the validity relation between components and samples, a concept lattice is constructed for the library by applying formal concept analysis. The user retrieves components by selecting valid samples incrementally for a desired component from a dynamically created menu of samples available in the library. Our method avoids the problems associated with actual execution-based retrieval such as non-termination and very long execution time, and also improves the retrieval time. Our approach can be directly applied to other levels of software components than code components as long as the components can be described in terms of some input–output relation.