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


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

Анотація

Проведено огляд та аналіз літературних джерел, в яких досліджено явища старіння програмного забезпечення. Процес старіння охарактеризовано як погіршення продуктивності і збільшення кількості відмов, що має негативний вплив на показники надійності програмного забезпечення. Встановлено, що помилки програмного забезпечення та їх накопичення протягом виконання програми є причиною виникнення старіння програмного забезпечення. Визначено основні поняття та характеристики, що стосуються явища старіння, зокрема ефекти, чинники та метрики старіння, час до виснаження ресурсів, час до відмови старіння та робоче навантаження. Розглянуто класифікацію чинників старіння програмного забезпечення. Встановлено, що чинники можуть бути загальні для всіх систем і спеціальні для конкретних систем, зокрема мобільних. Здійснено порівняльний аналіз основних методів та підходів до моделювання процесу старіння програмного забезпечення. З'ясовано, що розроблення гібридних підходів та моделей, які включають переваги аналітичних моделей та моделей на основі вимірювань, є перспективним напрямом у вивченні проблеми старіння ПЗ. Показано, що мобільні операційні системи та додатки є особливо чутливими до ефектів старіння, оскільки вони працюють тривалий час без перезавантаження та часто мають обмежені ресурси, такі як пам'ять. Обґрунтовано актуальність урахування впливу цього явища для забезпечення надійності сучасних мобільних і вбудованих систем.

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

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

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

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

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

Посилання

