Mobil Uygulamaların Evriminde Karmaşıklık, Boyut ve İç Kalite Gelişimi: Keşifsel bir Çalışma

Bahar GEZİCİ, Ayça TARHAN, Oumout CHOUSEINOGLOU
62 21

Öz


Mobil uygulamalar, kullanıcı gereksinimlerini karşılama ihtiyacı dolayısıyla hızlı bir şekilde büyüyerek sürekli gelişmekte ve buna bağlı olarak karmaşık yazılım sistemleri haline gelmektedir. Bununla birlikte bu gereksinimlerin karşılanması, yazılım kalitesini ve performansını düşürebilecek negatif örüntü (antipattern) olarak bilinen kötü tasarım tercihlerine yol açabilir. Bu sebeple, uygulamaların özelliklerinin algılanması ve izlenmesi, bakım ve geliştirmeyi kolaylaştırmak için önemli faaliyetler olup geliştiricileri, uygulamalarını yeniden yapılandırmaya ve böylece kalitelerini yükseltmeye yönlendirebilir. Bu çalışma, mobil uygulamaların evriminde karmaşıklık, boyut ve iç kalite gelişimini daha iyi anlamayı ve özellikle Lehman yasalarından üçünün (artan karmaşıklık, sürekli büyüme, azalan kalite) mobil uygulamalarda geçerliliğini araştırmayı hedeflemektedir. Bu kapsamda Android tabanlı üç mobil uygulamanın toplam 61 sürümünde uygulama kalitesinin gelişimi, kurulan hipotezler üzerinden ve nesneye yönelik tasarım metriklerine göre analiz edilerek keşifsel bir çalışma gerçekleştirilmiştir. Analizler sonucunda, Lehman’ın ‘sürekli büyüme’ yasası tüm uygulamalar için geçerlenirken ‘artan karmaşıklık’ ve ‘azalan kalite’ yasaları geçerli bulunmamıştır. Ayrıca Spearman korelasyon analizi ile keşifsel çalışmanın sonuçları doğrulanmış ve tasarım metrikleri ile kalite özellikleri arasında anlamlı bir ilişki olduğu gözlenmiştir.

Anahtar kelimeler


Açık kaynak kodu; mobil yazılım; yazılım evrimi; yazılım kalitesi; C&K metrik seti; Lehman yasaları

Tam metin:

PDF


Referanslar


D. B. Silva, M. M. Eler, V. H. S. Durelli, and A. T. Endo, “Characterizing mobile apps from a source and test code viewpoint,” Inf. Softw. Technol., Mayıs, 32–50, 2018.

Utku, A. and İ.A. Doğru, Android kötücül yazılımlar için izin tabanlı tespit sistemi. Gazi Üniversitesi Mühendislik-Mimarlık Fakültesi Dergisi, 32(4): p. 1015-1024, 2017.

Statista, “Number of Apps Available in Leading App Stores as of July 2014,” Statista, 2014. http://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/.

J. Koskinen and T. Tilus, “Software maintenance cost estimation and modernization support,”, 62, 2003.

R. C. Seacord, D. Plakosh, and G. A. Lewis, Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices. 2003.

C. Ghezzi, M. Jazayeri, and D. Mandrioli, “Software Engineering Principles,” in Fundamentals of Software Engineering, 5961, 2002.

I. Sommerville, “Software Engineering,” A Br. Hist. Comput., 784, 2004.

R. Minelli and M. Lanza, “Software analytics for mobile applications - Insights & lessons learned,” in Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR, 144–153, 2013.

R. Islam, R. Islam, and T. A. Mazumder, “Mobile Application and Its Global Impact.,” Int. J. Eng. Technol., 104–111, 2010.

J. Zhang, S. Sagar, and E. Shihab, “The evolution of mobile apps: an exploratory study,” 2013 Int. Work., 1–8, 2013.

ISO/IEC, “ISO/IEC 25010:2011 - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models,” International Standard ISOIEC 25010 (2011), 1–25, 2011.

L. A. Belady and M. M. Lehman, “A model of large program development,” IBM Syst. J., 225–252, 1976.

