首页 > 最新文献

2007 IEEE International Conference on Software Maintenance最新文献

英文 中文
Assessing Legacy System Migration Technologies through Controlled Experiments 通过控制实验评估遗留系统迁移技术
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362649
Massimo Colosimo, A. D. Lucia, R. Francese, G. Scanniello
We present the results of two controlled experiments aimed at assessing MELIS (migration environment for legacy information systems), a tool developed within a technology transfer project to support the migration of COBOL legacy information systems to a J2EE web-enabled multi-tier target architecture. The first controlled experiment was conducted within an academic research laboratory with master students in Computer Science at the University of Salerno, while a replicated experiment was conducted in the laboratory of our partner company with both professional programmers and academic researchers. The results revealed that the use of MELIS decrease the time to migrate legacy systems to the web with respect to the use of traditional development tools. Also, less expert software engineers benefit more of the use of MELIS.
我们展示了两个受控实验的结果,旨在评估MELIS(遗留信息系统的迁移环境),MELIS是在技术转移项目中开发的工具,用于支持将COBOL遗留信息系统迁移到启用J2EE web的多层目标体系结构。第一个对照实验是在萨莱诺大学计算机科学专业的研究生的学术研究实验室中进行的,而一个重复实验是在我们的合作伙伴公司的实验室中进行的,包括专业程序员和学术研究人员。结果显示,与使用传统开发工具相比,MELIS的使用减少了将遗留系统迁移到web的时间。此外,不太专业的软件工程师从MELIS的使用中获益更多。
{"title":"Assessing Legacy System Migration Technologies through Controlled Experiments","authors":"Massimo Colosimo, A. D. Lucia, R. Francese, G. Scanniello","doi":"10.1109/ICSM.2007.4362649","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362649","url":null,"abstract":"We present the results of two controlled experiments aimed at assessing MELIS (migration environment for legacy information systems), a tool developed within a technology transfer project to support the migration of COBOL legacy information systems to a J2EE web-enabled multi-tier target architecture. The first controlled experiment was conducted within an academic research laboratory with master students in Computer Science at the University of Salerno, while a replicated experiment was conducted in the laboratory of our partner company with both professional programmers and academic researchers. The results revealed that the use of MELIS decrease the time to migrate legacy systems to the web with respect to the use of traditional development tools. Also, less expert software engineers benefit more of the use of MELIS.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134233208","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Extracting Error Handling to Aspects: A Cookbook 将错误处理提取到方面:一本食谱
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362626
F. C. Filho, Alessandro F. Garcia, C. M. F. Rubira
It is usually assumed that exception handling code can be better modularized by the use of aspect-oriented programming (AOP) techniques. However, recent studies argue that the ad hoc use of AOP can be detrimental to the quality of a system. When refactoring exception handling code to aspects, developers and maintainers need to follow clear and simple principles to obtain a well-structured system design. Otherwise, typical problems that stem from poorly designed/implemented error handling code will arise, e.g. resource leaking and swallowed exceptions. In this paper, we propose a classification for error handling code based on the factors that we found out have more influence on its aspectization. Moreover, we present a scenario catalog comprising combinations of these factors and analyze how these scenarios positively or negatively affect the task of aspectizing exception handling. We evaluated the proposed catalog through a case study where we used it to guide the aspectization of exception handling in two real systems.
通常认为,通过使用面向方面编程(AOP)技术,异常处理代码可以更好地模块化。然而,最近的研究认为,特别使用AOP可能会损害系统的质量。在将异常处理代码重构为方面时,开发人员和维护人员需要遵循清晰简单的原则,以获得结构良好的系统设计。否则,就会出现由于错误处理代码设计/实现不当而导致的典型问题,例如资源泄漏和吞下异常。本文根据对错误处理代码的规范化影响较大的因素,提出了错误处理代码的分类方法。此外,我们提供了一个包含这些因素组合的场景目录,并分析了这些场景如何积极或消极地影响对异常处理进行aspect化的任务。我们通过一个案例研究来评估建议的目录,在这个案例中,我们使用它来指导两个实际系统中异常处理的方面化。
{"title":"Extracting Error Handling to Aspects: A Cookbook","authors":"F. C. Filho, Alessandro F. Garcia, C. M. F. Rubira","doi":"10.1109/ICSM.2007.4362626","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362626","url":null,"abstract":"It is usually assumed that exception handling code can be better modularized by the use of aspect-oriented programming (AOP) techniques. However, recent studies argue that the ad hoc use of AOP can be detrimental to the quality of a system. When refactoring exception handling code to aspects, developers and maintainers need to follow clear and simple principles to obtain a well-structured system design. Otherwise, typical problems that stem from poorly designed/implemented error handling code will arise, e.g. resource leaking and swallowed exceptions. In this paper, we propose a classification for error handling code based on the factors that we found out have more influence on its aspectization. Moreover, we present a scenario catalog comprising combinations of these factors and analyze how these scenarios positively or negatively affect the task of aspectizing exception handling. We evaluated the proposed catalog through a case study where we used it to guide the aspectization of exception handling in two real systems.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131336608","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 48
Discovering Dynamic Developer Relationships from Software Version Histories by Time Series Segmentation 通过时间序列分割从软件版本历史中发现动态开发人员关系
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362654
Harvey P. Siy, P. Chundi, D. Rosenkrantz, M. Subramaniam
Time series analysis is a promising approach to discover temporal patterns from time stamped, numeric data. A novel approach to apply time series analysis to discern temporal information from software version repositories is proposed. Version logs containing numeric as well as non-numeric data are represented as an item-set time series. A dynamic programming based algorithm to optimally segment an item-set time series is presented. The algorithm automatically produces a compacted item-set time series that can be analyzed to discern temporal patterns. The effectiveness of the approach is illustrated by applying to the Mozilla data set to study the change frequency and developer activity profiles. The experimental results show that the segmentation algorithm produces segments that capture meaningful information and is superior to the information content obtaining by arbitrarily segmenting time period into regular time intervals.
时间序列分析是从时间戳的数字数据中发现时间模式的一种很有前途的方法。提出了一种应用时间序列分析方法从软件版本库中识别时间信息的新方法。包含数字和非数字数据的版本日志表示为项集时间序列。提出了一种基于动态规划的项目集时间序列最优分割算法。该算法自动生成一个紧凑的项目集时间序列,可以分析以识别时间模式。通过将该方法应用于Mozilla数据集来研究更改频率和开发人员活动概况,可以说明该方法的有效性。实验结果表明,该分割算法生成的片段能够捕获有意义的信息,优于将任意时间段分割为规则时间间隔所获得的信息内容。
{"title":"Discovering Dynamic Developer Relationships from Software Version Histories by Time Series Segmentation","authors":"Harvey P. Siy, P. Chundi, D. Rosenkrantz, M. Subramaniam","doi":"10.1109/ICSM.2007.4362654","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362654","url":null,"abstract":"Time series analysis is a promising approach to discover temporal patterns from time stamped, numeric data. A novel approach to apply time series analysis to discern temporal information from software version repositories is proposed. Version logs containing numeric as well as non-numeric data are represented as an item-set time series. A dynamic programming based algorithm to optimally segment an item-set time series is presented. The algorithm automatically produces a compacted item-set time series that can be analyzed to discern temporal patterns. The effectiveness of the approach is illustrated by applying to the Mozilla data set to study the change frequency and developer activity profiles. The experimental results show that the segmentation algorithm produces segments that capture meaningful information and is superior to the information content obtaining by arbitrarily segmenting time period into regular time intervals.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127062094","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 19
Empirical Evidence for SOC Dynamics in Software Evolution 软件进化中SOC动态的经验证据
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362637
Jingwei Wu, R. Holt, A. Hassan
We examine eleven large open source software systems and present empirical evidence for the existence of fractal structures in software evolution. In our study, fractal structures are measured as power laws throughout the lifetime of each software system. We describe two specific power law related phenomena: the probability distribution of software changes decreases as a power function of change sizes; and the time series of software change exhibits long range correlations with power law behavior. The existence of such spatial (across the system) and temporal (over the system lifetime) power laws suggests that self-organized criticality (SOC) occurs in the evolution of open source systems. As a result, SOC may be useful as a conceptual framework for understanding software evolution dynamics (the cause and mechanism of change or growth). We also discuss the implications of SOC to software practices.
我们研究了11个大型开源软件系统,并提供了分形结构在软件进化中存在的经验证据。在我们的研究中,分形结构在每个软件系统的整个生命周期中被测量为幂律。我们描述了两个特定的幂律相关现象:软件变化的概率分布作为变化大小的幂函数而减小;软件变化的时间序列表现出与幂律行为的长期相关性。这种空间(整个系统)和时间(整个系统生命周期)幂律的存在表明,自组织临界性(SOC)发生在开源系统的演化过程中。因此,SOC作为理解软件演化动力学(变化或增长的原因和机制)的概念框架可能是有用的。我们还讨论了SOC对软件实践的影响。
{"title":"Empirical Evidence for SOC Dynamics in Software Evolution","authors":"Jingwei Wu, R. Holt, A. Hassan","doi":"10.1109/ICSM.2007.4362637","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362637","url":null,"abstract":"We examine eleven large open source software systems and present empirical evidence for the existence of fractal structures in software evolution. In our study, fractal structures are measured as power laws throughout the lifetime of each software system. We describe two specific power law related phenomena: the probability distribution of software changes decreases as a power function of change sizes; and the time series of software change exhibits long range correlations with power law behavior. The existence of such spatial (across the system) and temporal (over the system lifetime) power laws suggests that self-organized criticality (SOC) occurs in the evolution of open source systems. As a result, SOC may be useful as a conceptual framework for understanding software evolution dynamics (the cause and mechanism of change or growth). We also discuss the implications of SOC to software practices.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122335633","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 24
The Inevitable Stability of Software Change 软件变化不可避免的稳定性
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362613
Rajesh Vasa, Jean-Guy Schneider, Oscar Nierstrasz
Real software systems change and become more complex over time. But which parts change and which parts remain stable? Common wisdom, for example, states that in a well-designed object-oriented system, the more popular a class is, the less likely it is to change from one version to the next, since changes to this class are likely to impact its clients. We have studied consecutive releases of several public domain, object-oriented software systems and analyzed a number of measures indicative of size, popularity, and complexity of classes and interfaces. As it turns out, the distributions of these measures are remarkably stable as an application evolves. The distribution of class size and complexity retains its shape over time. Relatively little code is modified over time. Classes that tend to be modified, however, are also the more popular ones, that is, those with greater Fan-In. In general, the more "complex" a class or interface becomes, the more likely it is to change from one version to the next.
真正的软件系统会随着时间的推移而变化并变得更加复杂。但哪些部分发生了变化,哪些部分保持稳定?例如,普遍的观点认为,在一个设计良好的面向对象系统中,一个类越受欢迎,它从一个版本更改到下一个版本的可能性就越小,因为对该类的更改很可能影响到它的客户端。我们已经研究了几个公共领域、面向对象的软件系统的连续发布,并分析了许多指示类和接口的大小、流行程度和复杂性的度量。事实证明,随着应用程序的发展,这些度量的分布非常稳定。随着时间的推移,类的大小和复杂性的分布保持不变。随着时间的推移,修改的代码相对较少。然而,倾向于修改的类也是更受欢迎的类,即那些具有更大的Fan-In的类。一般来说,类或接口越“复杂”,就越有可能从一个版本更改到下一个版本。
{"title":"The Inevitable Stability of Software Change","authors":"Rajesh Vasa, Jean-Guy Schneider, Oscar Nierstrasz","doi":"10.1109/ICSM.2007.4362613","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362613","url":null,"abstract":"Real software systems change and become more complex over time. But which parts change and which parts remain stable? Common wisdom, for example, states that in a well-designed object-oriented system, the more popular a class is, the less likely it is to change from one version to the next, since changes to this class are likely to impact its clients. We have studied consecutive releases of several public domain, object-oriented software systems and analyzed a number of measures indicative of size, popularity, and complexity of classes and interfaces. As it turns out, the distributions of these measures are remarkably stable as an application evolves. The distribution of class size and complexity retains its shape over time. Relatively little code is modified over time. Classes that tend to be modified, however, are also the more popular ones, that is, those with greater Fan-In. In general, the more \"complex\" a class or interface becomes, the more likely it is to change from one version to the next.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130108470","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 54
ONTRAC: A system for efficient ONline TRACing for debugging ONTRAC:一个用于调试的高效在线跟踪系统
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362657
V. Nagarajan, D. Jeffrey, Rajiv Gupta, Neelam Gupta
Dynamic slicing is a promising trace based technique that helps programmers in the process of debugging. In order to debug a failed run, dynamic slicing requires the dynamic dependence graph (DDG) information for that particular run. In prior work, address and control-flow traces are collected online and then extensively post-processed offline to yield the DDG, upon which slicing is performed. Unfortunately, the offline post-processing step can be extremely time consuming [21], impeding the use of dynamic slicing as a debugging technique. In this paper, we present ONTRAC, an efficient online tracing system, that directly computes the dynamic dependences online, thus eliminating the expensive offline postprocessing step. To minimize the program slowdown, we make the design decision of not outputting the computed dependences to a file, instead storing them in memory in a specially allocated fixed size circular buffer. The size of the buffer limits the length of the execution history that can be stored. To maximize the execution history that can be maintained, we introduce optimizations to eliminate the storage of most of the generated dependences, at the same time ensuring that those that are stored are sufficient to capture the bug. Our experiments conducted with real bugs confirm the above fact. Other experiments conducted on cpu-intensive programs show that our optimizations are able to reduce the trace-rate from 16 bytes to 0.8 bytes per executed instruction. This enables us to store the dependence trace history for a window of 20 million executed instructions in a 16 MB buffer. ONTRAC is also very efficient, only slowing down the execution by a factor of 19, eliminating the slowdown by a factor of 540 due to post-processing.
动态切片是一种很有前途的基于跟踪的技术,可以帮助程序员进行调试。为了调试失败的运行,动态切片需要该特定运行的动态依赖图(DDG)信息。在之前的工作中,在线收集地址和控制流轨迹,然后离线进行广泛的后处理以产生DDG,在此基础上执行切片。不幸的是,离线后处理步骤非常耗时,阻碍了动态切片作为调试技术的使用。在本文中,我们提出了ONTRAC,一个有效的在线跟踪系统,直接在线计算动态依赖关系,从而消除了昂贵的离线后处理步骤。为了最大限度地降低程序速度,我们做出了不将计算出的依赖项输出到文件的设计决策,而是将它们存储在内存中专门分配的固定大小的循环缓冲区中。缓冲区的大小限制了可以存储的执行历史的长度。为了最大化可维护的执行历史,我们引入了优化,以消除大多数生成的依赖项的存储,同时确保存储的依赖项足以捕获错误。我们用真实的bug进行的实验证实了上述事实。在cpu密集型程序上进行的其他实验表明,我们的优化能够将每个执行指令的跟踪率从16字节降低到0.8字节。这使我们能够在一个16 MB的缓冲区中存储一个有2000万条执行指令的窗口的依赖性跟踪历史。ONTRAC也非常高效,仅将执行速度降低了19倍,消除了由于后处理而导致的540倍的速度降低。
{"title":"ONTRAC: A system for efficient ONline TRACing for debugging","authors":"V. Nagarajan, D. Jeffrey, Rajiv Gupta, Neelam Gupta","doi":"10.1109/ICSM.2007.4362657","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362657","url":null,"abstract":"Dynamic slicing is a promising trace based technique that helps programmers in the process of debugging. In order to debug a failed run, dynamic slicing requires the dynamic dependence graph (DDG) information for that particular run. In prior work, address and control-flow traces are collected online and then extensively post-processed offline to yield the DDG, upon which slicing is performed. Unfortunately, the offline post-processing step can be extremely time consuming [21], impeding the use of dynamic slicing as a debugging technique. In this paper, we present ONTRAC, an efficient online tracing system, that directly computes the dynamic dependences online, thus eliminating the expensive offline postprocessing step. To minimize the program slowdown, we make the design decision of not outputting the computed dependences to a file, instead storing them in memory in a specially allocated fixed size circular buffer. The size of the buffer limits the length of the execution history that can be stored. To maximize the execution history that can be maintained, we introduce optimizations to eliminate the storage of most of the generated dependences, at the same time ensuring that those that are stored are sufficient to capture the bug. Our experiments conducted with real bugs confirm the above fact. Other experiments conducted on cpu-intensive programs show that our optimizations are able to reduce the trace-rate from 16 bytes to 0.8 bytes per executed instruction. This enables us to store the dependence trace history for a window of 20 million executed instructions in a 16 MB buffer. ONTRAC is also very efficient, only slowing down the execution by a factor of 19, eliminating the slowdown by a factor of 540 due to post-processing.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133506014","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Debugging Integrated Systems: An Ethnographic Study of Debugging Practice 集成系统调试:调试实践的民族志研究
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362643
Thomas Østerlie, Alf Inge Wang
This paper explores how software developers debug integrated systems, where they have little or no access to the source code of the third-party software the system is composed of. We analyze the practice of debugging integrated systems, identifying five characteristics that set it apart from existing research on debugging: it spans a variety of operating environments, it is collective, social, heterogeneous, and ongoing. We draw implications of this for software maintenance research and debugging practice. The results presented in this paper are based on observations from an ethnographic study of the Gentoo OSS community, a geographically distributed community of over 320 developers developing and maintaining a software system for distributing and integrating third-party software packages with different Unix versions.
本文探讨了软件开发人员如何调试集成系统,在这些系统中,他们很少或根本无法访问组成系统的第三方软件的源代码。我们分析了集成系统调试的实践,确定了将其与现有调试研究区分开来的五个特征:它跨越了各种操作环境,它是集体的,社会的,异构的和持续的。本文为软件维护研究和调试实践提供了启示。本文中提出的结果是基于对Gentoo OSS社区的人种学研究的观察,Gentoo OSS社区是一个地理分布的社区,有超过320名开发人员开发和维护一个软件系统,用于分发和集成不同Unix版本的第三方软件包。
{"title":"Debugging Integrated Systems: An Ethnographic Study of Debugging Practice","authors":"Thomas Østerlie, Alf Inge Wang","doi":"10.1109/ICSM.2007.4362643","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362643","url":null,"abstract":"This paper explores how software developers debug integrated systems, where they have little or no access to the source code of the third-party software the system is composed of. We analyze the practice of debugging integrated systems, identifying five characteristics that set it apart from existing research on debugging: it spans a variety of operating environments, it is collective, social, heterogeneous, and ongoing. We draw implications of this for software maintenance research and debugging practice. The results presented in this paper are based on observations from an ethnographic study of the Gentoo OSS community, a geographically distributed community of over 320 developers developing and maintaining a software system for distributing and integrating third-party software packages with different Unix versions.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"115 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124830457","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
Evaluation of Semantic Interference Detection in Parallel Changes: an Exploratory Experiment 并行变化中语义干扰检测的评价:一个探索性实验
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362620
Danhua Shao, S. Khurshid, D. Perry
Parallel developments are becoming increasingly prevalent in the building and evolution of large-scale software systems. Our previous studies of a large industrial project showed that there was a linear correlation between the degree of parallelism and the likelihood of defects in the changes. To further study the relationship between parallel changes and faults, we have designed and implemented an algorithm to detect "direct" semantic interference between parallel changes. To evaluate the analyzer's effectiveness in fault prediction, we designed an experiment in the context of an industrial project. We first mine the change and version management repositories to find sample versions sets of different degrees of parallelism. We investigate the interference between the versions with our analyzer. We then mine the change and version repositories to find out what faults were discovered subsequent to the analyzed interfering versions. We use the match rate between semantic interference and faults to evaluate the effectiveness of the analyzer in predicting faults. Our contributions in this evaluative empirical study are twofold. First, we evaluate the semantic interference analyzer and show that it is effective in predicting faults (based on "direct" semantic interference detection) in changes made within a short time period. Second, the design of our experiment is itself a significant contribution and exemplifies how to mine software repositories rather than use artificial cases for rigorous experimental evaluations.
并行开发在大型软件系统的构建和发展中变得越来越普遍。我们先前对一个大型工业项目的研究表明,在并行度和变更中缺陷的可能性之间存在线性相关关系。为了进一步研究并行变化与故障之间的关系,我们设计并实现了一种算法来检测并行变化之间的“直接”语义干扰。为了评估该分析仪在故障预测中的有效性,我们在一个工业项目的背景下设计了一个实验。我们首先挖掘变更和版本管理存储库,以找到不同并行度的示例版本集。我们用我们的分析器来研究版本之间的干扰。然后,我们挖掘变更和版本存储库,以找出在分析的干扰版本之后发现的错误。我们用语义干扰与故障的匹配率来评价分析器预测故障的有效性。我们在这一评价实证研究中的贡献是双重的。首先,我们评估了语义干扰分析器,并表明它在预测短时间内发生的变化的故障(基于“直接”语义干扰检测)方面是有效的。其次,我们实验的设计本身就是一个重要的贡献,它举例说明了如何挖掘软件存储库,而不是使用人为的案例来进行严格的实验评估。
{"title":"Evaluation of Semantic Interference Detection in Parallel Changes: an Exploratory Experiment","authors":"Danhua Shao, S. Khurshid, D. Perry","doi":"10.1109/ICSM.2007.4362620","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362620","url":null,"abstract":"Parallel developments are becoming increasingly prevalent in the building and evolution of large-scale software systems. Our previous studies of a large industrial project showed that there was a linear correlation between the degree of parallelism and the likelihood of defects in the changes. To further study the relationship between parallel changes and faults, we have designed and implemented an algorithm to detect \"direct\" semantic interference between parallel changes. To evaluate the analyzer's effectiveness in fault prediction, we designed an experiment in the context of an industrial project. We first mine the change and version management repositories to find sample versions sets of different degrees of parallelism. We investigate the interference between the versions with our analyzer. We then mine the change and version repositories to find out what faults were discovered subsequent to the analyzed interfering versions. We use the match rate between semantic interference and faults to evaluate the effectiveness of the analyzer in predicting faults. Our contributions in this evaluative empirical study are twofold. First, we evaluate the semantic interference analyzer and show that it is effective in predicting faults (based on \"direct\" semantic interference detection) in changes made within a short time period. Second, the design of our experiment is itself a significant contribution and exemplifies how to mine software repositories rather than use artificial cases for rigorous experimental evaluations.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130582959","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 25
Reducing Regression Test Size by Exclusion 通过排除减少回归测试的大小
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362628
K. Gallagher, T. Hall, S. Black
Operational software is constantly evolving. Regression testing is used to identify the unintended consequences of evolutionary changes. As most changes affect only a small proportion of the system, the challenge is to ensure that the regression test set is both safe (all relevant tests are used) and inclusive (only relevant tests are used). Previous approaches to reducing test sets struggle to find safe and inclusive tests by looking only at the changed code. We use decomposition program slicing to safely reduce the size of regression test sets by identifying those parts of a system that could not have been affected by a change; this information will then direct the selection of regression tests by eliminating tests that are not relevant to the change. The technique properly accounts for additions and deletions of code. We extend and use Rothermel and Harrold's framework for measuring the safety of regression test sets and introduce new safety and precision measures that do not require a priori knowledge of the exact number of modification-revealing tests. We then analytically evaluate and compare our techniques for producing reduced regression test sets.
操作软件是不断发展的。回归测试用于识别进化变化的意外后果。由于大多数更改仅影响系统的一小部分,因此挑战在于确保回归测试集既安全(使用所有相关测试)又具有包容性(仅使用相关测试)。以前减少测试集的方法很难通过只查看已更改的代码来找到安全和包含的测试。我们使用分解程序切片,通过识别系统中不受变化影响的部分,来安全地减少回归测试集的大小;这些信息将通过消除与变更不相关的测试来指导回归测试的选择。该技术适当地解释了代码的添加和删除。我们扩展并使用Rothermel和Harrold的框架来测量回归测试集的安全性,并引入新的安全性和精度措施,这些措施不需要先验地了解修改揭示测试的确切数量。然后,我们分析地评估和比较我们的技术,以产生简化的回归测试集。
{"title":"Reducing Regression Test Size by Exclusion","authors":"K. Gallagher, T. Hall, S. Black","doi":"10.1109/ICSM.2007.4362628","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362628","url":null,"abstract":"Operational software is constantly evolving. Regression testing is used to identify the unintended consequences of evolutionary changes. As most changes affect only a small proportion of the system, the challenge is to ensure that the regression test set is both safe (all relevant tests are used) and inclusive (only relevant tests are used). Previous approaches to reducing test sets struggle to find safe and inclusive tests by looking only at the changed code. We use decomposition program slicing to safely reduce the size of regression test sets by identifying those parts of a system that could not have been affected by a change; this information will then direct the selection of regression tests by eliminating tests that are not relevant to the change. The technique properly accounts for additions and deletions of code. We extend and use Rothermel and Harrold's framework for measuring the safety of regression test sets and introduce new safety and precision measures that do not require a priori knowledge of the exact number of modification-revealing tests. We then analytically evaluate and compare our techniques for producing reduced regression test sets.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"62 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126577717","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
The Economics of Open Source Software: An Empirical Analysis of Maintenance Costs 开源软件的经济学:维护成本的实证分析
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362652
E. Capra, C. Francalanci, F. Merlo
A quality degradation effect of proprietary code has been observed as a consequence of maintenance. This quality degradation effect, called entropy, is a cause for higher maintenance costs. In the Open Source context, the quality of code is a fundamental tenet of open software developers. As a consequence, the quality degradation principle measured by entropy cannot be assumed to be valid. The goal of the paper is to analyze the entropy of Open Source applications by measuring the evolution of maintenance costs over time. Analyses are based on cost data collected from a sample of 1251 Open Source application versions, compared with the costs estimated with a traditional model for proprietary software. Findings indicate that Open Source applications are less subject to entropy, have lower maintenance costs and also a lower need for maintenance interventions aimed at restoring quality. Finally, results show that a lower entropy is favored by greater functional simplicity.
作为维护的结果,已经观察到专有代码的质量下降效应。这种被称为熵的质量退化效应是导致更高维护成本的一个原因。在开放源代码环境中,代码质量是开放软件开发人员的基本原则。因此,不能假设熵测量的质量退化原理是有效的。本文的目标是通过度量维护成本随时间的变化来分析开源应用程序的熵。分析基于从1251个开源应用程序版本的样本中收集的成本数据,并与专有软件的传统模型估计的成本进行比较。研究结果表明,开源应用程序受熵的影响较小,维护成本较低,对旨在恢复质量的维护干预的需求也较低。最后,结果表明,更低的熵有利于更简单的功能。
{"title":"The Economics of Open Source Software: An Empirical Analysis of Maintenance Costs","authors":"E. Capra, C. Francalanci, F. Merlo","doi":"10.1109/ICSM.2007.4362652","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362652","url":null,"abstract":"A quality degradation effect of proprietary code has been observed as a consequence of maintenance. This quality degradation effect, called entropy, is a cause for higher maintenance costs. In the Open Source context, the quality of code is a fundamental tenet of open software developers. As a consequence, the quality degradation principle measured by entropy cannot be assumed to be valid. The goal of the paper is to analyze the entropy of Open Source applications by measuring the evolution of maintenance costs over time. Analyses are based on cost data collected from a sample of 1251 Open Source application versions, compared with the costs estimated with a traditional model for proprietary software. Findings indicate that Open Source applications are less subject to entropy, have lower maintenance costs and also a lower need for maintenance interventions aimed at restoring quality. Finally, results show that a lower entropy is favored by greater functional simplicity.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"135 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-10-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127347463","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 21
期刊
2007 IEEE International Conference on Software Maintenance
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1