Skip to main content
Log in

An empirical study of integration activities in distributions of open source software

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

Reuse of software components, either closed or open source, is considered to be one of the most important best practices in software engineering, since it reduces development cost and improves software quality. However, since reused components are (by definition) generic, they need to be customized and integrated into a specific system before they can be useful. Since this integration is system-specific, the integration effort is non-negligible and increases maintenance costs, especially if more than one component needs to be integrated. This paper performs an empirical study of multi-component integration in the context of three successful open source distributions (Debian, Ubuntu and FreeBSD). Such distributions integrate thousands of open source components with an operating system kernel to deliver a coherent software product to millions of users worldwide. We empirically identified seven major integration activities performed by the maintainers of these distributions, documented how these activities are being performed by the maintainers, then evaluated and refined the identified activities with input from six maintainers of the three studied distributions. The documented activities provide a common vocabulary for component integration in open source distributions and outline a roadmap for future research on software integration.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

Notes

  1. http://snapshot.debian.org/

  2. http://packages.debian.org/changelogs/pool/main

  3. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=XYZ with XYZ the bug identifier

  4. http://api.launchpad.net/1.0/

  5. http://changelogs.ubuntu.com/changelogs/pool/main

  6. Manual search using the bug identifier on https://bugs.launchpad.net/ubuntu

  7. ftp3.ie.FreeBSD.org::FreeBSD/development/FreeBSD-CVS/ports/

  8. :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs

  9. http://www.FreeBSD.org/cgi/query-pr.cgi?pr=XYZ with XYZ the bug identifier

  10. This notation refers to a bug report in the distribution’s bug repository.

  11. If the maintainer finds out that the interface did change without a SONAME update, she would contact upstream to ask for an update of the SONAME, then perform an Upstream Sync of the updated library before resuming the Dependency Management of the library’s reverse-dependencies.

  12. http://bit.ly/FOCJHf

  13. http://lwn.net/Articles/160330/

  14. http://bit.ly/z3ORxT

  15. http://lwn.net/Articles/282038/

  16. http://bit.ly/w7rn04

  17. http://www.links.org/?p=327