M. M. Lehman, “Programs, Life Cycles, and Laws of Software Evolution,” Proc. IEEE, 1060–1076, 1980.

D. Li, B. Guo, Y. Shen, J. Li, and Y. Huang, “The evolution of open-source mobile applications: An empirical study,” J. Softw. Evol. Process, 2017.

G. Xie, J. Chen, and I. Neamtiu, “Towards a better understanding of software evolution: An empirical study on open source software,” Int. Conf. Softw. Maint., 51–60, 2009.

S. Easterbrook, J. Singer, M.-A. Storey, and D. Damian, “Selecting empirical methods for software engineering research,” in Guide to Advanced Empirical Software Engineering , 285–311, 2008.

S. R. Chidamber and C. F. Kemerer, “A Metrics Suite for Object Oriented Design,” IEEE Trans. Softw. Eng., 476–493, 1994.

W. Li and S. Henry, “Maintenance metrics for the object oriented paradigm,” [1993] Proc. First Int. Softw. Metrics Symp., 52–60, 1993.

L. B.-S. W. F.-J. Lee Yen-Sung, “Some complexity metrics for object-oriented programs based on information flow: a study of C++ programs,” J. Inf. Sci. Eng., 21–50, 1994.

M. Lorenz and J. Kidd, “Object-Oriented Software Metrics,” J. Syst. Softw., 147–154, 1994.

T. J. McCabe, “A Complexity Measure,” IEEE Trans. Softw. Eng., 308–320, 1976.

S. Misra and V. Bhavsar, “Relationships Between Selected Software Measures and Latent Bug-Density: Guidelines for Improving Quality,” Springer-Verlag, 724–732, 2003.

R. V Hudli, C. L. Hoskins, and A. V Hudli, “Software metrics for object-oriented designs,” in Computer Design: VLSI in Computers and Processors, 1994. ICCD ’94. Proceedings., IEEE International Conference on, 492–495, 1994.

V. R. Basili, L. C. Briand, and W. L. Melo, “A validation of object-oriented design metrics as quality indicators,” IEEE Trans. Softw. Eng., 751–761, 1996.

H. M. Olague, L. H. Etzkorn, S. Gholston, and S. Quattlebaum, “Empirical validation of three software metrics suites to predict fault-proneness of object-oriented classes developed using highly Iterative or agile software development processes,” IEEE Trans. Softw. Eng., 402–419, 2007.

S. K. Dubey and A. Rana, “Assessment of maintainability metrics for object-oriented software system,” ACM SIGSOFT Softw. Eng. Notes, 2011.

G. Singh, D. Singh, and V. Singh, “A Study of Software Metrics,” Int. J., Ocak, 22–27, 2011.

T. Erçelebi Ayyıldız and A. Koçyiğit, “Açık Kaynak Kodlu Yazılımların Problem ve Çözüm Alanı Ölçüleri Arasındaki İlinti,” Gazi Üniversitesi Mühendislik-Mimarlık Fakültesi Derg., 887–900, 2017.

L. Pascarella and A. Bacchelli, “Classifying Code Comments in Java Open-Source Software Systems,” in IEEE International Working Conference on Mining Software Repositories, 227–237, 2017.

S. Anwer, A. Adbellatif, M. Alshayeb, and M. S. Anjum, “Effect of coupling on software faults: An empirical study,” in Proceedings of 2017 International Conference on Communication, Computing and Digital Systems, C-CODE 2017, 211–215, 2017.

R. C. Martin, “Agile Software Development, Principles, Patterns, and Practices,” Book. 529, 2002.

A. Amin, Fazal; Mahmood, Ahmad Kamil; Oxley, “Reusability Assessment of Open Source Components for Software Product Lines,” Int. J. New Comput. Archit. their Appl., 519–533, 2011.

J. Al Dallal and L. C. Briand, “An object-oriented high-level design-based class cohesion metric,” Inf. Softw. Technol., 1346–1361, 2010.

K. K. Aggarwal, Y. Singh, A. Kaur, and R. Malhotra, “Empirical study of object-oriented metrics,” J. Object Technol., 149–173, 2006.

M. M. Lehman, “Laws of software evolution revisited,” in Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 108–124, 1996.

