Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 32718
A Framework to Support Reuse in Object-Oriented Software Development

Authors: Fathi Taibi

Abstract:

Reusability is a quality desired attribute in software products. Generally, it could be achieved through adopting development methods that promote it and achieving software qualities that have been linked with high reusability proneness. With the exponential growth in mobile application development, software reuse became an integral part in a substantial number of projects. Similarly, software reuse has become widely practiced in start-up companies. However, this has led to new emerging problems. Firstly, the reused code does not meet the required quality and secondly, the reuse intentions are dubious. This work aims to propose a framework to support reuse in Object-Oriented (OO) software development. The framework comprises a process that uses a proposed reusability assessment metric and a formal foundation to specify the elements of the reused code and the relationships between them. The framework is empirically evaluated using a wide range of open-source projects and mobile applications. The results are analyzed to help understand the reusability proneness of OO software and the possible means to improve it.

Keywords: Software reusability, software metrics, object-oriented software, modularity, low complexity, understandability.

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 279

References:


[1] Abebe, S. L., Kessler, F. B., Haiduc, S., Tonella, P. and Marcus, A. (2011). The Effect of Lexicon Bad Smells on Concept Location in Source Code, Proceedings of the 11th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM), pp. 125 – 134.
[2] Al-Dallal, J. and Morasca, S. (2014). Predicting object-oriented class reuse proneness using internal quality attributes,” Empirical Software Engineering, 19(4), 775-821.
[3] Anquetil, N. and Lethbdige, T. (1998) . Assessing the Relevance of Identifier Names in Legacy System, In Proc of the Centre for Advanced Studies on Collaborative Research Conference.
[4] Catal, C. (2011). Software fault prediction: A literature review and current trends. Expert Systems with Applications, 38(4), 4626-4636.
[5] Chidamber, S.R. and Kemerer, C.F. (1994). A metrics suite for object oriented design. IEEE Transactions on software engineering, 20(6), 476-493.
[6] Conforto, E. C., Salum, F., Amaral, D. C., da Silva, S. L., & Magnanini de Almeida, L. F. (2014). Can agile project management be adopted by industries other than software development? Project Management Journal, 45(3), 21–34.
[7] Crussell, J., Gibler, C. and Chen, H. (2013). AnDarwin: Scalable Detection of Semantically Similar Android Applications, Lecture Notes in Computer Science, pp. 182-199.
[8] Darcy, D. and Kemerer, C. (2005). OO Metrics in Practice, IEEE Software, 22(6), 17-19.
[9] Frakes, W. and Kang, K. “Software Reuse Research: Status and Future,” IEEE Transactions on Software Engineering, vol. 31, no. 7, pp. 529-536, 2005.
[10] Gui, G. and Scott, P. D. (2006). Coupling and cohesion measures for evaluation of component reusability, Proceedings of the 2006 international workshop on Mining software repositories, pp. 18 – 21.
[11] Gyimothy, T., Ferenc, R. and Siket, I. (2005). Empirical Validation of Object Oriented Metrics on Open Source Software for Fault Prediction, IEEE Transactions on Software Engineering, 31(10), 897-910.
[12] Haefliger, S., Von-Krogh, G. and Spaeth, S. “Code Reuse in Open Source Software,” Management Science, vol. 54, no. 1, pp. 180-193, 2008.
[13] Heinemann, L., Deissenboeck, F., Gleirscher, M., Hummel, B. and Irlbeck, M. (2011). On the extent and nature of software reuse in open source Java projects, Proceedings of the 12th international conference on Top productivity through software reuse, Klaus Schmid (Ed.). SpringerVerlag, pp. 207-222.
[14] Holmes, R., & Walker, R. J. (2012). Systematizing pragmatic software reuse. ACM Transactions on Software Engineering and Methodology, 21(4), 20.
[15] Jansen, S., Brinkkemper, S., Hunink, I., & Demir, C. (2008). Pragmatic and opportunistic reuse in innovative start-up companies. IEEE software, 25(6), 42-49.
[16] Khomh, F., Di-Penta, M., Gueheneuc, Y.G. and Antoniol, G. (2012). An exploratory study of the impact of antipatterns on class change- and fault-proneness, Empirical Software Engineering, 17(3), 243-275.
[17] Kumar, V., Sharma, A., Kumar, R., & Grover, P. S. (2012). Quality aspects for component‐based systems: A metrics-based approach. Software: Practice and Experience, 42(12), 1531-1548.
[18] Land, R., Sundmark, D., Luders, F., Krasteva, I. and Causevic, A. “Reuse with Software Components - A Survey of Industrial State of Practice,” Formal Foundations of Reuse and Domain Engineering, Lecture Notes in Computer Science, vol. 5791, pp. 150-159, 2009.
[19] Lee, Y. and Chang, K. H. (2000). Reusability and maintainability metrics for object-oriented software,” Proceedings of the ACM-SE 38th annual on Southeast regional conference, pp.88-94.
[20] Marcus, A., Poshyvanyk, D., & Ferenc, R. (2008). Using the conceptual cohesion of classes for fault prediction in object-oriented systems. IEEE Transactions on Software Engineering, 34(2), 287-300.
[21] McConnell, S. (2004). Code Complete: A Practical Handbook of Software Construction, 2nd Edition. Microsoft Press.
[22] McIlroy, D. “Mass-produced software components,” In Proc 1968 NATO Conference on Software Engineering, Buxton, J.M., Naur, P., Randell, B. (eds.), pp. 138-155, Petroceli/Charter, New York, 1969.
[23] Potter, B., Sinclair, J., & Till, D. (1996). Introduction to Formal Specification and Z. Prentice-Hall.
[24] Radjenović, D., Heričko, M., Torkar, R. and Živkovič, A. (2013). Software fault prediction metrics: A systematic literature review, Information and Software Technology, 55(8), 1397-1418.
[25] Taibi, F. (2014). 'Empirical Analysis of the Reusability of Object-Oriented Program Code in Open-Source Software'. World Academy of Science, Engineering and Technology, International Journal of Computer and Information Engineering, 8(1), 118 - 124.
[26] Taibi, F. (2013). 'Reusability of open-source program code: a conceptual model and empirical investigation’. ACM SIGSOFT Software Engineering Notes, 38(4), 1-5.
[27] Taibi, F., Alam, M. J. & Abdullah J. (2010). " On Differencing Object-Oriented Formal Specifications" Journal of Object Technology 9(1), 183-198.
[28] Taibi, F., Abbou, F. M. & Alam, M. J. (2008). "A Matching Approach for Object-Oriented Formal Specifications." Journal of Object Technology 7(8), 139-153.
[29] Viennot, N., Garcia, E., & Nieh, J. (2014, June). A measurement study of Google Plasy. In ACM SIGMETRICS Performance Evaluation Review, 42(1), 221-233.
[30] Washizaki, H., Yamamoto, H. and Fukazawa, Y. (2003). A metrics suite for measuring reusability of software components, Proceedings of the 9th Software Metrics Symposium, pp. 211-223.
[31] Wong, W. E., Debroy, V., Golden, R., Xu, X. and Thuraisingham, B. (2012). Effective Software Fault Localization Using an RBF Neural Network. IEEE Transactions on Reliability, 61(1), 149-169.
[32] CCCC, http://cccc.sourceforge.net/, November 2022.
[33] CKJM, https://www.spinellis.gr/sw/ckjm/, November 2022.
[34] Dex2jar, https://github.com/pxb1988/dex2jar, November 2022.
[35] Google Play, https://play.google.com/store/apps, November 2022.
[36] JAD, https://varaneckas.com/jad/, November 2022.