Старіння програмного забезпечення мобільних додатків: аналіз проблематики

  • В. С. Яковина Національний університет "Львівська політехніка", м. Львів https://orcid.org/0000-0003-0133-8591
  • Б. В. Угриновський Національний університет "Львівська політехніка", м. Львів
Ключові слова: надійність; фактори старіння; індикатори старіння; модель старіння; модель омолодження; ланцюг Маркова

Анотація

Виконано огляд та аналіз літературних джерел, в яких досліджено явища старіння програмного забезпечення мобільних додатків. Визначено основні характеристики явища старіння програмного забезпечення. Встановлено, що мобільні системи та додатки є особливо вразливі до ефектів старіння і потребують детальних досліджень. Охарактеризовано основні методи та засоби дослідження явища старіння, що застосовуються для його вивчення в мобільній системі Android. Описано загальну схему дослідження явища старіння, яка дає змогу проводити експерименти та визначати наявність чи відсутність старіння в системі, а також вказує на вплив факторів на прояви старіння. Визначено використовувані індикатори старіння, а саме такі індикатори системи та додатків, як тривалість запуску Android Activity, оперативна пам'ять, файлове сховище, використання CPU, Garbage Collector. Виділено основні фактори, що впливають на прояви явища старіння: технічні характеристики пристрою, типи додатків та програмний код, інтенсивність запуску додатків, події введення, оперативна пам'ять та пам'ять файлового сховища. Встановлено, що згідно з результатами попередніх досліджень, ефективними алгоритмами машинного навчання для визначення наявності старіння є метод опорних векторів та дерева прийняття рішень. Проаналізовано наявні дослідження, методи та засоби виконання процедури омолодження програмного забезпечення для зменшення впливу старіння на надійність системи Android. З'ясовано, що для протидії старінню програмного забезпечення в мобільній системі Android пропонують засоби як на рівні розроблення архітектури та реалізації мобільного додатку, так і на системному рівні і рівні компонент. Встановлено, що ключовим засобом протидії старінню є перезавантаження компонент на рівні системи (наприклад, Activity manager) чи додатків (Java-контейнери), а також є необхідність розроблення таких засобів для планування виконання процедури омолодження. Обґрунтовано актуальність впливу явища старіння на забезпечення надійності сучасних мобільних та вбудованих систем. Визначено напрями майбутніх досліджень, а саме: визначення ефективних факторів і індикаторів для мобільних систем, побудова моделей старіння, розроблення методів і засобів омолодження програмного забезпечення мобільних систем.

Біографії авторів

В. С. Яковина, Національний університет "Львівська політехніка", м. Львів

д-р техн. наук, професор, завідувач кафедри програмного забезпечення

Б. В. Угриновський, Національний університет "Львівська політехніка", м. Львів

аспірант, кафедра програмного забезпечення

Посилання

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.

Alonso, J., Belanche, L., & Avresky, D. (2011). Predicting software anomalies using machine learning techniques. Proceedings of 2011 IEEE International Symposium on Network Computing and Applications, 163–170. https://doi.org/10.1109/NCA.2011.29

Alonso, J., Torres, J., Berral, J. L., & Gavalda, R. (2010). Adaptive on-line software aging prediction based on machine learning. 2010 IEEE/IFIP International Conference on Dependable Systems & Networks (DSN), 507–516. https://doi.org/10.1109/DSN.2010.5544275

Android. (2020). Activity – Android Developers. January 29. Retrieved from: https://developer.android.com/reference/android/app/Activity

Android. (2020). Android Debug Bridge. January 29. Retrieved from https://developer.android.com/studio/command-line/adb

Android. (2020). App startup time – Android Developers, May 5. Retrieved from: https://developer.android.com/topic/performance/vitals/launch-time

Android. (2020). Dumpsys – Android Developers. January 29. Retrieved from: https://developer.android.com/studio/command-line/dumpsys

Android. (2020). Logcat command-line tool, January 29. Retrieved from: https://developer.android.com/studio/command-line/logcat

Android. (2020). Smartphone OS market share, January 29. Retrieved from: http://www.idc.com/promo/smartphone-market-share/os

Android. (2020). UI/Application Exerciser Monkey, January 29. Retrieved from: https://developer.android.com/studio/test/monkey

