Python代码风格对软件维护的影响研究
本文选题:Python代码风格 + 软件维护 ; 参考:《南京大学》2017年硕士论文
【摘要】:代码风格是人们在编写计算机程序源代码时使用的一套规则或指导准则,汇集了业界公认的最佳实践方法。违反代码风格编写的代码不利于开发人员和维护人员对其功能的理解,导致提升错误引入的可能性,影响程序代码的可读性与可维护性,进而降低软件产品的质量。代码风格与软件维护的关系值得深入研究,但现今还未有相关工作研究Python代码风格对软件维护的影响。为了科学合理地探讨Python代码风格违反与软件维护的关系,本文采用实证研究的方法,在开源网站中挑选7个流行的且具有4-8年以上维护时间的Python项目,在共计57个项目版本中详细分析代码风格与模块易变性、模块易错性的关系。在问题分析过程中,本文采用Fisher精确检验,Wilcoxon秩和检验以及Logistic回归模型分别探究:代码风格的违反与模块易变性、模块易错性是否相关;代码风格的违反密度与模块易变性、模块易错性是否相关;特定类型的代码风格与模块易变性、模块易错性是否更相关。实验结果表明,1)相比于未违反代码风格的模块,违反代码风格的模块更容易改变;2)相比于违反代码风格密度小的模块,违反代码风格密度大的模块更容易改变;3)在实验选取的部分项目中,违反特定类型代码风格的模块相比于其它类型代码风格的模块更容易改变;4)在代码风格与模块易错性的关系上也有类似的结论。总之,这一创新性的研究工作具有重要意义,不论是关注代码风格的研究人员,抑或是研究软件维护领域的科研人员,均能够从中得到启示和参考。基于实验数据得出的结论,我们建议软件开发者应提高对代码风格的关注程度,因为违反代码风格会降低代码的可读性和可理解性,进而增加软件维护的成本;建议软件质量维护者应多加关注违反代码风格的模块,从而在有限的时间和精力的情况下发现并解决更多问题。
[Abstract]:Code style is a set of rules or guidelines that people use when writing source code for computer programs, bringing together recognized best practices. The code written in violation of the code style is not conducive to the developers and maintainers' understanding of its function, which leads to an increase in the possibility of introducing errors, affects the readability and maintainability of the program code, and further reduces the quality of software products. The relationship between code style and software maintenance is worth further study, but there is no related work to study the influence of Python code style on software maintenance. In order to explore the relationship between Python code style violation and software maintenance scientifically and reasonably, this paper selects seven popular Python projects with 4-8 years maintenance time in open source websites by using the method of empirical research. In a total of 57 project versions, the relationship between code style and module variability and module erroriness is analyzed in detail. In the process of problem analysis, this paper uses Fisher accurate test Wilcoxon rank sum test and Logistic regression model to explore: code style violation and module variability, module error-vulnerability, code style violation density and module variability, Whether the module error-vulnerability is relevant; the specific type of code style and module variability, module error-prone is more relevant. The experimental results show that (1) compared with the module that does not violate the code style, the module that violates the code style is easier to change than the module that violates the code style.) compared with the module with less density of violating the code style, Modules that violate the code style density are easier to change in the selected items in the experiment, Modules that violate a particular type of code style are easier to change than those of other types of code styles.) A similar conclusion is reached on the relationship between code style and module erroriness. In a word, this innovative research work is of great significance, not only for the researchers who pay attention to the code style, but also for the researchers in the field of software maintenance. Based on the experimental data, we suggest that software developers should pay more attention to the code style, because violating the code style will reduce the readability and comprehensibility of the code, and then increase the cost of software maintenance. It is suggested that software quality maintainers should pay more attention to the modules that violate the code style so as to find and solve more problems with limited time and energy.
【学位授予单位】:南京大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:TP311.53
【相似文献】
相关期刊论文 前10条
1 Tim Peters;;Python之禅(英文)[J];程序员;2007年10期
2 姚竞;;面向项目的“Python程序设计”教学实践与研究[J];福建电脑;2009年07期
3 透明;;关于Python[J];程序员;2002年03期
4 王宁,汪飞星;基于Python开发气象服务器运行系统界面[J];微机发展;2003年07期
5 汤韬;;Python库简介[J];程序员;2006年06期
6 高昂;;Python近况全接触[J];程序员;2009年04期
7 郭芬;刘明;;Python垃圾收集器原理研究及应用[J];信息技术;2009年07期
8 王丽;;Python的元类编程研究[J];电脑编程技巧与维护;2011年06期
9 李爱宁;唐勇;孙晓辉;刘昕彤;;基于Python语言的3DES算法优化[J];计算机系统应用;2011年08期
10 曾浩;;Python在其它语言中的应用研究[J];大众科技;2012年07期
相关会议论文 前5条
1 ;Development of Python-based ArcGIS Tools for Spatially Balanced Forest Sampling Design[A];Information Technology and Computer Science—Proceedings of 2012 National Conference on Information Technology and Computer Science[C];2012年
2 伊鹏跃;于哲峰;汪海;;基于Abaqus/Python的三维复合材料层压板有限元建模参数化开发[A];第17届全国复合材料学术会议(复合材料结构设计与性能表征分论坛)论文集[C];2012年
3 黄佳聪;高俊峰;;基于Python编程语言的空间动态模型集成[A];自然地理学与生态安全学术论文摘要集[C];2012年
4 于文丽;;基于Python的空间自相关模式研究[A];中国地理学会百年庆典学术论文摘要集[C];2009年
5 郭霞;关志东;刘遂;陈萍;刘佳;王欣晶;邱太文;;基于Python的Abaqus二次开发在层压板修理模拟中的应用[A];计算机辅助工程及其理论研讨会2013(CAETS2013)论文集[C];2013年
相关重要报纸文章 前6条
1 高寿福;无所不能的灵蛇——Python[N];中华读书报;2001年
2 ·特约作者 邹肇辉;BT编程的王者[N];电脑报;2005年
3 易水;IT新词集锦(403)[N];计算机世界;2004年
4 本报记者 蒙克;颠覆传统数据库的“玩具”[N];网络世界;2009年
5 ;Ruby on Rails[N];计算机世界;2006年
6 周蓉蓉;中低端Unix直指Linux[N];计算机世界;2006年
相关硕士学位论文 前10条
1 张正阳;基于Python的户外通讯设备连接关系的挖掘研究[D];苏州大学;2015年
2 魏武斌;基于Python的灌区水情采集系统开发[D];西北农林科技大学;2015年
3 赵强;用于PCB版图审查的Python脚本子系统设计与实现[D];西安电子科技大学;2014年
4 邝洪胜;基于Python的电商导购APP设计与实现[D];华南理工大学;2015年
5 代红震;基于STAF和Python混合编程的自动化测试系统的研究和实现[D];南京邮电大学;2015年
6 刘志凯;基于Web的Python编程环境研究[D];新疆农业大学;2015年
7 周健;Python虚拟机内存管理的研究[D];南京大学;2014年
8 王衡;PaaS平台上Python沙箱研究[D];南京大学;2014年
9 王蓓蓓;Python动态特性对软件维护的影响研究[D];南京大学;2016年
10 李清言;Pyreview:一个基于抽象语法树差异提取的Python源代码分析工具[D];南京大学;2016年
,本文编号:1891792
本文链接:https://www.wllwen.com/shoufeilunwen/xixikjs/1891792.html