当前位置:主页 > 科技论文 > 软件论文 >

Python动态特性对软件维护的影响研究

发布时间:2018-03-22 09:52

  本文选题:Python动态特性 切入点:易变性 出处:《南京大学》2016年硕士论文 论文类型:学位论文


【摘要】:作为程序语言的重要组成部分,动态特性因其极大的灵活性和便利性深受语言设计者和开发人员的喜爱。不仅仅是动态语言才有动态特性,Java等面向对象的高级语言在发展过程中也逐渐添加了类似功能,譬如Java的自省机制。动态特性的使用方便开发人员在程序运行过程中追踪、观察或动态修改代码,包括其语义、语法和具体实现,从而能提高开发、测试效率。但是,也有人认为动态特性的使用会增加程序维护成本、对软件质量产生影响。研究动态特性与软件维护的关系具有重要意义,然而很少有研究关注这些问题,特别是针对Python语言。为了科学、具体的探讨动态特性使用与软件维护的关系,首先,本文挑选了7个具有4到7年维护时间的开源项目,通过实证研究的方法,静态分析了53个程序版本中动态特性与模块易变性的关系,以及动态特性与模块易错性的关系。特别的,本文使用Fisher精确检验、Mann-Whitney检验和逻辑回归模型分别探究:模块易变性和模块易错性与动态特性的使用是否相关;模块易变性和模块易错性与动态特性的使用次数是否相关;模块易变性和模块易错性与特定类型的动态特性是否更相关。在开源软件项目上的实验结果表明,1)使用了动态特性的模块更容易发生改变;2)使用动态特性越多的模块越容易发生改变;3)特定类型的动态特性,在某些项目中,比其他动态特性,与模块易变性更显著相关;4)同样的实验结果也适用于动态特性与模块易错性的关系。此外,文本通过数理统计方法分析了99个项目中动态特性在变化的代码片段中的使用分布情况,并且结合人工代码审查的方式走读了4个项目中的600个commit信息,调查了4种最常使用的动态特性在变化的代码片段中的使用情况。通过人工代码审查的方式,我们总结了一些动态特性在代码维护中的变化场景,并验证了Python专家关于动态特性使用的建议。总之,这一创新性的工作,对一直关注怎样使用动态特性、为什么使用动态特性的研究者具有启发意义,并为其他研究者提供了相关的参考信息。基于实验结论以及人工审查结果,我们建议开发人员,尤其是语言的初学者,谨慎使用动态特性,因为对动态特性的误用会造成更大的维护成本;建议维护人员在有限的时间内重点关注使用了动态特性的模块,提高工作效率。
[Abstract]:As an important part of the programming language, Dynamic features are loved by language designers and developers for their great flexibility and convenience. It is not only dynamic languages that have dynamic features. For example, the introspection mechanism of Java. The use of dynamic features makes it easy for developers to track, observe, or dynamically modify code, including its semantics, syntax, and concrete implementation, during the running of the program, thus improving the efficiency of development and testing. It is also believed that the use of dynamic characteristics will increase the cost of program maintenance and have an impact on software quality. It is important to study the relationship between dynamic characteristics and software maintenance. However, few studies have paid attention to these problems. Especially for the Python language. In order to explore the relationship between the use of dynamic characteristics and software maintenance, this paper selects seven open source projects with 4 to 7 years of maintenance time, through the method of empirical research. The relationship between dynamic characteristics and module variability in 53 versions of programs and the relationship between dynamic characteristics and module error-vulnerability are analyzed statically. In this paper, we use Fisher precise test to test Mann-Whitney test and logical regression model to explore whether module variability and module error-vulnerability are related to the use of dynamic characteristics, whether module variability and module error-vulnerability are related to the use of dynamic characteristics, and whether module variability and module error-vulnerability are related to the number of times of use of dynamic characteristics. Module variability and module erroriness are more relevant to specific types of dynamic characteristics. Experimental results on open source software projects show that: 1) modules that use dynamic features are more likely to change the number of modules that use dynamic characteristics. The more likely the module is to change the dynamic characteristics of a particular type, In some projects, the same experimental results are more significantly related to module variability than others.) the same experimental results apply to the relationship between dynamic characteristics and module erroriness. This paper analyzes the distribution of dynamic characteristics in the changing code fragments of 99 projects by mathematical statistics, and reads 600 commit information in 4 projects by manual code review. We investigated the use of four of the most commonly used dynamic features in changing code snippets. Through manual code review, we summarized some of the dynamic features' changing scenarios in code maintenance. In short, this innovative work is instructive for researchers who have been focusing on how to use dynamic characteristics and why. Based on the findings of the experiment and the results of manual review, we recommend that developers, especially beginners of the language, be careful to use dynamic features. Because the misuse of dynamic characteristics will lead to greater maintenance costs, it is suggested that maintenance personnel focus on the use of dynamic modules in a limited time to improve work efficiency.
【学位授予单位】:南京大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP311.53

【相似文献】

相关期刊论文 前10条

1 姚竞;;面向项目的“Python程序设计”教学实践与研究[J];福建电脑;2009年07期

2 透明;;关于Python[J];程序员;2002年03期

3 王宁,汪飞星;基于Python开发气象服务器运行系统界面[J];微机发展;2003年07期

4 汤韬;;Python库简介[J];程序员;2006年06期

5 高昂;;Python近况全接触[J];程序员;2009年04期

6 郭芬;刘明;;Python垃圾收集器原理研究及应用[J];信息技术;2009年07期

7 王丽;;Python的元类编程研究[J];电脑编程技巧与维护;2011年06期

8 李爱宁;唐勇;孙晓辉;刘昕彤;;基于Python语言的3DES算法优化[J];计算机系统应用;2011年08期

9 曾浩;;Python在其它语言中的应用研究[J];大众科技;2012年07期

10 鞠文飞;曾智锐;;使用Python开发跨平台的单词助记程序[J];电脑编程技巧与维护;2012年24期

相关会议论文 前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];新疆农业大学;2015年

8 曹明君;基于Visual Studio与Python平台开发有限元分析结果自动后处理系统[D];青岛理工大学;2015年

9 周健;Python虚拟机内存管理的研究[D];南京大学;2014年

10 王衡;PaaS平台上Python沙箱研究[D];南京大学;2014年



本文编号:1648136

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/1648136.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户a9d8a***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com