Abstract
AbstractSoftware productivity has been steadily increasing but not enough to close the gap between the demands placed on the software industry and what the state of the practice can deliver. With the increasing dependence of systems on software with increasing complexity and challenging quality requirements, software architectural design to support reuse has become an important development activity and this research domain is rapidly evolving. In the last decades, software architecture optimization methods, which aim to automate the search for an optimal architecture design with respect to a set of quality attributes, have proliferated in literature with the major paradigms of development being as Design for Reuse and Design with Reuse. Classification, storing, and selection of components from a reuse library are considered as a key success factors for software reuse projects, especially when reuse involves also software artifacts, besides code. Correct component classification helps address several problems, besides reuse, such as code comprehension for reverse engineering, dynamic domain modeling, evaluation of programming language dependencies, and usage patterns. In this chapter, we propose a computational intelligence approach using Rough-Fuzzy hybridization techniques to retrieve software components stored as a case-base. The integration of Case-based Reasoning and Decision theory based on Computational Intelligence techniques has shown its usefulness in the retrieval and selection of reusable software components from a software components repository. Software components are denoted by cases with a set of features, attributes, and relations of a given situation and its associated outcomes. These are taken as inputs to a Decision Support tool that classifies the components as adaptable to the given situation with membership values for the decisions. In this novel approach, CBR and DSS (based on Rough-Fuzzy sets) have been applied successfully to the software engineering domain to address the problem of retrieving suitable components for reuse from the case data repository. The use of rough-fuzzy sets increase the likelihood of finding the suitable components for reuse when exact matches are not available or are very few in number. This classification is based on Rough-Fuzzy set theory and the methodology is explained with illustrations. KeywordsComponent-based developmentSoftware reuseCase-based reasoningRough-fuzzy hybridizationComponent repository management
Published Version
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have