Andrzejak, A., & Silva, L. (2008). Using machine learning for non-intrusive modeling and prediction of software aging. NOMS 2008-2008 IEEE Network Operations and Management Symposium, 25–32. https://doi.org/10.1109/NOMS.2008.4575113

Araujo, J., Alves, V., Oliveira, D., Dias, P., Silva, B., & Maciel, P. (2013). An Investigative Approach to Software Aging in Android Applications. 2013 IEEE International Conference on Systems, Man, and Cybernetics. https://doi.org/10.1109/SMC.2013.213

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

Blum, R. (2008). Linux Command Line and Shell Scripting Bible. Indianapolis, IN: Wiley Publishing, Inc.

Bucci, G., Carnevali, L., Ridi, L., & Vicario, E. (2010) Oris: a tool for modeling, verification and evaluation of real-time systems. International Journal on Software Tools for Technology Transfer, 12(5), 391–403. https://doi.org/10.1007/s10009-010-0156-8

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

Cotroneo, D., Natella, R., Pietrantuono, R., & Russo, S. (2010). Software aging analysis of the linux operating system. 2010 IEEE 21st International Symposium on Software Reliability Engineering. https://doi.org/10.1109/ISSRE.2010.24

Cotroneo, D., Simone, L. D., Natella, R., Pietrantuono, R., & Russo, S. (2019). A Configurable Software Aging Detection and Rejuvenation Agent for Android. 11th International Workshop on Software Aging and Rejuvenation (WoSAR). https://doi.org/10.1109/ISSREW.2019.00078

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

Grottke, M., Li, L., Vaidyanathan, K., & Trivedi, K. S. (2006). Analysis of software aging in a web server. IEEE Transactions on Reliability, 55(3), 411–420. https://doi.org/10.1109/TR.2006.879609

Hayashi, T., & Ohta, S. (2014). Performance degradation detection of virtual machines via passive measurement and machine learning. International Journal of Adaptive Resilient and Autonomic Systems, 5(2), 40–56. https://doi.org/10.4018/978-1-5225-1759-7.ch086

Huang, Y., Kintala, C., Kolettis, N., & Fulton, N. (1995). Software rejuvenation: analysis, module and applications. Proceedings of Twenty-Fifth International Symposium on Fault-Tolerant Computing, 381–390. https://doi.org/10.1109/FTCS.1995.466961

Huo, S., Zhao, D., Liu, X., Xiang, J., Zhong, Y., & Yu, H. (2018). Using machine learning for software aging detection in Android system. 2018 Tenth International Conference on Advanced Computational Intelligence (ICACI). https://doi.org/10.1109/ICACI.2018.8377553

Magalhaes, J., & Silva, L. (2010). Prediction of performance anomalies in web-applications based-on software aging scenarios. 2010 IEEE Second International Workshop on Software Aging and Rejuvenation. https://doi.org/10.1109/WOSAR.2010.5722095

ORIS. (2020). Tool Analysis of timed and stochastic Petri nets, January 29 Retrieved from: https://www.oris-tool.org/

Polovko, A. M., & Gurov, S. V. (2008). Fundamentals of Reliability Theory. St. Petersburg: BHV-Petersburg, 704. [In Russian].

Qiao, Y., Zheng, Z., & Qin, F. Y. (2016). An empirical study of software aging manifestation in android. IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), 84–90. https://doi.org/10.1109/ISSREW.2016.19

Wu, H., & Wolter, K. (2015). Software aging in mobile devices: Partial computation offloading as a solution. 2015 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), 125–131. https://doi.org/10.1109/ISSREW.2015.7392057

Xianga, J., Wenga, C., Zhaoa, D., Tiana, J., Xionga, S., Lia, L., & Andrzejak, A. (2019). A New Software Rejuvenation Model for Android. 2018 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW). https://doi.org/10.1109/ISSREW.2018.00021

Yakovyna, V. S., & Uhrynovskyi, B. V. (2019). Starinnia prohramnoho zabezpechennia v konteksti yoho nadiinosti: ohliad problematyky. Scientific Bulletin of UNFU, 29(5), 123–128. https://doi.org/10.15421/40290525

Опубліковано
2020-06-04
Як цитувати
Яковина, В. С., & Угриновський, Б. В. (2020). Старіння програмного забезпечення мобільних додатків: аналіз проблематики. Науковий вісник НЛТУ України, 30(2), 107-112. https://doi.org/10.36930/40300219
Розділ
Інформаційні технології