M. M. Lehman and J. F. Ramil, “Rules and Tools for Software Evolution Planning and Management,” Ann. Softw. Eng., 15–44, 2001.

M. M. Lehman and J. F. Ramil, “Software evolution—Background, theory, practice,” Inf. Process. Lett., v 33–44, 2003.

C. F. Kemerer, “Software complexity and software maintenance: A survey of empirical research,” Ann. Softw. Eng., 1–22, 1995.

Y. Ma, K. He, D. Du, J. Liu, and Y. Yan, “A complexity metrics set for large-scale object-oriented software systems,” in Proceedings - Sixth IEEE International Conference on Computer and Information Technology, CIT 2006, 2006.

R. Subramanyam and M. S. Krishnan, “Empirical analysis of CK metrics for object-oriented design complexity: Implications for software defects,” IEEE Trans. Softw. Eng., 297–310, 2003.

M. W. Godfrey and Qiang Tu, “Evolution in open source software: a case study,” Proc. Int. Conf. Softw. Maint. ICSM-94, 131–142, 2000.

L. Yu, S. R. Schach, K. Chen, and J. Offutt, “Categorization of common coupling and its application to the maintainability of the linux kernel,” IEE Proc. Softw., 18–23, 2002.

Y. Wang, D. Guo, and H. Shi, “Measuring the evolution of open source software systems with their communities,” ACM SIGSOFT Softw. Eng. Notes, 7, 2007.

M. Harman, Y. Jia, and Y. Zhang, “App store mining and analysis: MSR for app stores,” in IEEE International Working Conference on Mining Software Repositories, 108–111, 2012.

G. Hecht, O. Benomar, R. Rouvoy, N. Moha, and L. Duchien, “Tracking the software quality of android applications along their evolution,” in Proceedings - 2015 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015, 236–247, 2016.

D. Pagano and W. Maalej, “User feedback in the appstore: An empirical study,” in 2013 21st IEEE International Requirements Engineering Conference, RE 2013 - Proceedings, 125–134, 2013.

R. Newhook, D. Jaramillo, J. G. Temple, and K. J. Duke, “Evolution of the Mobile Enterprise App: A Design Perspective,” Procedia Manuf., vol. 3, 2026–2033, 2015.

J. M. Gonzalez-Barahona, G. Robles, I. Herraiz, and F. Ortega, “Studying the laws of software evolution in a long-lived FLOSS project,” J. Softw. Evol. Process, 589–612, 2014.

A. Israeli and D. G. Feitelson, “The Linux kernel as a case study in software evolution,” J. Syst. Softw., 485–501, 2010.

L. Dr. Rosenberg, T. Hammer, and J. Shaw, “Software metrics and reliability,” Proc. 9th Int. Symp. Softw. Reliab. Eng., 1–8, 1998.

M. D. Syer, M. Nagappan, B. Adams, and A. E. Hassan, “Studying the relationship between source code quality and mobile platform dependence,” Softw. Qual. J., 485–508, 2015.

T. Gyimothy, R. Ferenc, and I. Siket, “Empirical validation of object-oriented metrics on open source software for fault prediction,” IEEE Trans. Softw. Eng., 897–910, 2005.

M. Linares-Vásquez, G. Bavota, C. Bernal-Cárdenas, M. Di Penta, R. Oliveto, and D. Poshyvanyk, “API change and fault proneness: a threat to the success of Android apps,” in Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2013, 477, 2013.

T. McDonnell, B. Ray, and M. Kim, “An empirical study of API stability and adoption in the android ecosystem,” in IEEE International Conference on Software Maintenance, ICSM, 70–79, 2013.

O. Kılıç, H. Çerçioğlu, “TCDD İltisak Hatları Projelerinin Değerlendirilmesinde Uzlaşık Çok Ölçütlü Karar Verme Yöntemleri Uygulaması” Gazi Üniversitesi Mühendislik-Mimarlık Fakültesi Derg., vol. 31, no. 1, pp. 211-220, 2017.

P. Runeson and M. Höst, “Guidelines for conducting and reporting case study research in software engineering,” Empir. Softw. Eng., 131–164, 2009.




Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.