{"title":"Empirical Analysis of the Reusability of Object-Oriented Program Code in Open-Source Software","authors":"Fathi Taibi","volume":85,"journal":"International Journal of Computer and Information Engineering","pagesStart":118,"pagesEnd":125,"ISSN":"1307-6892","URL":"https:\/\/publications.waset.org\/pdf\/9997487","abstract":"
Measuring the reusability of Object-Oriented (OO) program code is important to ensure a successful and timely adaptation and integration of the reused code in new software projects. It has become even more relevant with the availability of huge amounts of open-source projects. Reuse saves cost, increases the speed of development and improves software reliability. Measuring this reusability is not s straight forward process due to the variety of metrics and qualities linked to software reuse and the lack of comprehensive empirical studies to support the proposed metrics or models. In this paper, a conceptual model is proposed to measure the reusability of OO program code. A comprehensive set of metrics is used to compute the most significant factors of reusability and an empirical investigation is conducted to measure the reusability of the classes of randomly selected open-source Java projects. Additionally, the impact of using inner and anonymous classes on the reusability of their enclosing classes is assessed. The results obtained are thoroughly analyzed to identify the factors behind lack of reusability in open-source OO program code and the impact of nesting on it.<\/p>\r\n","references":"[1]\tAl-Dallal, J. and Briand, L. C.\"A Precise method-method interaction-based cohesion metric for object-oriented classes,\u201dACM Transactions on Software Engineering and Methodology, vol. 21, no. 2, 8:1-8:34, 2012.\r\n[2]\tAnquetil, N. and Lethbdige, T. \"Assessing the Relevance of Identifier Names in Legacy System,\u201d InProc of the Centre for Advanced Studies on Collaborative Research Conference, 1998. \r\n[3]\tBoem, B. and Basili, V. \"Software Defect Reduction Top 10 List,\u201d Software Management, vol. 34, no. 1, pp. 135-137, 2001.\r\n[4]\tBuse, R. and Weimer, W. \"Learning a metric for code readability,\u201d IEEE Transactions on Software Engineering, vol. 36, no. 4, pp. 546 \u2013 558, 2010.\r\n[5]\tChidamber, S. and Kemerer, C. \"A Metrics Suite for Object Oriented Design,\u201d IEEE Transactions on Software Engineering, vol. 20, no. 6, pp. 476-493, 1994.\r\n[6]\tDarcy, D. and Kemerer, C. \"OO Metrics in Practice,\u201dIEEE Software, vol. 22, no. 6, pp. 17-19, 2005.\r\n[7]\tDe-Lucia, A., Di Penta, M. and Oliveto, R. \"Improving Source Code Lexicon via Traceability and Information Retrieval,\u201d IEEE Transactions on Software Engineering, vol. 37, no. 2, pp. 205-227, 2011.\r\n[8]\tEl-Emam, K., Melo, W. L. and Machado. J. C. \"The Prediction of Faulty Classes using Object-Oriented Design Metrics,\u201d Journal of Systems and Software, vol. 56, no. 1, pp. 63\u201375, 2001.\r\n[9]\tFowler, M., Beck, K., Brant, J., Opdyke, W. and Roberts, D. Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, 1999.\r\n[10]\tFrakes, W. and Kang, K. \"Software Reuse Research: Status and Future,\u201d IEEE Transactions on Software Engineering, vol. 31, no. 7, pp. 529-536, 2005.\r\n[11]\tGaudin, O. and Mallet, F. \"Sonar,\u201d Methods and Tools, vol. 18, no. 1, pp. 40-46, 2010.\r\n[12]\tGyimothy, T., Ferenc, R., and Siket, I. \"Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction,\u201d IEEE Transactions on Software Engineering, vol. 31, no. 10, pp. 897-910, 2005.\r\n[13]\tHae\ufb02iger, S., Von-Krogh, G. and Spaeth, S. \"Code Reuse in Open Source Software,\u201d Management Science, vol. 54, no. 1, pp. 180-193, 2008.\r\n[14]\tHaiduc, S. and Marcus, A. \"On the Use of Domain Terms in Source Code,\u201d InProc of the 16th IEEE International Conference on Program Comprehension, pp. 113-122, 2008.\r\n[15]\tJalbert, N. and Weimer, W. \"Automated Duplicate Detection for Bug Tracking Systems,\u201d InProc of the International Conference on Dependable Systems and Networks, pp. 34-27, 2008.\r\n[16]\tLand, R., Sundmark, D., Luders, F., Krasteva, I. and Causevic, A. \"Reuse with Software Components - A Survey of Industrial State of Practice,\u201d Formal Foundations of Reuse and Domain Engineering, Lecture Notes in Computer Science, vol. 5791, pp. 150-159, 2009.\r\n[17]\tLangmaacka, H., Salwicki A. and Warpechowski, M. \"On an algorithm determining direct superclasses in Java and similar languages with inner classes\u2014Its correctness, completeness and uniqueness of solutions,\u201d Information and Computation, vol. 207, pp. 389-410, 2009.\r\n[18]\tLawrie, D., Morrell, C. Field, H. and Binkley, D. \"Effective Identifier Names for Comprehension and Memory,\u201d Innovations in Systems and Software Engineering, vol. 3, no. 4, pp. 303-318, 2007.\r\n[19]\tMakela, S. and Leppanen, V. \"Observations on Lack of Cohesion Metrics,\u201d In Proc of the International Conference on Computer Systems and Technologies, 2006.\r\n[20]\tMarcus, D. Poshyvanyk and R. Ferenc. \"Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems,\u201d IEEE Transactions on Software Engineering, vol. 34, no. 2, pp. 287 \u2013 300, 2008. \r\n[21]\tMcCabe, T. \"A Complexity Measure,\u201d IEEE Transactions on Software Engineering, pp. 308-320, 1976.\r\n[22]\tMcConnell, S. Code Complete: A Practical Handbook of Software Construction, 2ndEdition. Microsoft Press, 2004.\r\n[23]\tMcIlroy, D. \"Mass-produced software components,\u201d In Proc 1968 NATO Conference on Software Engineering, Buxton, J.M., Naur, P., Randell, B. (eds.), pp. 138-155, Petroceli\/Charter, New York, 1969.\r\n[24]\tNavarro, G. \"A Guided Tour to Approximate String Matching,\u201d ACM Computing Surveys, vol. 33, no. 1, pp. 31 \u2013 88, 2001.\r\n[25]\tSchildt H. Java - The Complete Reference, 8th Edition. McGraw-Hill Osborne Media, 2011.\r\n[26]\tStein, C., Cox, G. and Etzkorn, L. \"Exploring the Relationship between Cohesion and Complexity,\u201d Journal of Computer Science, vol.1, no. 2, pp. 137\u2013144, 2005.\r\n[27]\tSubramanyam, R. and Krishnan, M. \"Empirical analysis of CK metrics for object-oriented design complexity: implications for software defects,\u201d IEEE Transactions on Software Engineering, vol. 29, no. 4, pp. 297 \u2013 310, 2003.\r\n[28]\tTaibi, F. \"Reusability of Open-Source Program Code: A Conceptual Model and Empirical Investigation,\u201d ACM SIGSOFT Software Engineering Notes, vol. 38, no. 4, pp. 1-5, 2013.\r\n[29]\tYu, P., Systa, T. and Muller, H. \"Predicting Fault-Proneness Using OO Metrics: An Industrial Case Study,\u201d In Proc of the 6thEuropean Conference on Software Maintenance and Reengineering, pp. 99-107, 2002.\r\n[30]\thttp:\/\/cccc.sourceforge.net\/\r\n[31]\thttp:\/\/sourceforge.net\/\r\n[32]\thttp:\/\/www.spinellis.gr\/sw\/ckjm\/\r\n","publisher":"World Academy of Science, Engineering and Technology","index":"Open Science Index 85, 2014"}