An empirical evaluation of OSGi dependencies best practices in the eclipse IDE

Lina Ochoa, Thomas Degueule, Jurgen Vinju

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

Abstract

OSGi is a module system and service framework that aims to fill Java's lack of support for modular development. Using OSGi, developers divide software into multiple bundles that declare constrained dependencies towards other bundles. However, there are various ways of declaring and managing such dependencies, and it can be confusing for developers to choose one over another. Over the course of time, experts and practitioners have defined "best practices" related to dependency management in OSGi. The underlying assumptions are that these best practices (i) are indeed relevant and (ii) help to keep OSGi systems manageable and efficient. In this paper, we investigate these assumptions by first conducting a systematic review of the best practices related to dependency management issued by the OSGi Alliance and OSGi-endorsed organizations. Using a large corpus of OSGi bundles (1,124 core plug-ins of the Eclipse IDE), we then analyze the use and impact of 6 selected best practices. Our results show that the selected best practices are not widely followed in practice. Besides, we observe that following them strictly reduces classpath size of individual bundles by up to 23% and results in up to ±13% impact on performance at bundle resolution time. In summary, this paper contributes an initial empirical validation of industry-standard OSGi best practices. Our results should influence practitioners especially, by providing evidence of the impact of these best practices in real-world systems.

Original languageEnglish
Title of host publicationProceedings - 2018 ACM/IEEE 15th International Conference on Mining Software Repositories, MSR 2018
Place of PublicationNew York
PublisherACM/IEEE
Pages170-180
Number of pages11
ISBN (Electronic)978-1-4503-5716-6
DOIs
Publication statusPublished - 28 May 2018
Event15th ACM/IEEE International Conference on Mining Software Repositories, MSR 2018, co-located with the 40th International Conference on Software Engineering, ICSE 2018 - Gothenburg, Sweden
Duration: 28 May 201829 May 2018

Conference

Conference15th ACM/IEEE International Conference on Mining Software Repositories, MSR 2018, co-located with the 40th International Conference on Software Engineering, ICSE 2018
CountrySweden
CityGothenburg
Period28/05/1829/05/18

Fingerprint

Industry

Cite this

Ochoa, L., Degueule, T., & Vinju, J. (2018). An empirical evaluation of OSGi dependencies best practices in the eclipse IDE. In Proceedings - 2018 ACM/IEEE 15th International Conference on Mining Software Repositories, MSR 2018 (pp. 170-180). New York: ACM/IEEE. https://doi.org/10.1145/3196398.3196416
Ochoa, Lina ; Degueule, Thomas ; Vinju, Jurgen. / An empirical evaluation of OSGi dependencies best practices in the eclipse IDE. Proceedings - 2018 ACM/IEEE 15th International Conference on Mining Software Repositories, MSR 2018. New York : ACM/IEEE, 2018. pp. 170-180
@inproceedings{4370c7e25c0947d38f92e3fa624e6dff,
title = "An empirical evaluation of OSGi dependencies best practices in the eclipse IDE",
abstract = "OSGi is a module system and service framework that aims to fill Java's lack of support for modular development. Using OSGi, developers divide software into multiple bundles that declare constrained dependencies towards other bundles. However, there are various ways of declaring and managing such dependencies, and it can be confusing for developers to choose one over another. Over the course of time, experts and practitioners have defined {"}best practices{"} related to dependency management in OSGi. The underlying assumptions are that these best practices (i) are indeed relevant and (ii) help to keep OSGi systems manageable and efficient. In this paper, we investigate these assumptions by first conducting a systematic review of the best practices related to dependency management issued by the OSGi Alliance and OSGi-endorsed organizations. Using a large corpus of OSGi bundles (1,124 core plug-ins of the Eclipse IDE), we then analyze the use and impact of 6 selected best practices. Our results show that the selected best practices are not widely followed in practice. Besides, we observe that following them strictly reduces classpath size of individual bundles by up to 23{\%} and results in up to ±13{\%} impact on performance at bundle resolution time. In summary, this paper contributes an initial empirical validation of industry-standard OSGi best practices. Our results should influence practitioners especially, by providing evidence of the impact of these best practices in real-world systems.",
author = "Lina Ochoa and Thomas Degueule and Jurgen Vinju",
year = "2018",
month = "5",
day = "28",
doi = "10.1145/3196398.3196416",
language = "English",
pages = "170--180",
booktitle = "Proceedings - 2018 ACM/IEEE 15th International Conference on Mining Software Repositories, MSR 2018",
publisher = "ACM/IEEE",

}

