首页 > 最新文献

Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering最新文献

英文 中文
Sketches and diagrams in practice 实践中的草图和图表
Sebastian Baltes, S. Diehl
Sketches and diagrams play an important role in the daily work of software developers. In this paper, we investigate the use of sketches and diagrams in software engineering practice. To this end, we used both quantitative and qualitative methods. We present the results of an exploratory study in three companies and an online survey with 394 participants. Our participants included software developers, software architects, project managers, consultants, as well as researchers. They worked in different countries and on projects from a wide range of application areas. Most questions in the survey were related to the last sketch or diagram that the participants had created. Contrary to our expectations and previous work, the majority of sketches and diagrams contained at least some UML elements. However, most of them were informal. The most common purposes for creating sketches and diagrams were designing, explaining, and understanding, but analyzing requirements was also named often. More than half of the sketches and diagrams were created on analog media like paper or whiteboards and have been revised after creation. Most of them were used for more than a week and were archived. We found that the majority of participants related their sketches to methods, classes, or packages, but not to source code artifacts with a lower level of abstraction.
草图和图表在软件开发人员的日常工作中扮演着重要的角色。在本文中,我们研究了草图和图表在软件工程实践中的应用。为此,我们采用了定量和定性相结合的方法。我们介绍了对三家公司的探索性研究和对394名参与者的在线调查的结果。我们的参与者包括软件开发人员、软件架构师、项目经理、顾问以及研究人员。他们在不同的国家工作,从事的项目涉及广泛的应用领域。调查中的大多数问题都与参与者绘制的最后一张草图或图表有关。与我们的期望和以前的工作相反,大多数草图和图至少包含一些UML元素。然而,大多数会议都是非正式的。创建草图和图表最常见的目的是设计、解释和理解,但是分析需求也经常被提及。超过一半的草图和图表是在纸或白板等模拟媒体上创建的,并在创建后进行了修改。其中大多数使用时间超过一周,并被存档。我们发现大多数参与者将他们的草图与方法、类或包联系起来,而不是与具有较低抽象层次的源代码工件联系起来。
{"title":"Sketches and diagrams in practice","authors":"Sebastian Baltes, S. Diehl","doi":"10.1145/2635868.2635891","DOIUrl":"https://doi.org/10.1145/2635868.2635891","url":null,"abstract":"Sketches and diagrams play an important role in the daily work of software developers. In this paper, we investigate the use of sketches and diagrams in software engineering practice. To this end, we used both quantitative and qualitative methods. We present the results of an exploratory study in three companies and an online survey with 394 participants. Our participants included software developers, software architects, project managers, consultants, as well as researchers. They worked in different countries and on projects from a wide range of application areas. Most questions in the survey were related to the last sketch or diagram that the participants had created. Contrary to our expectations and previous work, the majority of sketches and diagrams contained at least some UML elements. However, most of them were informal. The most common purposes for creating sketches and diagrams were designing, explaining, and understanding, but analyzing requirements was also named often. More than half of the sketches and diagrams were created on analog media like paper or whiteboards and have been revised after creation. Most of them were used for more than a week and were archived. We found that the majority of participants related their sketches to methods, classes, or packages, but not to source code artifacts with a lower level of abstraction.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129982437","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}
引用次数: 62
Retrofitting concurrency for Android applications through refactoring 通过重构改进Android应用程序的并发性
Yu Lin, Cosmin Radoi, Danny Dig
Running compute-intensive or blocking I/O operations in the UI event thread of smartphone apps can severely degrade responsiveness. Despite the fact that Android supports writing concurrent code via AsyncTask, we know little about how developers use AsyncTask to improve responsiveness. To understand how AsyncTask is used/underused/misused in practice, we rst conduct a formative study using a corpus of top 104 most popular open-source Android apps comprising 1.34M SLOC. Our study shows that even though half of the apps use AsyncTask, there are hundreds of places where they missed opportunities to encapsulate long-running operations in AsyncTask. Second, 46% of the usages are manually refactored. However, the refactored code contains concurrency bugs (such as data races) and performance bugs (concurrent code still executes sequentially). Inspired by these ndings, we designed, developed, and evaluated Asynchronizer, an automated refactoring tool that enables developers to extract long-running operations into AsyncTask. Asynchronizer uses a points-to static analysis to determine the safety of the transformation. Our empirical evaluation shows that Asynchronizer is (i) highly applicable, (ii) accurate, (iii) safer than manual refactoring (iv) it saves development eort, (v) its results have been accepted by the open-source developers. This shows that Asynchronizer is useful.
在智能手机应用程序的UI事件线程中运行计算密集型或阻塞I/O操作会严重降低响应性。尽管Android支持通过AsyncTask编写并发代码,但我们对开发者如何使用AsyncTask来提高响应能力知之甚少。为了了解AsyncTask在实践中是如何使用/未充分使用/滥用的,我们首先使用包含1.34M SLOC的104个最受欢迎的开源Android应用程序的语料库进行形成性研究。我们的研究表明,即使有一半的应用程序使用AsyncTask,也有数百个地方错过了在AsyncTask中封装长时间运行的操作的机会。其次,46%的使用是手工重构的。然而,重构后的代码包含并发错误(比如数据竞争)和性能错误(并发代码仍然按顺序执行)。受这些发现的启发,我们设计、开发并评估了Asynchronizer,这是一个自动化重构工具,使开发人员能够将长时间运行的操作提取到AsyncTask中。异步器使用点到静态分析来确定转换的安全性。我们的经验评估表明,Asynchronizer (i)高度适用,(ii)准确,(iii)比手动重构更安全,(iv)节省开发报告,(v)其结果已被开源开发人员接受。这表明Asynchronizer是有用的。
{"title":"Retrofitting concurrency for Android applications through refactoring","authors":"Yu Lin, Cosmin Radoi, Danny Dig","doi":"10.1145/2635868.2635903","DOIUrl":"https://doi.org/10.1145/2635868.2635903","url":null,"abstract":"Running compute-intensive or blocking I/O operations in the UI event thread of smartphone apps can severely degrade responsiveness. Despite the fact that Android supports writing concurrent code via AsyncTask, we know little about how developers use AsyncTask to improve responsiveness. To understand how AsyncTask is used/underused/misused in practice, we rst conduct a formative study using a corpus of top 104 most popular open-source Android apps comprising 1.34M SLOC. Our study shows that even though half of the apps use AsyncTask, there are hundreds of places where they missed opportunities to encapsulate long-running operations in AsyncTask. Second, 46% of the usages are manually refactored. However, the refactored code contains concurrency bugs (such as data races) and performance bugs (concurrent code still executes sequentially). Inspired by these ndings, we designed, developed, and evaluated Asynchronizer, an automated refactoring tool that enables developers to extract long-running operations into AsyncTask. Asynchronizer uses a points-to static analysis to determine the safety of the transformation. Our empirical evaluation shows that Asynchronizer is (i) highly applicable, (ii) accurate, (iii) safer than manual refactoring (iv) it saves development eort, (v) its results have been accepted by the open-source developers. This shows that Asynchronizer is useful.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126940228","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}
引用次数: 80
A variability perspective of mutation analysis 突变分析的变异性视角
Xavier Devroey, Gilles Perrouin, Maxime Cordy, Mike Papadakis, Axel Legay, Pierre-Yves Schobbens
Mutation testing is an effective technique for either improving or generating fault-finding test suites. It creates defective or incorrect program artifacts of the program under test and evaluates the ability of test suites to reveal them. Despite being effective, mutation is costly since it requires assessing the test cases with a large number of defective artifacts. Even worse, some of these artifacts are behaviourally ``equivalent'' to the original one and hence, they unnecessarily increase the testing effort. We adopt a variability perspective on mutation analysis. We model a defective artifact as a transition system with a specific feature selected and consider it as a member of a mutant family. The mutant family is encoded as a Featured Transition System, a compact formalism initially dedicated to model-checking of software product lines. We show how to evaluate a test suite against the set of all candidate defects by using mutant families. We can evaluate all the considered defects at the same time and isolate some equivalent mutants. We can also assist the test generation process and efficiently consider higher-order mutants.
突变测试是一种改进或生成故障查找测试套件的有效技术。它创建被测程序的有缺陷或不正确的程序工件,并评估测试套件显示它们的能力。尽管突变是有效的,但是代价很高,因为它需要用大量有缺陷的工件来评估测试用例。更糟糕的是,这些工件中的一些在行为上与原始工件“等同”,因此,它们不必要地增加了测试工作。我们采用变异的角度来分析突变。我们将有缺陷的工件建模为具有特定特征的过渡系统,并将其视为突变家族的成员。突变家族被编码为一个特征转换系统,一个紧凑的形式主义,最初致力于软件产品线的模型检查。我们展示了如何通过使用突变家族来针对所有候选缺陷集评估测试套件。我们可以同时评估所有考虑的缺陷,并分离出一些等效的突变体。我们还可以辅助测试生成过程,并有效地考虑高阶突变体。
{"title":"A variability perspective of mutation analysis","authors":"Xavier Devroey, Gilles Perrouin, Maxime Cordy, Mike Papadakis, Axel Legay, Pierre-Yves Schobbens","doi":"10.1145/2635868.2666610","DOIUrl":"https://doi.org/10.1145/2635868.2666610","url":null,"abstract":"Mutation testing is an effective technique for either improving or generating fault-finding test suites. It creates defective or incorrect program artifacts of the program under test and evaluates the ability of test suites to reveal them. Despite being effective, mutation is costly since it requires assessing the test cases with a large number of defective artifacts. Even worse, some of these artifacts are behaviourally ``equivalent'' to the original one and hence, they unnecessarily increase the testing effort. We adopt a variability perspective on mutation analysis. We model a defective artifact as a transition system with a specific feature selected and consider it as a member of a mutant family. The mutant family is encoded as a Featured Transition System, a compact formalism initially dedicated to model-checking of software product lines. We show how to evaluate a test suite against the set of all candidate defects by using mutant families. We can evaluate all the considered defects at the same time and isolate some equivalent mutants. We can also assist the test generation process and efficiently consider higher-order mutants.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130715193","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}
引用次数: 18
Beyond the rainbow: self-adaptive failure avoidance in configurable systems 超越彩虹:可配置系统中的自适应故障避免
Jacob Swanson, Myra B. Cohen, Matthew B. Dwyer, Brady J. Garvin, Justin W. Firestone
Self-adaptive software systems monitor their state and then adapt when certain conditions are met, guided by a global utility function. In prior work we developed algorithms and conducted a post-hoc analysis demonstrating the possibility of adapting to software failures by judiciously changing configurations. In this paper we present the REFRACT framework that realizes this idea in practice by building on the self-adaptive Rainbow architecture. REFRACT extends Rainbow with new components and algorithms targeting failure avoidance. We use REFRACT in a case study running four independently executing Firefox clients with 36 passing test cases and 7 seeded faults. The study show that workarounds for all but one of the seeded faults are found and the one that is not found never fails -- it is guarded from failing by a related workaround. Moreover, REFRACT finds workarounds for eight configuration-related unseeded failures from tests that were expected to pass (and did under the default configuration). Finally, the data show that when a failure and its workaround are found, configuration guards prevent the failure from appearing again. In a simulation lasting 24 hours we see over 150 guard activations and no failures with workarounds remaining beyond 16 hours.
自适应软件系统监视它们的状态,然后在全局效用函数的指导下,在满足某些条件时进行调整。在之前的工作中,我们开发了算法,并进行了事后分析,展示了通过明智地改变配置来适应软件故障的可能性。在本文中,我们提出了REFRACT框架,通过构建自适应彩虹架构在实践中实现了这个想法。REFRACT用新的组件和算法扩展了Rainbow,目标是避免故障。我们在一个案例研究中使用REFRACT,运行四个独立执行的Firefox客户端,其中有36个通过测试用例和7个种子错误。研究表明,除了一个种子故障之外,其他所有故障的解决方案都被找到了,而没有被发现的故障永远不会失败——它被相关的解决方案所保护。此外,REFRACT还发现了八个与配置相关的未播种失败的解决方案,这些失败来自于预期会通过的测试(并且在默认配置下确实通过了)。最后,数据表明,当发现故障及其解决方案时,配置保护可以防止故障再次出现。在一个持续24小时的模拟中,我们看到超过150个防护装置被激活,16小时后没有出现任何故障。
{"title":"Beyond the rainbow: self-adaptive failure avoidance in configurable systems","authors":"Jacob Swanson, Myra B. Cohen, Matthew B. Dwyer, Brady J. Garvin, Justin W. Firestone","doi":"10.1145/2635868.2635915","DOIUrl":"https://doi.org/10.1145/2635868.2635915","url":null,"abstract":"Self-adaptive software systems monitor their state and then adapt when certain conditions are met, guided by a global utility function. In prior work we developed algorithms and conducted a post-hoc analysis demonstrating the possibility of adapting to software failures by judiciously changing configurations. In this paper we present the REFRACT framework that realizes this idea in practice by building on the self-adaptive Rainbow architecture. REFRACT extends Rainbow with new components and algorithms targeting failure avoidance. We use REFRACT in a case study running four independently executing Firefox clients with 36 passing test cases and 7 seeded faults. The study show that workarounds for all but one of the seeded faults are found and the one that is not found never fails -- it is guarded from failing by a related workaround. Moreover, REFRACT finds workarounds for eight configuration-related unseeded failures from tests that were expected to pass (and did under the default configuration). Finally, the data show that when a failure and its workaround are found, configuration guards prevent the failure from appearing again. In a simulation lasting 24 hours we see over 150 guard activations and no failures with workarounds remaining beyond 16 hours.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121428759","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}
引用次数: 26
Developers' code context models for change tasks 开发人员用于变更任务的代码上下文模型
Thomas Fritz, D. Shepherd, Katja Kevic, W. Snipes, Christoph Bräunlich
To complete a change task, software developers spend a substantial amount of time navigating code to understand the relevant parts. During this investigation phase, they implicitly build context models of the elements and relations that are relevant to the task. Through an exploratory study with twelve developers completing change tasks in three open source systems, we identified important characteristics of these context models and how they are created. In a second empirical analysis, we further examined our findings on data collected from eighty developers working on a variety of change tasks on open and closed source projects. Our studies uncovered, amongst other results, that code context models are highly connected, structurally and lexically, that developers start tasks using a combination of search and navigation and that code navigation varies substantially across developers. Based on these findings we identify and discuss design requirements to better support developers in the initial creation of code context models. We believe this work represents a substantial step in better understanding developers' code navigation and providing better tool support that will reduce time and effort needed for change tasks.
为了完成变更任务,软件开发人员花费大量时间导航代码以理解相关部分。在这个调查阶段,他们隐式地构建与任务相关的元素和关系的上下文模型。通过对12名开发人员在三个开源系统中完成变更任务的探索性研究,我们确定了这些上下文模型的重要特征以及它们是如何创建的。在第二个实证分析中,我们进一步检查了从80个开发人员收集的数据的发现,这些开发人员从事开放和闭源项目的各种变更任务。我们的研究发现,在其他结果中,代码上下文模型在结构上和词汇上是高度连接的,开发人员使用搜索和导航的组合开始任务,并且代码导航在开发人员之间存在很大差异。基于这些发现,我们确定并讨论了设计需求,以便在初始创建代码上下文模型时更好地支持开发人员。我们相信这项工作在更好地理解开发人员的代码导航和提供更好的工具支持方面迈出了实质性的一步,这将减少更改任务所需的时间和精力。
{"title":"Developers' code context models for change tasks","authors":"Thomas Fritz, D. Shepherd, Katja Kevic, W. Snipes, Christoph Bräunlich","doi":"10.1145/2635868.2635905","DOIUrl":"https://doi.org/10.1145/2635868.2635905","url":null,"abstract":"To complete a change task, software developers spend a substantial amount of time navigating code to understand the relevant parts. During this investigation phase, they implicitly build context models of the elements and relations that are relevant to the task. Through an exploratory study with twelve developers completing change tasks in three open source systems, we identified important characteristics of these context models and how they are created. In a second empirical analysis, we further examined our findings on data collected from eighty developers working on a variety of change tasks on open and closed source projects. Our studies uncovered, amongst other results, that code context models are highly connected, structurally and lexically, that developers start tasks using a combination of search and navigation and that code navigation varies substantially across developers. Based on these findings we identify and discuss design requirements to better support developers in the initial creation of code context models. We believe this work represents a substantial step in better understanding developers' code navigation and providing better tool support that will reduce time and effort needed for change tasks.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"153 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121518259","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}
引用次数: 41
Automatically generated patches as debugging aids: a human study 自动生成补丁作为调试辅助:人类研究
Yida Tao, Jindae Kim, Sunghun Kim, Chang Xu
Recent research has made significant progress in automatic patch generation, an approach to repair programs with less or no manual intervention. However, direct deployment of auto-generated patches remains difficult, for reasons such as patch quality variations and developers' intrinsic resistance. In this study, we take one step back and investigate a more feasible application scenario of automatic patch generation, that is, using generated patches as debugging aids. We recruited 95 participants for a controlled experiment, in which they performed debugging tasks with the aid of either buggy locations (i.e., the control group), or generated patches of varied qualities. We observe that: a) high-quality patches significantly improve debugging correctness; b) such improvements are more obvious for difficult bugs; c) when using low-quality patches, participants' debugging correctness drops to an even lower point than that of the control group; d) debugging time is significantly affected not by debugging aids, but by participant type and the specific bug to fix. These results highlight that the benefits of using generated patches as debugging aids are contingent upon the quality of the patches. Our qualitative analysis of participants' feedback further sheds light on how generated patches can be improved and better utilized as debugging aids.
最近的研究在自动补丁生成方面取得了重大进展,这是一种较少或无需人工干预的修复程序方法。然而,直接部署自动生成的补丁仍然很困难,原因包括补丁质量的变化和开发者的内在阻力。在本研究中,我们退一步研究了一种更可行的补丁自动生成应用场景,即使用生成的补丁作为调试辅助工具。我们招募了95名参与者进行一个控制实验,在这个实验中,他们在bug位置(即控制组)的帮助下执行调试任务,或者生成不同质量的补丁。我们观察到:a)高质量的补丁显著提高了调试正确性;B)这种改进对于困难的bug更明显;C)当使用低质量补丁时,参与者的调试正确性下降到比对照组更低的程度;D)调试时间不受调试辅助的显著影响,而是受参与者类型和要修复的特定错误的影响。这些结果突出表明,使用生成的补丁作为调试辅助工具的好处取决于补丁的质量。我们对参与者反馈的定性分析进一步阐明了如何改进和更好地利用生成的补丁作为调试辅助工具。
{"title":"Automatically generated patches as debugging aids: a human study","authors":"Yida Tao, Jindae Kim, Sunghun Kim, Chang Xu","doi":"10.1145/2635868.2635873","DOIUrl":"https://doi.org/10.1145/2635868.2635873","url":null,"abstract":"Recent research has made significant progress in automatic patch generation, an approach to repair programs with less or no manual intervention. However, direct deployment of auto-generated patches remains difficult, for reasons such as patch quality variations and developers' intrinsic resistance. In this study, we take one step back and investigate a more feasible application scenario of automatic patch generation, that is, using generated patches as debugging aids. We recruited 95 participants for a controlled experiment, in which they performed debugging tasks with the aid of either buggy locations (i.e., the control group), or generated patches of varied qualities. We observe that: a) high-quality patches significantly improve debugging correctness; b) such improvements are more obvious for difficult bugs; c) when using low-quality patches, participants' debugging correctness drops to an even lower point than that of the control group; d) debugging time is significantly affected not by debugging aids, but by participant type and the specific bug to fix. These results highlight that the benefits of using generated patches as debugging aids are contingent upon the quality of the patches. Our qualitative analysis of participants' feedback further sheds light on how generated patches can be improved and better utilized as debugging aids.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"92 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134271799","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}
引用次数: 67
Traceability and model checking to support safety requirement verification 可追溯性和模型检查以支持安全需求验证
Shuanglong Kan
Ensuring safety-critical software safety requires strict verification of the conformance between safety requirements and programs. Formal verification techniques, such as model checking and theorem proving, can be used to partially realize this objective. DO-178C, a standard for airborne systems, allows formal verification techniques to replace certain forms of testing. My research is concerned with applying model checking to verify the conformance between safety requirements and programs. First, a formal language for specifying software safety requirements which are relevant to event sequences is introduced. Second, the traceability information models between formalized safety requirements and programs are built. Third, the checking of a program against a safety requirement is decomposed into smaller model checking problems by utilizing traceability information model between them.
确保安全关键软件的安全需要严格验证安全需求和程序之间的一致性。正式的验证技术,如模型检查和定理证明,可以用来部分地实现这一目标。DO-178C是一项机载系统标准,允许正式验证技术取代某些形式的测试。我的研究是关于应用模型检查来验证安全要求和程序之间的一致性。首先,介绍了一种用于指定与事件序列相关的软件安全需求的形式化语言。其次,建立形式化安全需求与程序之间的可追溯性信息模型。第三,利用可追溯性信息模型,将程序对安全需求的检查分解为更小的模型检查问题。
{"title":"Traceability and model checking to support safety requirement verification","authors":"Shuanglong Kan","doi":"10.1145/2635868.2666606","DOIUrl":"https://doi.org/10.1145/2635868.2666606","url":null,"abstract":"Ensuring safety-critical software safety requires strict verification of the conformance between safety requirements and programs. Formal verification techniques, such as model checking and theorem proving, can be used to partially realize this objective. DO-178C, a standard for airborne systems, allows formal verification techniques to replace certain forms of testing. My research is concerned with applying model checking to verify the conformance between safety requirements and programs. First, a formal language for specifying software safety requirements which are relevant to event sequences is introduced. Second, the traceability information models between formalized safety requirements and programs are built. Third, the checking of a program against a safety requirement is decomposed into smaller model checking problems by utilizing traceability information model between them.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"222 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131688810","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
Panning requirement nuggets in stream of software maintenance tickets 在软件维护单流中筛选需求块
Senthil Mani, K. Sankaranarayanan, Vibha Sinha, Premkumar T. Devanbu
There is an increasing trend to outsource maintenance of large applications and application portfolios of a business to third parties, specialising in application maintenance, who are incented to deliver the best possible maintenance at the lowest cost. To do so, they need to identify repeat problem areas, which cause more maintenance grief, and seek a unified remedy to avoid the costs spent on fixing these individually. These repeat areas, in a sense, represent major, evolving areas of need, or requirements, for the customer. The information about the repeating problem is typically embedded in the unstructured text of multiple tickets, waiting to be found and addressed. Currently, repeat problems are found by manual analysis; effective solutions depend on the collective experience of the team solving them. In this paper, we propose an approach to automatically analyze problem tickets to discover groups of problems being reported in them and provide meaningful, descriptive labels to help interpret these groups. Our approach incorporates a cleansing phase to handle the high level of noise observed in problem tickets and a method to incorporate multiple text clustering techniques and merge their results in a meaningful manner. We provide detailed experiments to quantitatively and qualitatively evaluate our approach
越来越多的趋势是将大型应用程序和业务应用程序组合的维护外包给专门从事应用程序维护的第三方,这些第三方被鼓励以最低的成本提供尽可能好的维护。要做到这一点,他们需要识别重复的问题区域,这些区域会导致更多的维护问题,并寻求统一的补救措施,以避免单独修复这些问题所花费的成本。从某种意义上说,这些重复的领域代表了客户需要或需求的主要的、不断发展的领域。关于重复问题的信息通常嵌入在多个票据的非结构化文本中,等待被发现和处理。目前,重复问题主要通过人工分析发现;有效的解决方案依赖于解决这些问题的团队的集体经验。在本文中,我们提出了一种自动分析问题单的方法,以发现其中报告的问题组,并提供有意义的描述性标签来帮助解释这些组。我们的方法包含了一个清理阶段来处理在问题单中观察到的高水平噪声,以及一个结合多种文本聚类技术并以有意义的方式合并其结果的方法。我们提供详细的实验来定量和定性地评估我们的方法
{"title":"Panning requirement nuggets in stream of software maintenance tickets","authors":"Senthil Mani, K. Sankaranarayanan, Vibha Sinha, Premkumar T. Devanbu","doi":"10.1145/2635868.2635897","DOIUrl":"https://doi.org/10.1145/2635868.2635897","url":null,"abstract":"There is an increasing trend to outsource maintenance of large applications and application portfolios of a business to third parties, specialising in application maintenance, who are incented to deliver the best possible maintenance at the lowest cost. To do so, they need to identify repeat problem areas, which cause more maintenance grief, and seek a unified remedy to avoid the costs spent on fixing these individually. These repeat areas, in a sense, represent major, evolving areas of need, or requirements, for the customer. The information about the repeating problem is typically embedded in the unstructured text of multiple tickets, waiting to be found and addressed. Currently, repeat problems are found by manual analysis; effective solutions depend on the collective experience of the team solving them. In this paper, we propose an approach to automatically analyze problem tickets to discover groups of problems being reported in them and provide meaningful, descriptive labels to help interpret these groups. Our approach incorporates a cleansing phase to handle the high level of noise observed in problem tickets and a method to incorporate multiple text clustering techniques and merge their results in a meaningful manner. We provide detailed experiments to quantitatively and qualitatively evaluate our approach","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132986597","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}
引用次数: 13
Towards a theory of architectural styles 朝向建筑风格理论的方向
Diego Marmsoler
Architectural styles and patterns play an important role in software architectures. However, they are usually only stated informally, which may cause problems such as ambiguity and wrong conclusions. A rigorous theory of architectural styles --- consisting of (i) mathematical models for each style; (ii) axioms to identify different variants of a style; and (iii) rigorous analyses by means of mathematical proofs --- would address these problems. With this work we report on our progress towards such a rigorous theory of architectural styles.
架构风格和模式在软件架构中扮演着重要的角色。然而,它们通常只是非正式地陈述,这可能会导致歧义和错误结论等问题。严谨的建筑风格理论——包括(1)每种风格的数学模型;(ii)识别风格不同变体的公理;(iii)通过数学证明进行严格的分析——将解决这些问题。通过这项工作,我们报告了我们在这种严格的建筑风格理论方面的进展。
{"title":"Towards a theory of architectural styles","authors":"Diego Marmsoler","doi":"10.1145/2635868.2661683","DOIUrl":"https://doi.org/10.1145/2635868.2661683","url":null,"abstract":"Architectural styles and patterns play an important role in software architectures. However, they are usually only stated informally, which may cause problems such as ambiguity and wrong conclusions. A rigorous theory of architectural styles --- consisting of (i) mathematical models for each style; (ii) axioms to identify different variants of a style; and (iii) rigorous analyses by means of mathematical proofs --- would address these problems. With this work we report on our progress towards such a rigorous theory of architectural styles.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115467435","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Social network analysis in open source software peer review 开源软件同行评审中的社会网络分析
Xin Yang
Software peer review (aka. code review) is regarded as one of the most important approaches to keep software quality and productivity. Due to the distributed collaborations and communication nature of Open Source Software (OSS), OSS review differs from traditional industry review. Unlike other related works, this study investigated OSS peer review pro- cesses from social perspective by using social network anal- ysis (SNA). We analyzed the review history from three typi- cal OSS projects. The results provide hints on relationships among the OSS reviewers which can help to understand how developers work and communicate with each other.
软件同行评审(又名。代码审查被认为是保持软件质量和生产力的最重要的方法之一。由于开源软件(OSS)的分布式协作和通信特性,OSS审查不同于传统的行业审查。与其他相关研究不同,本研究采用社会网络分析(social network analysis, SNA),从社会视角考察了OSS同行评议过程。我们分析了三个典型OSS项目的评审历史。结果提供了关于OSS评审人员之间关系的提示,这有助于理解开发人员是如何工作和相互沟通的。
{"title":"Social network analysis in open source software peer review","authors":"Xin Yang","doi":"10.1145/2635868.2661682","DOIUrl":"https://doi.org/10.1145/2635868.2661682","url":null,"abstract":"Software peer review (aka. code review) is regarded as one of the most important approaches to keep software quality and productivity. Due to the distributed collaborations and communication nature of Open Source Software (OSS), OSS review differs from traditional industry review. Unlike other related works, this study investigated OSS peer review pro- cesses from social perspective by using social network anal- ysis (SNA). We analyzed the review history from three typi- cal OSS projects. The results provide hints on relationships among the OSS reviewers which can help to understand how developers work and communicate with each other.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121438508","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}
引用次数: 18
期刊
Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering
全部 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学术文献互助群
群 号:604180095
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1