Skip to main content

Finding Optimal Compatible Set of Software Components Using Integer Linear Programming

  • Conference paper
  • First Online:
SOFSEM 2016: Theory and Practice of Computer Science (SOFSEM 2016)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9587))

  • 981 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Gurobi - http://www.gurobi.com/.

  2. 2.

    IBM CPLEX - http://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/.

  3. 3.

    Maven Central - http://mvnrepository.com/.

  4. 4.

    Full results are available at http://relisa-dev.kiv.zcu.cz/data/experiments/optimal-set-ilp-2015-07/.

References

  1. OSGi Service Platform - Core Specification. Release 4, version 4.3, The OSGi Alliance, June 2011

    Google Scholar 

  2. Belguidoum, M., Dagnat, F.: Dependency management in software component deployment. In: Formal Aspects of Component Software (FACS 2006), Prague, Czech Republic, September 2006

    Google Scholar 

  3. Bosch, R., Trick, M.: Integer programming. In: Burke, E., Kendall, G. (eds.) Search Methodologies, pp. 69–95. Springer, New York (2005)

    Chapter  Google Scholar 

  4. Brada, P.: Enhanced type-based component compatibility using deployment context information. Electron. Notes Theoret. Comput. Sci. 279(2), 17–31 (2011)

    Article  Google Scholar 

  5. Brada, P., Jezek, K.: Repository and meta-data design for efficient component consistency verification. Sci. Comput. Program. 97, Part 3, 349–365 (2015)

    Google Scholar 

  6. 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)

    Article  Google Scholar 

  7. Flores, A., Polo, M.: Testing-based process for component substitutability. Softw. Test. Verification Reliab. 22(8), 529–561 (2012)

    Google Scholar 

  8. Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering. ACM Comput. Surv. 45(1), 1–61 (2012)

    Article  Google Scholar 

  9. Jezek, K., Ambroz, J.: Detecting incompatibilities concealed in duplicated software libraries. In: Proceedings of 41st Euromicro SEAA Conference (August 2015, to appear)

    Google Scholar 

  10. 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

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Article  Google Scholar 

  13. 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

    Google Scholar 

  14. 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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jakub Danek .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics