Метрики інтерфейсу користувача для виявлення явища старіння програмного забезпечення в мобільній системі Android

2021;
: cc. 32 - 43
1
Національний університет "Львівська політехніка", кафедра програмного забезпечення
2
Національний університет «Львівська політехніка»

Мобільні пристрої та системи, зокрема Android, вразливі до виникнення у них ефектів старіння програмного забезпечення, які проявляються в зниженні продуктивності під час їх тривалого використання. Для виявлення ефектів старіння та протидії їм важливо ідентифікувати ефективні метрики системи та користувацького інтерфейсу. Метрики старіння, що викорис- товуються у сучасних дослідженнях операційної системи Android, не враховують процеси старіння у користувацьких додатках. Тому в цій роботі розглянуто дві нові метрики графічного інтерфейсу користувача, які дають змогу відстежувати зниження продуктивності та збільшення часу відгуку користувацьких додатків: тривалість відображення кадрів та кількість «зіпсованих» кадрів. Реалізовано фреймворк для практичної перевірки та аналізу нових метрик, що забезпечує виконання стресового тестування мобільних додатків операційної системи Android, збирання даних про стан системи під час тестування та формування часових рядів для їх подальшого аналізу та дослідження системних метрик та метрик графічного інтерфейсу користувача. Запропоновані метрики було порівняно із раніше використовуваною метрикою тривалості запуску Android Activity і системними метриками використання пам’яті. Доведено на основі практичних результатів, що метрики тривалості відображення та «зіпсованих» кадрів забезпечують даними, застосовними у переважній кількості сценаріїв використання мобільних додатків. Тому запропоновано використати нові метрики в комбінації із іншими метриками для виявлення старіння в системі та вивчення явища старіння загалом. Зазначено, що метрика тривалості відображення кадрів дає змогу визначити стани системи та порогові значення переходів між цими станами, що забезпечує можливість побудови математичних моделей на основі ланцюгів Маркова чи обчислення часу до відмови через старіння за допомогою регресійних методів. Виявлено необхідність додаткового вивчення залежностей між метриками тривалості відображення кадрів, кількості «зіпсованих» кадрів та використання пам’яті різними процесами системи. Отже, обґрунтовано доцільність використання запропонованих метрик у майбутніх дослідженнях явища старіння користувацьких додатків в операційній системі Android.

  1. Dohi, T., & Trivedi, K., & Avritzer, A. (2020). Handbook of software aging and rejuvenation. World Scientific Publishing Co Pte Ltd, 424. https://doi.org/10.1142/11673. phttps://doi.org/10.1142/11673
  2. Grottke, M., & Jr, R. M., & Trivedi, K. S. (2008). The fundamentals of software aging. IEEE International Conference on Software Reliability Engineering Workshops, 1-6. https://doi.org/10.1109/ISSREW.2008.5355512. phttps://doi.org/10.1109/ISSREW.2008.5355512
  3. Abdullah, Z. H., & Yahaya, J. H., & Mansor, Z., & Deraman, A. (2017). Software Ageing Prevention from Software Maintenance Perspective - A Review. Journal of Telecommunication, Electronic and Computer Engineering. 9 (3-4), 93-96.
  4. Polovko, A.M., & Gurov, S.V. (2008). Fundamentals of Reliability Theory. St.Petersburg: BHV-Petersburg, 704.
  5. Bao, Y., & Sun, X., & Trivedi, K. S. (2005). A workload-based analysis of software aging and rejuvenation. IEEE Transactions on Reliability. 54 (3), 541-548. https://doi.org/10.1109/TR.2005.853442. phttps://doi.org/10.1109/TR.2005.853442
  6. Cotroneo, D., & Simone, L. D., & Natella, R., & Pietrantuono, R., & Russo, S. (2019). A Configurable Software Aging Detection and Rejuvenation Agent for Android. 11th Intl Workshop on Software Aging and Rejuvenation (WoSAR). https://doi.org/10.1109/ISSREW.2019.00078. phttps://doi.org/10.1109/ISSREW.2019.00078
  7. Yakovyna, V. S., & Uhrynovskyi, B. V. (2019). Software aging in the context of its reliability: a systematic review. Scientific Bulletin of UNFU, 29(5), 123-128. https://doi.org/10.15421/40290525. phttps://doi.org/10.15421/40290525
  8. Yakovyna, V. S., & Uhrynovskyi, B. V. (2020). Software aging in the context of reliability: a review of the issue. Scientific Bulletin of UNFU, 30(2), 107-112. https://doi.org/10.36930/40300219. phttps://doi.org/10.36930/40300219
  9. International Data Corporation. (n. d.). Smartphone OS market share. http://www.idc.com/promo/smartphone-market-share/os
  10. Araujo, J., & Alves, V., & Oliveira, D., & Dias, P., & Silva, B., Maciel, P., (2013). An Investigative Approach to Software Aging in Android Applications. IEEE International Conference on Systems, Man, and Cybernetics. https://doi.org/10.1109/SMC.2013.213. phttps://doi.org/10.1109/SMC.2013.213
  11. Cotroneo, D., & Fucci, F., & Iannillo, A. K., & Natella, R., & Pietrantuono, R., (2016). Software aging analysis of the android mobile os. IEEE 27th International Symposium on Software Reliability Engineering, 478-489. https://doi.org/10.1109/ISSRE.2016.25. phttps://doi.org/10.1109/ISSRE.2016.25
  12. Xianga, J., & Wenga, C., & Zhaoa, D., & Tiana, J., & Xionga, S., & Lia, L., & Andrzejak, A., (2019). A New Software Rejuvenation Model for Android. IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW). https://doi.org/10.1109/ISSREW.2018.00021. phttps://doi.org/10.1109/ISSREW.2018.00021
  13. Wu, H., & Wolter, K. (2015). Software aging in mobile devices: Partial computation offloading as a solution. IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), 125-131. https://doi.org/10.1109/ISSREW.2015.7392057. phttps://doi.org/10.1109/ISSREW.2015.7392057
  14. Android Developers. (n. d.). Logcat command-line tool. https://developer.android.com/studio/command-line/logcat
  15. Android Developers. (n. d.). Android Debug Bridge. https://developer.android.com/studio/command-line/adb
  16. Android Developers. (n. d.). Dumpsys - Android Developers. https://developer.android.com/studio/command-line/dumpsys
  17. Android Developers. (n. d.). UI/Application Exerciser Monkey. https://developer.android.com/studio/test/monkey