logo

SCIENTIA SINICA Informationis, Volume 50 , Issue 11 : 1595(2020) https://doi.org/10.1360/SSI-2020-0079

Theories and techniques for growing software: paradigm and beyond

More info
  • ReceivedApr 1, 2020
  • AcceptedSep 30, 2020
  • PublishedNov 10, 2020

Abstract

With advances in cloud computing and big data technologies, “human-cyber-physical” applications are providing increasingly rich information and robust functionality. This imposes new technical changes on software systems, which are required to make self-adaptation and continuous evolution to meet our increasingly higher expectations. This article explores theories and techniques for growing software to meet the challenges caused by constantly changing environments and external resources. It studies the source of the software growability problem, seeks to define software growability, and develops a paradigm for growing software. It further analyzes the challenges of supporting environmental sensing and self-adaptation, realizing seamless evolution and process optimization, and developing quality evaluation and assurance mechanisms for growing software. It also reports recent technical advances in these areas from the perspective of long-living and continuously-growing software.


Funded by

国家重点研发计划(2017YFB1001801)

国家自然科学基金(61932021,61902173)


Acknowledgment

感谢特约编辑、编辑部和匿名审稿人的帮助.


References

[1] Glass R L. Sorting out software complexity. Commun ACM, 2002, 45: 19-21 CrossRef Google Scholar

[2] Marcil L, Hawthornthwaite M. Realizing DO-178C's value by using new technology: OOT, MBDV, TQC & FM. In: Proceedings of the 31st IEEE/AIAA Digital Avionics Systems Conference (DASC), Williamsburg, 2012. 6A3-1-6A3-10. Google Scholar

[3] Udacity. How does the worst project look like? Lasting 12 years, over 6 million lines of code.... [优达学城. 史上最烂的开发项目长啥样: 苦撑12年, 600 多万行代码...]. 2018. https://zhuanlan.zhihu.com/p/38973085/. Google Scholar

[4] Sina Finacial. A U.S. programmer shot four colleagues for not annotating their code. [新浪财经. 美程序员枪击4同事 竟因代码不写注释]. 2018. http://finance.sina.com.cn/stock/usstock/c/2018-09-23/doc-ifxeuwwr7514854.shtml. Google Scholar

[5] Oschina. A programmer complained that he would no longer work for Oracle again. [开源中国. 程序员吐槽: 我永远不会再为 Oracle 工作了]. 2018. https://www.oschina.net/news/101928/about-oracle-database-code. Google Scholar

[6] Huanqiu Tech. DARPA plans to construct software systems that can survive for over 100 years. [环球网科技. DARPA计划开发一套可使用100多年的自适应软件]. 2018. https://tech.huanqiu.com/article/9CaKrnJJO38. Google Scholar

[7] Brooks F P. The Mythical Man-Month. Hoboken: Addison-Wesley Professional, 1975. Google Scholar

[8] Brooks . No Silver Bullet Essence and Accidents of Software Engineering. Computer, 1987, 20: 10-19 CrossRef Google Scholar

[9] Beck K. Extreme Programming Explained: Embrace Change. Hoboken: Addison-Wesley Professional, 2000. Google Scholar

[10] Bass L, Weber I, Zhu L. DevOps: A Software Architect's Perspective. Hoboken: Addison-Wesley Professional, 2015. Google Scholar

[11] GammaE. Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995. Google Scholar

[12] FowlerM. Refactoring: Improving the Design of Existing Code. Hoboken: Addison-Wesley Professional, 2018. Google Scholar

[13] NgT H, Cheung S C, Chan W K, et al. Work experience versus refactoring to design patterns: a controlled experiment. In: Proceedings of the 14th ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE 2006), Portland, 2006. 12--22. Google Scholar

[14] NgT H, Cheung S C, Chan W K, et al. Do maintainers utilize deployed design patterns effectively? In: Proceedings of the 29th International Conference on Software Engineering (ICSE 2007), Minneapolis, 2007. 168--177. Google Scholar

[15] Lin H M. Program Automation. In: Proceedings of Workshop on Oppotunities and Challenges of Software Automation in the Era of Big Data, Yanxi Lake Conference, 2018. Google Scholar