Abdullah, Z. H., Yahaya, J. H., & Deraman, A. (2015). Towards anti-Ageing model for the evergreen software system. Proceedings of 2015 International Conference on Electrical Engineering and Informatics, (pp. 388–393). https://doi.org/10.1109/ICEEI.2015.7352532
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.
Ahamad, S. (2016). Study of software aging issues and prevention solutions. The International Journal of Computer Science and Information Security, 14(8), 307–313.
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, (pp. 163–170). https://doi.org/10.1109/NCA.2011.29
Avizienis, A., Laprie, J.-C., Randell, B., & Landwehr, C. (2004). Basic concepts and taxonomy of dependable and secure computing. IEEE Transactions on Dependable and Secure Computing, 1(1), 11–33. https://doi.org/10.1109/TDSC.2004.2
Basili, V., & Perricone, B. (1984). Software Errors and Complexity: An Empirical Investigation. Communications of the ACM, 27(1). https://doi.org/10.1145/69605.2085
Bernstein, L., & Kintala, C. M. R. (2004). Software Rejuvenation. CrossTalk, 6(8), 23–26.
Cotroneo, D., Fucci, F., Iannillo, A. K., Natella, R., & Pietrantuono, R. (2016). Software aging analysis of the android mobile os. 27th International Symposium on Software Reliability Engineering, (pp. 478–489). IEEE. https://doi.org/10.1109/ISSRE.2016.25
Cotroneo, D., Natella, R., & Pietrantuono, R. (2011). Is Software Aging related to Software Metrics. Second International Workshop on Software Aging and Rejuvenation, (pp. 126–132) IEEE. https://doi.org/10.1109/WOSAR.2010.5722096
Cotroneo, D., Natella, R., Pietrantuono, R., & Russo, S. (2010). Software aging analysis of the linux operating system. 21st International Symposium on Software Reliability Engineering, (pp. 86–94) IEEE. https://doi.org/10.1109/ISSRE.2010.24
Cotroneo, D., Natella, R., Pietrantuono, R., & Russo, S. (2014). A Survey of Software Aging and Rejuvenation Studies. ACM Journal on Emerging Technologies in Computing Systems, 10(1), article 8. https://doi.org/10.1145/2539117
Grottke, M., & Trivedi, K. S. (2005). Software faults, software aging, and software rejuvenation. Journal of the Reliability Association of Japan, 27(7), 425–438.
Grottke, M., Jr, R. M., & Trivedi, K. S. (2008). The fundamentals of software aging. International Conference on Software Reliability Engineering Workshops, (pp. 1–6). IEEE. 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
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, (pp. 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. Tenth International Conference on Advanced Computational Intelligence. https://doi.org/10.1109/ICACI.2018.8377553
Li, L., Vaidyanathan, K., & Trivedi, K. (2002). An approach for estimation of software aging in a web server. Proceedings International Symposium on Empirical Software Engineering. https://doi.org/10.1109/ISESE.2002.1166929
Magalhaes, J., & Silva, L. (2010). Prediction of performance anomalies in web-applications based-on software aging scenarios. Second International Workshop on Software Aging and Rejuvenation, (pp. 131–146). IEEE. https://doi.org/10.1109/WOSAR.2010.5722095
Maji, A. K., Hao, K., Sultana, S., & Bagchi, S. (2010). Characterizing failures in mobile OSes: a case study with Android and Symbian. International Symposium on Software Reliability Engineering. IEEE Computer Society, (pp. 249–258). https://doi.org/10.1109/ISSRE.2010.45
Matias, R., & Freitas, P. J. (2006). An experimental study on software aging and rejuvenation in web servers. Proceedings of 30th Annual International Computer Software and Applications Conference, (pp. 189–196). https://doi.org/10.1109/COMPSAC.2006.25
Musa, J. D. (1993). Operational profiles in software reliability engineering. IEEE Software, 10(2), 14–32. https://doi.org/10.1109/52.199724
Okamura, H., & Dohi, T. (2011). A pomdp formulation of multistep failure model with software rejuvenation. Proceedings of IEEE Third International Workshop on Software Aging and Rejuvenation, (pp. 14–19). https://doi.org/10.1109/WoSAR.2011.11
Parnas, D. L. (1994). Software aging. Proceedings of 16th International Conference on Software Engineering, (pp. 279–287). https://doi.org/10.1109/ICSE.1994.296790
Pfening, A., Garg, S., Puliafito, A., Telek, M., & Trivedi, K. (1996). Optimal software rejuvenation for tolerating soft failures. Performance Evaluation, 27/28, 491–506. https://doi.org/10.1016/S0166-5316(96)90042-5
Polovko, A. M., & Gurov, S. V. (2008). Fundamentals of Reliability Theory. St. Petersburg: BHV-Petersburg, 704 p. [In Russian].
Shereshevsky, M., Crowell, J., Cukic, B., Gandikota, V., & Liu, Y. (2003). Software aging and multifractality of memory resources. Proceedings of IEEE International Conference on Dependable Systems and Networks, (pp. 721–730). https://doi.org/10.1109/DSN.2003.1209987
Silva, L., Alonso, J., & Torres, J. (2009). Using virtualization to improve software rejuvenation. IEEE Transactions on Computers, 58(11), 1525–1538. https://doi.org/10.1109/TC.2009.119
Vaidyanathan, K., & Trivedi, K. (2005). A comprehensive model for software rejuvenation. IEEE Transactions on Dependable and Secure Computing, 2(2). https://doi.org/10.1109/TDSC.2005.15
Vaidyanathan, K., Harper, R., Hunter, S., & Trivedi, K. (2001). Analysis and implementation of software rejuvenation in cluster systems. Performance Evaluation Review, 29(1), 62–71. https://doi.org/10.1145/378420.378434
Valentim, N. A., Macedo, A., & Matias, R. (2016). A Systematic Mapping Review of the First 20 Years of Software Aging and Rejuvenation Research. International Symposium on Software Reliability Engineering Workshops (ISSREW), (pp. 21–26). IEEE. https://doi.org/10.1109/ISSREW.2016.42
Wang, D., Xie, W., & Trivedi, K. (2007). Performability analysis of clustered systems with rejuvenation under varying workload. Performance Evaluation, 64(3), 247–265. https://doi.org/10.1016/j.peva.2006.04.002
Xianga, J., Wenga, C., Zhaoa, D., Tiana, J., Xionga, S., Lia, L., & Andrzejak, A. (2019). A New Software Rejuvenation Model for Android. International Symposium on Software Reliability Engineering Workshops (ISSREW), (pp. 42–28). IEEE. https://doi.org/10.1109/ISSREW.2018.00021
Xie, W., Hong, Y., & Trivedi, K. (2004). Software rejuvenation policies for cluster systems under varying workload. Proceedings of 10th IEEE Pacific Rim International Symposium on Dependable Computing. https://doi.org/10.1109/PRDC.2004.1276563
Опубліковано
2019-05-30
Як цитувати
Yakovyna, V. S., & Uhrynovskyi, B. V. (2019). Старіння програмного забезпечення в контексті його надійності: огляд проблематики. Науковий вісник НЛТУ України, 29(5), 123-128. https://doi.org/10.15421/40290525
Розділ
Інформаційні технології галузі