首页 > 最新文献

Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops最新文献

英文 中文
Using API-Embedding for API-Misuse Repair 利用api嵌入修复api误用
Sebastian Nielebock, R. Heumüller, J. Krüger, F. Ortmeier
Application Programming Interfaces (APIs) are a way to reuse existing functionalities of one application in another one. However, due to lacking knowledge on the correct usage of a particular API, developers sometimes commit misuses, causing unintended or faulty behavior. To detect and eventually repair such misuses automatically, inferring API usage patterns from real-world code is the state-of-the-art. A contradiction to an identified usage pattern denotes a misuse, while applying the pattern fixes the respective misuse. The success of this process heavily depends on the quality of the usage patterns and on the code from which these are inferred. Thus, a lack of code demonstrating the correct usage makes it impossible to detect and fix a misuse. In this paper, we discuss the potential of using machine-learning vector embeddings to improve automatic program repair and to extend it towards cross-API and cross-language repair. We illustrate our ideas using one particular technique for API-embedding (i.e., API2Vec) and describe the arising possibilities and challenges.
应用程序编程接口是在另一个应用程序中重用一个应用程序的现有功能的一种方法。然而,由于缺乏对特定API的正确用法的了解,开发人员有时会误用,导致意外或错误的行为。为了自动检测并最终修复此类误用,从实际代码中推断API使用模式是最先进的方法。与已识别的使用模式相矛盾表示误用,而应用该模式则修复各自的误用。这个过程的成功在很大程度上依赖于使用模式的质量和推断这些模式的代码。因此,缺乏演示正确用法的代码使得不可能检测和修复错误。在本文中,我们讨论了使用机器学习向量嵌入来改进自动程序修复并将其扩展到跨api和跨语言修复的潜力。我们使用一种特定的api嵌入技术(即API2Vec)来说明我们的想法,并描述出现的可能性和挑战。
{"title":"Using API-Embedding for API-Misuse Repair","authors":"Sebastian Nielebock, R. Heumüller, J. Krüger, F. Ortmeier","doi":"10.1145/3387940.3392171","DOIUrl":"https://doi.org/10.1145/3387940.3392171","url":null,"abstract":"Application Programming Interfaces (APIs) are a way to reuse existing functionalities of one application in another one. However, due to lacking knowledge on the correct usage of a particular API, developers sometimes commit misuses, causing unintended or faulty behavior. To detect and eventually repair such misuses automatically, inferring API usage patterns from real-world code is the state-of-the-art. A contradiction to an identified usage pattern denotes a misuse, while applying the pattern fixes the respective misuse. The success of this process heavily depends on the quality of the usage patterns and on the code from which these are inferred. Thus, a lack of code demonstrating the correct usage makes it impossible to detect and fix a misuse. In this paper, we discuss the potential of using machine-learning vector embeddings to improve automatic program repair and to extend it towards cross-API and cross-language repair. We illustrate our ideas using one particular technique for API-embedding (i.e., API2Vec) and describe the arising possibilities and challenges.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126967720","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
Mining for Process Improvements: Analyzing Software Repositories in Agile Retrospectives 挖掘过程改进:在敏捷回顾中分析软件存储库
Christoph Matthies, Franziska Dobrigkeit, Guenter Hesse
Software Repositories contain knowledge on how software engineering teams work, communicate, and collaborate. It can be used to develop a data-informed view of a team's development process, which in turn can be employed for process improvement initiatives. In modern, Agile development methods, process improvement takes place in Retrospective meetings, in which the last development iteration is discussed. However, previously proposed activities that take place in these meetings often do not rely on project data, instead depending solely on the perceptions of team members. We propose new Retrospective activities, based on mining the software repositories of individual teams, to complement existing approaches with more objective, data-informed process views.
软件存储库包含关于软件工程团队如何工作、沟通和协作的知识。它可以用于开发团队开发过程的数据信息视图,这反过来又可以用于过程改进计划。在现代的敏捷开发方法中,过程改进发生在回顾会议中,在会议中讨论最后的开发迭代。然而,以前在这些会议中提出的活动通常不依赖于项目数据,而仅仅依赖于团队成员的看法。我们提出新的回顾性活动,基于挖掘单个团队的软件存储库,用更客观的、数据知情的过程视图来补充现有的方法。
{"title":"Mining for Process Improvements: Analyzing Software Repositories in Agile Retrospectives","authors":"Christoph Matthies, Franziska Dobrigkeit, Guenter Hesse","doi":"10.1145/3387940.3392168","DOIUrl":"https://doi.org/10.1145/3387940.3392168","url":null,"abstract":"Software Repositories contain knowledge on how software engineering teams work, communicate, and collaborate. It can be used to develop a data-informed view of a team's development process, which in turn can be employed for process improvement initiatives. In modern, Agile development methods, process improvement takes place in Retrospective meetings, in which the last development iteration is discussed. However, previously proposed activities that take place in these meetings often do not rely on project data, instead depending solely on the perceptions of team members. We propose new Retrospective activities, based on mining the software repositories of individual teams, to complement existing approaches with more objective, data-informed process views.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128772979","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
Linecept Linecept
D. T. Kutas, Aditya Nair, Prerna Singh, E. Kan, J. Burge, A. van der Hoek
In software design, the various stakeholders generate large numbers of heterogeneous artifacts. These artifacts are often developed in, and managed by, different tools. In this paper, we present our initial prototype of Linecept, a tool that helps stakeholders organize, find, and view disparate design artifacts by organizing them on a timeline that presents a single unified view of the artifacts and who created them. We have used Linecept to retrospectively capture design artifacts for its own creation and in a software design class.
{"title":"Linecept","authors":"D. T. Kutas, Aditya Nair, Prerna Singh, E. Kan, J. Burge, A. van der Hoek","doi":"10.1145/3387940.3392228","DOIUrl":"https://doi.org/10.1145/3387940.3392228","url":null,"abstract":"In software design, the various stakeholders generate large numbers of heterogeneous artifacts. These artifacts are often developed in, and managed by, different tools. In this paper, we present our initial prototype of Linecept, a tool that helps stakeholders organize, find, and view disparate design artifacts by organizing them on a timeline that presents a single unified view of the artifacts and who created them. We have used Linecept to retrospectively capture design artifacts for its own creation and in a software design class.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124669284","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
Finding Load Inducing Test Scenarios Using Genetic Algorithms and Tree Based Encoding 使用遗传算法和基于树的编码寻找负载诱导测试场景
Ege Apak, Ayse Tosun Misirli
Load test is conducted in order to gain an insight to the characteristics of a system under various amount of load. Since the combination of possible actions a user can follow from start to finish is possibly endless, the possibility of missing a load inducing scenario by using a traditional load testing software is highly probable. In this work, we implement a rule-aided scenario generation algorithm and find the possible scenarios that a high amount of load is generated by using genetic algorithms to drive the search forward.
负载测试是为了深入了解系统在不同负载下的特性。由于用户可以从头到尾执行的可能操作组合可能是无穷无尽的,因此使用传统负载测试软件很可能会错过负载诱导场景。在这项工作中,我们实现了一种规则辅助的场景生成算法,并通过使用遗传算法来驱动搜索向前,找到可能产生大量负载的场景。
{"title":"Finding Load Inducing Test Scenarios Using Genetic Algorithms and Tree Based Encoding","authors":"Ege Apak, Ayse Tosun Misirli","doi":"10.1145/3387940.3392216","DOIUrl":"https://doi.org/10.1145/3387940.3392216","url":null,"abstract":"Load test is conducted in order to gain an insight to the characteristics of a system under various amount of load. Since the combination of possible actions a user can follow from start to finish is possibly endless, the possibility of missing a load inducing scenario by using a traditional load testing software is highly probable. In this work, we implement a rule-aided scenario generation algorithm and find the possible scenarios that a high amount of load is generated by using genetic algorithms to drive the search forward.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129485060","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
Bot or not?: Detecting bots in GitHub pull request activity based on comment similarity 是还是不是?:基于评论相似度检测GitHub拉请求活动中的机器人
M. Golzadeh, Damien Legay, Alexandre Decan, T. Mens
Many empirical studies focus on socio-technical activity in social coding platforms such as GitHub, for example to study the onboarding, abandonment, productivity and collaboration among team members. Such studies face the difficulty that GitHub activity can also be generated automatically by bots of a different nature. It therefore becomes imperative to distinguish such bots from human users. We propose an automated approach to detect bots in GitHub pull request (PR) activity. Relying on the assumption that bots contain repetitive message patterns in their PR comments, we analyse the similarity between multiple messages from the same GitHub identity, using a clustering method that combines the Jaccard and Levenshtein distance. We empirically evaluate our approach by analysing 20,090 PR comments of 250 users and 42 bots in 1,262 GitHub repositories. Our results show that the method is able to clearly separate bots from human users.
许多实证研究关注社交编码平台(如GitHub)中的社会技术活动,例如研究团队成员之间的入职、放弃、生产力和协作。这类研究面临的困难是,GitHub活动也可以由不同性质的机器人自动生成。因此,必须将这些机器人与人类用户区分开来。我们提出了一种自动化的方法来检测GitHub拉请求(PR)活动中的机器人。基于机器人在其PR评论中包含重复消息模式的假设,我们使用结合Jaccard和Levenshtein距离的聚类方法,分析来自相同GitHub身份的多个消息之间的相似性。我们通过分析1262个GitHub存储库中250个用户和42个机器人的20,090条PR评论来对我们的方法进行实证评估。我们的结果表明,该方法能够清楚地将机器人与人类用户区分开来。
{"title":"Bot or not?: Detecting bots in GitHub pull request activity based on comment similarity","authors":"M. Golzadeh, Damien Legay, Alexandre Decan, T. Mens","doi":"10.1145/3387940.3391503","DOIUrl":"https://doi.org/10.1145/3387940.3391503","url":null,"abstract":"Many empirical studies focus on socio-technical activity in social coding platforms such as GitHub, for example to study the onboarding, abandonment, productivity and collaboration among team members. Such studies face the difficulty that GitHub activity can also be generated automatically by bots of a different nature. It therefore becomes imperative to distinguish such bots from human users. We propose an automated approach to detect bots in GitHub pull request (PR) activity. Relying on the assumption that bots contain repetitive message patterns in their PR comments, we analyse the similarity between multiple messages from the same GitHub identity, using a clustering method that combines the Jaccard and Levenshtein distance. We empirically evaluate our approach by analysing 20,090 PR comments of 250 users and 42 bots in 1,262 GitHub repositories. Our results show that the method is able to clearly separate bots from human users.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127633283","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}
引用次数: 23
Immersive IDE: Towards Leveraging Virtual Reality for creating an Immersive Software Development Environment 沉浸式IDE:利用虚拟现实创建沉浸式软件开发环境
Rohit Mehra, V. Sharma, Vikrant S. Kaulgud, Sanjay Podder, Adam P. Burden
Positive affects have been shown to be positively correlated with developer productivity. Moreover, the environment in which the developer sits is important as it has a direct bearing on her emotions. However, in typical software development project setups, it is difficult to mold the surroundings of a developer according to her own needs or wishes. Moreover, large project areas may tend to have multiple distractions that may further negatively affect the developer. Multiple studies have shown that Virtual Reality can be an effective medium to induce positive emotions, with the capability to immerse oneself into virtually created environs, allowing for countless opportunities to surround a developer with what she would want. In this paper, we present our approach to allow a developer to choose her own surrounding environment to work in (say a beach, a park or in space!), while allowing for a real-time feed of her workstation/tools to be embedded in the same for a seamless experience. We believe that this approach will enable better mood/engagement and lower distractions/stress, which may lead to higher productivity and a balanced sense of developer well-being.
积极的影响已被证明与开发人员的生产力呈正相关。此外,开发者所处的环境也很重要,因为它直接影响着开发者的情绪。然而,在典型的软件开发项目设置中,很难根据开发人员自己的需求或愿望来塑造开发人员的环境。此外,大型项目区域可能会有多种干扰,这可能会进一步对开发人员产生负面影响。多项研究表明,虚拟现实可以成为激发积极情绪的有效媒介,能够让自己沉浸在虚拟创造的环境中,为开发者提供无数机会,让他们获得自己想要的东西。在本文中,我们提出了一种方法,即允许开发者选择自己的周边环境(游戏邦注:如海滩,公园或空间!),同时允许将其工作站/工具的实时馈送嵌入其中,从而实现无缝体验。我们相信,这种方法将带来更好的情绪/参与度,减少干扰/压力,从而带来更高的生产力和平衡的开发者幸福感。
{"title":"Immersive IDE: Towards Leveraging Virtual Reality for creating an Immersive Software Development Environment","authors":"Rohit Mehra, V. Sharma, Vikrant S. Kaulgud, Sanjay Podder, Adam P. Burden","doi":"10.1145/3387940.3392234","DOIUrl":"https://doi.org/10.1145/3387940.3392234","url":null,"abstract":"Positive affects have been shown to be positively correlated with developer productivity. Moreover, the environment in which the developer sits is important as it has a direct bearing on her emotions. However, in typical software development project setups, it is difficult to mold the surroundings of a developer according to her own needs or wishes. Moreover, large project areas may tend to have multiple distractions that may further negatively affect the developer. Multiple studies have shown that Virtual Reality can be an effective medium to induce positive emotions, with the capability to immerse oneself into virtually created environs, allowing for countless opportunities to surround a developer with what she would want. In this paper, we present our approach to allow a developer to choose her own surrounding environment to work in (say a beach, a park or in space!), while allowing for a real-time feed of her workstation/tools to be embedded in the same for a seamless experience. We believe that this approach will enable better mood/engagement and lower distractions/stress, which may lead to higher productivity and a balanced sense of developer well-being.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129978691","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
Applying probabilistic models to C++ code on an industrial scale 将概率模型应用于工业规模的c++代码
Andrey Y. Shedko, Ilya Palachev, A. Kvochko, Aleksandr Semenov, Kwangwon Sun
Machine learning approaches are widely applied to different research tasks of software engineering, but C/C++ code presents a challenge for these approaches because of its complex build system. However, C and C++ languages still remain two of the most popular programming languages, especially in industrial software, where a big amount of legacy code is still used. This fact prevents the application of recent advances in probabilistic modeling of source code to the C/C++ domain. We demonstrate that it is possible to at least partially overcome these difficulties by the use of a simple token-based representation of C/C++ code that can be used as a possible replacement for more precise representations. Enriched token representation is verified at a large scale to ensure that its precision is good enough to learn rules from. We consider two different tasks as an application of this representation: coding style detection and API usage anomaly detection. We apply simple probabilistic models to these tasks and demonstrate that even complex coding style rules and API usage patterns can be detected by the means of this representation. This paper provides a vision of how different research ML-based methods for software engineering could be applied to the domain of C/C++ languages and show how they can be applied to the source code of a large software company like Samsung.
机器学习方法被广泛应用于软件工程的不同研究任务,但C/ c++代码由于其复杂的构建系统,对这些方法提出了挑战。然而,C和c++语言仍然是最流行的两种编程语言,特别是在工业软件中,其中仍然使用大量遗留代码。这一事实阻碍了在C/ c++领域应用源代码概率建模方面的最新进展。我们证明,通过使用简单的基于令牌的C/ c++代码表示,可以作为更精确表示的可能替代品,至少可以部分克服这些困难。大规模验证了丰富的令牌表示,以确保其精度足够好,可以从中学习规则。我们考虑两种不同的任务作为这种表示的应用:编码风格检测和API使用异常检测。我们将简单的概率模型应用于这些任务,并证明即使是复杂的编码风格规则和API使用模式也可以通过这种表示来检测。本文提供了如何将不同的基于ml的软件工程研究方法应用于C/ c++语言领域的愿景,并展示了如何将它们应用于像三星这样的大型软件公司的源代码。
{"title":"Applying probabilistic models to C++ code on an industrial scale","authors":"Andrey Y. Shedko, Ilya Palachev, A. Kvochko, Aleksandr Semenov, Kwangwon Sun","doi":"10.1145/3387940.3391477","DOIUrl":"https://doi.org/10.1145/3387940.3391477","url":null,"abstract":"Machine learning approaches are widely applied to different research tasks of software engineering, but C/C++ code presents a challenge for these approaches because of its complex build system. However, C and C++ languages still remain two of the most popular programming languages, especially in industrial software, where a big amount of legacy code is still used. This fact prevents the application of recent advances in probabilistic modeling of source code to the C/C++ domain. We demonstrate that it is possible to at least partially overcome these difficulties by the use of a simple token-based representation of C/C++ code that can be used as a possible replacement for more precise representations. Enriched token representation is verified at a large scale to ensure that its precision is good enough to learn rules from. We consider two different tasks as an application of this representation: coding style detection and API usage anomaly detection. We apply simple probabilistic models to these tasks and demonstrate that even complex coding style rules and API usage patterns can be detected by the means of this representation. This paper provides a vision of how different research ML-based methods for software engineering could be applied to the domain of C/C++ languages and show how they can be applied to the source code of a large software company like Samsung.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128942957","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
Property-based Testing of Quantum Programs in Q# q#中基于性质的量子程序测试
Shahin Honarvar, M. Mousavi, R. Nagarajan
Property-based testing is a structured method for automated testing using program specifications. We report on the design and implementation of what is to our knowledge the first property-based framework for quantum programs. We review various aspects of our design concerning property-specification, test-case generation, and test result analysis. We also provide an overview of the implementation and its way of working. Finally, we present the result of applying our framework to some examples.
基于属性的测试是一种使用程序规范进行自动化测试的结构化方法。我们报告了我们所知的第一个基于属性的量子程序框架的设计和实现。我们回顾了与属性规范、测试用例生成和测试结果分析有关的设计的各个方面。我们还提供了实现及其工作方式的概述。最后,给出了该框架在实例中的应用结果。
{"title":"Property-based Testing of Quantum Programs in Q#","authors":"Shahin Honarvar, M. Mousavi, R. Nagarajan","doi":"10.1145/3387940.3391459","DOIUrl":"https://doi.org/10.1145/3387940.3391459","url":null,"abstract":"Property-based testing is a structured method for automated testing using program specifications. We report on the design and implementation of what is to our knowledge the first property-based framework for quantum programs. We review various aspects of our design concerning property-specification, test-case generation, and test result analysis. We also provide an overview of the implementation and its way of working. Finally, we present the result of applying our framework to some examples.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132583732","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
Strategies for Crowdworkers to Overcome Barriers in Competition-based Software Crowdsourcing Development 基于竞争的软件众包开发中众包工作者克服障碍的策略
A. L. Zanatta, L. Machado, Igor Steinmacher, R. Prikladnicki, C. D. Souza
Crowdsourcing in software development uses a large pool of developers on-demand to outsource parts or the entire software project to a crowd. To succeed, this requires a continuous influx of developers, or simply crowdworkers. However, crowdworkers face many barriers when attempting to participate in software crowdsourcing. Often, these barriers lead to a low number and poor quality of submitted solutions. In our previous work, we identified several barriers faced by crowdworkers including finding a task according to his/her abilities, setting up the environment to perform the task, and managing one's personal time. We also proposed six strategies to overcome or minimize these barriers. In this paper, these six strategies are evaluated questioning Software Crowdsourcing (SW CS) experts. The results show that software crowdsourcing needs to: (i) provide a system that helps matching tasks requirements and crowdworker's profile; (ii) adopt containers or virtual machines to help crowdworkers set up their environment to perform the task, (iii) plan and control crowdworkers' personal time, and (iv) adopt communication channels to allow crowdworkers to clarify questions about the requirements and, as a consequence, finish the tasks.
软件开发中的众包使用大量的开发人员按需将部分或整个软件项目外包给人群。要想成功,这就需要不断涌入的开发者,或者只是众包工作者。然而,众包工作者在尝试参与软件众包时面临许多障碍。通常,这些障碍会导致提交的解决方案数量少、质量差。在我们之前的工作中,我们发现了众包工作者面临的几个障碍,包括根据他/她的能力找到任务,设置执行任务的环境,以及管理个人时间。我们还提出了克服或尽量减少这些障碍的六项策略。本文通过对软件众包专家的提问,对这六种策略进行了评价。结果表明,软件众包需要:(1)提供一个系统,帮助匹配任务要求和众包工作者的个人资料;(ii)采用容器或虚拟机,帮助众包工作者搭建执行任务的环境;(iii)规划和控制众包工作者的个人时间;(iv)采用沟通渠道,让众包工作者澄清需求问题,从而完成任务。
{"title":"Strategies for Crowdworkers to Overcome Barriers in Competition-based Software Crowdsourcing Development","authors":"A. L. Zanatta, L. Machado, Igor Steinmacher, R. Prikladnicki, C. D. Souza","doi":"10.1145/3387940.3392243","DOIUrl":"https://doi.org/10.1145/3387940.3392243","url":null,"abstract":"Crowdsourcing in software development uses a large pool of developers on-demand to outsource parts or the entire software project to a crowd. To succeed, this requires a continuous influx of developers, or simply crowdworkers. However, crowdworkers face many barriers when attempting to participate in software crowdsourcing. Often, these barriers lead to a low number and poor quality of submitted solutions. In our previous work, we identified several barriers faced by crowdworkers including finding a task according to his/her abilities, setting up the environment to perform the task, and managing one's personal time. We also proposed six strategies to overcome or minimize these barriers. In this paper, these six strategies are evaluated questioning Software Crowdsourcing (SW CS) experts. The results show that software crowdsourcing needs to: (i) provide a system that helps matching tasks requirements and crowdworker's profile; (ii) adopt containers or virtual machines to help crowdworkers set up their environment to perform the task, (iii) plan and control crowdworkers' personal time, and (iv) adopt communication channels to allow crowdworkers to clarify questions about the requirements and, as a consequence, finish the tasks.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115070443","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
Characterizing outdateness with technical lag: an exploratory study 用技术滞后来表征过时:一项探索性研究
Jesus M. Gonzalez-Barahona
Background: Nowadays, many applications are built reusing a large number of components, retrieved from software collections such as npm (JavaScript) or PyPi (Python). Those components are built in their corresponding upstream repositories, where they are being developed. This architecture of reusing causes some constraints on how much outdated is an application when it is deployed in production environments. Goal: To understand how outdateness of applications, and the components on which they depend, can be computed, so that different situations can be measured and assessed with the help of metrics. Based on this understanding, we also want to produce a model to characterize ecosystems (collections of reusable components). Method: Use the technical lag framework to analyze the flows from upstream repositories, to collection of components, to application building and later deployment. Using this framework, analyze lag in version availability in each of these stages, and constraints that set limits on how much outdated can be deployed applications. Results: We define a model which allows us to better understand the factors that influence outdateness of an application produced with reusable components from repositories of components. The model allows us to find the factors for defining metrics for measuring outdateness, and to explore the factors that influence outdateness for components in applications. We propose some of those factors as the basis to characterize ecosystems or collections of components with respect to their impact on the outdateness of applications built with them. Conclusions: Technical lag is an appropriate framework for studying lags in version propagation from upstream development to deployment.
背景:如今,许多应用程序都是重用大量组件构建的,这些组件是从npm (JavaScript)或PyPi (Python)等软件集合中检索的。这些组件构建在相应的上游存储库中,在那里开发它们。当应用程序部署在生产环境中时,这种重用体系结构会对其过时程度产生一些限制。目标:了解如何计算应用程序及其所依赖的组件的过时性,以便在度量标准的帮助下测量和评估不同的情况。基于这种理解,我们还希望生成一个模型来描述生态系统(可重用组件的集合)。方法:使用技术滞后框架来分析从上游存储库到组件集合,再到应用程序构建和后期部署的流程。使用这个框架,分析每个阶段的版本可用性延迟,以及限制部署的过时应用程序的限制。结果:我们定义了一个模型,该模型使我们能够更好地理解影响由组件存储库中的可重用组件生成的应用程序的过时性的因素。该模型允许我们找到定义度量过时性的度量标准的因素,并探索影响应用程序中组件过时性的因素。我们提出其中一些因素作为描述生态系统或组件集合的基础,以及它们对使用它们构建的应用程序的过时性的影响。结论:技术滞后是研究从上游开发到部署的版本传播滞后的合适框架。
{"title":"Characterizing outdateness with technical lag: an exploratory study","authors":"Jesus M. Gonzalez-Barahona","doi":"10.1145/3387940.3392202","DOIUrl":"https://doi.org/10.1145/3387940.3392202","url":null,"abstract":"Background: Nowadays, many applications are built reusing a large number of components, retrieved from software collections such as npm (JavaScript) or PyPi (Python). Those components are built in their corresponding upstream repositories, where they are being developed. This architecture of reusing causes some constraints on how much outdated is an application when it is deployed in production environments. Goal: To understand how outdateness of applications, and the components on which they depend, can be computed, so that different situations can be measured and assessed with the help of metrics. Based on this understanding, we also want to produce a model to characterize ecosystems (collections of reusable components). Method: Use the technical lag framework to analyze the flows from upstream repositories, to collection of components, to application building and later deployment. Using this framework, analyze lag in version availability in each of these stages, and constraints that set limits on how much outdated can be deployed applications. Results: We define a model which allows us to better understand the factors that influence outdateness of an application produced with reusable components from repositories of components. The model allows us to find the factors for defining metrics for measuring outdateness, and to explore the factors that influence outdateness for components in applications. We propose some of those factors as the basis to characterize ecosystems or collections of components with respect to their impact on the outdateness of applications built with them. Conclusions: Technical lag is an appropriate framework for studying lags in version propagation from upstream development to deployment.","PeriodicalId":309659,"journal":{"name":"Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2020-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117312861","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
期刊
Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops
全部 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