首页 > 最新文献

2007 IEEE International Conference on Software Maintenance最新文献

英文 中文
The Effect of Communication Overhead on Software Maintenance Project Staffing: a Search-Based Approach 通信开销对软件维护项目人员配置的影响:一种基于搜索的方法
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362644
M. D. Penta, M. Harman, G. Antoniol, Fahim Qureshi
Brooks' milestone 'Mythical Man Month' established the observation that there is no simple conversion between people and time in large scale software projects. Communication and training overheads yield a subtle and variable relationship between the person-months required for a project and the number of people needed to complete the task within a given timeframe. This paper formalises several instantiations of Brooks' law and uses these to construct project schedule and staffing instances - using a search-based project staffing and scheduling approach - on data from two large real world maintenance projects. The results reveal the impact of different formulations of Brooks' law on project completion time and on staff distribution across teams, and the influence of other factors such as the presence of dependencies between work packages on the effect of communication overhead.
布鲁克斯的里程碑“神话般的人月”建立了一个观察,即在大型软件项目中,人与时间之间没有简单的转换。沟通和培训开销在项目所需的人月数和在给定时间框架内完成任务所需的人数之间产生微妙而可变的关系。本文形式化了布鲁克斯定律的几个实例,并使用这些实例来构建项目时间表和人员配置实例——使用基于搜索的项目人员配置和调度方法——基于两个大型现实维护项目的数据。结果揭示了布鲁克斯定律的不同表述对项目完成时间和跨团队人员分布的影响,以及其他因素(如工作包之间存在依赖关系)对沟通开销影响的影响。
{"title":"The Effect of Communication Overhead on Software Maintenance Project Staffing: a Search-Based Approach","authors":"M. D. Penta, M. Harman, G. Antoniol, Fahim Qureshi","doi":"10.1109/ICSM.2007.4362644","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362644","url":null,"abstract":"Brooks' milestone 'Mythical Man Month' established the observation that there is no simple conversion between people and time in large scale software projects. Communication and training overheads yield a subtle and variable relationship between the person-months required for a project and the number of people needed to complete the task within a given timeframe. This paper formalises several instantiations of Brooks' law and uses these to construct project schedule and staffing instances - using a search-based project staffing and scheduling approach - on data from two large real world maintenance projects. The results reveal the impact of different formulations of Brooks' law on project completion time and on staff distribution across teams, and the influence of other factors such as the presence of dependencies between work packages on the effect of communication overhead.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"4 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":"114639099","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}
引用次数: 37
Finding Unusual Code 发现异常代码
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362616
S. Reiss
We describe an automated approach to finding code fragments that are unusual and hence might represent potential problems. Many potential problems in programs arise in code that is uncommon either because it represents rarely used constructs and hence is unfamiliar to the programmer, or because it represents a mistyping or other error that still happens to be legal code, albeit not very common. We present an approach that first finds what is "unusual" by reading a corpus of code and building a library of common patterns. The approach can then take any existing program and check if it contains any unusual patterns. We have run the system using a large corpus and have identified problems in a number of sample projects with otherwise working code.
我们描述了一种自动化的方法来查找不寻常的代码片段,因此可能代表潜在的问题。程序中的许多潜在问题出现在不常见的代码中,或者因为它表示很少使用的结构,因此程序员不熟悉,或者因为它表示错误的输入或其他错误,这些错误仍然是合法的代码,尽管不是很常见。我们提出了一种方法,首先通过阅读代码语料库并构建公共模式库来发现什么是“不寻常的”。然后,该方法可以使用任何现有程序并检查它是否包含任何异常模式。我们使用大型语料库运行系统,并在许多示例项目中发现了问题,其他工作代码。
{"title":"Finding Unusual Code","authors":"S. Reiss","doi":"10.1109/ICSM.2007.4362616","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362616","url":null,"abstract":"We describe an automated approach to finding code fragments that are unusual and hence might represent potential problems. Many potential problems in programs arise in code that is uncommon either because it represents rarely used constructs and hence is unfamiliar to the programmer, or because it represents a mistyping or other error that still happens to be legal code, albeit not very common. We present an approach that first finds what is \"unusual\" by reading a corpus of code and building a library of common patterns. The approach can then take any existing program and check if it contains any unusual patterns. We have run the system using a large corpus and have identified problems in a number of sample projects with otherwise working code.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"299 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":"115828556","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}
引用次数: 7
Clone Smells in Software Evolution 软件进化中的克隆气味
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362615
Tibor Bakota, R. Ferenc, T. Gyimóthy
Although source code cloning (copy&paste programming) represents a significant threat to the maintainability of a software system, problems usually start to arise only when the system evolves. Most of the related research papers tackle the question of finding code clones in one particular version of the software only, leaving the dynamic behavior of the clones out of consideration. Eliminating these clones in large software systems often seems absolutely hopeless, as there might exist several thousands of them. Alternatively, tracking the evolution of individual clones can be used to identify those occurrences that could really cause problems in the future versions. In this paper we present an approach for mapping clones from one particular version of the software to another one, based on a similarity measure. This mapping is used to define conditions under which clones become suspicious (or "smelly") compared to their other occurrences. Accordingly, these conditions introduce the notion of dynamic clone smells. The usefulness of these smells is validated on the Mozilla Firefox internet browser, where the approach was able to find specific bugs that resulted from neglecting earlier copy&paste activities.
尽管源代码克隆(复制粘贴编程)对软件系统的可维护性构成了重大威胁,但问题通常只在系统进化时才开始出现。大多数相关的研究论文只处理在软件的一个特定版本中寻找代码克隆的问题,而不考虑克隆的动态行为。在大型软件系统中消除这些克隆似乎是完全没有希望的,因为可能存在数千个这样的克隆。或者,可以使用跟踪单个克隆的演化来识别那些可能在未来版本中真正导致问题的事件。在本文中,我们提出了一种基于相似性度量将克隆从软件的一个特定版本映射到另一个版本的方法。此映射用于定义与其他情况相比克隆变得可疑(或“难闻”)的条件。因此,这些条件引入了动态克隆气味的概念。这些气味的有用性在Mozilla Firefox互联网浏览器上得到了验证,该方法能够发现由于忽略了早期的复制和粘贴活动而导致的特定错误。
{"title":"Clone Smells in Software Evolution","authors":"Tibor Bakota, R. Ferenc, T. Gyimóthy","doi":"10.1109/ICSM.2007.4362615","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362615","url":null,"abstract":"Although source code cloning (copy&paste programming) represents a significant threat to the maintainability of a software system, problems usually start to arise only when the system evolves. Most of the related research papers tackle the question of finding code clones in one particular version of the software only, leaving the dynamic behavior of the clones out of consideration. Eliminating these clones in large software systems often seems absolutely hopeless, as there might exist several thousands of them. Alternatively, tracking the evolution of individual clones can be used to identify those occurrences that could really cause problems in the future versions. In this paper we present an approach for mapping clones from one particular version of the software to another one, based on a similarity measure. This mapping is used to define conditions under which clones become suspicious (or \"smelly\") compared to their other occurrences. Accordingly, these conditions introduce the notion of dynamic clone smells. The usefulness of these smells is validated on the Mozilla Firefox internet browser, where the approach was able to find specific bugs that resulted from neglecting earlier copy&paste activities.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"21 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":"123434776","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}
引用次数: 105
A model to predict anti-regressive effort in Open Source Software 一个预测开源软件中反回归工作的模型
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362632
A. Capiluppi, J. Fernández-Ramil
Accumulated changes on a software system are not uniformly distributed: some elements are changed more often than others. For optimal impact, the limited time and effort for complexity control, called anti-regressive work, should be applied to the elements of the system which are frequently changed and are complex. Based on this, we propose a maintenance guidance model (MGM) which is tested against real-world data. MGM takes into account several dimensions of complexity: size, structural complexity and coupling. Results show that maintainers of the eight open source systems studied tend, in general, to prioritize their anti-regressive work in line with the predictions given by our MGM, even though, divergences also exist. MGM offers a history-based alternative to existing approaches to the identification of elements for anti-regressive work, most of which use static code characteristics only.
软件系统中累积的更改不是均匀分布的:一些元素比其他元素更改得更频繁。为了获得最佳效果,应将有限的时间和精力用于复杂性控制,即抗回归工作,应用于频繁变化且复杂的系统元素。在此基础上,我们提出了一种维护指导模型(MGM),并对其进行了实际数据测试。MGM考虑了复杂性的几个维度:尺寸、结构复杂性和耦合性。结果表明,研究的八个开源系统的维护者通常倾向于按照我们的MGM给出的预测来优先考虑他们的反回归工作,尽管分歧也存在。MGM提供了一种基于历史的替代方法来识别用于反回归工作的元素,其中大多数只使用静态代码特征。
{"title":"A model to predict anti-regressive effort in Open Source Software","authors":"A. Capiluppi, J. Fernández-Ramil","doi":"10.1109/ICSM.2007.4362632","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362632","url":null,"abstract":"Accumulated changes on a software system are not uniformly distributed: some elements are changed more often than others. For optimal impact, the limited time and effort for complexity control, called anti-regressive work, should be applied to the elements of the system which are frequently changed and are complex. Based on this, we propose a maintenance guidance model (MGM) which is tested against real-world data. MGM takes into account several dimensions of complexity: size, structural complexity and coupling. Results show that maintainers of the eight open source systems studied tend, in general, to prioritize their anti-regressive work in line with the predictions given by our MGM, even though, divergences also exist. MGM offers a history-based alternative to existing approaches to the identification of elements for anti-regressive work, most of which use static code characteristics only.","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":"122233426","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}
引用次数: 11
Tracing Model Elements 跟踪模型元素
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362623
Sven Wenzel, Hermann Hutter, U. Kelter
In model-driven engineering developers work mainly or only with models, which exist in many versions. This paper presents an approach to trace single model elements or groups of elements within a version history of a model. It also offers analysis capabilities such as detection of logical coupling between model elements. The approach uses a differencing algorithm blown as SiDiff to identify similar elements in different versions of a model. SiDiff is highly configurable and thus our tracing approach can be adapted to all diagram types of the UML and to a large set of domain specific languages. The approach has been implemented as an Eclipse plug-in that visualizes all relevant information about the traces and it allows developers to interactively explore details. It has been evaluated by several groups of test persons; they considered most of the functions of the tool to be very useful.
在模型驱动工程中,开发人员主要或仅使用模型,这些模型存在于许多版本中。本文提出了一种在模型的版本历史中跟踪单个模型元素或元素组的方法。它还提供分析功能,例如检测模型元素之间的逻辑耦合。该方法使用一种称为SiDiff的差分算法来识别模型不同版本中的相似元素。SiDiff是高度可配置的,因此我们的跟踪方法可以适用于UML的所有图类型和大量领域特定语言。该方法已经被实现为一个Eclipse插件,它可以可视化所有与跟踪相关的信息,并且允许开发人员交互式地探索细节。它已经由几组测试人员进行了评估;他们认为这个工具的大部分功能都非常有用。
{"title":"Tracing Model Elements","authors":"Sven Wenzel, Hermann Hutter, U. Kelter","doi":"10.1109/ICSM.2007.4362623","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362623","url":null,"abstract":"In model-driven engineering developers work mainly or only with models, which exist in many versions. This paper presents an approach to trace single model elements or groups of elements within a version history of a model. It also offers analysis capabilities such as detection of logical coupling between model elements. The approach uses a differencing algorithm blown as SiDiff to identify similar elements in different versions of a model. SiDiff is highly configurable and thus our tracing approach can be adapted to all diagram types of the UML and to a large set of domain specific languages. The approach has been implemented as an Eclipse plug-in that visualizes all relevant information about the traces and it allows developers to interactively explore details. It has been evaluated by several groups of test persons; they considered most of the functions of the tool to be very useful.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"52 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":"133979770","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
Computation of Static Execute After Relation with Applications to Software Maintenance 静态执行后计算与软件维护应用的关系
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362642
Árpád Beszédes, T. Gergely, J. Jász, Gabriella Tóth, T. Gyimóthy, V. Rajlich
In this paper, we introduce static execute after (SEA) relationship among program components and present an efficient analysis algorithm. Our case studies show that SEA may approximate static slicing with perfect recall and high precision, while being much less expensive and more usable. When differentiating between explicit and hidden dependencies, our case studies also show that SEA may correlate with direct and indirect class coupling. We speculate that SEA may find applications in computation of hidden dependencies and through it in many maintenance tasks, including change propagation and regression testing.
本文引入了程序组件之间的静态执行后(SEA)关系,并提出了一种高效的分析算法。我们的案例研究表明,SEA可以近似于静态切片,具有完美的召回率和高精度,同时成本更低,可用性更高。在区分显式依赖和隐藏依赖时,我们的案例研究还表明SEA可能与直接和间接类耦合相关。我们推测SEA可以在隐藏依赖项的计算中找到应用,并通过它在许多维护任务中找到应用,包括变更传播和回归测试。
{"title":"Computation of Static Execute After Relation with Applications to Software Maintenance","authors":"Árpád Beszédes, T. Gergely, J. Jász, Gabriella Tóth, T. Gyimóthy, V. Rajlich","doi":"10.1109/ICSM.2007.4362642","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362642","url":null,"abstract":"In this paper, we introduce static execute after (SEA) relationship among program components and present an efficient analysis algorithm. Our case studies show that SEA may approximate static slicing with perfect recall and high precision, while being much less expensive and more usable. When differentiating between explicit and hidden dependencies, our case studies also show that SEA may correlate with direct and indirect class coupling. We speculate that SEA may find applications in computation of hidden dependencies and through it in many maintenance tasks, including change propagation and regression testing.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"48 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":"122976497","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}
引用次数: 27
An Activity-Based Quality Model for Maintainability 基于活动的可维护性质量模型
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362631
F. Deißenböck, S. Wagner, M. Pizka, S. Teuchert, J. Girard
Maintainability is a key quality attribute of successful software systems. However, its management in practice is still problematic. Currently, there is no comprehensive basis for assessing and improving the maintainability of software systems. Quality models have been proposed to solve this problem. Nevertheless, existing approaches do not explicitly take into account the maintenance activities, that largely determine the software maintenance effort. This paper proposes a 2-dimensional model of maintainability that explicitly associates system properties with the activities carried out during maintenance. The separation of activities and properties facilitates the identification of sound quality criteria and allows to reason about their interdependencies. This transforms the quality model into a structured and comprehensive quality knowledge base that is usable in industrial project environments. For example, review guidelines can be generated from it. The model is based on an explicit quality metamodel that supports its systematic construction and fosters preciseness as well as completeness. An industrial case study demonstrates the applicability of the model for the evaluation of the maintainability of Matlab Simulink models that are frequently used in model-based development of embedded systems.
可维护性是成功软件系统的关键质量属性。然而,其在实践中的管理仍存在问题。目前,还没有一个全面的基础来评估和改进软件系统的可维护性。人们提出了一些质量模型来解决这个问题。然而,现有的方法并没有明确地考虑到维护活动,这在很大程度上决定了软件维护工作。本文提出了一个二维可维护性模型,该模型显式地将系统属性与维护期间执行的活动联系起来。活动和属性的分离有助于确定健全的质量标准,并允许对它们的相互依赖性进行推理。这将质量模型转换为可用于工业项目环境的结构化和全面的质量知识库。例如,评审指南可以从中生成。该模型基于一个明确的质量元模型,该模型支持其系统构建,并促进准确性和完整性。一个工业案例研究证明了该模型在评估基于模型的嵌入式系统开发中经常使用的Matlab Simulink模型的可维护性方面的适用性。
{"title":"An Activity-Based Quality Model for Maintainability","authors":"F. Deißenböck, S. Wagner, M. Pizka, S. Teuchert, J. Girard","doi":"10.1109/ICSM.2007.4362631","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362631","url":null,"abstract":"Maintainability is a key quality attribute of successful software systems. However, its management in practice is still problematic. Currently, there is no comprehensive basis for assessing and improving the maintainability of software systems. Quality models have been proposed to solve this problem. Nevertheless, existing approaches do not explicitly take into account the maintenance activities, that largely determine the software maintenance effort. This paper proposes a 2-dimensional model of maintainability that explicitly associates system properties with the activities carried out during maintenance. The separation of activities and properties facilitates the identification of sound quality criteria and allows to reason about their interdependencies. This transforms the quality model into a structured and comprehensive quality knowledge base that is usable in industrial project environments. For example, review guidelines can be generated from it. The model is based on an explicit quality metamodel that supports its systematic construction and fosters preciseness as well as completeness. An industrial case study demonstrates the applicability of the model for the evaluation of the maintainability of Matlab Simulink models that are frequently used in model-based development of embedded systems.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"13 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":"131549827","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}
引用次数: 111
A Maintainable Software Architecture for Fast and Modular Bioinformatics Sequence Search 一种可维护的快速模块化生物信息学序列搜索软件体系结构
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362627
J. Archuleta, E. Tilevich, Wu-chun Feng
Bioinformaticists use the Basic Local Alignment Search Tool (BLAST) to characterize an unknown sequence by comparing it against a database of known sequences, thus detecting evolutionary relationships and biological properties. mpiBLAST is a widely-used, high-performance, open-source parallelization of BLAST that runs on a computer cluster delivering super-linear speedups. However, the Achilles heel of mpiBLAST is its lack of modularity, thus adversely affecting maintainability and extensibility. Alleviating this shortcoming requires an architectural refactoring to improve maintenance and extensibility while preserving high performance. Toward that end, this paper evaluates five different software architectures and details how each satisfies our design objectives. In addition, we introduce a novel approach to using mixin layers to enable mixing-and-matching of modules in constructing sequence-search applications for a variety of high-performance computing systems. Our design, which we call "mixin layers with refined roles", utilizes mixin layers to separate functionality into complementary modules and the refined roles in each layer improve the inherently modular design by precipitating flexible and structured parallel development, a necessity for an open-source application. We believe that this new software architecture for mpiBLAST-2.0 will benefit both the users and developers of the package and that our evaluation of different software architectures will be of value to other software engineers faced with the challenges of creating maintainable and extensible, high-performance, bioinformatics software.
生物信息学家使用基本局部比对搜索工具(BLAST)通过将未知序列与已知序列的数据库进行比较来确定未知序列的特征,从而检测进化关系和生物学特性。mpiBLAST是一种广泛使用的、高性能的、开源的并行化BLAST,它运行在计算机集群上,提供超线性的加速。然而,mpiBLAST的致命弱点是缺乏模块化,从而对可维护性和可扩展性产生不利影响。要缓解这个缺点,需要进行架构重构,以在保持高性能的同时改进维护和可扩展性。为此,本文评估了五种不同的软件架构,并详细说明了每种架构如何满足我们的设计目标。此外,我们还介绍了一种使用混合层的新方法,以便在为各种高性能计算系统构建序列搜索应用程序时实现模块的混合和匹配。我们的设计,我们称之为“混合层与精炼角色”,利用混合层将功能分离到互补模块中,每个层中的精炼角色通过促成灵活和结构化的并行开发来改进固有的模块化设计,这是开源应用程序的必要条件。我们相信,mpiBLAST-2.0的新软件架构将使软件包的用户和开发人员都受益,我们对不同软件架构的评估将对其他面临创建可维护和可扩展的高性能生物信息学软件挑战的软件工程师有价值。
{"title":"A Maintainable Software Architecture for Fast and Modular Bioinformatics Sequence Search","authors":"J. Archuleta, E. Tilevich, Wu-chun Feng","doi":"10.1109/ICSM.2007.4362627","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362627","url":null,"abstract":"Bioinformaticists use the Basic Local Alignment Search Tool (BLAST) to characterize an unknown sequence by comparing it against a database of known sequences, thus detecting evolutionary relationships and biological properties. mpiBLAST is a widely-used, high-performance, open-source parallelization of BLAST that runs on a computer cluster delivering super-linear speedups. However, the Achilles heel of mpiBLAST is its lack of modularity, thus adversely affecting maintainability and extensibility. Alleviating this shortcoming requires an architectural refactoring to improve maintenance and extensibility while preserving high performance. Toward that end, this paper evaluates five different software architectures and details how each satisfies our design objectives. In addition, we introduce a novel approach to using mixin layers to enable mixing-and-matching of modules in constructing sequence-search applications for a variety of high-performance computing systems. Our design, which we call \"mixin layers with refined roles\", utilizes mixin layers to separate functionality into complementary modules and the refined roles in each layer improve the inherently modular design by precipitating flexible and structured parallel development, a necessity for an open-source application. We believe that this new software architecture for mpiBLAST-2.0 will benefit both the users and developers of the package and that our evaluation of different software architectures will be of value to other software engineers faced with the challenges of creating maintainable and extensible, high-performance, bioinformatics software.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"7 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":"121098939","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}
引用次数: 12
Applying Interface-Contract Mutation in Regression Testing of Component-Based Software 接口契约突变在构件软件回归测试中的应用
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362630
Shan-Shan Hou, Lu Zhang, Tao Xie, Hong Mei, Jiasu Sun
Regression testing, which plays an important role in software maintenance, usually relies on test adequacy criteria to select and prioritize test cases. However, with the wide use and reuse of black-box components, such as reusable class libraries and COTS components, it is challenging to establish test adequacy criteria for testing software systems built on components whose source code is not available. Without source code or detailed documents, the misunderstanding between the system integrators and component providers has become a main factor of causing faults in component-based software. In this paper, we apply mutation on interface contracts, which can describe the rights and obligations between component users and providers, to simulate the faults that may occur in this way of software development. The mutation adequacy score for killing the mutants of interface contracts can serve as a test adequacy criterion. We performed an experimental study on three subject systems to evaluate the proposed approach together with four other existing criteria. The experimental results show that our adequacy criterion is helpful for both selecting good-quality test cases and scheduling test cases in an order of exposing faults quickly in regression testing of component-based software.
回归测试在软件维护中扮演着重要的角色,它通常依赖于测试充分性标准来选择和优先考虑测试用例。然而,随着黑盒组件(如可重用类库和COTS组件)的广泛使用和重用,为构建在源代码不可用的组件上的软件系统建立测试充分性标准是一项挑战。由于没有源代码和详细的文档,系统集成商和组件供应商之间的误解已经成为导致组件软件故障的主要因素。在本文中,我们将突变应用于接口契约,它可以描述组件用户和提供者之间的权利和义务,以模拟在这种软件开发方式中可能发生的错误。消灭接口契约突变体的突变充分性分数可以作为测试充分性标准。我们对三个主题系统进行了实验研究,以评估所提出的方法以及其他四个现有标准。实验结果表明,在基于组件的软件回归测试中,我们的充分性准则既有助于选择高质量的测试用例,又有助于按照快速暴露故障的顺序对测试用例进行调度。
{"title":"Applying Interface-Contract Mutation in Regression Testing of Component-Based Software","authors":"Shan-Shan Hou, Lu Zhang, Tao Xie, Hong Mei, Jiasu Sun","doi":"10.1109/ICSM.2007.4362630","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362630","url":null,"abstract":"Regression testing, which plays an important role in software maintenance, usually relies on test adequacy criteria to select and prioritize test cases. However, with the wide use and reuse of black-box components, such as reusable class libraries and COTS components, it is challenging to establish test adequacy criteria for testing software systems built on components whose source code is not available. Without source code or detailed documents, the misunderstanding between the system integrators and component providers has become a main factor of causing faults in component-based software. In this paper, we apply mutation on interface contracts, which can describe the rights and obligations between component users and providers, to simulate the faults that may occur in this way of software development. The mutation adequacy score for killing the mutants of interface contracts can serve as a test adequacy criterion. We performed an experimental study on three subject systems to evaluate the proposed approach together with four other existing criteria. The experimental results show that our adequacy criterion is helpful for both selecting good-quality test cases and scheduling test cases in an order of exposing faults quickly in regression testing of component-based software.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"240 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":"133390261","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
Matching Control Flow of Program Versions 程序版本匹配控制流程
Pub Date : 2007-10-22 DOI: 10.1109/ICSM.2007.4362621
V. Nagarajan, Rajiv Gupta, Matias Madou, X. Zhang, B. D. Sutter
In many application areas, including piracy detection, software debugging and maintenance, situations arise in which there is a need for comparing two versions of a program that dynamically behave the same even though they statically appear to be different. Recently dynamic matching [18] was proposed by us which uses execution histories to automatically produce mappings between instructions in the two program versions. The mappings then can be used to understand the correspondence between the two versions by a user involved in software piracy detection or a comparison checker involved in debugging of optimized code. However, if a program's control flow is substantially altered, which usually occurs in obfuscation or even manual transformations, mappings at instruction level are not sufficient to enable a good understanding of the correspondence. In this paper, we present a comprehensive dynamic matching algorithm with the focus on call graph and control flow matching. Our technique works in the presence of aggressive control flow transformations (both interprocedural such as function Mining/outlining and intraprocedural such as control flow flattening) and produces mappings of interprocedural and intraprocedural control flow in addition to mapping between instructions. We evaluated our dynamic matching algorithms by attempting to match original program with versions that were subjected to popular obfuscation and control flow altering transformations. Our experimental results show that the control flow mappings produced are highly accurate and complete, for the programs considered.
在许多应用领域,包括盗版检测、软件调试和维护,都会出现这样的情况,即需要比较动态行为相同的程序的两个版本,即使它们静态地看起来不同。最近,我们提出了动态匹配[18],它利用执行历史自动生成两个程序版本中指令之间的映射。然后,参与软件盗版检测的用户或参与优化代码调试的比较检查人员可以使用映射来了解两个版本之间的对应关系。然而,如果程序的控制流发生了实质性的改变,这通常发生在混淆或甚至手动转换中,则指令级的映射不足以很好地理解对应关系。本文提出了一种综合的动态匹配算法,重点研究了呼叫图和控制流的匹配。我们的技术在积极的控制流转换(过程间如功能挖掘/概述和过程内如控制流平坦化)的存在下工作,除了指令之间的映射外,还产生过程间和过程内控制流的映射。我们通过尝试将原始程序与受流行混淆和控制流改变转换影响的版本相匹配来评估我们的动态匹配算法。实验结果表明,对于所考虑的程序,所生成的控制流映射是高度精确和完整的。
{"title":"Matching Control Flow of Program Versions","authors":"V. Nagarajan, Rajiv Gupta, Matias Madou, X. Zhang, B. D. Sutter","doi":"10.1109/ICSM.2007.4362621","DOIUrl":"https://doi.org/10.1109/ICSM.2007.4362621","url":null,"abstract":"In many application areas, including piracy detection, software debugging and maintenance, situations arise in which there is a need for comparing two versions of a program that dynamically behave the same even though they statically appear to be different. Recently dynamic matching [18] was proposed by us which uses execution histories to automatically produce mappings between instructions in the two program versions. The mappings then can be used to understand the correspondence between the two versions by a user involved in software piracy detection or a comparison checker involved in debugging of optimized code. However, if a program's control flow is substantially altered, which usually occurs in obfuscation or even manual transformations, mappings at instruction level are not sufficient to enable a good understanding of the correspondence. In this paper, we present a comprehensive dynamic matching algorithm with the focus on call graph and control flow matching. Our technique works in the presence of aggressive control flow transformations (both interprocedural such as function Mining/outlining and intraprocedural such as control flow flattening) and produces mappings of interprocedural and intraprocedural control flow in addition to mapping between instructions. We evaluated our dynamic matching algorithms by attempting to match original program with versions that were subjected to popular obfuscation and control flow altering transformations. Our experimental results show that the control flow mappings produced are highly accurate and complete, for the programs considered.","PeriodicalId":263470,"journal":{"name":"2007 IEEE International Conference on Software Maintenance","volume":"60 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":"121240115","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}
引用次数: 34
期刊
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