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.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Arisholm, E., Briand, L.C., Foyen, A.: Dynamic Coupling Measurement for Object-Oriented Software. IEEE Transactions on Software Engineering 30(8), 491–506 (2004)
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)
Basili, V.R., Rombach, H.D.: Support for Comprehensive Reuse. IEEE Software Engineering Journal 6(5), 303–316 (1991)
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)
Briand, L.C., Morasca, S., Basili, V.R.: Property-based Software Engineering Measurement. IEEE Transactions on Software Engineering 22(1), 68–86 (1996)
Capiluppi, A.: Models for the Evolution of OS Projects. In: Proceedings of the International Conference on Software Maintenance, Amsterdam, Netherlands, pp. 65–74 (2003)
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)
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)
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)
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)
Ducasse, S., Lanza, M., Ponisio, L.: Butterflies: A visual Approach to Characterize Packages. In: Proceedings of the 11th International Software Metrics Symposium (2005)
Ellson, J., Gansner, E., Koutsofios, L., North, S.C., Woodhull, G.: Graphviz, Open Source Graph Drawing Tools (2002)
Fenton, N.E., Pfleeger, S.L.: Software Metrics: a Practical and Rigorous Approach. Thomson (1996)
Koch, S., Schneider, G.: Effort, Cooperation and Coordination in an Open Source Software Project: GNOME. Information Systems Journal 12(1), 27–42 (2002)
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)
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)
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)
Hofmeister, C., Nord, R., Soni, D.: Applied Software Architecture. Addison-Wesley, Reading (2000)
Kruchten, P.: The 4+1 View Model of Architecture. IEEE Software 12(5), 88–93 (1995)
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)
Li, W., Henry, S.: Object-oriented Metrics that Predict Maintainability. Journal of Systems and Software 23(2), 111–122 (1993)
Llorens, J., Fuentes, J., Astudillo, H.: Incremental Software Reuse. In: Proceedings of the International Conference on Software Reuse, Torino, Italy, ICSR (2006)
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)
Martin, R.C.: Agile Software Development, Principles, Patterns, and Practices. Prentice-Hall, Englewood Cliffs (2002)
Matsumoto, Y.: Some Experience in Promoting Reusable Software Presentation in Higher Abstraction Levels. IEEE Transactions on Software Engineering 12(1), 43–60 (2004)
McClure, C.: Software Reuse Techniques. Prentice-Hall, Englewood Cliffs (1997)
Medvidovic, N., Jakobac, V.: Using Software Evolution to Focus Architectural Recovery. Automated Software Engineering 13(2), 225–256 (2006)
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)
Mohagheghi, P., Conradi, R.: Different Aspects of Product Family Adoption. In: Proceedings of 5th International Workshop on Product Family Evolution, pp. 429–434 (2003)
Morisio, M., Ezran, M., Tully, C.: Success and Failure Factors in Software Reuse. IEEE Transactions on Software Engineering 28(4), 340–357 (2002)
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)
Poulin, J.S.: Measuring Software Reuse: Principles, Practices, and Economic Models. Addison-Wesley Longman Publishing Co., Inc., Boston (1996)
Pressman, R.S.: Software Engineering: a Practitioner’s Approach, 2nd edn. McGraw-Hill, Inc., New York (1986)
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)
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)
Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured Design. IBM Systems Journal 13, 115–139 (1974)
Torchiano, M., Morisio, M.: Overlooked Aspects of COTS-based Development. IEEE Software 21(2), 88–93 (2004)
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)
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)
Author information
Authors and Affiliations
Editor information
Rights 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)