Ochoa, L, Degueule, T & Vinju, J 2018, An empirical evaluation of OSGi dependencies best practices in the eclipse IDE. in Proceedings - 2018 ACM/IEEE 15th International Conference on Mining Software Repositories, MSR 2018. ACM/IEEE, New York, pp. 170-180, 15th ACM/IEEE International Conference on Mining Software Repositories, MSR 2018, co-located with the 40th International Conference on Software Engineering, ICSE 2018, Gothenburg, Sweden, 28/05/18. https://doi.org/10.1145/3196398.3196416

An empirical evaluation of OSGi dependencies best practices in the eclipse IDE. / Ochoa, Lina; Degueule, Thomas; Vinju, Jurgen.

Proceedings - 2018 ACM/IEEE 15th International Conference on Mining Software Repositories, MSR 2018. New York : ACM/IEEE, 2018. p. 170-180.

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

TY - GEN

T1 - An empirical evaluation of OSGi dependencies best practices in the eclipse IDE

AU - Ochoa, Lina

AU - Degueule, Thomas

AU - Vinju, Jurgen

PY - 2018/5/28

Y1 - 2018/5/28

N2 - OSGi is a module system and service framework that aims to fill Java's lack of support for modular development. Using OSGi, developers divide software into multiple bundles that declare constrained dependencies towards other bundles. However, there are various ways of declaring and managing such dependencies, and it can be confusing for developers to choose one over another. Over the course of time, experts and practitioners have defined "best practices" related to dependency management in OSGi. The underlying assumptions are that these best practices (i) are indeed relevant and (ii) help to keep OSGi systems manageable and efficient. In this paper, we investigate these assumptions by first conducting a systematic review of the best practices related to dependency management issued by the OSGi Alliance and OSGi-endorsed organizations. Using a large corpus of OSGi bundles (1,124 core plug-ins of the Eclipse IDE), we then analyze the use and impact of 6 selected best practices. Our results show that the selected best practices are not widely followed in practice. Besides, we observe that following them strictly reduces classpath size of individual bundles by up to 23% and results in up to ±13% impact on performance at bundle resolution time. In summary, this paper contributes an initial empirical validation of industry-standard OSGi best practices. Our results should influence practitioners especially, by providing evidence of the impact of these best practices in real-world systems.

AB - OSGi is a module system and service framework that aims to fill Java's lack of support for modular development. Using OSGi, developers divide software into multiple bundles that declare constrained dependencies towards other bundles. However, there are various ways of declaring and managing such dependencies, and it can be confusing for developers to choose one over another. Over the course of time, experts and practitioners have defined "best practices" related to dependency management in OSGi. The underlying assumptions are that these best practices (i) are indeed relevant and (ii) help to keep OSGi systems manageable and efficient. In this paper, we investigate these assumptions by first conducting a systematic review of the best practices related to dependency management issued by the OSGi Alliance and OSGi-endorsed organizations. Using a large corpus of OSGi bundles (1,124 core plug-ins of the Eclipse IDE), we then analyze the use and impact of 6 selected best practices. Our results show that the selected best practices are not widely followed in practice. Besides, we observe that following them strictly reduces classpath size of individual bundles by up to 23% and results in up to ±13% impact on performance at bundle resolution time. In summary, this paper contributes an initial empirical validation of industry-standard OSGi best practices. Our results should influence practitioners especially, by providing evidence of the impact of these best practices in real-world systems.

UR - http://www.scopus.com/inward/record.url?scp=85051665962&partnerID=8YFLogxK

U2 - 10.1145/3196398.3196416

DO - 10.1145/3196398.3196416

M3 - Conference contribution

AN - SCOPUS:85051665962

SP - 170

EP - 180

BT - Proceedings - 2018 ACM/IEEE 15th International Conference on Mining Software Repositories, MSR 2018

PB - ACM/IEEE

CY - New York

ER -

Ochoa L, Degueule T, Vinju J. An empirical evaluation of OSGi dependencies best practices in the eclipse IDE. In Proceedings - 2018 ACM/IEEE 15th International Conference on Mining Software Repositories, MSR 2018. New York: ACM/IEEE. 2018. p. 170-180 https://doi.org/10.1145/3196398.3196416