On Measuring the Reusability Proneness of Mobile Applications
Authors: Fathi Taibi
Abstract:
The abnormal increase in the number of applications available for download in Android markets is a good indication that they are being reused. However, little is known about their real reusability potential. A considerable amount of these applications is reported as having a poor quality or being malicious. Hence, in this paper, an approach to measure the reusability potential of classes in Android applications is proposed. The approach is not meant specifically for this particular type of applications. Rather, it is intended for Object-Oriented (OO) software systems in general and aims also to provide means to discard the classes of low quality and defect prone applications from being reused directly through inheritance and instantiation. An empirical investigation is conducted to measure and rank the reusability potential of the classes of randomly selected Android applications. The results obtained are thoroughly analyzed in order to understand the extent of this potential and the factors influencing it.
Keywords: Reusability, Software Quality Factors, Software Metrics, Empirical Investigation, Object-Oriented Software, Android Applications.
Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1094585
Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1804References:
[1] Abebe, S. L., Kessler, F. B., Haiduc, S., Tonella, P. and Marcus, A. "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, 2011.
[2] Al-Dallal, J. and Morasca, S. "Predicting object-oriented class reuse-proneness using internal quality attributes,” Empirical Software Engineering, vol. 19, no. 4, pp. 775-821, 2014.
[3] Al-Dallal, J. and Briand, L. C. "A Precise method-method interaction-based cohesion metric for object-oriented classes,” ACM Transactions on Software Engineering and Methodology, vol. 21, no. 2, 8:1-8:34, 2012.
[4] Android, the world's most popular mobile platform, http://developer.android.com/about/index.html, April 2014.
[5] Anquetil, N. and Lethbdige, T. "Assessing the Relevance of Identifier Names in Legacy System,” In Proc of the Centre for Advanced Studies on Collaborative Research Conference, 1998.
[6] Appbrain, http://www.appbrain.com/stats/number-of-android-apps, April 2014
[7] Bertoa, M. F., Troya, J. M. andVallecillo, A. "Measuring the usability of software components,” The Journal of Systems and Software, vol. 79, pp.427–439, 2006.
[8] CCCC, http://cccc.sourceforge.net/, April 2014.
[9] Chidamber, S. and Kemerer, C. "A Metrics Suite for Object Oriented Design,” IEEE Transactions on Software Engineering, vol. 20, no. 6, pp. 476-493, 1994.
[10] CKJM, http://www.spinellis.gr/sw/ckjm/, April 2014.
[11] Crussell, J., Gibler, C. and Chen, H. "AnDarwin: Scalable Detection of Semantically Similar Android Applications,” Lecture Notes in Computer Science, pp. 182-199, 2013.
[12] Crussell, J., Gibler, C. and Chen, H. "Attack of the Clones: Detecting Cloned Applications on Android Markets,” Proceedings of the 17th European Symposium on Research in Computer Security, Lecture Notes in Computer Science, vol. 7459, pp. 37-54, 2012.
[13] Darcy, D. and Kemerer, C. "OO Metrics in Practice,” IEEE Software, vol. 22, no. 6, pp. 17-19, 2005.
[14] Dex2jar, http://code.google.com/p/dex2jar/, April 2014.
[15] Enck, W., Ongtang, M. and McDaniel,P. "On Lightweight Mobile Phone Application Certification,” Proceeding of the 16th ACM conference on Computer and communications security, pp. 235-245, 2009.
[16] Google Play, https://play.google.com/store/apps, April 2014.
[17] Grosser, D., Sahraoui, H. A. and Valtchev, O. "An analogy-based approach for predicting design stability of Java classes,” Proceedings of the 9th International Software Metrics Symposium, pp. 252-262, 2003.
[18] Gui, G. and Scott, P. D. "Coupling and cohesion measures for evaluation of component reusability,” Proceedings of the 2006 international workshop on Mining software repositories, pp. 18 – 21, 2006.
[19] Gyimothy, T., Ferenc, R. and Siket, I. "Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction,” IEEE Transactions on Software Engineering, vol. 31, no. 10, pp. 897-910, 2005.
[20] Haefliger, S., Von-Krogh, G. and Spaeth, S. "Code Reuse in Open Source Software,” Management Science, vol. 54, no. 1, pp. 180-193, 2008.
[21] Hanna, S., Huang, L., Wu, E., Li, S., Chen, C. and Song, D. "Juxtapp: A Scalable System for Detecting Code Reuse among Android Applications Detection of Intrusions and Malware, and Vulnerability Assessment,” Lecture Notes in Computer Science. Vol. 7591, pp. 62-81, 2013.
[22] Heinemann, L., Deissenboeck, F., Gleirscher, M., Hummel, B. and Irlbeck, M. "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.). Springer-Verlag, pp. 207-222, 2011.
[23] Heitlager, I., Kuipers, T. and Visser, J. "A Practical Model for Measuring Maintainability,” Proceedings of the 6th International Conference on Quality of Information and Communications Technology, pp. 30–39, 2007.
[24] JAD, http://varaneckas.com/jad/, April 2014.
[25] Khomh, F., Di-Penta, M., Gueheneuc, Y.G. and Antoniol, G. "An exploratory study of the impact of antipatterns on class change- and fault-proneness,” Empirical Software Engineering, vol. 17, no. 3, pp. 243-275, 2012.
[26] Linares-Vasquez, M., Bavota, G., Bernal-Cardenas, C., Penta, M. D., Oliveto, R. and Poshyvanyk,D. "Api change and fault proneness: A threat to the success of android apps,” Proceedings of the 9th Joint Meeting of the European Software Engineering Conference and the 21st ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 477-487, 2013.
[27] Lee, V., Schneider, H. and Schell, R. Mobile Applications: Architecture, Design, and Development, 1st edition, Prentice Hall, 2004.
[28] Lee, Y. and Chang, K. H. "Reusability and maintainability metrics for object-oriented software,”Proceedings of the ACM-SE 38th annual on Southeast regional conference, pp.88-94, 2000.
[29] McDonnell, T., Ray, B.and Kim, M. "An Empirical Study of API Stability and Adoption in the Android Ecosystem,” Proceeding of the 29th IEEE International Conference on Software Maintenance, pp. 70-79, 2013.
[30] Minelli, R. and Lanza, M. "Software Analytics for Mobile Applications – Insights & Lessons Learned,” Proceeding of the European Conference on Software Maintenance and Reengineering, pp. 144-153, 2013.
[31] Mohagheghi, P., Conradi, R., Killi, O.M. and Schwarz, H. "An empirical study of software reuse vs. defect-density and stability,” Proceedings of the 26th International Conference on Software Engineering, pp. 282 - 291, 2004.
[32] Navarro, G. "A Guided Tour to Approximate String Matching,” ACM Computing Surveys, vol. 33, no. 1, pp. 31–88, 2001.
[33] Reussner, R. H., Schmidt, H. W. and Poernomo, I. H. "Reliability prediction for component-based software architectures,” The Journal of Systems and Software, vol. 66, pp. 241–252, 2003.
[34] Ruiz, I. J. M., Nagappan, M., Adams, B. and Hassan, A. E."Understanding Reuse in the Android Market,” Proceedings of IEEE 20th International Conference on Program Comprehension, Germany, pp.113–122, 2012.
[35] Subramanyam, R. and Krishnan, M. "Empirical analysis of CK metrics for object-oriented design complexity: implications for software defects,” IEEE Transactions on Software Engineering, vol. 29, no. 4, pp. 297–310, 2003.
[36] Syer, D., Adams, B., Zou, Y. and Hassan, A. "Exploring the development of micro-apps: A case study on the blackberry and android platforms,” Proceedings of the 11th IEEE International Working Conference on Source Code Analysis and Manipulation, pp. 55-64, 2011.
[37] Taibi, F. "Empirical Analysis of the Reusability of Object-Oriented Program Code in Open-Source Software,” International Journal of Computer, Information, System and Control Engineering, vol. 8, no. 1, pp. 114 – 120, 2014.
[38] Washizaki, H., Yamamoto, H. and Fukazawa, Y. "A metrics suite for measuring reusability of software components,” Proceedings of the 9th Software Metrics Symposium, pp. 211-223, 2003.
[39] Zhou, W., Zhou, Y., Grace, M., Jiang, X. and Zou, S. "Fast, scalable detection of Piggybacked mobile applications,” Proceedings of the 3rd ACM conference on Data and application security and privacy, pp. 185-196, 2013.
[40] Zhou, Y. and Leung, H. "Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults,” IEEE Transactions on Software Engineering, vol. 32, no. 10, pp. 771-789, 2006.