Abstract
Reusable components and libraries reduce costs in software development but also bring challenges like ensuring that application’s components form a consistent and working set. While dependency management and build tools provide assistance in creating the set, they can’t guarantee its correctness in terms of interoperability. On the other hand, the methods which detect component interoperability issues do not provide guidance in finding the proper set of components to fix any uncovered inconsistencies. In this work we present a method for finding such set of components which provides the required functionality, is free from type-level inconsistencies, and at the same time is optimal according to a given criterion. The method is based on pre-computed compatibility data and integer linear programming and allows to optimize the found solution set with respect to an arbitrary cost function.
This publication was supported by the project LO1506 of the Czech Ministry of Education, Youth and Sports.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Gurobi - http://www.gurobi.com/.
- 2.
- 3.
Maven Central - http://mvnrepository.com/.
- 4.
Full results are available at http://relisa-dev.kiv.zcu.cz/data/experiments/optimal-set-ilp-2015-07/.
References
OSGi Service Platform - Core Specification. Release 4, version 4.3, The OSGi Alliance, June 2011
Belguidoum, M., Dagnat, F.: Dependency management in software component deployment. In: Formal Aspects of Component Software (FACS 2006), Prague, Czech Republic, September 2006
Bosch, R., Trick, M.: Integer programming. In: Burke, E., Kendall, G. (eds.) Search Methodologies, pp. 69–95. Springer, New York (2005)
Brada, P.: Enhanced type-based component compatibility using deployment context information. Electron. Notes Theoret. Comput. Sci. 279(2), 17–31 (2011)
Brada, P., Jezek, K.: Repository and meta-data design for efficient component consistency verification. Sci. Comput. Program. 97, Part 3, 349–365 (2015)
Desnos, N., Huchard, M., Tremblay, G., Urtado, C., Vauttier, S.: Search-based many-to-one component substitution. J. Softw. Maintenance Evol. Res. Pract. 20(5), 321–344 (2008)
Flores, A., Polo, M.: Testing-based process for component substitutability. Softw. Test. Verification Reliab. 22(8), 529–561 (2012)
Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering. ACM Comput. Surv. 45(1), 1–61 (2012)
Jezek, K., Ambroz, J.: Detecting incompatibilities concealed in duplicated software libraries. In: Proceedings of 41st Euromicro SEAA Conference (August 2015, to appear)
Jezek, K., Dietrich, J.: On the use of static analysis to safeguard recursive dependency resolution. In: 40th Euromicro SEAA Conference, pp. 166–173. IEEE, August 2014
Olaechea, R., Rayside, D., Guo, J., Czarnecki, K.: Comparison of exact and approximate multi-objective optimization for software product lines. In: Proceedings of the 18th International Software Product Line Conference, vol. 1, pp. 92–101. ACM (2014)
Parsons, T., Mos, A., Trofin, M., Gschwind, T., Murphy, J.: Extracting interactions in component-based systems. IEEE Trans. Software Eng. 34(6), 783–799 (2008)
Steindl, M., Niemetz, M., Mottok, J., Racek, S.: Optimizing software integration in component-based embedded systems by using simulated annealing. In: Eurocon 2013, pp. 446–451. IEEE, July 2013
Tempero, E., Anslow, C., Dietrich, J., Han, T., Li, J., Lumpe, M., Melton, H., Noble, J.: The qualitas corpus: a curated collection of Java code for empirical studies. In: 2010 Asia Pacific Software Engineering Conference, pp. 336–345. IEEE, November 2010
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Danek, J., Brada, P. (2016). Finding Optimal Compatible Set of Software Components Using Integer Linear Programming. In: Freivalds, R., Engels, G., Catania, B. (eds) SOFSEM 2016: Theory and Practice of Computer Science. SOFSEM 2016. Lecture Notes in Computer Science(), vol 9587. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-49192-8_37
Download citation
DOI: https://doi.org/10.1007/978-3-662-49192-8_37
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-49191-1
Online ISBN: 978-3-662-49192-8
eBook Packages: Computer ScienceComputer Science (R0)