首页 > 最新文献

2010 IEEE International Conference on Software Maintenance最新文献

英文 中文
Template-based reconstruction of complex refactorings 复杂重构的基于模板的重构
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609577
K. Prete, Napol Rachatasumrit, Nikita Sudan, Miryung Kim
Knowing which types of refactoring occurred between two program versions can help programmers better understand code changes. Our survey of refactoring identification techniques found that existing techniques cannot easily identify complex refactorings, such as an replace conditional with polymorphism refactoring, which consist of a set of atomic refactorings. This paper presents REF-FINDER that identifies complex refactorings between two program versions using a template-based refactoring reconstruction approach—REF-FINDER expresses each refactoring type in terms of template logic rules and uses a logic programming engine to infer concrete refactoring instances. It currently supports sixty three refactoring types from Fowler's catalog, showing the most comprehensive coverage among existing techniques. The evaluation using code examples from Fowler's catalog and open source project histories shows that REF-FINDER identifies refactorings with an overall precision of 0.79 and recall of 0.95.
了解两个程序版本之间发生的重构类型可以帮助程序员更好地理解代码更改。我们对重构识别技术的调查发现,现有的技术不能很容易地识别复杂的重构,比如替换条件的多态性重构,它由一组原子重构组成。本文介绍了使用基于模板的重构重建方法来识别两个程序版本之间复杂重构的REF-FINDER——REF-FINDER根据模板逻辑规则表达每种重构类型,并使用逻辑编程引擎来推断具体的重构实例。它目前支持福勒目录中的63种重构类型,显示了现有技术中最全面的覆盖范围。使用来自Fowler目录和开源项目历史的代码示例的评估表明,REF-FINDER识别重构的总体精度为0.79,召回率为0.95。
{"title":"Template-based reconstruction of complex refactorings","authors":"K. Prete, Napol Rachatasumrit, Nikita Sudan, Miryung Kim","doi":"10.1109/ICSM.2010.5609577","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609577","url":null,"abstract":"Knowing which types of refactoring occurred between two program versions can help programmers better understand code changes. Our survey of refactoring identification techniques found that existing techniques cannot easily identify complex refactorings, such as an replace conditional with polymorphism refactoring, which consist of a set of atomic refactorings. This paper presents REF-FINDER that identifies complex refactorings between two program versions using a template-based refactoring reconstruction approach—REF-FINDER expresses each refactoring type in terms of template logic rules and uses a logic programming engine to infer concrete refactoring instances. It currently supports sixty three refactoring types from Fowler's catalog, showing the most comprehensive coverage among existing techniques. The evaluation using code examples from Fowler's catalog and open source project histories shows that REF-FINDER identifies refactorings with an overall precision of 0.79 and recall of 0.95.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116626384","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}
引用次数: 200
Studying the impact of dependency network measures on software quality 研究依赖网络度量对软件质量的影响
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609560
Thanh H. D. Nguyen, Bram Adams, A. Hassan
Dependency network measures capture various facets of the dependencies among software modules. For example, betweenness centrality measures how much information flows through a module compared to the rest of the network. Prior studies have shown that these measures are good predictors of post-release failures. However, these studies did not explore the causes for such good performance and did not provide guidance for practitioners to avoid future bugs. In this paper, we closely examine the causes for such performance by replicating prior studies using data from the Eclipse project. Our study shows that a small subset of dependency network measures have a large impact on post-release failure, while other network measures have a very limited impact. We also analyze the benefit of bug prediction in reducing testing cost. Finally, we explore the practical implications of the important network measures.
依赖网络度量捕获软件模块之间依赖关系的各个方面。例如,中间性中心性衡量的是与网络的其余部分相比,流过一个模块的信息量。先前的研究表明,这些措施是释放后失败的良好预测指标。然而,这些研究并没有探究如此良好性能的原因,也没有为从业者提供指导,以避免未来的bug。在本文中,我们将通过使用Eclipse项目中的数据复制先前的研究,仔细检查这种性能的原因。我们的研究表明,依赖网络措施的一小部分对发布后失败有很大的影响,而其他网络措施的影响非常有限。我们还分析了bug预测在降低测试成本方面的好处。最后,我们探讨了重要网络措施的实际意义。
{"title":"Studying the impact of dependency network measures on software quality","authors":"Thanh H. D. Nguyen, Bram Adams, A. Hassan","doi":"10.1109/ICSM.2010.5609560","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609560","url":null,"abstract":"Dependency network measures capture various facets of the dependencies among software modules. For example, betweenness centrality measures how much information flows through a module compared to the rest of the network. Prior studies have shown that these measures are good predictors of post-release failures. However, these studies did not explore the causes for such good performance and did not provide guidance for practitioners to avoid future bugs. In this paper, we closely examine the causes for such performance by replicating prior studies using data from the Eclipse project. Our study shows that a small subset of dependency network measures have a large impact on post-release failure, while other network measures have a very limited impact. We also analyze the benefit of bug prediction in reducing testing cost. Finally, we explore the practical implications of the important network measures.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125135188","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}
引用次数: 73
Index-based code clone detection: incremental, distributed, scalable 基于索引的代码克隆检测:增量的、分布式的、可扩展的
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609665
B. Hummel, Elmar Jürgens, L. Heinemann, M. Conradt
Although numerous different clone detection approaches have been proposed to date, not a single one is both incremental and scalable to very large code bases. They thus cannot provide real-time cloning information for clone management of very large systems. We present a novel, index-based clone detection algorithm for type 1 and 2 clones that is both incremental and scalable. It enables a new generation of clone management tools that provide real-time cloning information for very large software. We report on several case studies that show both its suitability for real-time clone detection and its scalability: on 42 MLOC of Eclipse code, average time to retrieve all clones for a file was below 1 second; on 100 machines, detection of all clones in 73 MLOC was completed in 36 minutes.
尽管迄今为止已经提出了许多不同的克隆检测方法,但没有一种方法是增量的,并且可以扩展到非常大的代码库。因此,它们不能为非常大的系统的克隆管理提供实时克隆信息。我们提出了一种新的基于索引的克隆检测算法,用于类型1和类型2克隆,该算法是增量的和可扩展的。它支持新一代克隆管理工具,为非常大的软件提供实时克隆信息。我们报告了几个案例研究,显示了它对实时克隆检测的适用性和可扩展性:在42 MLOC的Eclipse代码中,检索文件的所有克隆的平均时间低于1秒;在100台机器上,73个MLOC中所有克隆的检测在36分钟内完成。
{"title":"Index-based code clone detection: incremental, distributed, scalable","authors":"B. Hummel, Elmar Jürgens, L. Heinemann, M. Conradt","doi":"10.1109/ICSM.2010.5609665","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609665","url":null,"abstract":"Although numerous different clone detection approaches have been proposed to date, not a single one is both incremental and scalable to very large code bases. They thus cannot provide real-time cloning information for clone management of very large systems. We present a novel, index-based clone detection algorithm for type 1 and 2 clones that is both incremental and scalable. It enables a new generation of clone management tools that provide real-time cloning information for very large software. We report on several case studies that show both its suitability for real-time clone detection and its scalability: on 42 MLOC of Eclipse code, average time to retrieve all clones for a file was below 1 second; on 100 machines, detection of all clones in 73 MLOC was completed in 36 minutes.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133892427","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}
引用次数: 164
A Tree Kernel based approach for clone detection 基于树核的克隆检测方法
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609715
A. Corazza, S. Martino, Valerio Maggio, G. Scanniello
Reusing software by copying and pasting is a common practice in software development. This phenomenon is widely known as code cloning. Problems with clones are mainly due to the need of managing each duplication, thus increasing the effort to maintain software systems. Clone detection approaches generally take into account either the syntactic structure (e.g., Abstract Syntax Tree) or lexical elements (e.g., the signature of a function). In this paper we propose an approach to detect code clones, based on syntactic information enriched by lexical elements. To this end, we have defined a Tree Kernel function to compare Abstract Syntax Trees. A preliminary investigation has been also conducted to assess the validity of the proposed approach.
通过复制和粘贴来重用软件是软件开发中的一种常见做法。这种现象被广泛地称为代码克隆。克隆的问题主要是由于需要管理每个副本,从而增加了维护软件系统的工作量。克隆检测方法通常考虑语法结构(例如,抽象语法树)或词法元素(例如,函数的签名)。本文提出了一种基于词法元素丰富的语法信息来检测代码克隆的方法。为此,我们定义了一个Tree Kernel函数来比较抽象语法树。还进行了一项初步调查,以评估拟议方法的有效性。
{"title":"A Tree Kernel based approach for clone detection","authors":"A. Corazza, S. Martino, Valerio Maggio, G. Scanniello","doi":"10.1109/ICSM.2010.5609715","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609715","url":null,"abstract":"Reusing software by copying and pasting is a common practice in software development. This phenomenon is widely known as code cloning. Problems with clones are mainly due to the need of managing each duplication, thus increasing the effort to maintain software systems. Clone detection approaches generally take into account either the syntactic structure (e.g., Abstract Syntax Tree) or lexical elements (e.g., the signature of a function). In this paper we propose an approach to detect code clones, based on syntactic information enriched by lexical elements. To this end, we have defined a Tree Kernel function to compare Abstract Syntax Trees. A preliminary investigation has been also conducted to assess the validity of the proposed approach.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124950457","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}
引用次数: 30
Understanding parallelism-inhibiting dependences in sequential Java programs 理解顺序Java程序中抑制并行性的依赖关系
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609588
A. Rountev, Kevin Van Valkenburgh, Dacong Yan, P. Sadayappan
Many existing sequential components, libraries, and applications will need to be re-engineered for parallelism. This work proposes a dynamic analysis of sequential Java programs that helps a programmer to understand bottlenecks for parallelism. The analysis measures the parallelism available in the program by considering a hypothetical parallel execution in which the code within a method executes sequentially, but each caller will execute in parallel with its callees. A best-case scenario is assumed: every statement executes as early as possible, as long as all dependences from the sequential program are satisfied. The idealized speedup under this model is a measure of the method-level parallelism inherent in the program, independent of hardware and JVMs. The analysis employs bytecode instrumentation and an online algorithm which tracks the reads and writes of relevant memory locations during a run of the sequential program. If the best-case parallelism is low, this likely means that the program cannot be easily re-engineered into a scalable parallel version. In experiments with 26 Java programs, we observed this situation for most programs. This problem is sometimes due to programmer decisions that were perfectly reasonable for a sequential program but would be detrimental to the performance of any parallel version. To pinpoint such decisions, we propose an approach that employs the dynamic analysis to automatically find memory locations whose read and write operations decrease the available parallelism. In three case studies, we demonstrate how these bottlenecks can be identified and eliminated using the proposed approach.
许多现有的顺序组件、库和应用程序将需要重新设计以实现并行性。这项工作提出了对顺序Java程序的动态分析,帮助程序员理解并行性的瓶颈。该分析通过考虑假设的并行执行来衡量程序中可用的并行性,其中方法中的代码依次执行,但每个调用者将与其被调用者并行执行。假设最好的情况是:只要满足顺序程序的所有依赖项,每个语句都尽可能早地执行。该模型下的理想加速是程序中固有的方法级并行性的度量,独立于硬件和jvm。该分析采用字节码检测和在线算法,该算法跟踪顺序程序运行期间相关内存位置的读写。如果最佳情况下的并行性较低,这可能意味着程序不能轻松地重新设计为可伸缩的并行版本。在26个Java程序的实验中,我们观察到大多数程序都存在这种情况。这个问题有时是由于程序员的决定,这些决定对于顺序程序来说是完全合理的,但对任何并行版本的性能都是有害的。为了确定这样的决策,我们提出了一种方法,该方法使用动态分析来自动查找读取和写入操作减少可用并行性的内存位置。在三个案例研究中,我们演示了如何使用所建议的方法识别和消除这些瓶颈。
{"title":"Understanding parallelism-inhibiting dependences in sequential Java programs","authors":"A. Rountev, Kevin Van Valkenburgh, Dacong Yan, P. Sadayappan","doi":"10.1109/ICSM.2010.5609588","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609588","url":null,"abstract":"Many existing sequential components, libraries, and applications will need to be re-engineered for parallelism. This work proposes a dynamic analysis of sequential Java programs that helps a programmer to understand bottlenecks for parallelism. The analysis measures the parallelism available in the program by considering a hypothetical parallel execution in which the code within a method executes sequentially, but each caller will execute in parallel with its callees. A best-case scenario is assumed: every statement executes as early as possible, as long as all dependences from the sequential program are satisfied. The idealized speedup under this model is a measure of the method-level parallelism inherent in the program, independent of hardware and JVMs. The analysis employs bytecode instrumentation and an online algorithm which tracks the reads and writes of relevant memory locations during a run of the sequential program. If the best-case parallelism is low, this likely means that the program cannot be easily re-engineered into a scalable parallel version. In experiments with 26 Java programs, we observed this situation for most programs. This problem is sometimes due to programmer decisions that were perfectly reasonable for a sequential program but would be detrimental to the performance of any parallel version. To pinpoint such decisions, we propose an approach that employs the dynamic analysis to automatically find memory locations whose read and write operations decrease the available parallelism. In three case studies, we demonstrate how these bottlenecks can be identified and eliminated using the proposed approach.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"99 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132603018","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}
引用次数: 9
Analyzing natural-language artifacts of the software process 分析软件过程的自然语言工件
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609680
Maryam Hasan, Eleni Stroulia, Denilson Barbosa, Manar H. Alalfi
Software teams, as they communicate throughout the life-cycle of their projects, generate a substantial stream of textual data. Through emails and chats, developers discuss the requirements of their software system, they negotiate the distribution of tasks among them, and they make decisions about the system design, and the internal structure and functionalities of its code modules. The software research community has long recognized the importance and potential usefulness of such textual information. In this paper, we discuss our recent work on systematically analyzing several textual streams collected through our WikiDev2.0 tool. We use two different text-analysis methods to examine five different sources of textual data. We report on our experience using our method on analyzing the communications of a nine-member team over four months.
软件团队在其项目的整个生命周期中进行通信时,会生成大量文本数据流。通过电子邮件和聊天,开发人员讨论他们的软件系统的需求,他们在他们之间协商任务的分配,他们对系统设计、代码模块的内部结构和功能做出决定。软件研究社区早就认识到这种文本信息的重要性和潜在的有用性。在本文中,我们讨论了我们最近的工作,系统地分析了通过我们的WikiDev2.0工具收集的几个文本流。我们使用两种不同的文本分析方法来检查五种不同的文本数据来源。我们报告我们的经验,使用我们的方法来分析一个9人团队在4个月内的沟通。
{"title":"Analyzing natural-language artifacts of the software process","authors":"Maryam Hasan, Eleni Stroulia, Denilson Barbosa, Manar H. Alalfi","doi":"10.1109/ICSM.2010.5609680","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609680","url":null,"abstract":"Software teams, as they communicate throughout the life-cycle of their projects, generate a substantial stream of textual data. Through emails and chats, developers discuss the requirements of their software system, they negotiate the distribution of tasks among them, and they make decisions about the system design, and the internal structure and functionalities of its code modules. The software research community has long recognized the importance and potential usefulness of such textual information. In this paper, we discuss our recent work on systematically analyzing several textual streams collected through our WikiDev2.0 tool. We use two different text-analysis methods to examine five different sources of textual data. We report on our experience using our method on analyzing the communications of a nine-member team over four months.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122225298","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
Test generation via Dynamic Symbolic Execution for mutation testing 通过动态符号执行生成突变测试
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609672
Lingming Zhang, Tao Xie, Lu Zhang, N. Tillmann, J. D. Halleux, Hong Mei
Mutation testing has been used to assess and improve the quality of test inputs. Generating test inputs to achieve high mutant-killing ratios is important in mutation testing. However, existing test-generation techniques do not provide effective support for killing mutants in mutation testing. In this paper, we propose a general test-generation approach, called PexMutator, for mutation testing using Dynamic Symbolic Execution (DSE), a recent effective test-generation technique. Based on a set of transformation rules, PexMutator transforms a program under test to an instrumented meta-program that contains mutant-killing constraints. Then PexMutator uses DSE to generate test inputs for the meta-program. The mutant-killing constraints introduced via instrumentation guide DSE to generate test inputs to kill mutants automatically. We have implemented our approach as an extension for Pex, an automatic structural testing tool developed at Microsoft Research. Our preliminary experimental study shows that our approach is able to strongly kill more than 80% of all the mutants for the five studied subjects. In addition, PexMutator is able to outperform Pex, a state-of-the-art test-generation tool, in terms of strong mutant killing while achieving the same block coverage.
突变测试已被用于评估和提高测试输入的质量。在突变检测中,产生测试输入以达到高的突变杀灭率是很重要的。然而,现有的测试生成技术并不能为突变检测中杀死突变体提供有效的支持。在本文中,我们提出了一种通用的测试生成方法,称为PexMutator,用于使用动态符号执行(DSE)进行突变测试,DSE是一种最近有效的测试生成技术。基于一组转换规则,PexMutator将被测程序转换为包含杀死突变约束的仪器化元程序。然后,PexMutator使用DSE为元程序生成测试输入。通过仪表引入的杀死突变体的约束引导DSE生成测试输入以自动杀死突变体。我们已经将我们的方法作为Pex的扩展来实现,Pex是微软研究院开发的一种自动结构测试工具。我们的初步实验研究表明,我们的方法能够强烈杀死5个研究对象中80%以上的突变体。此外,PexMutator能够在实现相同块覆盖的情况下,在强大的突变杀死方面胜过Pex, Pex是一种最先进的测试生成工具。
{"title":"Test generation via Dynamic Symbolic Execution for mutation testing","authors":"Lingming Zhang, Tao Xie, Lu Zhang, N. Tillmann, J. D. Halleux, Hong Mei","doi":"10.1109/ICSM.2010.5609672","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609672","url":null,"abstract":"Mutation testing has been used to assess and improve the quality of test inputs. Generating test inputs to achieve high mutant-killing ratios is important in mutation testing. However, existing test-generation techniques do not provide effective support for killing mutants in mutation testing. In this paper, we propose a general test-generation approach, called PexMutator, for mutation testing using Dynamic Symbolic Execution (DSE), a recent effective test-generation technique. Based on a set of transformation rules, PexMutator transforms a program under test to an instrumented meta-program that contains mutant-killing constraints. Then PexMutator uses DSE to generate test inputs for the meta-program. The mutant-killing constraints introduced via instrumentation guide DSE to generate test inputs to kill mutants automatically. We have implemented our approach as an extension for Pex, an automatic structural testing tool developed at Microsoft Research. Our preliminary experimental study shows that our approach is able to strongly kill more than 80% of all the mutants for the five studied subjects. In addition, PexMutator is able to outperform Pex, a state-of-the-art test-generation tool, in terms of strong mutant killing while achieving the same block coverage.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116421623","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}
引用次数: 112
A lightweight transformational approach to support large scale adaptive changes 支持大规模自适应更改的轻量级转换方法
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609719
M. Collard, Jonathan I. Maletic, Brian P. Robinson
An approach to automate adaptive maintenance changes on large-scale software systems is presented. This approach uses lightweight parsing and lightweight on-the-fly static analysis to support transformations that make corrections to source code in response to adaptive maintenance changes, such as platform changes. SrcML, an XML source code representation, is used and transformations can be performed using either XSLT or LINQ. A number of specific adaptive changes are presented, based on recent adaptive maintenance needs from products at ABB Inc. The transformations are described in detail and then demonstrated on a number of examples from the production systems. The results are compared with manual adaptive changes that were done by professional developers. The approach performed better than the manual changes, as it successfully transformed instances missed by the developers while not missing any instances itself. The work demonstrates that this lightweight approach is both efficient and accurate with an overall cost savings in development time and effort.
提出了一种实现大规模软件系统自适应维护变更自动化的方法。这种方法使用轻量级解析和轻量级动态静态分析来支持对源代码进行修正的转换,以响应自适应的维护更改(如平台更改)。使用SrcML(一种XML源代码表示),并且可以使用XSLT或LINQ执行转换。根据ABB公司产品最近的适应性维护需求,提出了一些具体的适应性变化。详细描述了转换,然后在生产系统的许多示例上进行了演示。将结果与由专业开发人员进行的手动自适应更改进行比较。该方法比手动更改执行得更好,因为它成功地转换了开发人员遗漏的实例,同时没有遗漏任何实例本身。工作表明,这种轻量级方法既有效又准确,并且节省了开发时间和工作的总体成本。
{"title":"A lightweight transformational approach to support large scale adaptive changes","authors":"M. Collard, Jonathan I. Maletic, Brian P. Robinson","doi":"10.1109/ICSM.2010.5609719","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609719","url":null,"abstract":"An approach to automate adaptive maintenance changes on large-scale software systems is presented. This approach uses lightweight parsing and lightweight on-the-fly static analysis to support transformations that make corrections to source code in response to adaptive maintenance changes, such as platform changes. SrcML, an XML source code representation, is used and transformations can be performed using either XSLT or LINQ. A number of specific adaptive changes are presented, based on recent adaptive maintenance needs from products at ABB Inc. The transformations are described in detail and then demonstrated on a number of examples from the production systems. The results are compared with manual adaptive changes that were done by professional developers. The approach performed better than the manual changes, as it successfully transformed instances missed by the developers while not missing any instances itself. The work demonstrates that this lightweight approach is both efficient and accurate with an overall cost savings in development time and effort.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115737898","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}
引用次数: 30
Migrating from COBOL to Java 从COBOL迁移到Java
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609583
H. Sneed
This paper is an industrial report on a project for migrating an airport management system from a Bull mainframe using COBOL as a programming language and IDS as a database system to a distributed UNIX platform using Java and Oracle. The focus here is on the automated language transformation, performed in three phases - reengineering, conversion and refinement. The tools used are COBRedo for reengineering the COBOL code, COB2Java for converting COBOL to Java and JavRedoc for documenting the converted Java code. The paper describes the migration process and the tools used in it and the reviews the current state of the project. Keywords: Migration, Reengineering, Legacy systems, COBOL, Java, Object-oriented transformation.
本文是关于将机场管理系统从使用COBOL作为编程语言、IDS作为数据库系统的Bull大型机迁移到使用Java和Oracle的分布式UNIX平台的项目的工业报告。这里的重点是自动化的语言转换,它分三个阶段进行——重新设计、转换和细化。使用的工具是用于重新设计COBOL代码的COBRedo,用于将COBOL转换为Java的co2java和用于记录转换后的Java代码的JavRedoc。本文描述了迁移过程和其中使用的工具,并回顾了项目的当前状态。关键词:迁移,再造,遗留系统,COBOL, Java,面向对象转换。
{"title":"Migrating from COBOL to Java","authors":"H. Sneed","doi":"10.1109/ICSM.2010.5609583","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609583","url":null,"abstract":"This paper is an industrial report on a project for migrating an airport management system from a Bull mainframe using COBOL as a programming language and IDS as a database system to a distributed UNIX platform using Java and Oracle. The focus here is on the automated language transformation, performed in three phases - reengineering, conversion and refinement. The tools used are COBRedo for reengineering the COBOL code, COB2Java for converting COBOL to Java and JavRedoc for documenting the converted Java code. The paper describes the migration process and the tools used in it and the reviews the current state of the project. Keywords: Migration, Reengineering, Legacy systems, COBOL, Java, Object-oriented transformation.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127339957","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}
引用次数: 44
Migrating software testing to the cloud 将软件测试迁移到云端
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5610422
S. Tilley, T. Parveen
Regression testing is often performed as part of the software maintenance process. The amount of tests cases for a large-scale system can range from several hundred to many thousands, requiring significant computing resources and lengthy execution times, often precluding their use in an interactive setting. Traditional approaches to reduce the execution time for regression testing typically focus on excluding selected tests from the suite that need to be run after a change is made to the system.
回归测试通常作为软件维护过程的一部分执行。大型系统的测试用例的数量可以从几百到几千不等,需要大量的计算资源和漫长的执行时间,这通常妨碍了它们在交互式设置中的使用。减少回归测试执行时间的传统方法通常侧重于在对系统进行更改后从套件中排除需要运行的选定测试。
{"title":"Migrating software testing to the cloud","authors":"S. Tilley, T. Parveen","doi":"10.1109/ICSM.2010.5610422","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5610422","url":null,"abstract":"Regression testing is often performed as part of the software maintenance process. The amount of tests cases for a large-scale system can range from several hundred to many thousands, requiring significant computing resources and lengthy execution times, often precluding their use in an interactive setting. Traditional approaches to reduce the execution time for regression testing typically focus on excluding selected tests from the suite that need to be run after a change is made to the system.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132455082","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}
引用次数: 22
期刊
2010 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