Skip to main content

Identifying and Improving Reusability Based on Coupling Patterns

  • Conference paper
High Confidence Software Reuse in Large Systems (ICSR 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5030))

Included in the following conference series:

Abstract

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.

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.

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.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arisholm, E., Briand, L.C., Foyen, A.: Dynamic Coupling Measurement for Object-Oriented Software. IEEE Transactions on Software Engineering 30(8), 491–506 (2004)

    Article  Google Scholar 

  2. Aoki, A., Hayashi, K., Kishida, K., Nakakoji, K., Nishinaka, Y., Reeves, B., Takashima, A., Yamamoto, Y.: A case study of the evolution of jun: an object-oriented open-source 3d multimedia library. In: Proceedings of the 23rd International Conference on Software Engineering, Toronto, Canada, ICSE, pp. 524–533 (2001)

    Google Scholar 

  3. Basili, V.R., Rombach, H.D.: Support for Comprehensive Reuse. IEEE Software Engineering Journal 6(5), 303–316 (1991)

    Google Scholar 

  4. Beecher, K., Boldyreff, C., Capiluppi, A., Rank, S.: Evolutionary Success of Open Source Software: an Investigation into Exogenous Drivers. In: Electronic Communications of the EASST: ERCIM Symposium on Software Evolution, vol. 17(8) (2007)

    Google Scholar 

  5. Briand, L.C., Morasca, S., Basili, V.R.: Property-based Software Engineering Measurement. IEEE Transactions on Software Engineering 22(1), 68–86 (1996)

    Article  Google Scholar 

  6. Capiluppi, A.: Models for the Evolution of OS Projects. In: Proceedings of the International Conference on Software Maintenance, Amsterdam, Netherlands, pp. 65–74 (2003)

    Google Scholar 

  7. Capiluppi, A., Lago, P., Morisio, M.: Evidences in the Evolution of OS Projects Through Changelog Analyses. In: Proceedings of the 3rd Workshop on Open Source Software Engineering, Portland, OR, USA, ICSE (2003)

    Google Scholar 

  8. Capiluppi, A., Morisio, M., Ramil, J.F.: Structural Analysis of Open Source Systems. In: Madhavji, N.H., Ramil, J.F., Perry, D. (eds.) Software Evolution and Feedback: Theory and Practice, pp. 207–222. Wiley, Chichester (2006)

    Chapter  Google Scholar 

  9. Capiluppi, A., Morisio, M., Ramil, J.F.: The Evolution of Source Folder Structure in Actively Evolved Open Source Systems. In: Proceedings of the 10th International Software Metrics Symposium, pp. 2–13 (2004)

    Google Scholar 

  10. Carney, D.: Assembling Large Systems from COTS Components: Opportunities, Cautions, and Complexities. Technical report, SEI Monographs on the Use of Commercial Software in Government Systems (1997)

    Google Scholar 

  11. Ducasse, S., Lanza, M., Ponisio, L.: Butterflies: A visual Approach to Characterize Packages. In: Proceedings of the 11th International Software Metrics Symposium (2005)

    Google Scholar 

  12. Ellson, J., Gansner, E., Koutsofios, L., North, S.C., Woodhull, G.: Graphviz, Open Source Graph Drawing Tools (2002)

    Google Scholar 

  13. Fenton, N.E., Pfleeger, S.L.: Software Metrics: a Practical and Rigorous Approach. Thomson (1996)

    Google Scholar 

  14. Koch, S., Schneider, G.: Effort, Cooperation and Coordination in an Open Source Software Project: GNOME. Information Systems Journal 12(1), 27–42 (2002)

    Article  Google Scholar 

  15. German, D.M.: Using Software Trails to Reconstruct the Evolution of Software. Journal of Software Maintenance and Evolution: Research and Practice 16(6), 367–384 (2004)

    Article  Google Scholar 

  16. Godfrey, M.W., Tu, Q.: Evolution in Open Source Software: A Case Study. In: Proceedings of the International Conference on Software Maintenance, San Jose, CA, USA, pp. 131–142 (2000)

    Google Scholar 

  17. Gorton, I., Zhu, L.: Tool Support for Just-In-Time Architecture Reconstruction and Evaluation: an Experience Report. In: Proceedings of the 27th international conference on Software engineering, pp. 514–523 (2005)

    Google Scholar 

  18. Hofmeister, C., Nord, R., Soni, D.: Applied Software Architecture. Addison-Wesley, Reading (2000)

    Google Scholar 

  19. Kruchten, P.: The 4+1 View Model of Architecture. IEEE Software 12(5), 88–93 (1995)

    Google Scholar 

  20. Lang, B., Abramatic, J.F., Gonzalez-Barahona, J.M., Gomez, P., Pedersen, M.K.: GI 1975. In: Mühlbacher, J.R. (ed.) GI 1975. LNCS, vol. 34(12), p. 2. Springer, Heidelberg (1975)

    Google Scholar 

  21. Li, W., Henry, S.: Object-oriented Metrics that Predict Maintainability. Journal of Systems and Software 23(2), 111–122 (1993)

    Article  Google Scholar 

  22. Llorens, J., Fuentes, J., Astudillo, H.: Incremental Software Reuse. In: Proceedings of the International Conference on Software Reuse, Torino, Italy, ICSR (2006)

    Google Scholar 

  23. Lungu, M., Lanza, M., Girba, T.: Package Patterns for Visual Architecture Recovery. In: Proceedings of the Conference on Software Maintenance and Reengineering, pp. 32–41 (2006)

    Google Scholar 

  24. Martin, R.C.: Agile Software Development, Principles, Patterns, and Practices. Prentice-Hall, Englewood Cliffs (2002)

    Google Scholar 

  25. Matsumoto, Y.: Some Experience in Promoting Reusable Software Presentation in Higher Abstraction Levels. IEEE Transactions on Software Engineering 12(1), 43–60 (2004)

    Google Scholar 

  26. McClure, C.: Software Reuse Techniques. Prentice-Hall, Englewood Cliffs (1997)

    Google Scholar 

  27. Medvidovic, N., Jakobac, V.: Using Software Evolution to Focus Architectural Recovery. Automated Software Engineering 13(2), 225–256 (2006)

    Article  Google Scholar 

  28. Mockus, A., Fielding, R.T., Herbsleb, J.D.: Two Case Studies of Open Source Software Development: Apache and Mozilla. ACM Transactions on Software Engineering and Methodology 11(3), 309–346 (2002)

    Article  Google Scholar 

  29. Mohagheghi, P., Conradi, R.: Different Aspects of Product Family Adoption. In: Proceedings of 5th International Workshop on Product Family Evolution, pp. 429–434 (2003)

    Google Scholar 

  30. Morisio, M., Ezran, M., Tully, C.: Success and Failure Factors in Software Reuse. IEEE Transactions on Software Engineering 28(4), 340–357 (2002)

    Article  Google Scholar 

  31. Morisio, M., Seaman, C.B., Parra, A.T., Basili, V.R., Kraft, S.E., Condon, S.E.: Investigating and Improving a COTS-based Software Development. In: Proceedings of International Conference on Software Engineering, pp. 32–41 (2000)

    Google Scholar 

  32. Poulin, J.S.: Measuring Software Reuse: Principles, Practices, and Economic Models. Addison-Wesley Longman Publishing Co., Inc., Boston (1996)

    Google Scholar 

  33. Pressman, R.S.: Software Engineering: a Practitioner’s Approach, 2nd edn. McGraw-Hill, Inc., New York (1986)

    Google Scholar 

  34. Senyard, A., Michlmayr, M.: How to Have a Successful Free Software Project. In: Proceedings of the 11th Asia-Pacific Software Engineering Conference, Busan, Korea, pp. 84–91. IEEE Computer Society, Los Alamitos (2004)

    Chapter  Google Scholar 

  35. Stamelos, I., Angelis, L., Oikonomou, A., Bleris, G.L.: Code Quality Analysis in Open-Source Software Development. Information Systems Journal 12(1), 43–60 (2002)

    Article  Google Scholar 

  36. Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured Design. IBM Systems Journal 13, 115–139 (1974)

    Article  Google Scholar 

  37. Torchiano, M., Morisio, M.: Overlooked Aspects of COTS-based Development. IEEE Software 21(2), 88–93 (2004)

    Article  Google Scholar 

  38. Tu, Q., Godfrey, W.M.: The Build-Time Software Architecture View. In: Proceedings of 2001 International Conference on Software Maintenance, Florence, Italy, pp. 65–74. IEEE, Los Alamitos (2001)

    Google Scholar 

  39. Yu, L., Schach, S.R., Chen, K., Offutt, J.: Categorization of Common Coupling and Its Application to the Maintainability of the Linux Kernel. IEEE Transactions on Software Engineering 30(10), 43–60 (2004)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hong Mei

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Capiluppi, A., Boldyreff, C. (2008). Identifying and Improving Reusability Based on Coupling Patterns. In: Mei, H. (eds) High Confidence Software Reuse in Large Systems. ICSR 2008. Lecture Notes in Computer Science, vol 5030. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68073-4_31

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-68073-4_31

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-68062-8

  • Online ISBN: 978-3-540-68073-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics