首页 > 最新文献

2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)最新文献

英文 中文
Symbolic Execution for Attribution and Attack Synthesis in Neural Networks 神经网络归因与攻击综合的符号执行
D. Gopinath, C. Pasareanu, Kaiyuan Wang, Mengshi Zhang, S. Khurshid
This paper introduces DeepCheck, a new approach for validating Deep Neural Networks (DNNs) based on core ideas from program analysis, specifically from symbolic execution. DeepCheck implements techniques for lightweight symbolic analysis of DNNs and applies them in the context of image classification to address two challenging problems: 1) identification of important pixels (for attribution and adversarial generation); and 2) creation of adversarial attacks. Experimental results using the MNIST data-set show that DeepCheck's lightweight symbolic analysis provides a valuable tool for DNN validation.
本文介绍了DeepCheck,这是一种基于程序分析,特别是符号执行的核心思想来验证深度神经网络(dnn)的新方法。DeepCheck实现了dnn的轻量级符号分析技术,并将其应用于图像分类,以解决两个具有挑战性的问题:1)识别重要像素(用于归因和对抗生成);2)制造对抗性攻击。使用MNIST数据集的实验结果表明,DeepCheck的轻量级符号分析为深度神经网络验证提供了一个有价值的工具。
{"title":"Symbolic Execution for Attribution and Attack Synthesis in Neural Networks","authors":"D. Gopinath, C. Pasareanu, Kaiyuan Wang, Mengshi Zhang, S. Khurshid","doi":"10.1109/ICSE-Companion.2019.00115","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00115","url":null,"abstract":"This paper introduces DeepCheck, a new approach for validating Deep Neural Networks (DNNs) based on core ideas from program analysis, specifically from symbolic execution. DeepCheck implements techniques for lightweight symbolic analysis of DNNs and applies them in the context of image classification to address two challenging problems: 1) identification of important pixels (for attribution and adversarial generation); and 2) creation of adversarial attacks. Experimental results using the MNIST data-set show that DeepCheck's lightweight symbolic analysis provides a valuable tool for DNN validation.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"66 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121282370","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}
引用次数: 17
Beware of Disengaged User Acceptance in Testing Software-as-a-Service 在测试“软件即服务”时,要注意用户的接受度
Sebastian Loss, Raffaele Ciriello, Jürgen Cito
User acceptance tests (UAT) are an integral part of software engineering. This study aims to question the appropriateness of UATs to collect usable feedback for Software-as-a-Service (SaaS) applications, which are continuously delivered rather than rolled out during a one-off signoff process. Our preliminary results from an exploratory qualitative field study at a multinational SaaS provider in Denmark show that UATs often address the wrong problem in that positive user acceptance may paradoxically indicate a negative user experience. Hence, SaaS providers should be careful not to rest on what we initially term disengaged user acceptance. Instead, we aim to explore how SaaS providers can purposefully query users for ambivalent emotions to evoke constructive criticism. We briefly outline the adverse effects of disengaged user acceptance on testing SaaS applications.
用户验收测试(UAT)是软件工程中不可缺少的一部分。本研究旨在质疑uat是否适合收集软件即服务(SaaS)应用程序的可用反馈,这些应用程序是连续交付的,而不是在一次性签署过程中推出的。我们在丹麦一家跨国SaaS提供商进行的探索性定性实地研究的初步结果表明,uat经常解决错误的问题,因为积极的用户接受可能矛盾地表明消极的用户体验。因此,SaaS提供商应该小心,不要依赖于我们最初所说的脱离用户接受度。相反,我们的目标是探索SaaS提供商如何有目的地查询用户的矛盾情绪,以引起建设性的批评。我们简要概述了不参与的用户接受对测试SaaS应用程序的不利影响。
{"title":"Beware of Disengaged User Acceptance in Testing Software-as-a-Service","authors":"Sebastian Loss, Raffaele Ciriello, Jürgen Cito","doi":"10.1109/ICSE-Companion.2019.00123","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00123","url":null,"abstract":"User acceptance tests (UAT) are an integral part of software engineering. This study aims to question the appropriateness of UATs to collect usable feedback for Software-as-a-Service (SaaS) applications, which are continuously delivered rather than rolled out during a one-off signoff process. Our preliminary results from an exploratory qualitative field study at a multinational SaaS provider in Denmark show that UATs often address the wrong problem in that positive user acceptance may paradoxically indicate a negative user experience. Hence, SaaS providers should be careful not to rest on what we initially term disengaged user acceptance. Instead, we aim to explore how SaaS providers can purposefully query users for ambivalent emotions to evoke constructive criticism. We briefly outline the adverse effects of disengaged user acceptance on testing SaaS applications.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128917506","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}
引用次数: 0
Incorporating Real Projects Into a Software Engineering Undergraduate Curriculum 将实际项目纳入软件工程本科课程
R. Chanin, Jorge Melegati, Afonso Sales, Mariana Detoni, Xiaofeng Wang, R. Prikladnicki
Software engineering researchers and practitioners are increasingly more concerned about non-technical issues like user involvement and interaction as a way to improve software development process efficiency. This issue is also present in software engineering education. The IEEE/ACM software engineering guidelines highlights that an undergraduate course in this matter should have a real-world basis. In this paper, we present an undergraduate program that connect students with real-world projects throughout their studies. To evaluate educational results, we performed a survey with 111 students from this software engineering program. The results indicate that students in the end of this program has a much better chance of taking users' desires into consideration instead of focusing on software implementation.
软件工程研究人员和实践者越来越关注非技术问题,如用户参与和交互,以提高软件开发过程的效率。这个问题也存在于软件工程教育中。IEEE/ACM软件工程指南强调,这方面的本科课程应该具有现实世界的基础。在本文中,我们提出了一个本科课程,将学生与现实世界的项目联系起来。为了评估教育成果,我们对来自这个软件工程项目的111名学生进行了调查。结果表明,在这个项目结束时,学生有更好的机会考虑用户的需求,而不是专注于软件实现。
{"title":"Incorporating Real Projects Into a Software Engineering Undergraduate Curriculum","authors":"R. Chanin, Jorge Melegati, Afonso Sales, Mariana Detoni, Xiaofeng Wang, R. Prikladnicki","doi":"10.1109/ICSE-Companion.2019.00099","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00099","url":null,"abstract":"Software engineering researchers and practitioners are increasingly more concerned about non-technical issues like user involvement and interaction as a way to improve software development process efficiency. This issue is also present in software engineering education. The IEEE/ACM software engineering guidelines highlights that an undergraduate course in this matter should have a real-world basis. In this paper, we present an undergraduate program that connect students with real-world projects throughout their studies. To evaluate educational results, we performed a survey with 111 students from this software engineering program. The results indicate that students in the end of this program has a much better chance of taking users' desires into consideration instead of focusing on software implementation.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128971278","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
Industry Trends in Software Engineering Education: A Systematic Mapping Study 软件工程教育的行业趋势:系统的映射研究
Orges Cico, M. L. Jaccheri
Contemporary approaches and trends, in software engineering courses have been continuously updated over the last four decades. Adaptation to industry needs is crucial for future educational purposes. The goal of this poster paper is to present some preliminary results related to what degree contemporary industry trends are being adopted in updating software engineering teaching approaches. This study is a systematic mapping. A total of 138 papers were selected based on education goals, research, and contribution type. Of the primary education topics, around 78% are related to teaching approaches, 9% to globalisation and training methods, and less than 5% to tech startup and industry innovation. Less investigated areas that have recently become common industry trends, such as tech startup models adopting lean methodology, require further attention and might create opportunities for updating the curricula. Future work will investigate possibilities for exploiting tech startups as a means for renewing future capstone courses.
软件工程课程的当代方法和趋势在过去四十年中不断更新。适应行业需求对未来的教育目的至关重要。这篇海报的目的是展示一些初步的结果,这些结果与更新软件工程教学方法所采用的当代行业趋势的程度有关。这项研究是一项系统的测绘。根据教育目标、研究和贡献类型,共选择了138篇论文。在小学教育主题中,约78%与教学方法有关,9%与全球化和培训方法有关,不到5%与科技创业和行业创新有关。最近成为普遍行业趋势的调查较少的领域,如采用精益方法的科技创业模式,需要进一步关注,并可能创造更新课程的机会。未来的工作将研究利用科技创业公司作为更新未来顶点课程的手段的可能性。
{"title":"Industry Trends in Software Engineering Education: A Systematic Mapping Study","authors":"Orges Cico, M. L. Jaccheri","doi":"10.1109/ICSE-COMPANION.2019.00120","DOIUrl":"https://doi.org/10.1109/ICSE-COMPANION.2019.00120","url":null,"abstract":"Contemporary approaches and trends, in software engineering courses have been continuously updated over the last four decades. Adaptation to industry needs is crucial for future educational purposes. The goal of this poster paper is to present some preliminary results related to what degree contemporary industry trends are being adopted in updating software engineering teaching approaches. This study is a systematic mapping. A total of 138 papers were selected based on education goals, research, and contribution type. Of the primary education topics, around 78% are related to teaching approaches, 9% to globalisation and training methods, and less than 5% to tech startup and industry innovation. Less investigated areas that have recently become common industry trends, such as tech startup models adopting lean methodology, require further attention and might create opportunities for updating the curricula. Future work will investigate possibilities for exploiting tech startups as a means for renewing future capstone courses.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115381399","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}
引用次数: 5
Improving Automated Program Repair with Retrospective Fault Localization 通过回顾性故障定位改进自动程序修复
Tongtong Xu
Although being recognized as a critical step in automated program repair, fault localization has been only loosely coupled into the fixing process in existing program repair approaches, in the sense that fault localization has limited interactions with other activities in fixing. We propose in this paper to deeply integrate fault localization into the fixing process to achieve more effective and efficient program repair. Our approach introduces a feedback loop in fixing between the activities for locating the fault causes and those for generating and evaluating candidate fixes. The feedback loop enables partial evaluation results of candidate fixes to be used to locate fault localization more accurately, and eventually leads to fixing processes with improved effectiveness and efficiency. We have implemented the approach into a tool, named RESTORE, based on the JAID program repair system. Experiments involving faults from the DEFECTS4J standard benchmark indicate that the integrated fault localization can boost automated program repair: RESTORE produced valid fixes to 63 faults and correct ones to 38 faults, outperforming any other state-of-the-art repair tool for Java while taking 36% less running time compared with JAID.
虽然被认为是自动化程序修复的关键步骤,但在现有的程序修复方法中,故障定位只是松散地耦合到修复过程中,也就是说,故障定位与修复过程中其他活动的交互作用有限。本文提出将故障定位深度集成到修复过程中,以实现更有效和高效的程序修复。我们的方法在定位故障原因的活动和生成和评估候选修复的活动之间引入了一个修复中的反馈循环。反馈回路使候选修复的部分评估结果能够用于更准确地定位故障定位,并最终导致具有改进的有效性和效率的修复过程。我们已经将这种方法实现到一个基于JAID程序修复系统的名为RESTORE的工具中。涉及来自DEFECTS4J标准基准的故障的实验表明,集成的故障定位可以提高自动程序修复:RESTORE对63个故障生成有效修复,对38个故障生成正确修复,性能优于任何其他最先进的Java修复工具,同时与JAID相比减少36%的运行时间。
{"title":"Improving Automated Program Repair with Retrospective Fault Localization","authors":"Tongtong Xu","doi":"10.1109/ICSE-Companion.2019.00066","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00066","url":null,"abstract":"Although being recognized as a critical step in automated program repair, fault localization has been only loosely coupled into the fixing process in existing program repair approaches, in the sense that fault localization has limited interactions with other activities in fixing. We propose in this paper to deeply integrate fault localization into the fixing process to achieve more effective and efficient program repair. Our approach introduces a feedback loop in fixing between the activities for locating the fault causes and those for generating and evaluating candidate fixes. The feedback loop enables partial evaluation results of candidate fixes to be used to locate fault localization more accurately, and eventually leads to fixing processes with improved effectiveness and efficiency. We have implemented the approach into a tool, named RESTORE, based on the JAID program repair system. Experiments involving faults from the DEFECTS4J standard benchmark indicate that the integrated fault localization can boost automated program repair: RESTORE produced valid fixes to 63 faults and correct ones to 38 faults, outperforming any other state-of-the-art repair tool for Java while taking 36% less running time compared with JAID.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126825667","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}
引用次数: 4
fAST: Flattening Abstract Syntax Trees for Efficiency fAST:简化抽象语法树以提高效率
Yijun Yu
Frequently source code analysis tools need to exchange internal representations of abstract syntax trees (AST) with each other. Conveniently, and intuitively, the externalised representations are in the form of hierarchical trees. We argue, counter-intuitively, that hierarchical representation is not the most efficient way for source analysis tools to exchange parsed AST. In this work, we propose to speed up AST parsing whilst preserving the equivalence of hierarchies in binary forms: (1) AST could be saved as a flat one-dimensional array where pointers to tree nodes are converted into integer offsets, and (2) such flattened AST are more efficient to access by programming tools through the generated application programming interfaces (API). In programming language-agnostic evaluations, we show that parsing flattened AST becomes 100x faster than in textual form AST on a benchmark of open-source projects of 6 different programming languages.
源代码分析工具经常需要彼此交换抽象语法树(AST)的内部表示。方便且直观的是,外部化的表示采用层次树的形式。我们认为,与直觉相反,层次表示并不是源分析工具交换解析AST的最有效方式。在这项工作中,我们建议在保持二进制形式的层次结构等价的同时加速AST解析:(1) AST可以保存为一个平面的一维数组,其中指向树节点的指针被转换为整数偏移量;(2)通过生成的应用程序编程接口(API),编程工具可以更有效地访问这种平面AST。在与编程语言无关的评估中,我们表明,在6种不同编程语言的开源项目的基准测试中,解析扁平形式的AST比解析文本形式的AST快100倍。
{"title":"fAST: Flattening Abstract Syntax Trees for Efficiency","authors":"Yijun Yu","doi":"10.1109/ICSE-Companion.2019.00113","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00113","url":null,"abstract":"Frequently source code analysis tools need to exchange internal representations of abstract syntax trees (AST) with each other. Conveniently, and intuitively, the externalised representations are in the form of hierarchical trees. We argue, counter-intuitively, that hierarchical representation is not the most efficient way for source analysis tools to exchange parsed AST. In this work, we propose to speed up AST parsing whilst preserving the equivalence of hierarchies in binary forms: (1) AST could be saved as a flat one-dimensional array where pointers to tree nodes are converted into integer offsets, and (2) such flattened AST are more efficient to access by programming tools through the generated application programming interfaces (API). In programming language-agnostic evaluations, we show that parsing flattened AST becomes 100x faster than in textual form AST on a benchmark of open-source projects of 6 different programming languages.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"2016 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127514320","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
Recommending Unnecessary Source Code Based on Static Analysis 基于静态分析推荐不必要的源代码
Roman Haas, Rainer Niedermayr, T. Roehm, S. Apel
Grown software systems often contain code that is not necessary anymore. Unnecessary code wastes resources during development and maintenance, for example, when preparing code for migration or certification. Running a profiler may reveal code that is not used in production, but it is often time-consuming to obtain representative data this way. We investigate to what extent a static analysis approach which is based on code stability and code centrality, is able to identify unnecessary code and whether its recommendations are relevant in practice. To study the feasibility and usefulness of our static approach, we conducted a study involving 14 open-source and closed-source software systems. As there is no perfect oracle for unnecessary code, we compared recommendations of our approach with historical cleanup actions, runtime usage data, and feedback from 25 developers of 5 software projects. Our study shows that recommendations generated from stability and centrality information point to unnecessary code. Our results suggest that static analysis can provide quick feedback on unnecessary code that is useful in practice.
成熟的软件系统通常包含不再需要的代码。不必要的代码会在开发和维护期间浪费资源,例如,在为迁移或认证准备代码时。运行一个分析器可能会显示出没有在生产环境中使用的代码,但是通过这种方式获得代表性数据通常是很耗时的。我们调查了基于代码稳定性和代码中心性的静态分析方法在多大程度上能够识别不必要的代码,以及它的建议在实践中是否相关。为了研究静态方法的可行性和有效性,我们进行了一项涉及14个开源和闭源软件系统的研究。由于对于不必要的代码没有完美的oracle,我们将我们的方法的建议与历史清理操作、运行时使用数据和来自5个软件项目的25个开发人员的反馈进行了比较。我们的研究表明,从稳定性和中心性信息生成的建议指向不必要的代码。我们的结果表明,静态分析可以对不必要的代码提供快速反馈,这在实践中是有用的。
{"title":"Recommending Unnecessary Source Code Based on Static Analysis","authors":"Roman Haas, Rainer Niedermayr, T. Roehm, S. Apel","doi":"10.1109/ICSE-Companion.2019.00111","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00111","url":null,"abstract":"Grown software systems often contain code that is not necessary anymore. Unnecessary code wastes resources during development and maintenance, for example, when preparing code for migration or certification. Running a profiler may reveal code that is not used in production, but it is often time-consuming to obtain representative data this way. We investigate to what extent a static analysis approach which is based on code stability and code centrality, is able to identify unnecessary code and whether its recommendations are relevant in practice. To study the feasibility and usefulness of our static approach, we conducted a study involving 14 open-source and closed-source software systems. As there is no perfect oracle for unnecessary code, we compared recommendations of our approach with historical cleanup actions, runtime usage data, and feedback from 25 developers of 5 software projects. Our study shows that recommendations generated from stability and centrality information point to unnecessary code. Our results suggest that static analysis can provide quick feedback on unnecessary code that is useful in practice.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124510150","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}
引用次数: 2
Detecting, Understanding and Resolving Build and Test Conflicts 检测、理解和解决构建和测试冲突
L. Silva
Collaborative software development allows developers to contribute to the same project simultaneously performing different activities. Although this might increase development productivity, it also brings conflicts among developers contributions. Different kinds of conflicts can arise, but previous studies have often focused on merge conflicts. So we aim to further investigate build and test conflicts occurrence, that are conflicts revealed by failures when building and testing integrated code, respectively. For that, we intend to study the causes of build and test conflicts, their adopted resolution patterns, and the factors that are associated with the conflict occurrence. Based on these results, we plan to develop a tool for helping developers when resolving build and test conflicts. Our initial results, analyzing Java projects, show that most build conflicts are caused by missing declarations removed or renamed by one developer but referenced by the changes of another developer. We also verified these conflicts are often resolved by removing the dangling reference. Based on such finding, we developed a prototype that recommends fixes for these build conflicts.
协作软件开发允许开发人员在执行不同活动的同时为同一个项目做出贡献。尽管这可能会提高开发效率,但它也会带来开发人员贡献之间的冲突。不同类型的冲突可能会出现,但之前的研究通常集中在合并冲突上。因此,我们的目标是进一步研究构建和测试冲突的发生,即分别在构建和测试集成代码时失败所揭示的冲突。为此,我们打算研究构建和测试冲突的原因,它们采用的解决模式,以及与冲突发生相关的因素。基于这些结果,我们计划开发一个工具来帮助开发人员解决构建和测试冲突。通过分析Java项目,我们的初步结果表明,大多数构建冲突是由于缺少由一个开发人员删除或重命名的声明,而另一个开发人员的更改引用了这些声明。我们还验证了这些冲突通常可以通过删除悬空引用来解决。基于这样的发现,我们开发了一个原型,建议修复这些构建冲突。
{"title":"Detecting, Understanding and Resolving Build and Test Conflicts","authors":"L. Silva","doi":"10.1109/ICSE-Companion.2019.00079","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00079","url":null,"abstract":"Collaborative software development allows developers to contribute to the same project simultaneously performing different activities. Although this might increase development productivity, it also brings conflicts among developers contributions. Different kinds of conflicts can arise, but previous studies have often focused on merge conflicts. So we aim to further investigate build and test conflicts occurrence, that are conflicts revealed by failures when building and testing integrated code, respectively. For that, we intend to study the causes of build and test conflicts, their adopted resolution patterns, and the factors that are associated with the conflict occurrence. Based on these results, we plan to develop a tool for helping developers when resolving build and test conflicts. Our initial results, analyzing Java projects, show that most build conflicts are caused by missing declarations removed or renamed by one developer but referenced by the changes of another developer. We also verified these conflicts are often resolved by removing the dangling reference. Based on such finding, we developed a prototype that recommends fixes for these build conflicts.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133692525","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
Quantifying Patterns and Programming Strategies in Block-Based Programming Environments 基于块的编程环境中的量化模式和编程策略
Max Kesselbacher, A. Bollin
Pupils are often first exposed to programming in block-based programming environments like Scratch. Identifying and measuring the previous experience of students learning to program is a key to improve the teaching of programming. In this contribution, we outline an approach to measure and evaluate programming interactions with the block-based programming environment Scratch. First results, obtained with eight upper secondary school students, show that programming skills and patterns can be quantified with interaction metrics measured during program construction. The aim is a more fine-grained identification and assessment of programming skills.
学生第一次接触编程通常是在像Scratch这样的基于块的编程环境中。识别和衡量学生以前学习程序设计的经验是改进程序设计教学的关键。在本文中,我们概述了一种测量和评估与基于块的编程环境Scratch的编程交互的方法。第一个结果是由8名高中学生获得的,结果表明编程技能和模式可以通过在程序构建过程中测量的交互度量来量化。其目的是对编程技能进行更细粒度的识别和评估。
{"title":"Quantifying Patterns and Programming Strategies in Block-Based Programming Environments","authors":"Max Kesselbacher, A. Bollin","doi":"10.1109/ICSE-Companion.2019.00101","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00101","url":null,"abstract":"Pupils are often first exposed to programming in block-based programming environments like Scratch. Identifying and measuring the previous experience of students learning to program is a key to improve the teaching of programming. In this contribution, we outline an approach to measure and evaluate programming interactions with the block-based programming environment Scratch. First results, obtained with eight upper secondary school students, show that programming skills and patterns can be quantified with interaction metrics measured during program construction. The aim is a more fine-grained identification and assessment of programming skills.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114212532","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
A Data-Driven Security Game to Facilitate Information Security Education 以数据为导向的资讯保安游戏促进资讯保安教育
Dag Erik Homdrum Løvgren, Jingyue Li, Tosin Daniel Oyetoyan
Many universities have started to educate students on how to develop secure software and systems. One challenge of teaching information security is that the curriculum can easily be outdated, because new attacks and mitigation approaches arise. It is therefore necessary to provide software developers with methods and tools that are attractive (e.g., computer games) for self-study and up-to-date information security knowledge during and after the university education. This paper presents an on-going study to develop an educational game to facilitate information security education. The game is developed as a single player Tower Defense (TD) game. The educational goal of the game is to teach developers, who are not security experts, how to choose proper mitigation strategies and patterns to defend against various security attack scenarios. One key benefit of our game is that it is data driven, meaning, it can continuously fetch data from relevant security-based online sources (e.g., Common Attack Pattern Enumeration Classification CAPEC) to stay up to date with any new information. This is done automatically. We evaluated the game by letting students play it and give comments. Evaluation results show that the game can facilitate students learning of mitigation strategies to defend against attack scenarios.
许多大学已经开始教育学生如何开发安全的软件和系统。教授信息安全的一个挑战是,由于出现了新的攻击和缓解方法,课程很容易过时。因此,有必要为软件开发人员提供有吸引力的方法和工具(例如电脑游戏),以便在大学教育期间和之后自学和最新的信息安全知识。本文介绍了一项正在进行的研究,以开发一个教育游戏,以促进信息安全教育。该游戏是一款单人塔防(TD)游戏。该游戏的教育目标是教不是安全专家的开发人员如何选择适当的缓解策略和模式来防御各种安全攻击场景。我们的游戏的一个关键好处是它是数据驱动的,这意味着,它可以不断地从相关的基于安全的在线来源(例如,通用攻击模式枚举分类CAPEC)获取数据,以保持最新的任何新信息。这是自动完成的。我们通过让学生玩游戏并给出评论来评估游戏。评估结果表明,该游戏可以帮助学生学习防御攻击场景的缓解策略。
{"title":"A Data-Driven Security Game to Facilitate Information Security Education","authors":"Dag Erik Homdrum Løvgren, Jingyue Li, Tosin Daniel Oyetoyan","doi":"10.1109/ICSE-Companion.2019.00102","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00102","url":null,"abstract":"Many universities have started to educate students on how to develop secure software and systems. One challenge of teaching information security is that the curriculum can easily be outdated, because new attacks and mitigation approaches arise. It is therefore necessary to provide software developers with methods and tools that are attractive (e.g., computer games) for self-study and up-to-date information security knowledge during and after the university education. This paper presents an on-going study to develop an educational game to facilitate information security education. The game is developed as a single player Tower Defense (TD) game. The educational goal of the game is to teach developers, who are not security experts, how to choose proper mitigation strategies and patterns to defend against various security attack scenarios. One key benefit of our game is that it is data driven, meaning, it can continuously fetch data from relevant security-based online sources (e.g., Common Attack Pattern Enumeration Classification CAPEC) to stay up to date with any new information. This is done automatically. We evaluated the game by letting students play it and give comments. Evaluation results show that the game can facilitate students learning of mitigation strategies to defend against attack scenarios.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114250777","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
期刊
2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)
全部 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