Approximation Algorithms for Software Component Selection Problem

Today's software systems are more frequently composed from preexisting commercial or non-commercial components and connectors. These components provide complex and independent functionality and are engaged in complex interactions. Component-Based Software Engineering (CBSE) is concerned with composing, selecting and designing such components. As the popularity of this approach and hence number of commercially available software components grows, selecting a set of components to satisfy a set of requirements while minimizing cost is becoming more difficult. This problem necessitates the design of efficient algorithms to automate component selection for software developing organizations. We address this challenge through analysis of Component Selection, the NP-complete process of selecting a minimal cost set of components to satisfy a set of objectives. Due to the high order of computational complexity of this problem, we examine approximating solutions that make the component selection process practicable. We adapt a greedy approach and a genetic algorithm to approximate this problem. We examined the performance of studied algorithms on a set of selected ActiveX components. Comparing the results of these two algorithms with the choices made by a group of human experts shows that we obtain better results using these approximation algorithms.

[1]  David S. Johnson Approximation algorithms for combinatorial problems , 1973, STOC '73.

[2]  David S. Johnson,et al.  Approximation algorithms for combinatorial problems , 1973, STOC.

[3]  László Lovász,et al.  On the ratio of optimal integral and fractional covers , 1975, Discret. Math..

[4]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[5]  Vasek Chvátal,et al.  A Greedy Heuristic for the Set-Covering Problem , 1979, Math. Oper. Res..

[6]  Kenneth Steiglitz,et al.  Combinatorial Optimization: Algorithms and Complexity , 1981 .

[7]  Wladyslaw M. Turski,et al.  No Silver Bullet - Essence and Accidents of Software Engineering - Response , 1986, IFIP Congress.

[8]  Gunar E. Liepins,et al.  Greedy Genetics , 1987, ICGA.

[9]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[10]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[11]  Gunar E. Liepins,et al.  Genetic Algorithms Applications to Set Covering and Traveling Salesman Problems , 1990 .

[12]  Sandip Sen,et al.  Minimal cost set covering using probabilistic methods , 1993, SAC '93.

[13]  Petr Slavík,et al.  A tight analysis of the greedy algorithm for set cover , 1996, STOC '96.

[14]  Susan E. Carlson,et al.  Genetic algorithm attributes for component selection , 1996 .

[15]  Zbigniew Michalewicz,et al.  GENOCOP: a genetic algorithm for numerical optimization problems with linear constraints , 1996, CACM.

[16]  David J. Kruglinski,et al.  Programming Microsoft Visual C , 1998 .

[17]  Cornelius Ncube,et al.  PORE : Procurement Oriented Requirements Engineering Method for the Component-Based Systems Engineering Development Paradigm , 1999 .

[18]  Ernest H. Page,et al.  Observations on the complexity of composable simulation , 1999, WSC '99.

[19]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[20]  Lisa Brownsword,et al.  Evolutionary Process for Integrating COTS-Based Systems (EPIC): An Overview , 2002 .

[21]  Keith Ballurio,et al.  Risk Reduction in COTS Software Selection with BASIS , 2002, ICCBSS.

[22]  D. Pruitt Evolutionary Process for Integrating COTS-Based Systems ( EPIC ) : An Overview Key Elements in Building , Fielding , and Supporting Commercial-off-the-Shelf ( COTS ) Based Solutions , 2002 .

[23]  Santiago Comella-Dorda,et al.  A Process for COTS Software Product Evaluation , 2002, ICCBSS.

[24]  Mikel D. Petty,et al.  Computational complexity of selecting components for composition , 2003 .

[25]  Paul F. Reynolds,et al.  Approximating Component Selection , 2004, Proceedings of the 2004 Winter Simulation Conference, 2004..

[26]  Anneliese Amschler Andrews,et al.  A strategy for selecting multiple components , 2005, SAC '05.

[27]  Paul F. Reynolds,et al.  The computational complexity of component selection in simulation reuse , 2005, Proceedings of the Winter Simulation Conference, 2005..

[28]  Mark Harman,et al.  Search Based Approaches to Component Selection and Prioritization for the Next Release Problem , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[29]  C. Alves,et al.  CRE : A Systematic Method for COTS Components Selection , 2007 .