Page 103 - 《软件学报》2021年第9期
P. 103

贾统  等:基于程序层次树的日志打印位置决策方法                                                         2727


         5    总结与展望

             本文主要研究软件系统的日志打印位置决策问题,即:给定一段代码,决策与这段代码相关的日志打印位
         置.具体地,为了适用于不同的编程语言,并进行跨组件和跨软件系统的日志打印位置决策,本文提出一种通用
         的自动化特征向量提取方法,通过构建程序层次树,屏蔽编程语言与不同程序模块实现细节的异构性,并提出一
         种基于迁移学习的日志打印位置决策模型,利用特征迁移技术挖掘不同软件系统日志打印程序的共有特征空
         间,迁移有用信息削减特征差异.在未来的工作中,拟加大实验规模,对本方法进行更加充分的验证.另外,拟从特
         征生成和模型构建步骤优化现有方法,使之进一步支持跨编程语言不同软件系统的日志打印位置决策,拟进一
         步研究如何利用深度学习技术(如深度迁移学习等)提升日志打印位置决策效果;与此同时,拟研究日志打印变
         量和常量的自动化决策方法,以实现完全自动化的日志打印语句撰写.

         References:
          [1]    Prasad P, Rich C. Market guide for AIOps platforms. 2018. https://www.gartner.com/doc/3892967/market-guide-aiops-platforms
          [2]    Paskin S. What is AIOps. 2018. https://www.bmc.com/blogs/what-is-aiops
          [3]    Yuan D, Park S, Zhou YY. Characterizing logging practices in open-source software. In: Proc. of the 34th Int’l Conf. on Software
             Engineering. IEEE, 2012. 102−112.
          [4]    Zhu, JM, He PJ, Fu Q, et al. Learning to log: Helping developers make informed logging decisions. In: Proc. of the 37th Int’l Conf.
             on Software Engineering. IEEE, 2015. 415−425.
          [5]    Chen BY, Jiang ZM. Characterizing and detecting anti-patterns in the logging code. In: Proc. of the 39th Int’l Conf. on Software
             Engineering. IEEE, 2017. 71−81.
          [6]    Yuan D, Park S, Huang P, et al. Be conservative: Enhancing failure diagnosis with proactive logging. In: Proc. of the Usenix Conf.
             on Operating Systems Design and Implementation, Vol.12. USENIX Association, 2012. 293−306.
          [7]    Zhao X, Rodrigues K, Luo Y, et al. Log20: Fully automated optimal placement of log printing statements under specified overhead
             threshold. In: Proc. of the 26th Symp. on Operating Systems Principles. ACM, 2017. 565−581.
          [8]    Fu Q, Zhu JM, Hu WL, et al. Where do developers log? An empirical study on logging practices in industry. In: Proc. of the 36th
             Int’l Conf. on Software Engineering. ACM, 2014. 24−33.
          [9]    Hadoop. http://hadoop.apache.org/
         [10]    Angel. https://github.com/Angel-ML/angel
         [11]    OpenStack. https://www.openstack.org/
         [12]    SaltCloud. https://www.saltstack.com/
         [13]    TensorFlow. https://tensorflow.google.cn/
         [14]    Lal S, Sardana N, Sureka A. LogOptPlus: Learning to optimize logging in catch and if programming constructs. In: Proc. of the
             40th Annual Computer Software and Applications Conf. (COMPSAC). IEEE, 2016. 215−220.
         [15]    Ding R,  Zhou HC, Lou  JG,  et  al. Log2: A cost-aware  logging mechanism for  performance  diagnosis. In:  Proc.  of  the Annual
             Technical Conf. USENIX Association, 2015. 139−150.
         [16]    Zhao X, Rodrigues K, Luo Y, et al. The game of twenty questions: Do you know where to log? In: Proc. of the 16th Workshop on
             Hot Topics in Operating Systems. ACM, 2017. 125−131.
         [17]    Jia T, Li Y, Zhang CB, et al. Machine deserves better logging: A log enhancement approach for automatic fault diagnosis. In: Proc.
             of the 29th IEEE Int’l Symp. on Reliability Engineering (ISSRE). IEEE, 2018. 106−111.
         [18]    Li H, Shang WY, Hassan  AE. Which  log level should developers  choose for  a new logging statement?  Empirical Software
             Engineering, 2017,22(4):1684−1716.
         [19]    Deun KV, Thorrez L, Coccia M, et al. Weighted sparse principal component analysis. Chemometrics and Intelligent Laboratory
             Systems, 2019.
         [20]    Du M, Li FF, Zheng GN, et al. Deeplog: Anomaly detection and diagnosis from system logs through deep learning. In: Proc. of the
             2017 ACM SIGSAC Conf. on Computer and Communications Security. ACM, 2017. 1285−1298.
   98   99   100   101   102   103   104   105   106   107   108