首页 > 最新文献

ESEC/FSE '11最新文献

英文 中文
Software architecture: reflections on an evolving discipline 软件架构:对不断发展的学科的反思
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025116
D. Garlan, M. Shaw
Software Architecture emerged in the 1990's as an important sub-field of software engineering. While good architectural design had long been recognized as critical to the success of any complex software system, before then the practice of architecting had relied largely on ad hoc, uncodified, and idiosyncratic techniques and knowledge. By the 2000's the field had matured to the point where there were widely-recognized taxonomies of architectural patterns, techniques for formally representing and analyzing architectures, methods for reviewing an architectural design, widespread adoption of architectural product lines and composition frameworks, and techniques for ensuring conformance between an architecture and an implementation of it. In this talk we reflect on the key enablers of a discipline of software architecture that led to these advances, the central ideas that form its core, and its enduring principles that continue to shape the field of software engineering. We consider both the important concepts on which it builds, as well as those that have built on top of it. Finally, we examine some of the important new trends and challenges that are likely to have an impact on how software architecture will evolve in the future.
软件架构作为软件工程的一个重要分支领域出现于20世纪90年代。虽然良好的架构设计长期以来一直被认为是任何复杂软件系统成功的关键,但在此之前,架构设计的实践主要依赖于特殊的、未编码的和特殊的技术和知识。到2000年代,该领域已经成熟到有了广泛认可的体系结构模式分类法、正式表示和分析体系结构的技术、审查体系结构设计的方法、体系结构产品线和组合框架的广泛采用,以及确保体系结构与其实现之间一致性的技术。在这次演讲中,我们将反思导致这些进步的软件架构学科的关键促成因素,形成其核心的中心思想,以及继续塑造软件工程领域的持久原则。我们既考虑它所建立的重要概念,也考虑那些在它之上建立的概念。最后,我们研究了一些重要的新趋势和挑战,这些趋势和挑战可能会对软件架构在未来的发展产生影响。
{"title":"Software architecture: reflections on an evolving discipline","authors":"D. Garlan, M. Shaw","doi":"10.1145/2025113.2025116","DOIUrl":"https://doi.org/10.1145/2025113.2025116","url":null,"abstract":"Software Architecture emerged in the 1990's as an important sub-field of software engineering. While good architectural design had long been recognized as critical to the success of any complex software system, before then the practice of architecting had relied largely on ad hoc, uncodified, and idiosyncratic techniques and knowledge. By the 2000's the field had matured to the point where there were widely-recognized taxonomies of architectural patterns, techniques for formally representing and analyzing architectures, methods for reviewing an architectural design, widespread adoption of architectural product lines and composition frameworks, and techniques for ensuring conformance between an architecture and an implementation of it. In this talk we reflect on the key enablers of a discipline of software architecture that led to these advances, the central ideas that form its core, and its enduring principles that continue to shape the field of software engineering. We consider both the important concepts on which it builds, as well as those that have built on top of it. Finally, we examine some of the important new trends and challenges that are likely to have an impact on how software architecture will evolve in the future.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"21 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":"123527939","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}
引用次数: 3
Modeling the HTML DOM and browser API in static analysis of JavaScript web applications 在JavaScript web应用程序的静态分析中对HTML DOM和浏览器API进行建模
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025125
S. Jensen, Magnus Madsen, Anders Møller
Developers of JavaScript web applications have little tool support for catching errors early in development. In comparison, an abundance of tools exist for statically typed languages, including sophisticated integrated development environments and specialized static analyses. Transferring such technologies to the domain of JavaScript web applications is challenging. In this paper, we discuss the challenges, which include the dynamic aspects of JavaScript and the complex interactions between JavaScript, HTML, and the browser. From this, we present the first static analysis that is capable of reasoning about the flow of control and data in modern JavaScript applications that interact with the HTML DOM and browser API. One application of such a static analysis is to detect type-related and dataflow-related programming errors. We report on experiments with a range of modern web applications, including Chrome Experiments and IE Test Drive applications, to measure the precision and performance of the technique. The experiments indicate that the analysis is able to show absence of errors related to missing object properties and to identify dead and unreachable code. By measuring the precision of the types inferred for object properties, the analysis is precise enough to show that most expressions have unique types. By also producing precise call graphs, the analysis additionally shows that most invocations in the programs are monomorphic. We furthermore study the usefulness of the analysis to detect spelling errors in the code. Despite the encouraging results, not all problems are solved and some of the experiments indicate a potential for improvement, which allows us to identify central remaining challenges and outline directions for future work.
JavaScript web应用程序的开发人员很少有工具支持在开发早期捕获错误。相比之下,针对静态类型语言存在大量的工具,包括复杂的集成开发环境和专门的静态分析。将这些技术转移到JavaScript web应用程序领域是具有挑战性的。在本文中,我们讨论了挑战,包括JavaScript的动态方面以及JavaScript、HTML和浏览器之间复杂的交互。由此,我们提出了第一个静态分析,它能够推理出与HTML DOM和浏览器API交互的现代JavaScript应用程序中的控制流和数据流。这种静态分析的一个应用是检测与类型相关和与数据流相关的编程错误。我们报告了一系列现代web应用程序的实验,包括Chrome实验和IE测试驱动应用程序,以衡量该技术的精度和性能。实验表明,该分析能够显示缺少与对象属性相关的错误,并识别出死代码和不可达代码。通过测量为对象属性推断的类型的精度,分析足够精确,可以显示大多数表达式具有唯一的类型。通过生成精确的调用图,分析还表明程序中的大多数调用都是单态的。我们进一步研究了分析在检测代码中的拼写错误方面的有用性。尽管取得了令人鼓舞的结果,但并非所有问题都得到了解决,一些实验表明有改进的潜力,这使我们能够确定仍然存在的主要挑战并概述未来工作的方向。
{"title":"Modeling the HTML DOM and browser API in static analysis of JavaScript web applications","authors":"S. Jensen, Magnus Madsen, Anders Møller","doi":"10.1145/2025113.2025125","DOIUrl":"https://doi.org/10.1145/2025113.2025125","url":null,"abstract":"Developers of JavaScript web applications have little tool support for catching errors early in development. In comparison, an abundance of tools exist for statically typed languages, including sophisticated integrated development environments and specialized static analyses. Transferring such technologies to the domain of JavaScript web applications is challenging. In this paper, we discuss the challenges, which include the dynamic aspects of JavaScript and the complex interactions between JavaScript, HTML, and the browser. From this, we present the first static analysis that is capable of reasoning about the flow of control and data in modern JavaScript applications that interact with the HTML DOM and browser API.\u0000 One application of such a static analysis is to detect type-related and dataflow-related programming errors. We report on experiments with a range of modern web applications, including Chrome Experiments and IE Test Drive applications, to measure the precision and performance of the technique. The experiments indicate that the analysis is able to show absence of errors related to missing object properties and to identify dead and unreachable code. By measuring the precision of the types inferred for object properties, the analysis is precise enough to show that most expressions have unique types. By also producing precise call graphs, the analysis additionally shows that most invocations in the programs are monomorphic. We furthermore study the usefulness of the analysis to detect spelling errors in the code. Despite the encouraging results, not all problems are solved and some of the experiments indicate a potential for improvement, which allows us to identify central remaining challenges and outline directions for future work.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"14 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":"114276705","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}
引用次数: 119
PASTE'11: Proceedings of the 10th ACM sigplan-sigsoft workshop on program analysis for software tools and engineering 第10届ACM sigplan-sigsoft软件工具与工程程序分析研讨会论文集
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025210
Jeff Foster, L. Pollock
The ACM SIGPLAN-SIGSOFT PASTE Workshop presents exciting research, empirical results, and new directions in Program Analysis for Software Tools and Engineering. The program includes two technical sessions as well as a keynote talk on program synthesis for automating end-user programming and education.
ACM SIGPLAN-SIGSOFT PASTE研讨会在软件工具和工程的程序分析方面展示了令人兴奋的研究、实证结果和新方向。该计划包括两个技术会议,以及一个关于自动化最终用户编程和教育的程序合成的主题演讲。
{"title":"PASTE'11: Proceedings of the 10th ACM sigplan-sigsoft workshop on program analysis for software tools and engineering","authors":"Jeff Foster, L. Pollock","doi":"10.1145/2025113.2025210","DOIUrl":"https://doi.org/10.1145/2025113.2025210","url":null,"abstract":"The ACM SIGPLAN-SIGSOFT PASTE Workshop presents exciting research, empirical results, and new directions in Program Analysis for Software Tools and Engineering. The program includes two technical sessions as well as a keynote talk on program synthesis for automating end-user programming and education.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"61 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":"129611073","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}
引用次数: 3
SMutant: a tool for type-sensitive mutation testing in a dynamic language SMutant:一个动态语言中类型敏感的突变测试工具
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025181
Miloš Gligorić, Sandro Badame, Ralph E. Johnson
A mutation testing tool takes as input a system under test and a test suite and produces as output the mutation score of the test suite. The tool systematically creates mutants by making small syntactic changes to the system under test and executes the test suite to determine which mutants give different results from the original system. Almost all mutation testing tools have been developed for statically typed languages. The lack of tools for dynamically typed languages may be rooted in additional challenges that are caused by the lack of precise type information until the program is executed. Existing tools for dynamically typed languages mostly focus on mutation of literals because the type of literals are known statically. This paper presents SMutant, the first mutation testing tool for Smalltalk programs. In addition to literal replacement, SMutant supports many mutation operators that are commonly seen in tools for statically typed languages, such as operator replacement. Instead of applying mutations statically, SMutant postpones mutating until execution and applies mutations dynamically, when the types are available. Also, SMutant enables the user to define new mutation operators by sending a single message. The tool automatically generates code to support new mutation operators.
突变测试工具将被测系统和测试套件作为输入,并产生测试套件的突变分数作为输出。该工具通过对被测系统进行小的语法更改来系统地创建突变,并执行测试套件以确定哪些突变会给出与原始系统不同的结果。几乎所有的突变测试工具都是为静态类型语言开发的。动态类型语言缺乏工具的根源可能是由于在程序执行之前缺乏精确的类型信息而造成的额外挑战。现有的动态类型语言工具主要关注文字的变异,因为文字的类型是静态已知的。本文介绍了SMutant, Smalltalk程序的第一个突变测试工具。除了文字替换之外,SMutant还支持许多在静态类型语言的工具中常见的突变操作符,例如操作符替换。SMutant不是静态地应用突变,而是将突变推迟到执行时,并在类型可用时动态地应用突变。此外,SMutant允许用户通过发送一条消息来定义新的突变操作符。该工具自动生成代码以支持新的突变操作符。
{"title":"SMutant: a tool for type-sensitive mutation testing in a dynamic language","authors":"Miloš Gligorić, Sandro Badame, Ralph E. Johnson","doi":"10.1145/2025113.2025181","DOIUrl":"https://doi.org/10.1145/2025113.2025181","url":null,"abstract":"A mutation testing tool takes as input a system under test and a test suite and produces as output the mutation score of the test suite. The tool systematically creates mutants by making small syntactic changes to the system under test and executes the test suite to determine which mutants give different results from the original system. Almost all mutation testing tools have been developed for statically typed languages. The lack of tools for dynamically typed languages may be rooted in additional challenges that are caused by the lack of precise type information until the program is executed. Existing tools for dynamically typed languages mostly focus on mutation of literals because the type of literals are known statically.\u0000 This paper presents SMutant, the first mutation testing tool for Smalltalk programs. In addition to literal replacement, SMutant supports many mutation operators that are commonly seen in tools for statically typed languages, such as operator replacement. Instead of applying mutations statically, SMutant postpones mutating until execution and applies mutations dynamically, when the types are available. Also, SMutant enables the user to define new mutation operators by sending a single message. The tool automatically generates code to support new mutation operators.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"5 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":"117350034","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
On the congruence of modularity and code coupling 论模块化与代码耦合的同余性
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025162
Fabian Beck, S. Diehl
Software systems are modularized to make their inherent complexity manageable. While there exists a set of well-known principles that may guide software engineers to design the modules of a software system, we do not know which principles are followed in practice. In a study based on 16 open source projects, we look at different kinds of coupling concepts between source code entities, including structural dependencies, fan-out similarity, evolutionary coupling, code ownership, code clones, and semantic similarity. The congruence between these coupling concepts and the modularization of the system hints at the modularity principles used in practice. Furthermore, the results provide insights on how to support developers to modularize software systems.
软件系统是模块化的,以使其固有的复杂性易于管理。虽然存在一组众所周知的原则,可以指导软件工程师设计软件系统的模块,但我们不知道在实践中遵循哪些原则。在一项基于16个开源项目的研究中,我们研究了源代码实体之间不同类型的耦合概念,包括结构依赖性、扇形相似性、进化耦合、代码所有权、代码克隆和语义相似性。这些耦合概念与系统模块化之间的一致性暗示了实践中使用的模块化原则。此外,结果提供了如何支持开发人员模块化软件系统的见解。
{"title":"On the congruence of modularity and code coupling","authors":"Fabian Beck, S. Diehl","doi":"10.1145/2025113.2025162","DOIUrl":"https://doi.org/10.1145/2025113.2025162","url":null,"abstract":"Software systems are modularized to make their inherent complexity manageable. While there exists a set of well-known principles that may guide software engineers to design the modules of a software system, we do not know which principles are followed in practice. In a study based on 16 open source projects, we look at different kinds of coupling concepts between source code entities, including structural dependencies, fan-out similarity, evolutionary coupling, code ownership, code clones, and semantic similarity. The congruence between these coupling concepts and the modularization of the system hints at the modularity principles used in practice. Furthermore, the results provide insights on how to support developers to modularize software systems.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"3 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":"130220214","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
Inferring data polymorphism in systems code 推断系统代码中的数据多态性
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025159
Brian Hackett, A. Aiken
We describe techniques for analyzing data polymorphism in C, and show that understanding data polymorphism is important for statically verifying type casts in the Linux kernel, where our techniques prove the safety of 75% of downcasts to structure types, out of a population of 28767. We also discuss prevalent patterns of data polymorphism in Linux, including code patterns we can handle and those we cannot.
我们描述了在C语言中分析数据多态性的技术,并展示了理解数据多态性对于在Linux内核中静态验证类型强制转换非常重要,在Linux内核中,我们的技术证明了在28767个类型中,75%的向下强制转换为结构类型是安全的。我们还讨论了Linux中流行的数据多态性模式,包括我们可以处理和不能处理的代码模式。
{"title":"Inferring data polymorphism in systems code","authors":"Brian Hackett, A. Aiken","doi":"10.1145/2025113.2025159","DOIUrl":"https://doi.org/10.1145/2025113.2025159","url":null,"abstract":"We describe techniques for analyzing data polymorphism in C, and show that understanding data polymorphism is important for statically verifying type casts in the Linux kernel, where our techniques prove the safety of 75% of downcasts to structure types, out of a population of 28767. We also discuss prevalent patterns of data polymorphism in Linux, including code patterns we can handle and those we cannot.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"83 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":"117258617","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
Path exploration based on symbolic output 基于符号输出的路径探索
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025152
Dawei Qi, Hoang D. T. Nguyen, Abhik Roychoudhury
Efficient program path exploration is important for many software engineering activities such as testing, debugging and verification. However, enumerating all paths of a program is prohibitively expensive. In this paper, we develop a partitioning of program paths based on the program output. Two program paths are placed in the same partition if they derive the output similarly, that is, the symbolic expression connecting the output with the inputs is the same in both paths. Our grouping of paths is gradually created by a smart path exploration. Our experiments show the benefits of the proposed pathexploration in test-suite construction. Our path partitioning produces a semantic signature of a program --- describing all the different symbolic expressions that the output can assume along different program paths. To reason about changes between program versions, we can therefore analyze their semantic signatures. In particular, we demonstrate the applications of our path partitioning in debugging of software regressions.
有效的程序路径探索对于许多软件工程活动,如测试、调试和验证是重要的。然而,枚举程序的所有路径是非常昂贵的。本文提出了一种基于程序输出的程序路径划分方法。如果两个程序路径导出的输出相似,即连接输出和输入的符号表达式在两个路径中是相同的,则将它们放在同一个分区中。我们的路径分组是通过智能路径探索逐步创建的。我们的实验显示了在测试套件构建中提出的路径探索的好处。我们的路径划分产生一个程序的语义签名——描述沿着不同的程序路径输出的所有不同的符号表达式。因此,为了推断程序版本之间的变化,我们可以分析它们的语义签名。特别地,我们演示了我们的路径划分在软件回归调试中的应用。
{"title":"Path exploration based on symbolic output","authors":"Dawei Qi, Hoang D. T. Nguyen, Abhik Roychoudhury","doi":"10.1145/2025113.2025152","DOIUrl":"https://doi.org/10.1145/2025113.2025152","url":null,"abstract":"Efficient program path exploration is important for many software engineering activities such as testing, debugging and verification. However, enumerating all paths of a program is prohibitively expensive. In this paper, we develop a partitioning of program paths based on the program output. Two program paths are placed in the same partition if they derive the output similarly, that is, the symbolic expression connecting the output with the inputs is the same in both paths. Our grouping of paths is gradually created by a smart path exploration. Our experiments show the benefits of the proposed pathexploration in test-suite construction.\u0000 Our path partitioning produces a semantic signature of a program --- describing all the different symbolic expressions that the output can assume along different program paths. To reason about changes between program versions, we can therefore analyze their semantic signatures. In particular, we demonstrate the applications of our path partitioning in debugging of software regressions.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"48 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":"126585435","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}
引用次数: 42
Testing software in age of data privacy: a balancing act 在数据隐私时代测试软件:一种平衡行为
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025143
Kunal Taneja, M. Grechanik, R. Ghani, Tao Xie
Database-centric applications (DCAs) are common in enterprise computing, and they use nontrivial databases. Testing of DCAs is increasingly outsourced to test centers in order to achieve lower cost and higher quality. When proprietary DCAs are released, their databases should also be made available to test engineers. However, different data privacy laws prevent organizations from sharing this data with test centers because databases contain sensitive information. Currently, testing is performed with anonymized data, which often leads to worse test coverage (such as code coverage) and fewer uncovered faults, thereby reducing the quality of DCAs and obliterating benefits of test outsourcing. To address this issue, we offer a novel approach that combines program analysis with a new data privacy framework that we design to address constraints of software testing. With our approach, organizations can balance the level of privacy with needs of testing. We have built a tool for our approach and applied it to nontrivial Java DCAs. Our results show that test coverage can be preserved at a higher level by anonymizing data based on their effect on corresponding DCAs.
以数据库为中心的应用程序(dca)在企业计算中很常见,它们使用重要的数据库。为了降低成本和提高质量,dca的测试越来越多地外包给测试中心。当专有dca发布时,它们的数据库也应该提供给测试工程师。然而,不同的数据隐私法律禁止组织与测试中心共享这些数据,因为数据库包含敏感信息。目前,测试是使用匿名数据执行的,这通常会导致较差的测试覆盖率(例如代码覆盖率)和较少的未发现的错误,从而降低dca的质量并消除测试外包的好处。为了解决这个问题,我们提供了一种新颖的方法,将程序分析与我们设计的新的数据隐私框架相结合,以解决软件测试的约束。使用我们的方法,组织可以在隐私级别和测试需求之间取得平衡。我们已经为我们的方法构建了一个工具,并将其应用于重要的Java dca。我们的结果表明,通过基于数据对相应dca的影响对数据进行匿名化,可以将测试覆盖率保持在更高的水平。
{"title":"Testing software in age of data privacy: a balancing act","authors":"Kunal Taneja, M. Grechanik, R. Ghani, Tao Xie","doi":"10.1145/2025113.2025143","DOIUrl":"https://doi.org/10.1145/2025113.2025143","url":null,"abstract":"Database-centric applications (DCAs) are common in enterprise computing, and they use nontrivial databases. Testing of DCAs is increasingly outsourced to test centers in order to achieve lower cost and higher quality. When proprietary DCAs are released, their databases should also be made available to test engineers. However, different data privacy laws prevent organizations from sharing this data with test centers because databases contain sensitive information. Currently, testing is performed with anonymized data, which often leads to worse test coverage (such as code coverage) and fewer uncovered faults, thereby reducing the quality of DCAs and obliterating benefits of test outsourcing. To address this issue, we offer a novel approach that combines program analysis with a new data privacy framework that we design to address constraints of software testing. With our approach, organizations can balance the level of privacy with needs of testing. We have built a tool for our approach and applied it to nontrivial Java DCAs. Our results show that test coverage can be preserved at a higher level by anonymizing data based on their effect on corresponding DCAs.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"11 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":"123157839","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
Social sensing: when users become monitors 社会感知:当用户成为监视器时
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025196
Raian Ali, C. Solís, M. Salehie, Inah Omoronyia, B. Nuseibeh, W. Maalej
Adaptation requires a system to monitor its operational context to ensure that when changes occur, a suitable adaptation action is planned and taken at runtime. The ultimate goal of adaptation is that users get their dynamic requirements met efficiently and correctly. Context changes and users' judgment of the role of the system in meeting their requirements are drivers for adaptation. In many cases, these drivers are hard to identify by designers at design time and hard to monitor by the use of exclusively technological means by the system at runtime. In this paper, we propose Social Sensing as the activity performed by users who act as monitors and provide information needed for adaptation at runtime. Such information helps the system cope with technology limitations and designers' uncertainty. We discuss the motivation and foundations of Social Sensing and outline a set of research challenges to address in future work.
适应需要系统监视其操作上下文,以确保在发生更改时,计划并在运行时采取适当的适应操作。自适应的最终目的是使用户的动态需求得到有效、正确的满足。环境变化和用户对系统在满足其需求方面的作用的判断是适应的驱动因素。在许多情况下,这些驱动程序在设计时很难被设计者识别,在运行时也很难被系统使用专门的技术手段来监控。在本文中,我们提出社会感知作为由用户执行的活动,用户充当监视器并在运行时提供适应所需的信息。这些信息有助于系统应对技术限制和设计人员的不确定性。我们讨论了社会感知的动机和基础,并概述了未来工作中需要解决的一系列研究挑战。
{"title":"Social sensing: when users become monitors","authors":"Raian Ali, C. Solís, M. Salehie, Inah Omoronyia, B. Nuseibeh, W. Maalej","doi":"10.1145/2025113.2025196","DOIUrl":"https://doi.org/10.1145/2025113.2025196","url":null,"abstract":"Adaptation requires a system to monitor its operational context to ensure that when changes occur, a suitable adaptation action is planned and taken at runtime. The ultimate goal of adaptation is that users get their dynamic requirements met efficiently and correctly. Context changes and users' judgment of the role of the system in meeting their requirements are drivers for adaptation. In many cases, these drivers are hard to identify by designers at design time and hard to monitor by the use of exclusively technological means by the system at runtime. In this paper, we propose Social Sensing as the activity performed by users who act as monitors and provide information needed for adaptation at runtime. Such information helps the system cope with technology limitations and designers' uncertainty. We discuss the motivation and foundations of Social Sensing and outline a set of research challenges to address in future work.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"5 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":"117178319","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}
引用次数: 60
Synoptic: studying logged behavior with inferred models 概要:用推断模型研究记录的行为
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025188
Ivan Beschastnikh, Jenny Abrahamson, Yuriy Brun, Michael D. Ernst
Logging is a powerful method for capturing program activity and state during an execution. However, log inspection remains a tedious activity, with developers often piecing together what went on from multiple log lines and across many files. This paper describes Synoptic, a tool that takes logs as input and outputs a finite state machine that models the process generating the logs. The paper overviews the model inference algorithms. Then, it describes the Synoptic tool, which is designed to support a rich log exploration workflow.
日志记录是在执行过程中捕获程序活动和状态的强大方法。然而,日志检查仍然是一项乏味的活动,开发人员经常将来自多个日志行和多个文件的内容拼凑在一起。本文描述了Synoptic,一个将日志作为输入并输出有限状态机的工具,该有限状态机对生成日志的过程进行建模。本文综述了模型推理算法。然后,介绍了synotic工具,该工具旨在支持丰富的日志勘探工作流程。
{"title":"Synoptic: studying logged behavior with inferred models","authors":"Ivan Beschastnikh, Jenny Abrahamson, Yuriy Brun, Michael D. Ernst","doi":"10.1145/2025113.2025188","DOIUrl":"https://doi.org/10.1145/2025113.2025188","url":null,"abstract":"Logging is a powerful method for capturing program activity and state during an execution. However, log inspection remains a tedious activity, with developers often piecing together what went on from multiple log lines and across many files. This paper describes Synoptic, a tool that takes logs as input and outputs a finite state machine that models the process generating the logs. The paper overviews the model inference algorithms. Then, it describes the Synoptic tool, which is designed to support a rich log exploration workflow.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"255 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":"127011556","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}
引用次数: 40
期刊
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