Skip to main content
Article thumbnail
Location of Repository

Identifying and improving reusability based on coupling patterns

By Andrea Capiluppi and Cornelia Boldyreff


Open Source Software (OSS) communities have not yet taken full advantage of reuse mechanisms. Typically many OSS projects which share the same application domain and topic, duplicate effort and code, without fully leveraging the vast amounts of available code.\ud This study proposes the empirical evaluation of source code folders of OSS projects in order to determine their actual internal reuse and their potential as shareable, fine-grained and externally reusable software components by future projects.\ud This paper empirically analyzes four OSS systems, identifies which components (in the form of folders) are currently being reused internally and studies their coupling characteristics. Stable components (i.e., those which act as service providers rather than service consumers) are shown to be more likely to be reusable. As a means of supporting replication of these successful instances of OSS reuse, source folders with similar patterns are extracted from the studied systems, and identified as externally reusable components

Topics: G600 Software Engineering
Publisher: Springer
Year: 2008
DOI identifier: 10.1007/978-3-540-68073-4
OAI identifier:

Suggested articles


  1. (2004). Dynamic Coupling Measurement for ObjectOriented Software. doi
  2. (2001). A case study of the evolution of jun: an object-oriented open-source 3d multimedia library. doi
  3. (1991). Support for Comprehensive Reuse. doi
  4. (2007). Evolutionary Success of Open Source Software: an Investigation into Exogenous Drivers.
  5. (1996). Property-based Software Engineering Measurement. doi
  6. (2003). Models for the Evolution of OS Projects. doi
  7. (2003). Evidences in the Evolution of OS Projects Through Changelog Analyses.
  8. (2006). Structural Analysis of Open Source Systems. doi
  9. (2004). The Evolution of Source Folder Structure in Actively Evolved Open Source Systems. doi
  10. (1997). Assembling Large Systems from COTS Components: Opportunities, Cautions, and Complexities.
  11. (2005). Butterflies: A visual Approach to Characterize Packages. doi
  12. (2002). Open Source Graph Drawing Tools, doi
  13. (1996). Software Metrics: a Practical and Rigorous Approach.
  14. Cooperation and Coordination
  15. (2004). Using Software Trails to Reconstruct the Evolution of Software. doi
  16. (2000). Evolution in Open Source Software: A Case Study. doi
  17. (2005). Tool Support for Just-In-Time Architecture Reconstruction and Evaluation: an Experience Report. doi
  18. Applied Software Architecture. doi
  19. (1995). The 4+1 View Model of Architecture. doi
  20. (1993). Object-oriented Metrics that Predict Maintainability. doi
  21. (2006). Incremental Software Reuse. doi
  22. (2006). Package Patterns for Visual Architecture Recovery. doi
  23. (2002). Agile Software Development, Principles, Patterns, and Practices. doi
  24. (2004). Some Experience in Promoting Reusable Software Presentation in Higher Abstraction Levels. doi
  25. (1997). Software Reuse Techniques. doi
  26. (2006). UsingSoftware Evolution to Focus Architectural Recovery. doi
  27. (2002). Two Case Studies of Open Source Software Development: Apache and Mozilla. doi
  28. (2003). Different Aspects of Product Family Adoption. doi
  29. (2002). Success and Failure Factors in Software Reuse. doi
  30. (2000). Investigating and Improving a COTS-based Software Development. doi
  31. (1996). Measuring Software Reuse: Principles, Practices, and Economic Models.
  32. (1986). Software Engineering: a Practitioner’s Approach (2nd ed.).
  33. (2004). How to Have a Successful Free Software Project. doi
  34. (2002). Code Quality Analysis in OpenSource Software Development. doi
  35. (1974). Structured Design. doi
  36. Overlooked Aspects of COTS-based Development. doi
  37. The Build-Time Software Architecture View. doi
  38. (2004). Categorization of Common Coupling and Its Application to the Maintainability of the Linux Kernel. doi
  39. Library handling missing or broken parts yes root/rx 0.03 33 13*111 53*1042 495 141 Library implementing the rx protocol no Gaim project – reusable folders root/src
  40. Library for coding and decoding video and audio streams no root/libaf
  41. Demultiplexer Library for MPEG, ASF, AVI formats no root/tremor 0.045 29 4*17 4*363 372 34 Tremor integer-only Ogg Vorbis audio codec no root/loader
  42. Header files for the Microsoft Windows compatibility yes XMMS project – reusable folders root/libxmms
  43. 86 Generic library for the XMMS project no root/xmms

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.