References

  • Adams B, De Schutter K , Tromp H, De Meuter W (2007) Design recovery and maintenance of build systems. In: Proceedings of the Intl. Conf. on Soft. Maint, pp 114–123

  • Adams B, Kavanagh R, Hassan AE, German DM (2015) Replication package. http://mcis.polymtl.ca/publications/2014/integration_oss_distribution_adams_et_al.zip

  • Bac C, Berger O, Deborde V, Hamet B (2005) Why and how-to contribute to libre software when you integrate them into an in-house application? . Proceedings of the 1st Intl Conf on Open Source Systems (OSS):113–118

  • Basili VR, Briand LC, Melo WL (1996) How reuse influences productivity in object-oriented systems. Commun ACM 39(10):104–116

    Article  Google Scholar 

  • Begel A, Nagappan N, Poile C, Layman L (2009) Coordination in large-scale software teams. In: Proceedings of the 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering, CHASE ’09, pp. 1–7, Washington, DC, USA, IEEE Computer Society

  • Bhuta J, Mattmann C, Medvidovic N, Boehm B W (2007) Framework for the Assessment and Selection of Software Components and Connectors in COTS-Based Architectures. In: WICSA, page 6

  • Information Technology Resources Board (1999) Assessing the risks of commercial-off-the shelf applications. Technical report, ITRB

  • Boehm B, Abts C (1999) COTS integration: Plug and pray?. Computer 32(1):135–138

    Article  Google Scholar 

  • Bowman IT, Holt RC, Brewster NV (1999) Linux as a case study: its extracted software architecture. In: Proceedings of the 21st Intl. Conf. on Software Engineering (ICSE), pp 555–563

  • Brooks FP, Jr (1995) The Mythical Man-month (Anniversary Ed.) Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA

    Google Scholar 

  • Brownsword L, Oberndorf T, Sledge CA (2000) Developing new processes for COTS-based systems. IEEE Softw 17(4):48–55

    Article  Google Scholar 

  • Brun Y, Holmes R, Ernst MD, Notkin D (2011) Proactive detection of collaboration conflicts. In: Proceedings of the 19th ACM SIGSOFT Symp. and the 13th European Conf. on Foundations of Software Engineering (ESEC/FSE), pp 168–178

  • Chen W, Li J, Ma J, Conradi R, Ji J, Liu Chunnian (2008) An empirical study on software development with open source components in the chinese software industry . Softw Process 13:89–100

    Article  Google Scholar 

  • Cochran WG (1963) Sampling Techniques, 2nd edn. John Wiley and Sons, Inc., New York

    MATH  Google Scholar 

  • Coplien J, Hoffman D, Weiss D (1998) Commonality and variability in software engineering. IEEE Softw 15:37–45

    Article  Google Scholar 

  • Crnkovic I, Larssom M (2002) Challenges of component-based development. J Syst Softw 61(3):201– 212

    Article  Google Scholar 

  • Curtis B, Krasner H, Iscoe N (1988) A field study of the software design process for large systems. Commun ACM 31(11):1268–1287

    Article  Google Scholar 

  • Dagenais B., Robillard M P (2008) Recommending adaptive changes for framework evolution. In: Proceedings of the 30th Intl. Conf. on Software Engineering (ICSE), pp 481–490

  • de Souza CRB, Redmiles D, Cheng L-T, Millen D, Patterson J (2004) Sometimes you need to see through walls: A field study of application programming interfaces. In: Proceedings of the 2004 ACM Conference on Computer Supported Cooperative Work, CSCW ’04, pp. 63–71, New York, NY, USA. ACM

  • de Souza CRB, Redmiles D F (2008) An empirical study of software developers’ management of dependencies and changes. In: Proceedings of the 30th International Conference on Software Engineering, ICSE ’08, pages 241–250, New York, NY, USA, ACM

  • Project participants (2013). http://www.debian.org/devel/people

  • Debian project (2011) Debian Developer’s Reference, 2011 edition

  • DeLine R (1999) Avoiding packaging mismatch with flexible packaging. In: Proceedings of the 21st Intl. Conf. on Software Engineering (ICSE), pp. 97–106

  • Developer’s Reference Team, Barth A, Di Carlo A, Hertzog R, Nussbaum L, Schwarz C, Jackson I (2011) Debian. The Debian Project

  • Di Cosmo R , Di Ruscio D , Pelliccione P, Pierantonio A, Zacchiroli S (2011) Supporting software evolution in component-based foss systems. Sci Comput Program 76:1144–1160

    Article  Google Scholar 

  • Di Giacomo P (2005) COTS and open source software components: are they really different on the battlefield?. In: Proceedings of the 4th intl. conf. on COTS-Based Software Systems (ICCBSS), pp 301–310

  • Dogguy M, Glondu S, Le Gall S, Zacchiroli S (2010) Enforcing type-safe linking using inter-package relationships. In: Proc. of the 21st Journées Francophones des Langages Applicatifs (JFLA), p. 25p

  • Frakes W, Terry C (1996) Software reuse: metrics and models. ACM Comput Surv 28(2):415–435

    Article  Google Scholar 

  • Frakes WB, Kang K (2005) Software reuse research: status and future. IEEE Trans Softw Eng 31:529–536

    Article  Google Scholar 

  • FreeBSD porter’s handbook (2011). http://bit.ly/FQDPhP

  • The freeBSD developers (2013). http://www.freeBSD.org/doc/en/articles/contributors/staff-committers.html

  • Gaffney JE, Durek TA (1989) Software reuse – key to enhanced productivity: some quantitative models. Inf Softw Technol 31(5):258–267

    Article  Google Scholar 

  • Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., MA

    MATH  Google Scholar 

  • German DM, Gonzalez-Barahona JM, Robles G (2007) A model to understand the building and running inter-dependencies of software. In: Proceedings of the 14th Working Conf. on Reverse Engineering (WCRE), pages 140–149

  • German DM, Hassan AE (2009) License integration patterns: addressing license mismatches in component-based development. In: Proceedings of ICSE, pp 188–198

  • German DM, Webber JH, Di Penta M (2010) Lawful software engineering. In: Proceedings of the FSE/SDP wrksh. on Future of Soft. Eng. research (FoSER), pp. 129–132

  • Gonzalez-Barahona JM, Robles G, Michlmayr M, Amor JJ, German DM (2009) Macro-level software evolution: a case study of a large software compilation. Empirical Softw Engg 14:262–285

    Article  Google Scholar 

  • Goode S (2005) Something for nothing: management rejection of open source software in australia’s top firms. Inf Manage 42(5):669–681

    Article  Google Scholar 

  • The BSD Certification Group (2005) Bsd usage survey. Technical report, The BSD Certification Group

  • Hauge Ø, Ayala C, Conradi R (2010) Adoption of open source software in software-intensive organizations - a systematic literature review. Inf Softw Technol 52(11):1133–1154

    Article  Google Scholar 

  • Hauge Ø, Sørensen C-F, Conradi R (2008) Adoption of open source in the software industry. In: Proceedings of the 4th IFIP WG 2.13 Intl. Conf. on Open Source Systems (OSS), vol 275, pp 211–221

  • Herbsleb . JD, Grinter RE (1999) Splitting the organization and integrating the code: Conway’s law revisited. In: Proceedings of the 21st International Conference on Software Engineering, ICSE ’99, pp. 85–95, New York, NY, USA, ACM

  • Herbsleb JD, Mockus A, Finholt TA, Grinter RE (2001) An empirical study of global software development: distance and speed. In: Proceedings of the 23rd International Conference on Software Engineering, ICSE ’01, pp. 81–90, Washington, DC, USA, IEEE Computer Society

  • Hertzog R (2011) Towards Debian rolling: my own Debian CUT manifesto. http://raphaelhertzog.com/2011/04/27/towards-Debian-rolling-my-own-Debian-cut-manifesto/

  • Jaaksi A (2007) Experiences on product development with open source software. In: Proc. of the IFIP Working Group 2.13 on Open Source Soft, volume 234, pp 85–96. Springer

  • Koshy J (2013) Building products with FreeBSD. http://www.freeBSD.org/doc/en/articles/building-products/,2013

  • Khomh F, Dhaliwal T, Zou Y, Adams B (2012) Do faster releases improve software quality? – an empirical case study of Mozilla Firefox. In: Proceedings of the 9th IEEE Working Conf. on Mining Software Repositories (MSR), pages 179–188, Zurich, Switzerland

  • Lemos R (2003) Microsoft details new security plan. http://news.cnet.com/Microsoft-details-new-security-plan/2100-1002_3-5088846.html

  • Lewis P, Hyle P, Parrington M, Clark E, Boehm B, Abts C, Manners R (2000) Lessons learned in developing commercial off-the-shelf (COTS) intensive software systems. Technical report, SERC

  • Li J, Conradi R, Bunse C, Torchiano M, Slyngstad OPN, Morisio M (2009) Development with off-the-shelf components: 10 facts. IEEE Softw 26:80–87

    Article  Google Scholar 

  • Li J, Conradi R, Slyngstad OP, Torchiano M, Morisio M, Bunse C (2008) A state-of-the-practice survey of risk management in development with off-the-shelf software components. IEEE Trans Softw Eng 34:271–286

    Article  Google Scholar 

  • Li J, Conradi R, Slyngstad OPN, Bunse C, Khan U, Torchiano M, Morisio M (2005) An empirical study on off-the-shelf component usage in industrial projects. In: Proceedings of the 6th intl. conf. on Product Focused Software Process Improvement (PROFES), pp. 54–68

  • van der Linden FJ, Schmid K, Rommes E (2007) Software product lines in action: the best industrial practice in product line engineering. Springer, Berlin Heidelberg

    Book  Google Scholar 

  • Van Der Linden F (2009) Applying open source software principles in product lines. Eur J Informa Prof (UPGRADE) 3:32–40

    Google Scholar 

  • Lundqvist A (2013) GNU/Linux distribution timeline. http://futurist.se/gldt/

  • Mattsson M, Bosch J, Fayad ME (1999) Framework integration problems, causes, solutions. Commun ACM 42(10):80–87

    Article  Google Scholar 

  • McCamant S, Ernst MD (2003) Predicting problems caused by component upgrades. In: Proceedings of the Symposium on the Foundations of Software Engineering, pp. 287–296

  • McIntosh S, Adams B, Kamei Y, Nguyen T, Hassan AE (2011) An empirical study of build maintenance effort. In: Proceedings of ICSE, pages 141–150

  • Merilinna J, Matinlassi M (2006) State of the art and practice of opensource component integration. In: Proceedings of the 32nd Conf. on Software Engineering and Advanced Applications (EUROMICRO), pp 170–177

  • Meyer MH, Lehnerd AP (1997) The power of product platforms. Free Press, New York

    Google Scholar 

  • Michlmayr M, Hunt F, Probert D (2007) Release management in free software projects: practices and problems. In: Open Source Development, Adoption and Innovation, v. 234, pp. 295–300

  • Mistrík I, Grundy J, Hoek A, Whitehead J (2010) Collaborative software engineering: challenges and prospects, chapter 19, 1st edn. Springer, Berlin Heidelberg, pp 389–402

    Book  Google Scholar 

  • Mohamed A, Ruhe G, Eberlein A (2008) Optimized mismatch resolution for COTS selection. Softw Process 13(2):157–169

    Article  Google Scholar 

  • Morisio M, Seaman CB, Basili VR, Parra AT, Kraft SE, Condon SE (2002) COTS-based software development: processes and open issues. J Syst Softw 61(3):189–189

    Article  Google Scholar 

  • Navarrete F, Botella P, Franch X (2005) How agile COTS selection methods are (and can be)?. In: Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications, EUROMICRO ’05, pp 160–167, Washington, DC, USA. IEEE Computer Society

  • Orsila H, Geldenhuys J, Ruokonen A, Hammouda I (2008) Update propagation practices in highly reusable open source components. In: Proceedings of the 4th IFIP WG 2.13 Int. Conf. on Open Source Systems (OSS), vol 275, pp 159–170

  • Parnas DL (1976) On the design and development of program families. IEEE Trans Softw Eng 2:1–9

    Article  MATH  Google Scholar 

  • Pohl Klaus, Böckle G, van der Linden F J (2005) Software product line engineering: foundations, principles and techniques. Springer, New York

    Book  MATH  Google Scholar 

  • Remnant SJ (2011) A new release process for Ubuntu?. http://netsplit.com/2011/09/08/new-Ubuntu-release-process/

  • Rodin J, Aoki O (2011) Debian New Maintainers’ Guide. The Debian Project

  • Ruffin M, Ebert C (2004) Using open source software in product development: a primer. IEEE Softw 21(1):82–86

    Article  Google Scholar 

  • Sadowski BM , Sadowski-Rasters Gaby, Duysters G (2008) Transition of governance in a mature open software source community: evidence from the Debian case . Inf Econ Policy 20(4):323–332

    Article  Google Scholar 

  • Scacchi W , Feller J, Fitzgerald B, Hissam S, Lakhani K (2006) Understanding free/open source software development processes. Softw Process: Improv Pract 11(2)

  • Seaman CB (1996) Communication costs in code and design reviews: an empirical study. In: Proceedings of the 1996 Conference of the Centre for Advanced Studies on Collaborative Research, CASCON ’96, pp 34–. IBM Press

  • Shihab E, Bird C, Zimmermann T (2012) The effect of branching strategies on software quality. In: Proceedings of the ACM/IEEE intl. symp. on Empirical Software Engineering and Measurement (ESEM), pp 301–310

  • Shuttleworth M (2008) The art of release. http://www.markshuttleworth.com/archives/146

  • Sojer M, Henkel J (2010) Code reuse in open source software development: quantitative evidence, drivers, and impediments. J Assoc Inf Syst 11 (iss.12)

  • Spinellis D, Szyperski C , Guest editors’ introduction: how is open source affecting software development? (2004) IEEE Softw 21(1):28–33

    Article  Google Scholar 

  • Stol K-J, Babar MA, Avgeriou P, Fitzgerald B (2011) A comparative study of challenges in integrating open source software and inner source software. Inf Softw Technol 53(12):1319–1336

    Article  Google Scholar 

  • Szyperski C (1998) Component software: beyond object-oriented programming. Addison-Wesley Publishing Co., MA

    Google Scholar 

  • The Fedora Project (2011) Package update HOWTO. http://fedoraproject.org/wiki/Package_update_HOWTO

  • The FreeBSD Documentation Project (2011) FreeBSD Porter’s Handbook. The FreeBSD Foundation

  • Tiangco F, Stockwell A, Sapsford J, Rainer A, Swanton E. (2005) Open-source software in an occupational health application: the case of heales medical ltd. Procs 1:130–134

    Google Scholar 

  • Trezentos P, Lynce I, Oliveira A L (2010) Apt-pbo: solving the software dependency problem using pseudo-boolean optimization. In: Proceedings of the IEEE/ACM intl. conf. on Automated Software Engineering (ASE), pp. 427–436

  • Qiang T, Godfrey M (2001) The build-time software architecture view. In: Proceedings of ICSM, pp. 398–

  • motu team (2013). https://launchpad.net/%7Emotu/+members

  • Ubuntu core development team (2013). https://launchpad.net/%7EUbuntu-core-dev/+members

  • Ubuntu universe contributors team (2013). https://launchpad.net/universe-contributors/+members

  • van der Hoek A, Wolf AL (2003) Software release management for component-based software. Softw Pract Exper 33:77–98

    Article  MATH  Google Scholar 

  • Ven K, Mannaert H (2008) Challenges and strategies in the use of open source software by independent software vendors. Inf Softw Technol 50(9-10):991–1002

    Article  Google Scholar 

  • Whittaker J, Arbon J, Carollo J (2012) How google tests software. Addison-Wesley Professional, MA

    Google Scholar 

  • Comparison of BSD operating systems (2011). http://en.wikipedia.org/wiki/Comparison_of_BSD_operating_systems

  • Xia X, Lo D, Zhu F, Wang X, Zhou B (2013) Software internationalization and localization: an industrial experience. In: Proceedings of the 18th Intl. Conf. on Engineering of Complex Computer Systems (ICECCS), pp. 222–231

  • Yakimovich D, Bieman J M, Basili V R (1999) Software architecture classification for estimating the cost of COTS integration. In: Proceedings of the 21st Intl. Conf. on Software Engineering (ICSE), pp. 296–302

Download references

Acknowledgments

The authors would like to thank all maintainers and release engineers of Debian, Ubuntu and FreeBSD who participated in our study, either directly (providing feedback on the documented activities), or indirectly (providing insights into the fascinating world of OSS distributions).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bram Adams.

Additional information

Communicated by: Filippo Lanubile

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Adams, B., Kavanagh, R., Hassan, A.E. et al. An empirical study of integration activities in distributions of open source software. Empir Software Eng 21, 960–1001 (2016). https://doi.org/10.1007/s10664-015-9371-y

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-015-9371-y

Keywords

Navigation