首页 > 最新文献

ESEC/FSE '11最新文献

英文 中文
Design and validation of feature-based process model tailoring: a sample implementation of PDE 基于特征的流程模型裁剪的设计和验证:PDE的一个示例实现
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025192
Daniela Costache, G. Kalus, M. Kuhrmann
A comprehensive software development process needs some adjustment before it can be used: It needs to be tailored to the particular organization's and project's setting. The definition of an appropriate tailoring model is a critical task. Process users need tailoring that enables them to trim the process to reflect the actual needs. Process engineers need a method and a tool to define a valid model. The SE Book of T-Systems contains a feature model to describe variable parts of the process model and relations and constraints between these parts. The notation and semantics of feature models can be used to visually author a consistent and valid tailoring model. In this paper we present a tool for visual modeling and validation of process model tailoring based on feature models using the SE Book of T-Systems as an example. The tool is based on a domain-specific language that represents the process model. It leverages the semantics of feature models to provide an easy-to-use editor for tailoring-enabled process models.
一个全面的软件开发过程在使用之前需要一些调整:它需要根据特定的组织和项目的设置进行裁剪。定义合适的裁剪模型是一项关键任务。过程用户需要剪裁,使他们能够调整过程以反映实际需求。过程工程师需要一种方法和工具来定义有效的模型。T-Systems的SE Book包含一个特征模型,用于描述流程模型的可变部分以及这些部分之间的关系和约束。特征模型的符号和语义可以用来可视化地创建一致和有效的裁剪模型。本文以T-Systems的SE Book为例,提出了一种基于特征模型的过程模型裁剪可视化建模和验证工具。该工具基于表示流程模型的特定于领域的语言。它利用特性模型的语义为支持定制的流程模型提供易于使用的编辑器。
{"title":"Design and validation of feature-based process model tailoring: a sample implementation of PDE","authors":"Daniela Costache, G. Kalus, M. Kuhrmann","doi":"10.1145/2025113.2025192","DOIUrl":"https://doi.org/10.1145/2025113.2025192","url":null,"abstract":"A comprehensive software development process needs some adjustment before it can be used: It needs to be tailored to the particular organization's and project's setting. The definition of an appropriate tailoring model is a critical task. Process users need tailoring that enables them to trim the process to reflect the actual needs. Process engineers need a method and a tool to define a valid model. The SE Book of T-Systems contains a feature model to describe variable parts of the process model and relations and constraints between these parts. The notation and semantics of feature models can be used to visually author a consistent and valid tailoring model. In this paper we present a tool for visual modeling and validation of process model tailoring based on feature models using the SE Book of T-Systems as an example. The tool is based on a domain-specific language that represents the process model. It leverages the semantics of feature models to provide an easy-to-use editor for tailoring-enabled process models.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122406357","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
An architecture-centric approach for goal-driven requirements elicitation 以体系结构为中心的方法,用于目标驱动的需求提取
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025167
Zoya Durdik
Software system development typically starts from a requirement specification followed by stepwise refinement of available requirements while transferring them into the system architecture. However, the granularity and the amount of requirements to be elicited for a successful architectural design are not well understood. This paper proposes a process concept to support system development with the help of an architecture-centric approach for goal-driven requirements elicitation. The process focuses on multiple quality dimensions, such as performance, reliability and scalability, and at the same time shall reduce costs and risks through early decision evaluation. The main contribution of this paper is a novel process where not only requirements can drive architectural design, but also architectural design can selectively drive requirement elicitation with the help of hypotheses connected to the selected architectural solutions. The paper concludes with a discussion on its possible empirical validation.
软件系统开发通常从需求规范开始,随后逐步细化可用需求,同时将其转移到系统架构中。然而,对于一个成功的架构设计所需要的粒度和需求的数量还没有得到很好的理解。本文提出了一个过程概念,在以体系结构为中心的方法的帮助下支持系统开发,以实现目标驱动的需求提取。该过程关注多个质量维度,如性能、可靠性和可扩展性,同时通过早期决策评估降低成本和风险。本文的主要贡献是一个新的过程,在这个过程中,不仅需求可以驱动架构设计,而且架构设计可以在与所选架构解决方案相关的假设的帮助下,有选择地驱动需求引出。文章最后讨论了其可能的实证验证。
{"title":"An architecture-centric approach for goal-driven requirements elicitation","authors":"Zoya Durdik","doi":"10.1145/2025113.2025167","DOIUrl":"https://doi.org/10.1145/2025113.2025167","url":null,"abstract":"Software system development typically starts from a requirement specification followed by stepwise refinement of available requirements while transferring them into the system architecture. However, the granularity and the amount of requirements to be elicited for a successful architectural design are not well understood. This paper proposes a process concept to support system development with the help of an architecture-centric approach for goal-driven requirements elicitation. The process focuses on multiple quality dimensions, such as performance, reliability and scalability, and at the same time shall reduce costs and risks through early decision evaluation. The main contribution of this paper is a novel process where not only requirements can drive architectural design, but also architectural design can selectively drive requirement elicitation with the help of hypotheses connected to the selected architectural solutions. The paper concludes with a discussion on its possible empirical validation.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"296 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121204964","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
ReLink: recovering links between bugs and changes ReLink:恢复bug和更改之间的链接
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025120
Rongxin Wu, Hongyu Zhang, Sunghun Kim, S. Cheung
Software defect information, including links between bugs and committed changes, plays an important role in software maintenance such as measuring quality and predicting defects. Usually, the links are automatically mined from change logs and bug reports using heuristics such as searching for specific keywords and bug IDs in change logs. However, the accuracy of these heuristics depends on the quality of change logs. Bird et al. found that there are many missing links due to the absence of bug references in change logs. They also found that the missing links lead to biased defect information, and it affects defect prediction performance. We manually inspected the explicit links, which have explicit bug IDs in change logs and observed that the links exhibit certain features. Based on our observation, we developed an automatic link recovery algorithm, ReLink, which automatically learns criteria of features from explicit links to recover missing links. We applied ReLink to three open source projects. ReLink reliably identified links with 89% precision and 78% recall on average, while the traditional heuristics alone achieve 91% precision and 64% recall. We also evaluated the impact of recovered links on software maintainability measurement and defect prediction, and found the results of ReLink yields significantly better accuracy than those of traditional heuristics.
软件缺陷信息,包括错误和提交的更改之间的链接,在软件维护中扮演着重要的角色,例如度量质量和预测缺陷。通常,使用启发式方法(例如在更改日志中搜索特定的关键字和错误id)自动从更改日志和错误报告中挖掘链接。然而,这些启发式的准确性取决于变更日志的质量。Bird等人发现,由于变更日志中没有bug引用,导致了很多缺失的环节。他们还发现缺失的链接会导致有偏差的缺陷信息,并影响缺陷预测的性能。我们手动检查了显式链接,这些链接在更改日志中具有显式的错误id,并观察到这些链接显示了某些特性。基于我们的观察,我们开发了一种自动链接恢复算法,ReLink,它可以自动从显式链接中学习特征标准来恢复缺失的链接。我们将ReLink应用于三个开源项目。ReLink可靠地识别链接,平均准确率为89%,召回率为78%,而传统的启发式方法的准确率为91%,召回率为64%。我们还评估了恢复链接对软件可维护性度量和缺陷预测的影响,发现ReLink的结果比传统的启发式方法产生了明显更好的准确性。
{"title":"ReLink: recovering links between bugs and changes","authors":"Rongxin Wu, Hongyu Zhang, Sunghun Kim, S. Cheung","doi":"10.1145/2025113.2025120","DOIUrl":"https://doi.org/10.1145/2025113.2025120","url":null,"abstract":"Software defect information, including links between bugs and committed changes, plays an important role in software maintenance such as measuring quality and predicting defects. Usually, the links are automatically mined from change logs and bug reports using heuristics such as searching for specific keywords and bug IDs in change logs. However, the accuracy of these heuristics depends on the quality of change logs. Bird et al. found that there are many missing links due to the absence of bug references in change logs. They also found that the missing links lead to biased defect information, and it affects defect prediction performance. We manually inspected the explicit links, which have explicit bug IDs in change logs and observed that the links exhibit certain features. Based on our observation, we developed an automatic link recovery algorithm, ReLink, which automatically learns criteria of features from explicit links to recover missing links. We applied ReLink to three open source projects. ReLink reliably identified links with 89% precision and 78% recall on average, while the traditional heuristics alone achieve 91% precision and 64% recall. We also evaluated the impact of recovered links on software maintainability measurement and defect prediction, and found the results of ReLink yields significantly better accuracy than those of traditional heuristics.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117305274","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}
引用次数: 359
Proving programs robust 证明程序的健壮性
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025131
Swarat Chaudhuri, Sumit Gulwani, Roberto Lublinerman, S. Navidpour
We present a program analysis for verifying quantitative robustness properties of programs, stated generally as: "If the inputs of a program are perturbed by an arbitrary amount epsilon, then its outputs change at most by (K . epsilon), where K can depend on the size of the input but not its value." Robustness properties generalize the analytic notion of continuity---e.g., while the function ex is continuous, it is not robust. Our problem is to verify the robustness of a function P that is coded as an imperative program, and can use diverse data types and features such as branches and loops. Our approach to the problem soundly decomposes it into two subproblems: (a) verifying that the smallest possible perturbations to the inputs of P do not change the corresponding outputs significantly, even if control now flows along a different control path; and (b) verifying the robustness of the computation along each control-flow path of P. To solve the former subproblem, we build on an existing method for verifying that a program encodes a continuous function [5]. The latter is solved using a static analysis that bounds the magnitude of the slope of any function computed by a control flow path of P. The outcome is a sound program analysis for robustness that uses proof obligations which do not refer to epsilon-changes and can often be fully automated using off-the-shelf SMT-solvers. We identify three application domains for our analysis. First, our analysis can be used to guarantee the predictable execution of embedded control software, whose inputs come from physical sources and can suffer from error and uncertainty. A guarantee of robustness ensures that the system does not react disproportionately to such uncertainty. Second, our analysis is directly applicable to approximate computation, and can be used to provide foundations for a recently-proposed program approximation scheme called {loop perforation}. A third application is in database privacy: proofs of robustness of queries are essential to differential privacy, the most popular notion of privacy for statistical databases.
我们提出了一个程序分析来验证程序的定量鲁棒性,一般表述为:“如果一个程序的输入受到任意数量的epsilon的扰动,那么它的输出最多改变(K)。) K可以取决于输入的大小而不是它的值鲁棒性概括了连续性的解析概念——例如:,虽然函数ex是连续的,但它不是鲁棒的。我们的问题是验证函数P的健壮性,该函数被编码为命令式程序,并且可以使用不同的数据类型和特性,如分支和循环。我们对该问题的解决方法将其完整地分解为两个子问题:(a)验证即使控制现在沿着不同的控制路径流动,对P输入的最小可能扰动也不会显著改变相应的输出;(b)验证沿p的每个控制流路径计算的鲁棒性。为了解决前一个子问题,我们建立在验证程序编码连续函数[5]的现有方法的基础上。后者使用静态分析来解决,该分析限制了由控制流路径p计算的任何函数的斜率的大小。结果是一个可靠的鲁棒性程序分析,它使用不涉及epsilon变化的证明义务,并且通常可以使用现成的smt求解器完全自动化。我们为分析确定了三个应用程序域。首先,我们的分析可以用来保证嵌入式控制软件的可预测执行,这些软件的输入来自物理来源,可能会出现错误和不确定性。鲁棒性保证确保系统不会对这种不确定性做出不成比例的反应。其次,我们的分析直接适用于近似计算,并可用于为最近提出的称为{循环穿孔}的程序近似方案提供基础。第三个应用是数据库隐私:查询健壮性的证明对于差异隐私至关重要,差异隐私是统计数据库中最流行的隐私概念。
{"title":"Proving programs robust","authors":"Swarat Chaudhuri, Sumit Gulwani, Roberto Lublinerman, S. Navidpour","doi":"10.1145/2025113.2025131","DOIUrl":"https://doi.org/10.1145/2025113.2025131","url":null,"abstract":"We present a program analysis for verifying quantitative robustness properties of programs, stated generally as: \"If the inputs of a program are perturbed by an arbitrary amount epsilon, then its outputs change at most by (K . epsilon), where K can depend on the size of the input but not its value.\" Robustness properties generalize the analytic notion of continuity---e.g., while the function ex is continuous, it is not robust. Our problem is to verify the robustness of a function P that is coded as an imperative program, and can use diverse data types and features such as branches and loops.\u0000 Our approach to the problem soundly decomposes it into two subproblems: (a) verifying that the smallest possible perturbations to the inputs of P do not change the corresponding outputs significantly, even if control now flows along a different control path; and (b) verifying the robustness of the computation along each control-flow path of P. To solve the former subproblem, we build on an existing method for verifying that a program encodes a continuous function [5]. The latter is solved using a static analysis that bounds the magnitude of the slope of any function computed by a control flow path of P. The outcome is a sound program analysis for robustness that uses proof obligations which do not refer to epsilon-changes and can often be fully automated using off-the-shelf SMT-solvers.\u0000 We identify three application domains for our analysis. First, our analysis can be used to guarantee the predictable execution of embedded control software, whose inputs come from physical sources and can suffer from error and uncertainty. A guarantee of robustness ensures that the system does not react disproportionately to such uncertainty. Second, our analysis is directly applicable to approximate computation, and can be used to provide foundations for a recently-proposed program approximation scheme called {loop perforation}. A third application is in database privacy: proofs of robustness of queries are essential to differential privacy, the most popular notion of privacy for statistical databases.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"174 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115567738","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}
引用次数: 132
Checking conformance of a producer and a consumer 检查生产者和消费者的一致性
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025132
E. Driscoll, Amanda Burton, T. Reps
This paper addresses the problem of identifying incompatibilities between two programs that operate in a producer/consumer relationship. It describes the techniques that are incorporated in a tool called PCCA (Producer-Consumer Conformance Analyzer), which attempts to (i) determine whether the consumer is prepared to accept all messages that the producer can emit, or (ii) find a counter-example: a message that the producer can emit and the consumer considers ill-formed.
本文解决了在生产者/消费者关系中运行的两个程序之间识别不兼容性的问题。它描述了一个名为PCCA(生产者-消费者一致性分析器)的工具中包含的技术,该工具试图(i)确定消费者是否准备接受生产者可以发出的所有消息,或者(ii)找到一个反例:生产者可以发出的消息,而消费者认为是不正确的。
{"title":"Checking conformance of a producer and a consumer","authors":"E. Driscoll, Amanda Burton, T. Reps","doi":"10.1145/2025113.2025132","DOIUrl":"https://doi.org/10.1145/2025113.2025132","url":null,"abstract":"This paper addresses the problem of identifying incompatibilities between two programs that operate in a producer/consumer relationship. It describes the techniques that are incorporated in a tool called PCCA (Producer-Consumer Conformance Analyzer), which attempts to (i) determine whether the consumer is prepared to accept all messages that the producer can emit, or (ii) find a counter-example: a message that the producer can emit and the consumer considers ill-formed.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"60 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115673264","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}
引用次数: 14
Probabilistic dataflow analysis using path profiles on structure graphs 在结构图上使用路径轮廓的概率数据流分析
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025206
A. Ramamurthi, Subhajit Roy, Y. Srikant
Speculative optimizations are increasingly becoming popular for improving program performance by allowing transformations that benefit frequently traversed program paths. Such optimizations are based on dataflow facts which are mostly true, though not always safe. Probabilistic dataflow analysis frameworks infer such facts about a program, while also providing the probability with which a fact is likely to be true. We propose a new Probabilistic Dataflow Analysis Framework which uses path profiles and information about the nesting structure of loops to obtain improved probabilities of dataflow facts.
推测性优化越来越流行,因为它允许对经常遍历的程序路径有利的转换,从而提高程序性能。这种优化基于数据流事实,这些事实大多是正确的,尽管并不总是安全的。概率数据流分析框架推断有关程序的这些事实,同时还提供事实可能为真的概率。我们提出了一种新的概率数据流分析框架,该框架利用路径轮廓和循环嵌套结构信息来获得数据流事实的改进概率。
{"title":"Probabilistic dataflow analysis using path profiles on structure graphs","authors":"A. Ramamurthi, Subhajit Roy, Y. Srikant","doi":"10.1145/2025113.2025206","DOIUrl":"https://doi.org/10.1145/2025113.2025206","url":null,"abstract":"Speculative optimizations are increasingly becoming popular for improving program performance by allowing transformations that benefit frequently traversed program paths. Such optimizations are based on dataflow facts which are mostly true, though not always safe. Probabilistic dataflow analysis frameworks infer such facts about a program, while also providing the probability with which a fact is likely to be true. We propose a new Probabilistic Dataflow Analysis Framework which uses path profiles and information about the nesting structure of loops to obtain improved probabilities of dataflow facts.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116178665","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}
引用次数: 1
New ideas track: testing mapreduce-style programs 新思路跟踪:测试mapreduce风格的程序
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025204
Christoph Csallner, L. Fegaras, Chengkai Li
MapReduce has become a common programming model for processing very large amounts of data, which is needed in a spectrum of modern computing applications. Today several MapReduce implementations and execution systems exist and many MapReduce programs are being developed and deployed in practice. However, developing MapReduce programs is not always an easy task. The programming model makes programs prone to several MapReduce-specific bugs. That is, to produce deterministic results, a MapReduce program needs to satisfy certain high-level correctness conditions. A violating program may yield different output values on the same input data, based on low-level infrastructure events such as network latency, scheduling decisions, etc. Current MapReduce systems and tools are lacking in support for checking these conditions and reporting violations. This paper presents a novel technique that systematically searches for such bugs in MapReduce applications and generates corresponding test cases. The technique works by encoding the high-level MapReduce correctness conditions as symbolic program constraints and checking them for the program under test. To the best of our knowledge, this is the first approach to addressing this problem of MapReduce-style programming.
MapReduce已经成为处理大量数据的通用编程模型,这在一系列现代计算应用程序中都是必需的。今天,已经存在了几种MapReduce实现和执行系统,并且正在开发和部署许多MapReduce程序。然而,开发MapReduce程序并不总是一件容易的事。编程模型使程序容易出现一些特定于mapreduce的错误。也就是说,为了产生确定性的结果,MapReduce程序需要满足某些高级正确性条件。一个违反规则的程序可能会在相同的输入数据上产生不同的输出值,这取决于底层的基础设施事件,如网络延迟、调度决策等。当前的MapReduce系统和工具缺乏检查这些条件和报告违规的支持。本文提出了一种系统地搜索MapReduce应用程序中此类错误并生成相应测试用例的新技术。该技术的工作原理是将高级MapReduce正确性条件编码为符号程序约束,并为被测程序检查它们。据我们所知,这是解决mapreduce风格编程问题的第一种方法。
{"title":"New ideas track: testing mapreduce-style programs","authors":"Christoph Csallner, L. Fegaras, Chengkai Li","doi":"10.1145/2025113.2025204","DOIUrl":"https://doi.org/10.1145/2025113.2025204","url":null,"abstract":"MapReduce has become a common programming model for processing very large amounts of data, which is needed in a spectrum of modern computing applications. Today several MapReduce implementations and execution systems exist and many MapReduce programs are being developed and deployed in practice. However, developing MapReduce programs is not always an easy task. The programming model makes programs prone to several MapReduce-specific bugs. That is, to produce deterministic results, a MapReduce program needs to satisfy certain high-level correctness conditions. A violating program may yield different output values on the same input data, based on low-level infrastructure events such as network latency, scheduling decisions, etc. Current MapReduce systems and tools are lacking in support for checking these conditions and reporting violations.\u0000 This paper presents a novel technique that systematically searches for such bugs in MapReduce applications and generates corresponding test cases. The technique works by encoding the high-level MapReduce correctness conditions as symbolic program constraints and checking them for the program under test. To the best of our knowledge, this is the first approach to addressing this problem of MapReduce-style programming.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125773115","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}
引用次数: 35
Search based hierarchy generation for reverse engineered state machines 基于搜索的逆向工程状态机层次生成
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025170
Mathew Hall
Abstraction is a valuable tool that can play an important role in reducing the cost of maintenance of software systems. Despite the cost reduction abstract documentation can provide, the cost of generating documentation that offers an implementation-independent overview of the system often outweighs it. This has been the motivating force for tools and techniques that reduce the cost of documentation generation, including this work. State machines offer an ideal level of abstraction and techniques to infer them from machines are already mature. Despite this, the abstraction state machines provide is restricted as they become unmanageable when they are of any significant size. As a result, inference tools are only ideal for those who are already familiar with the system. This work focuses on making state machines useful for larger systems. In order to do so the complexity of a machine needs to be reduced; this is realised by introducing a hierarchy to the machine, making them closer to Harel's Statechart formalism (without concurrency).
抽象是一种有价值的工具,可以在降低软件系统维护成本方面发挥重要作用。尽管抽象文档可以降低成本,但是生成提供与实现无关的系统概览的文档的成本通常大于它。这一直是减少文档生成成本的工具和技术的推动力,包括本工作。状态机提供了理想的抽象级别,并且从机器中推断它们的技术已经成熟。尽管如此,抽象状态机提供的功能还是受到了限制,因为当它们的规模很大时,就会变得难以管理。因此,推理工具只适合那些已经熟悉系统的人。这项工作的重点是使状态机对更大的系统有用。为了做到这一点,需要降低机器的复杂性;这是通过向机器引入层次结构来实现的,使它们更接近Harel的Statechart形式(没有并发性)。
{"title":"Search based hierarchy generation for reverse engineered state machines","authors":"Mathew Hall","doi":"10.1145/2025113.2025170","DOIUrl":"https://doi.org/10.1145/2025113.2025170","url":null,"abstract":"Abstraction is a valuable tool that can play an important role in reducing the cost of maintenance of software systems. Despite the cost reduction abstract documentation can provide, the cost of generating documentation that offers an implementation-independent overview of the system often outweighs it. This has been the motivating force for tools and techniques that reduce the cost of documentation generation, including this work.\u0000 State machines offer an ideal level of abstraction and techniques to infer them from machines are already mature. Despite this, the abstraction state machines provide is restricted as they become unmanageable when they are of any significant size. As a result, inference tools are only ideal for those who are already familiar with the system.\u0000 This work focuses on making state machines useful for larger systems. In order to do so the complexity of a machine needs to be reduced; this is realised by introducing a hierarchy to the machine, making them closer to Harel's Statechart formalism (without concurrency).","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"60 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126423099","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}
引用次数: 1
PSPWizard: machine-assisted definition of temporal logical properties with specification patterns PSPWizard:具有规范模式的时间逻辑属性的机器辅助定义
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025193
M. Lumpe, Indika Meedeniya, Lars Grunske
Model checking provides a powerful means to assert and verify desired system properties. But, for the verification process to become feasible, a correct formulation of these properties in a temporal logic is necessary - a potential barrier to application in practice. Research on property specification has supplied us with rich pattern catalogs that capture commonly occurring system properties in different temporal logics. Furthermore, these property specification pattern catalogs usually offer both a structured English grammar to facilitate the pattern selection and an associated template solutions to express the properties formally. Yet, the actual use of property specification patterns remains cumbersome, due to limited tool support. For this reason, we have developed the Property Specification Pattern Wizard (PSPWizard), a framework that defines an interface for the currently accepted property specification pattern libraries. PSPWizard consists of two main building blocks: a mapping generator that weaves a given pattern library with a target logic and a GUI front-end to the structured English grammar tailored to those patterns that are supported in the target logic.
模型检查提供了断言和验证所需系统属性的强大方法。但是,为了使验证过程变得可行,必须在时间逻辑中对这些属性进行正确的表述-这是在实践中应用的潜在障碍。对属性规范的研究为我们提供了丰富的模式目录,这些模式目录可以在不同的时间逻辑中捕获常见的系统属性。此外,这些属性规范模式目录通常既提供结构化的英语语法以方便模式选择,也提供相关的模板解决方案以形式化地表示属性。然而,由于工具支持有限,属性规范模式的实际使用仍然很麻烦。出于这个原因,我们开发了属性规范模式向导(Property Specification Pattern Wizard, PSPWizard),这是一个为当前接受的属性规范模式库定义接口的框架。PSPWizard由两个主要构建块组成:一个映射生成器,它将给定的模式库与目标逻辑编织在一起,另一个是GUI前端,它将结构化英语语法定制为目标逻辑中支持的那些模式。
{"title":"PSPWizard: machine-assisted definition of temporal logical properties with specification patterns","authors":"M. Lumpe, Indika Meedeniya, Lars Grunske","doi":"10.1145/2025113.2025193","DOIUrl":"https://doi.org/10.1145/2025113.2025193","url":null,"abstract":"Model checking provides a powerful means to assert and verify desired system properties. But, for the verification process to become feasible, a correct formulation of these properties in a temporal logic is necessary - a potential barrier to application in practice. Research on property specification has supplied us with rich pattern catalogs that capture commonly occurring system properties in different temporal logics. Furthermore, these property specification pattern catalogs usually offer both a structured English grammar to facilitate the pattern selection and an associated template solutions to express the properties formally. Yet, the actual use of property specification patterns remains cumbersome, due to limited tool support. For this reason, we have developed the Property Specification Pattern Wizard (PSPWizard), a framework that defines an interface for the currently accepted property specification pattern libraries. PSPWizard consists of two main building blocks: a mapping generator that weaves a given pattern library with a target logic and a GUI front-end to the structured English grammar tailored to those patterns that are supported in the target logic.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131963149","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
How do fixes become bugs? 修复是如何变成bug的?
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025121
Zuoning Yin, Ding Yuan, Yuanyuan Zhou, S. Pasupathy, Lakshmi N. Bairavasundaram
Software bugs affect system reliability. When a bug is exposed in the field, developers need to fix them. Unfortunately, the bug-fixing process can also introduce errors, which leads to buggy patches that further aggravate the damage to end users and erode software vendors' reputation. This paper presents a comprehensive characteristic study on incorrect bug-fixes from large operating system code bases including Linux, OpenSolaris, FreeBSD and also a mature commercial OS developed and evolved over the last 12 years, investigating not only themistake patterns during bug-fixing but also the possible human reasons in the development process when these incorrect bug-fixes were introduced. Our major findings include: (1) at least 14.8%--24.4% of sampled fixes for post-release bugs in these large OSes are incorrect and have made impacts to end users. (2) Among several common bug types, concurrency bugs are the most difficult to fix correctly: 39% of concurrency bug fixes are incorrect. (3) Developers and reviewers for incorrect fixes usually do not have enough knowledge about the involved code. For example, 27% of the incorrect fixes are made by developers who have never touched the source code files associated with the fix. Our results provide useful guidelines to design new tools and also to improve the development process. Based on our findings, the commercial software vendor whose OS code we evaluated is building a tool to improve the bug fixing and code reviewing process.
软件bug会影响系统的可靠性。当bug在现场暴露时,开发人员需要修复它们。不幸的是,错误修复过程也可能引入错误,从而导致错误补丁,进一步加剧对最终用户的损害,并侵蚀软件供应商的声誉。本文对大型操作系统代码库(包括Linux、OpenSolaris、FreeBSD以及过去12年开发和发展的成熟商业操作系统)的错误修复进行了全面的特征研究,不仅调查了错误修复过程中的错误模式,还调查了在开发过程中引入这些错误修复时可能存在的人为原因。我们的主要发现包括:(1)在这些大型操作系统中,至少14.8%- 24.4%的发布后bug修复样本是不正确的,并且对最终用户产生了影响。(2)在几种常见的bug类型中,并发bug是最难正确修复的:39%的并发bug修复是不正确的。(3)不正确修复的开发人员和审查人员通常对所涉及的代码没有足够的了解。例如,27%的错误修复是由从未接触过与修复相关的源代码文件的开发人员完成的。我们的结果为设计新工具和改进开发过程提供了有用的指导。根据我们的发现,我们评估的操作系统代码的商业软件供应商正在构建一个工具来改进错误修复和代码审查过程。
{"title":"How do fixes become bugs?","authors":"Zuoning Yin, Ding Yuan, Yuanyuan Zhou, S. Pasupathy, Lakshmi N. Bairavasundaram","doi":"10.1145/2025113.2025121","DOIUrl":"https://doi.org/10.1145/2025113.2025121","url":null,"abstract":"Software bugs affect system reliability. When a bug is exposed in the field, developers need to fix them. Unfortunately, the bug-fixing process can also introduce errors, which leads to buggy patches that further aggravate the damage to end users and erode software vendors' reputation.\u0000 This paper presents a comprehensive characteristic study on incorrect bug-fixes from large operating system code bases including Linux, OpenSolaris, FreeBSD and also a mature commercial OS developed and evolved over the last 12 years, investigating not only themistake patterns during bug-fixing but also the possible human reasons in the development process when these incorrect bug-fixes were introduced. Our major findings include: (1) at least 14.8%--24.4% of sampled fixes for post-release bugs in these large OSes are incorrect and have made impacts to end users. (2) Among several common bug types, concurrency bugs are the most difficult to fix correctly: 39% of concurrency bug fixes are incorrect. (3) Developers and reviewers for incorrect fixes usually do not have enough knowledge about the involved code. For example, 27% of the incorrect fixes are made by developers who have never touched the source code files associated with the fix. Our results provide useful guidelines to design new tools and also to improve the development process. Based on our findings, the commercial software vendor whose OS code we evaluated is building a tool to improve the bug fixing and code reviewing process.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"26 1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131152239","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}
引用次数: 249
期刊
ESEC/FSE '11
全部 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