Abstract
Component-based software engineering uses components to construct systems, being a means to increase productivity by promoting software reuse. This work deals with the component selection problem. A multiobjective optimization approach is used to formulate the problem. The contribution of the current paper is threefold: the multilevel decomposition approach, the use of both functional and non-functional requirements (cost of a component, thus cost of the solution as sum of the costs of the constituent components) as objectives, and the use of metrics values to evaluate the architecture of the obtained solutions. As advantages over the existing literature we mention: the automatic computation of component interactions and of the constituent components for each module, multiple solutions obtained in a single run, and the new architecture evaluation step based on metrics values that is not present in other approaches. The decomposition offers valuable insights about internal structure of the system which led us to identify metrics to assess coupling and cohesion of the architecture design. The internal structure influences the external quality; thus, a highly cohesive module exhibits high reusability and loosely coupled systems enable easy maintenance. In this context, when selecting the best solution out of a set of available ones, we aim to maximize the cohesion of modules and to minimize the coupling between them, obtaining thus the “best” reusable and maintenable solution. To evaluate our approach, we discuss a case study for building a reservation system. In order to obtain the best parameters to run the evolutionary approach, three different studies were applied. The tests performed show the potential of evolutionary algorithms for this particular problem and for other similar ones.













Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Abreu F, Goulao M (2001) Coupling and cohesion as modularization drivers: Are we being over-persuaded? In Proc. of CSMR, pp 47–57
Alves C, Castro J (2001) A systematic method for cots component selection. In Proceedings of the Brazilian symposium on software engineering, pp 193–207
Arcuri A, Briand L (2011) A practical guide for using statistical tests to assess randomized algorithms in software engineering. In The 33rd international conference on software engineering, pp 1–10
Baker P, Harman M, Steinhofel K and Skaliotis A (2006) Search based approaches to component selection and prioritization for the next release problem. In The 22nd IEEE international conference on software maintenance, pp 176–185
Becker C, Rauber A (2010) Improving component selection and monitoring with controlled experimentation and automated measurements. Inform Softw Technol 52(6):641–655
Carroll S, Daughtrey T (2007) Fundamental concepts for the software quality engineer. ASQ Quality Press, Milwaukee
Confidence-Interval (2015) How to calculate confidence interval. http://www.wikihow.com/Calculate-Confidence-Interval. Accessed: 2015
Cox P and Song B (2001) A formal model for component-based software. In Symposium on visual/multimedia approaches to programming and software engineering, pp 304–311
Crnkovic I (2002) Building reliable component-based software systems. Artech House Inc, Norwood
Derrac J, Garcia S, Molina D, Herrera F (2011) A practical tutorial on the use of nonparametric statistical tests as a methodology for comparing evolutionary and swarm intelligence algorithms. Swarm Evol Comput 1:3–18
Fenton N E (1991) Software metrics: a rigorous approach. Chapman and Hall, London
Fox MR, Brogan DC, Reynolds Jr, PF (2004) Approximating component selection. In Proceedings of the 36th conference on winter simulation, pp 429–434
Gesellensetter L, Glesner S (2007) Only the best can make it: optimal component selection. Electron Notes Theor Comput Sci 176(2):105–124
Grosan C (2005) A comparison of several evolutionary models and representations for multiobjective optimisation. ISE Book Series on Real Word Multi-Objective System Engineering, Nova Science
Haghpanah N, Moaven S, Habibi J, Kargar M and Yeganeh SH (2007) Approximation algorithms for software component selection problem. In Asia-Pacific Software Engineering Conference, pp 159–166
Harman M, McMinn P, de Souza JT, Yoo S (2012) Search based software engineering: techniques, taxonomy, tutorial. Empir Softw Eng Verif 7007:1–59
Iribarne L, Troya J and Vallecillo A (2002) Selecting software components with multiple interfaces. In The 28th EUROMICRO conference component-based software engineering, pp 26–32
Jhaa P, Balib V, Narulaa S, Kalra M (2014) Optimal component selection based on cohesion and coupling for component based software system under build-or-buy scheme. J Comput Sci 5(2):233–242
Kim Y, deWeck O (2005) Adaptive weighted-sum method for bi-objective optimization: pareto front generation. Struct Multidiscip Optim 29(2):149–158
Kwong C, Mu L, Tang J, Luo X (2010) Optimization of software components selection for component-based software system development. Comput Ind Eng 58(1):618–624
Lau KK (2014) Software component models: Past, present and future. In: Proceedings of the 17th International ACM Sigsoft symposium on component-based software engineering, CBSE ’14, pp 185–186
M, B (2001) Software engineering. Addison-Wesley Longman Publishing Co., Inc., Boston
Mancebo E, Andrews A (2005) A strategy for selecting multiple components. In A ACM symposium on applied computing, pp 1505–1510
Martens A, Mirandola R, Ardagna D, Reussnerand R and Koziolek H (2010) Coupling and cohesion as modularization drivers: are we being over-persuaded? In: Hybrid approach for multi-attribute QoS Optimisation in component based software systems, pp 84–101
Ncube C, Maiden NA (1999) Pore: Procurement-oriented requirements engineering method for the component-based systems engineering development paradigm. In Development Paradigm, International Workshop on Component-Based Software Engineering, pp 1–12
Parsa S and Bushehrian O (2004) A framework to investigate and evaluate genetic clustering algorithms for automatic modularization of software systems. In International conference on computational science, pp 699–702
Seker R, van der Merwe AJ, Kotze P, Tanik MM, Paul R (2004) Assessment of coupling and cohesion for component based software by using shannon languages. J Integr Des Process Sci 8:33–43
Vescan A (2008a) An evolutionary multiobjective approach for the component selection problem. In: First IEEE international conference on the applications of digital information and web technologies (ICADIWT)
Vescan A (2008b) Pareto dominance—based approach for the component selection problem. In: The 2nd UKSim European symposium on computer modelling and simulation, pp 58–63
Vescan A (2009) Optimal component selection using a multiobjective evolutionary algorithm. Neural Netw World J 1(2):201–213
Vescan A, Grosan C (2010) Evolutionary multiobjective approach for multilevel component composition. Studia Univ Babes-Bolyai, Informatica, LV(4):18–32
Vescan A, Grosan C and Yang S (2011) A hybrid evolutionary multiobjective approach for the dynamic component selection problem. In: The 11th international conference on hybrid intelligent systems (HIS), pp 714–721
Vescan A, Serban C. Details on case study for the multilevel component selection optimisation approach. Accessed 2 April 2016
Yin RK (2009) Case study research: design and methods. SAGE Publications, Thousand Oaks
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no conflict of interest.
Ethical approval
This article does not contain any studies with human participants or animals performed by any of the authors.
Additional information
Communicated by V. Loia.
Rights and permissions
About this article
Cite this article
Vescan, A., Şerban, C. Multilevel component selection optimization toward an optimal architecture. Soft Comput 21, 4481–4495 (2017). https://doi.org/10.1007/s00500-016-2472-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00500-016-2472-8