[16] Lü J, Ma X, Huang Y, et al. Internetware: a shift of software paradigm. In: Proceedings of the 1st Asia-Pacific Symposium on Internetware (Internetware 2009), Beijing, 2009. 1--9. Google Scholar

[17] Mei H, Huang G, Xie T. Internetware: A Software Paradigm for Internet Computing. Computer, 2012, 45: 26-31 CrossRef Google Scholar

[18] Li W, Wang H M, Wu W J. 复杂软件系统的成长性构造与适应性演化. Sci Sin-Inf, 2014, 44: 743-761 CrossRef Google Scholar

[19] Wang H, Ding B. Growing construction and adaptive evolution of complex software systems. Sci China Inf Sci, 2016, 59: 050101 CrossRef Google Scholar

[20] Guo B, Wang H, Xu C, et al. GEAS: generic adaptive scheduling for high-efficiency context inconsistency detection. In: Proceedings of the 33rd IEEE International Conference on Software Maintenance and Evolution (ICSME 2017), Shanghai, 2017. 137--147. Google Scholar

[21] Wang H, Xu C, Guo B. Generic Adaptive Scheduling for Efficient Context Inconsistency Detection. IIEEE Trans Software Eng, 2019, : 1-1 CrossRef Google Scholar

[22] Gu T, Ma X, Xu C, et al. Automating object transformations for dynamic software updating via online execution synthesis. In: Proceedings of the 32nd European Conference on Object-Oriented Programming (ECOOP 2018), Amsterdam, 2018. 1--28. Google Scholar

[23] Magill S, Hicks M, Subramanian S, et al. Automating object transformations for dynamic software updating. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA 2012), Tucson, 2012. 265--280. Google Scholar

[24] Kramer J, Magee J. The evolving philosophers problem: dynamic change management. IIEEE Trans Software Eng, 1990, 16: 1293-1306 CrossRef Google Scholar

[25] Yang W, Xu C, Pan M. Efficient validation of self-adaptive applications by counterexample probability maximization. J Syst Software, 2018, 138: 82-99 CrossRef Google Scholar

[26] Yang W, Xu C, Pan M. Improving Verification Accuracy of CPS by Modeling and Calibrating Interaction Uncertainty. ACM Trans Internet Technol, 2018, 18: 1-37 CrossRef Google Scholar

[27] Shen Y, Jiang Y, Xu C, et al. ReScue: crafting regular expression DoS attacks. In: Proceedings of the 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2018), Montpellier, 2018. 225--235. Google Scholar

[28] LiZ, Ma X, Xu C, et al. Structural coverage criteria for neural networks could be misleading. In: Proceedings of the 41st ACM/IEEE International Conference on Software Engineering (ICSE 2019 NIER), Montreal, 2019. 89--92. Google Scholar

[29] WangH, Xu J, Xu C, et al. DISSECTOR: input validation for deep learning applications by crossing-layer dissection. In: Proceedings of the 42nd ACM/IEEE International Conference on Software Engineering (ICSE 2020), Seoul, 2020. Google Scholar

[30] WangX, Wang H, Su Z, et al. Global optimization of numerical programs via prioritized stochastic algebraic transformations. In: Proceedings of the 41st ACM/IEEE International Conference on Software Engineering (ICSE), Montreal, 2019. 1131--1141. Google Scholar

[31] Zhang X, Qian Z, Zhang S, et al. COBRA: toward provably efficient semi-clairvoyant scheduling in data analytics systems. In: Proceedings of the IEEE Conference on Computer Communications (INFOCOM), Honolulu, 2018. 513--521. Google Scholar

[32] Wang X, Chen M, Lu S. Modeling Geographically Correlated Failures to Assess Network Vulnerability. IEEE Trans Commun, 2018, 66: 6317-6328 CrossRef Google Scholar

[33] Song W, Jacobsen H A, Cheung S C. Workflow Refactoring for Maximizing Concurrency and Block-Structuredness. IEEE Trans Serv Comput, 2018, : 1-1 CrossRef Google Scholar

[34] Yuan Z, Chen X, Liu J. Simplifying the Formal Verification of Safety Requirements in Zone Controllers Through Problem Frames and Constraint-Based Projection. IEEE Trans Intell Transp Syst, 2018, 19: 3517-3528 CrossRef Google Scholar