首页 > 最新文献

ACM Transactions on Software Engineering and Methodology (TOSEM)最新文献

英文 中文
Women’s Participation in Open Source Software: A Survey of the Literature 女性参与开源软件:文献综述
Pub Date : 2021-05-18 DOI: 10.1145/3510460
Bianca Trinkenreich, I. Wiese, A. Sarma, M. Gerosa, Igor Steinmacher
Women are underrepresented in Open Source Software (OSS) projects, as a result of which, not only do women lose career and skill development opportunities, but the projects themselves suffer from a lack of diversity of perspectives. Practitioners and researchers need to understand more about the phenomenon; however, studies about women in open source are spread across multiple fields, including information systems, software engineering, and social science. This article systematically maps, aggregates, and synthesizes the state-of-the-art on women’s participation in OSS. It focuses on women contributors’ representation and demographics, how they contribute, their motivations and challenges, and strategies employed by communities to attract and retain women. We identified 51 articles (published between 2000 and 2021) that investigated women’s participation in OSS. We found evidence in these papers about who are the women who contribute, what motivates them to contribute, what types of contributions they make, challenges they face, and strategies proposed to support their participation. According to these studies, only about 5% of projects were reported to have women as core developers, and women authored less than 5% of pull-requests, but had similar or even higher rates of pull-request acceptances than men. Women make both code and non-code contributions, and their motivations to contribute include learning new skills, altruism, reciprocity, and kinship. Challenges that women face in OSS are mainly social, including lack of peer parity and non-inclusive communication from a toxic culture. We found 10 strategies reported in the literature, which we mapped to the reported challenges. Based on these results, we provide guidelines for future research and practice.
女性在开源软件(OSS)项目中的代表性不足,其结果是,女性不仅失去了职业和技能发展的机会,而且项目本身也因缺乏多样性而受到影响。从业者和研究人员需要更多地了解这一现象;然而,关于女性在开源领域的研究遍布多个领域,包括信息系统、软件工程和社会科学。本文系统地描绘、汇总和综合了关于女性参与OSS的最新技术。它侧重于妇女贡献者的代表性和人口结构,她们如何贡献,她们的动机和挑战,以及社区为吸引和留住妇女所采用的战略。我们确定了51篇研究女性参与OSS的文章(发表于2000年至2021年之间)。我们在这些论文中找到了关于哪些女性做出了贡献、她们做出贡献的动机是什么、她们做出了什么类型的贡献、她们面临的挑战以及支持她们参与的策略的证据。根据这些研究,只有大约5%的项目有女性作为核心开发人员,女性撰写的pull-request不到5%,但她们的pull-request接受率与男性相似甚至更高。女性既做出代码贡献,也做出非代码贡献,她们做出贡献的动机包括学习新技能、利他主义、互惠和亲缘关系。女性在OSS中面临的挑战主要是社会性的,包括缺乏同侪平等和来自有害文化的非包容性沟通。我们找到了文献中报道的10种策略,并将其映射到所报道的挑战中。在此基础上,为今后的研究和实践提供了指导。
{"title":"Women’s Participation in Open Source Software: A Survey of the Literature","authors":"Bianca Trinkenreich, I. Wiese, A. Sarma, M. Gerosa, Igor Steinmacher","doi":"10.1145/3510460","DOIUrl":"https://doi.org/10.1145/3510460","url":null,"abstract":"Women are underrepresented in Open Source Software (OSS) projects, as a result of which, not only do women lose career and skill development opportunities, but the projects themselves suffer from a lack of diversity of perspectives. Practitioners and researchers need to understand more about the phenomenon; however, studies about women in open source are spread across multiple fields, including information systems, software engineering, and social science. This article systematically maps, aggregates, and synthesizes the state-of-the-art on women’s participation in OSS. It focuses on women contributors’ representation and demographics, how they contribute, their motivations and challenges, and strategies employed by communities to attract and retain women. We identified 51 articles (published between 2000 and 2021) that investigated women’s participation in OSS. We found evidence in these papers about who are the women who contribute, what motivates them to contribute, what types of contributions they make, challenges they face, and strategies proposed to support their participation. According to these studies, only about 5% of projects were reported to have women as core developers, and women authored less than 5% of pull-requests, but had similar or even higher rates of pull-request acceptances than men. Women make both code and non-code contributions, and their motivations to contribute include learning new skills, altruism, reciprocity, and kinship. Challenges that women face in OSS are mainly social, including lack of peer parity and non-inclusive communication from a toxic culture. We found 10 strategies reported in the literature, which we mapped to the reported challenges. Based on these results, we provide guidelines for future research and practice.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"387 1","pages":"1 - 37"},"PeriodicalIF":0.0,"publicationDate":"2021-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77485156","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
Toward a Holistic Approach to Verification and Validation of Autonomous Cognitive Systems 迈向自主认知系统验证与验证的整体方法
Pub Date : 2021-05-10 DOI: 10.1145/3447246
Angelo Ferrando, Louise Dennis, R. C. Cardoso, Michael Fisher, D. Ancona, V. Mascardi
When applying formal verification to a system that interacts with the real world, we must use a model of the environment. This model represents an abstraction of the actual environment, so it is necessarily incomplete and hence presents an issue for system verification. If the actual environment matches the model, then the verification is correct; however, if the environment falls outside the abstraction captured by the model, then we cannot guarantee that the system is well behaved. A solution to this problem consists in exploiting the model of the environment used for statically verifying the system’s behaviour and, if the verification succeeds, using it also for validating the model against the real environment via runtime verification. The article discusses this approach and demonstrates its feasibility by presenting its implementation on top of a framework integrating the Agent Java PathFinder model checker. A high-level Domain Specific Language is used to model the environment in a user-friendly way; the latter is then compiled to trace expressions for both static formal verification and runtime verification. To evaluate our approach, we apply it to two different case studies: an autonomous cruise control system and a simulation of the Mars Curiosity rover.
当将正式验证应用于与现实世界交互的系统时,我们必须使用环境模型。该模型代表了实际环境的抽象,因此它必然是不完整的,因此为系统验证提出了一个问题。如果实际环境与模型相符,则验证正确;然而,如果环境超出了模型捕获的抽象范围,那么我们就不能保证系统表现良好。此问题的解决方案包括利用用于静态验证系统行为的环境模型,如果验证成功,则还使用它通过运行时验证来针对实际环境验证模型。本文讨论了这种方法,并通过在集成了Agent Java PathFinder模型检查器的框架上展示其实现来演示其可行性。使用高级领域特定语言以用户友好的方式对环境进行建模;然后将后者编译为跟踪静态形式验证和运行时验证的表达式。为了评估我们的方法,我们将其应用于两个不同的案例研究:自主巡航控制系统和火星好奇号漫游者的模拟。
{"title":"Toward a Holistic Approach to Verification and Validation of Autonomous Cognitive Systems","authors":"Angelo Ferrando, Louise Dennis, R. C. Cardoso, Michael Fisher, D. Ancona, V. Mascardi","doi":"10.1145/3447246","DOIUrl":"https://doi.org/10.1145/3447246","url":null,"abstract":"When applying formal verification to a system that interacts with the real world, we must use a model of the environment. This model represents an abstraction of the actual environment, so it is necessarily incomplete and hence presents an issue for system verification. If the actual environment matches the model, then the verification is correct; however, if the environment falls outside the abstraction captured by the model, then we cannot guarantee that the system is well behaved. A solution to this problem consists in exploiting the model of the environment used for statically verifying the system’s behaviour and, if the verification succeeds, using it also for validating the model against the real environment via runtime verification. The article discusses this approach and demonstrates its feasibility by presenting its implementation on top of a framework integrating the Agent Java PathFinder model checker. A high-level Domain Specific Language is used to model the environment in a user-friendly way; the latter is then compiled to trace expressions for both static formal verification and runtime verification. To evaluate our approach, we apply it to two different case studies: an autonomous cruise control system and a simulation of the Mars Curiosity rover.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"141 1","pages":"1 - 43"},"PeriodicalIF":0.0,"publicationDate":"2021-05-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80420693","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}
引用次数: 8
On the Impact of Sample Duplication in Machine-Learning-Based Android Malware Detection 基于机器学习的Android恶意软件检测中样本重复的影响研究
Pub Date : 2021-05-08 DOI: 10.1145/3446905
Yanjie Zhao, Li Li, Haoyu Wang, Haipeng Cai, Tegawendé F. Bissyandé, Jacques Klein, J. Grundy
Malware detection at scale in the Android realm is often carried out using machine learning techniques. State-of-the-art approaches such as DREBIN and MaMaDroid are reported to yield high detection rates when assessed against well-known datasets. Unfortunately, such datasets may include a large portion of duplicated samples, which may bias recorded experimental results and insights. In this article, we perform extensive experiments to measure the performance gap that occurs when datasets are de-duplicated. Our experimental results reveal that duplication in published datasets has a limited impact on supervised malware classification models. This observation contrasts with the finding of Allamanis on the general case of machine learning bias for big code. Our experiments, however, show that sample duplication more substantially affects unsupervised learning models (e.g., malware family clustering). Nevertheless, we argue that our fellow researchers and practitioners should always take sample duplication into consideration when performing machine-learning-based (via either supervised or unsupervised learning) Android malware detections, no matter how significant the impact might be.
Android领域的大规模恶意软件检测通常使用机器学习技术进行。据报道,DREBIN和MaMaDroid等最先进的方法在对已知数据集进行评估时具有很高的检出率。不幸的是,这些数据集可能包含很大一部分重复样本,这可能会使记录的实验结果和见解产生偏差。在本文中,我们执行了大量的实验来测量数据集重复数据删除时出现的性能差距。我们的实验结果表明,已发布数据集的重复对监督恶意软件分类模型的影响有限。这一观察结果与Allamanis对大型代码的机器学习偏差的一般情况的发现形成了对比。然而,我们的实验表明,样本复制更实质性地影响无监督学习模型(例如,恶意软件家族聚类)。尽管如此,我们认为我们的研究人员和从业者在执行基于机器学习(通过监督或无监督学习)的Android恶意软件检测时,无论影响有多重大,都应该始终考虑样本复制。
{"title":"On the Impact of Sample Duplication in Machine-Learning-Based Android Malware Detection","authors":"Yanjie Zhao, Li Li, Haoyu Wang, Haipeng Cai, Tegawendé F. Bissyandé, Jacques Klein, J. Grundy","doi":"10.1145/3446905","DOIUrl":"https://doi.org/10.1145/3446905","url":null,"abstract":"Malware detection at scale in the Android realm is often carried out using machine learning techniques. State-of-the-art approaches such as DREBIN and MaMaDroid are reported to yield high detection rates when assessed against well-known datasets. Unfortunately, such datasets may include a large portion of duplicated samples, which may bias recorded experimental results and insights. In this article, we perform extensive experiments to measure the performance gap that occurs when datasets are de-duplicated. Our experimental results reveal that duplication in published datasets has a limited impact on supervised malware classification models. This observation contrasts with the finding of Allamanis on the general case of machine learning bias for big code. Our experiments, however, show that sample duplication more substantially affects unsupervised learning models (e.g., malware family clustering). Nevertheless, we argue that our fellow researchers and practitioners should always take sample duplication into consideration when performing machine-learning-based (via either supervised or unsupervised learning) Android malware detections, no matter how significant the impact might be.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"43 1","pages":"1 - 38"},"PeriodicalIF":0.0,"publicationDate":"2021-05-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81399151","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 42
Software Engineering for AI-Based Systems: A Survey 基于人工智能系统的软件工程:综述
Pub Date : 2021-05-05 DOI: 10.1145/3487043
Silverio Mart'inez-Fern'andez, J. Bogner, Xavier Franch, M. Oriol, Julien Siebert, Adam Trendowicz, Anna Maria Vollmer, S. Wagner
AI-based systems are software systems with functionalities enabled by at least one AI component (e.g., for image-, speech-recognition, and autonomous driving). AI-based systems are becoming pervasive in society due to advances in AI. However, there is limited synthesized knowledge on Software Engineering (SE) approaches for building, operating, and maintaining AI-based systems. To collect and analyze state-of-the-art knowledge about SE for AI-based systems, we conducted a systematic mapping study. We considered 248 studies published between January 2010 and March 2020. SE for AI-based systems is an emerging research area, where more than 2/3 of the studies have been published since 2018. The most studied properties of AI-based systems are dependability and safety. We identified multiple SE approaches for AI-based systems, which we classified according to the SWEBOK areas. Studies related to software testing and software quality are very prevalent, while areas like software maintenance seem neglected. Data-related issues are the most recurrent challenges. Our results are valuable for: researchers, to quickly understand the state-of-the-art and learn which topics need more research; practitioners, to learn about the approaches and challenges that SE entails for AI-based systems; and, educators, to bridge the gap among SE and AI in their curricula.
基于人工智能的系统是具有至少一个人工智能组件(例如,用于图像、语音识别和自动驾驶)的功能的软件系统。由于人工智能的进步,基于人工智能的系统在社会中变得无处不在。然而,关于构建、操作和维护基于人工智能的系统的软件工程(SE)方法的综合知识有限。为了收集和分析关于基于人工智能系统的SE的最新知识,我们进行了系统的映射研究。我们考虑了2010年1月至2020年3月期间发表的248项研究。基于人工智能系统的SE是一个新兴的研究领域,其中超过三分之二的研究是自2018年以来发表的。人工智能系统研究最多的特性是可靠性和安全性。我们为基于ai的系统确定了多种SE方法,并根据SWEBOK区域进行了分类。与软件测试和软件质量相关的研究非常普遍,而像软件维护这样的领域似乎被忽视了。与数据相关的问题是最经常出现的挑战。我们的研究结果对研究人员来说是有价值的,他们可以快速了解最新的技术,并了解哪些主题需要更多的研究;实践者,了解基于人工智能的系统所需要的方法和挑战;以及教育工作者,在他们的课程中弥合SE和AI之间的差距。
{"title":"Software Engineering for AI-Based Systems: A Survey","authors":"Silverio Mart'inez-Fern'andez, J. Bogner, Xavier Franch, M. Oriol, Julien Siebert, Adam Trendowicz, Anna Maria Vollmer, S. Wagner","doi":"10.1145/3487043","DOIUrl":"https://doi.org/10.1145/3487043","url":null,"abstract":"AI-based systems are software systems with functionalities enabled by at least one AI component (e.g., for image-, speech-recognition, and autonomous driving). AI-based systems are becoming pervasive in society due to advances in AI. However, there is limited synthesized knowledge on Software Engineering (SE) approaches for building, operating, and maintaining AI-based systems. To collect and analyze state-of-the-art knowledge about SE for AI-based systems, we conducted a systematic mapping study. We considered 248 studies published between January 2010 and March 2020. SE for AI-based systems is an emerging research area, where more than 2/3 of the studies have been published since 2018. The most studied properties of AI-based systems are dependability and safety. We identified multiple SE approaches for AI-based systems, which we classified according to the SWEBOK areas. Studies related to software testing and software quality are very prevalent, while areas like software maintenance seem neglected. Data-related issues are the most recurrent challenges. Our results are valuable for: researchers, to quickly understand the state-of-the-art and learn which topics need more research; practitioners, to learn about the approaches and challenges that SE entails for AI-based systems; and, educators, to bridge the gap among SE and AI in their curricula.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"32 1","pages":"1 - 59"},"PeriodicalIF":0.0,"publicationDate":"2021-05-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85041650","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}
引用次数: 96
An Adaptive Search Budget Allocation Approach for Search-Based Test Case Generation 基于搜索的测试用例生成的自适应搜索预算分配方法
Pub Date : 2021-04-23 DOI: 10.1145/3446199
Simone Scalabrino, A. Mastropaolo, G. Bavota, R. Oliveto
Search-based techniques have been successfully used to automate test case generation. Such approaches allocate a fixed search budget to generate test cases aiming at maximizing code coverage. The search budget plays a crucial role; due to the hugeness of the search space, the higher the assigned budget, the higher the expected coverage. Code components have different structural properties that may affect the ability of search-based techniques to achieve a high coverage level. Thus, allocating a fixed search budget for all the components is not recommended and a component-specific search budget should be preferred. However, deciding the budget to assign to a given component is not a trivial task. In this article, we introduce Budget Optimization for Testing (BOT), an approach to adaptively allocate the search budget to the classes under test. BOT requires information about the branch coverage that will be achieved on each class with a given search budget. Therefore, we also introduce BRANCHOS, an approach that predicts coverage in a budget-aware way. The results of our experiments show that (i) BRANCHOS can approximate the branch coverage in time with a low error, and (ii) BOT can significantly increase the coverage achieved by a test generation tool and the effectiveness of generated tests.
基于搜索的技术已经成功地用于自动化测试用例生成。这样的方法分配一个固定的搜索预算来生成旨在最大化代码覆盖率的测试用例。搜索预算起着至关重要的作用;由于搜索空间的巨大,分配的预算越高,期望的覆盖率就越高。代码组件具有不同的结构属性,这可能会影响基于搜索的技术实现高覆盖率的能力。因此,不建议为所有组件分配固定的搜索预算,而应优先选择特定于组件的搜索预算。然而,决定分配给给定组件的预算并不是一项简单的任务。在本文中,我们介绍了用于测试的预算优化(BOT),这是一种自适应地将搜索预算分配给测试类的方法。BOT需要关于分支覆盖的信息,这些分支覆盖将在给定的搜索预算下在每个类上实现。因此,我们还引入BRANCHOS,这是一种以预算意识的方式预测覆盖范围的方法。实验结果表明:(1)BRANCHOS能够以较低的误差及时逼近分支覆盖率,(2)BOT能够显著提高测试生成工具的覆盖率和生成测试的有效性。
{"title":"An Adaptive Search Budget Allocation Approach for Search-Based Test Case Generation","authors":"Simone Scalabrino, A. Mastropaolo, G. Bavota, R. Oliveto","doi":"10.1145/3446199","DOIUrl":"https://doi.org/10.1145/3446199","url":null,"abstract":"Search-based techniques have been successfully used to automate test case generation. Such approaches allocate a fixed search budget to generate test cases aiming at maximizing code coverage. The search budget plays a crucial role; due to the hugeness of the search space, the higher the assigned budget, the higher the expected coverage. Code components have different structural properties that may affect the ability of search-based techniques to achieve a high coverage level. Thus, allocating a fixed search budget for all the components is not recommended and a component-specific search budget should be preferred. However, deciding the budget to assign to a given component is not a trivial task. In this article, we introduce Budget Optimization for Testing (BOT), an approach to adaptively allocate the search budget to the classes under test. BOT requires information about the branch coverage that will be achieved on each class with a given search budget. Therefore, we also introduce BRANCHOS, an approach that predicts coverage in a budget-aware way. The results of our experiments show that (i) BRANCHOS can approximate the branch coverage in time with a low error, and (ii) BOT can significantly increase the coverage achieved by a test generation tool and the effectiveness of generated tests.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"42 1","pages":"1 - 26"},"PeriodicalIF":0.0,"publicationDate":"2021-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78627518","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
How Should I Improve the UI of My App? 我应该如何改进应用的UI ?
Pub Date : 2021-04-23 DOI: 10.1145/3447808
Qiuyuan Chen, Chunyang Chen, Safwat Hassan, Zhengchang Xing, Xin Xia, Ahmed E. Hassan
UI (User Interface) is an essential factor influencing users’ perception of an app. However, it is hard for even professional designers to determine if the UI is good or not for end-users. Users’ feedback (e.g., user reviews in the Google Play) provides a way for app owners to understand how the users perceive the UI. In this article, we conduct an in-depth empirical study to analyze the UI issues of mobile apps. In particular, we analyze more than 3M UI-related reviews from 22,199 top free-to-download apps and 9,380 top non-free apps in the Google Play Store. By comparing the rating of UI-related reviews and other reviews of an app, we observe that UI-related reviews have lower ratings than other reviews. By manually analyzing a random sample of 1,447 UI-related reviews with a 95% confidence level and a 5% interval, we identify 17 UI-related issues types that belong to four categories (i.e., “Appearance,” “Interaction,” “Experience,” and “Others”). In these issue types, we find “Generic Review” is the most occurring one. “Comparative Review” and “Advertisement” are the most negative two UI issue types. Faced with these UI issues, we explore the patterns of interaction between app owners and users. We identify eight patterns of how app owners dialogue with users about UI issues by the review-response mechanism. We find “Apology or Appreciation” and “Information Request” are the most two frequent patterns. We find updating UI timely according to feedback is essential to satisfy users. Besides, app owners could also fix UI issues without updating UI, especially for issue types belonging to “Interaction” category. Our findings show that there exists a positive impact if app owners could actively interact with users to improve UI quality and boost users’ satisfactoriness about the UIs.
UI(用户界面)是影响用户对应用感知的重要因素。然而,即使是专业的设计师也很难确定UI对最终用户来说是好是坏。用户反馈(如Google Play中的用户评论)为应用所有者提供了一种了解用户如何看待UI的方法。在这篇文章中,我们进行了深入的实证研究来分析移动应用的UI问题。我们特别分析了Google Play Store中22199款热门免费应用和9380款热门非免费应用的超过3M条ui相关评论。通过比较ui相关评论和其他评论的评分,我们发现ui相关评论的评分低于其他评论。通过手动分析1447个ui相关评论的随机样本,置信水平为95%,间隔为5%,我们确定了17个ui相关问题类型,属于四个类别(即,“外观”,“交互”,“体验”和“其他”)。在这些问题类型中,我们发现“Generic Review”是最常见的一种。“比较评论”和“广告”是最负面的两种UI问题类型。面对这些UI问题,我们探索了应用程序所有者和用户之间的交互模式。我们确定了应用程序所有者如何通过评论-响应机制与用户就UI问题进行对话的八种模式。我们发现“道歉或感谢”和“信息请求”是最常见的两种模式。我们发现根据用户反馈及时更新UI是满足用户需求的关键。此外,应用程序所有者也可以在不更新UI的情况下修复UI问题,特别是属于“交互”类别的问题类型。我们的研究结果表明,如果应用程序所有者能够积极地与用户互动,以改善UI质量并提高用户对UI的满意度,那么就会产生积极的影响。
{"title":"How Should I Improve the UI of My App?","authors":"Qiuyuan Chen, Chunyang Chen, Safwat Hassan, Zhengchang Xing, Xin Xia, Ahmed E. Hassan","doi":"10.1145/3447808","DOIUrl":"https://doi.org/10.1145/3447808","url":null,"abstract":"UI (User Interface) is an essential factor influencing users’ perception of an app. However, it is hard for even professional designers to determine if the UI is good or not for end-users. Users’ feedback (e.g., user reviews in the Google Play) provides a way for app owners to understand how the users perceive the UI. In this article, we conduct an in-depth empirical study to analyze the UI issues of mobile apps. In particular, we analyze more than 3M UI-related reviews from 22,199 top free-to-download apps and 9,380 top non-free apps in the Google Play Store. By comparing the rating of UI-related reviews and other reviews of an app, we observe that UI-related reviews have lower ratings than other reviews. By manually analyzing a random sample of 1,447 UI-related reviews with a 95% confidence level and a 5% interval, we identify 17 UI-related issues types that belong to four categories (i.e., “Appearance,” “Interaction,” “Experience,” and “Others”). In these issue types, we find “Generic Review” is the most occurring one. “Comparative Review” and “Advertisement” are the most negative two UI issue types. Faced with these UI issues, we explore the patterns of interaction between app owners and users. We identify eight patterns of how app owners dialogue with users about UI issues by the review-response mechanism. We find “Apology or Appreciation” and “Information Request” are the most two frequent patterns. We find updating UI timely according to feedback is essential to satisfy users. Besides, app owners could also fix UI issues without updating UI, especially for issue types belonging to “Interaction” category. Our findings show that there exists a positive impact if app owners could actively interact with users to improve UI quality and boost users’ satisfactoriness about the UIs.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"61 1","pages":"1 - 38"},"PeriodicalIF":0.0,"publicationDate":"2021-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83795846","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}
引用次数: 22
Architecting Internet of Things Systems with Blockchain 用区块链构建物联网系统
Pub Date : 2021-04-23 DOI: 10.1145/3442412
Wendy Yánez, R. Bahsoon, Yuqun Zhang, R. Kazman
Blockchain offers a distributed ledger to record data collected from Internet of Thing (IoT) devices as immutable and tamper-proof transactions and securely shared among authorized participants in a Peer-to-Peer (P2P) network. Despite the growing interest in using blockchain for securing IoT systems, there is a general lack of systematic research and comprehensive review of the design issues on the integration of blockchain and IoT from the software architecture perspective. This article presents a catalog of architectural tactics for the design of IoT systems supported by blockchain as a result of a Systematic Literature Review (SLR) on IoT and blockchain to extract the commonly reported quality attributes, design decisions, and relevant architectural tactics for the architectural design of this category of systems. Our findings are threefold: (i) identification of security, scalability, performance, and interoperability as the commonly reported quality attributes; (ii) a catalog of twelve architectural tactics for the design of IoT systems supported by blockchain; and (iii) gaps in research that include tradeoffs among quality attributes and identified tactics. These tactics might provide architects and designers with different options when searching for an optimal architectural design that meets the quality attributes of interest and constraints of a system.
区块链提供了一个分布式账本,将从物联网(IoT)设备收集的数据记录为不可变和防篡改的交易,并在点对点(P2P)网络中的授权参与者之间安全地共享。尽管人们对使用区块链来保护物联网系统越来越感兴趣,但从软件架构的角度对区块链与物联网集成的设计问题普遍缺乏系统的研究和全面的审查。本文通过对物联网和区块链的系统文献综述(SLR),提出了区块链支持的物联网系统设计的架构策略目录,以提取这类系统的架构设计中常见的质量属性、设计决策和相关架构策略。我们的发现有三个方面:(i)将安全性、可扩展性、性能和互操作性作为通常报告的质量属性的识别;(ii)由区块链支持的物联网系统设计的12种架构策略目录;(iii)研究中的差距,包括质量属性和确定策略之间的权衡。这些策略可以为架构师和设计师提供不同的选择,以寻找满足系统的质量属性和约束的最佳架构设计。
{"title":"Architecting Internet of Things Systems with Blockchain","authors":"Wendy Yánez, R. Bahsoon, Yuqun Zhang, R. Kazman","doi":"10.1145/3442412","DOIUrl":"https://doi.org/10.1145/3442412","url":null,"abstract":"Blockchain offers a distributed ledger to record data collected from Internet of Thing (IoT) devices as immutable and tamper-proof transactions and securely shared among authorized participants in a Peer-to-Peer (P2P) network. Despite the growing interest in using blockchain for securing IoT systems, there is a general lack of systematic research and comprehensive review of the design issues on the integration of blockchain and IoT from the software architecture perspective. This article presents a catalog of architectural tactics for the design of IoT systems supported by blockchain as a result of a Systematic Literature Review (SLR) on IoT and blockchain to extract the commonly reported quality attributes, design decisions, and relevant architectural tactics for the architectural design of this category of systems. Our findings are threefold: (i) identification of security, scalability, performance, and interoperability as the commonly reported quality attributes; (ii) a catalog of twelve architectural tactics for the design of IoT systems supported by blockchain; and (iii) gaps in research that include tradeoffs among quality attributes and identified tactics. These tactics might provide architects and designers with different options when searching for an optimal architectural design that meets the quality attributes of interest and constraints of a system.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"7 1","pages":"1 - 46"},"PeriodicalIF":0.0,"publicationDate":"2021-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75233032","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
A Formal Framework of Software Product Line Analyses 软件产品线分析的形式化框架
Pub Date : 2021-04-23 DOI: 10.1145/3442389
Thiago M. Castro, Leopoldo Teixeira, Vander Alves, S. Apel, Maxime Cordy, Rohit Gheyi
A number of product-line analysis approaches lift analyses such as type checking, model checking, and theorem proving from the level of single programs to the level of product lines. These approaches share concepts and mechanisms that suggest an unexplored potential for reuse of key analysis steps and properties, implementation, and verification efforts. Despite the availability of taxonomies synthesizing such approaches, there still remains the underlying problem of not being able to describe product-line analyses and their properties precisely and uniformly. We propose a formal framework that models product-line analyses in a compositional manner, providing an overall understanding of the space of family-based, feature-based, and product-based analysis strategies. It defines precisely how the different types of product-line analyses compose and inter-relate. To ensure soundness, we formalize the framework, providing mechanized specification and proofs of key concepts and properties of the individual analyses. The formalization provides unambiguous definitions of domain terminology and assumptions as well as solid evidence of key properties based on rigorous formal proofs. To qualitatively assess the generality of the framework, we discuss to what extent it describes five representative product-line analyses targeting the following properties: safety, performance, dataflow facts, security, and functional program properties.
许多产品线分析方法将类型检查、模型检查和定理证明等分析从单个程序级别提升到产品线级别。这些方法共享一些概念和机制,这些概念和机制暗示了关键分析步骤和属性、实现和验证工作的未开发的重用潜力。尽管有了综合这些方法的分类法,但仍然存在一个潜在的问题,即不能精确而统一地描述产品线分析及其属性。我们提出了一个正式的框架,以组合的方式对产品线分析进行建模,提供对基于家庭、基于特征和基于产品的分析策略空间的全面理解。它精确地定义了不同类型的产品线分析是如何组成和相互关联的。为了确保可靠性,我们形式化了框架,提供了机械化的规范和证明,证明了各个分析的关键概念和属性。形式化提供了领域术语和假设的明确定义,以及基于严格形式化证明的关键属性的可靠证据。为了定性地评估框架的通用性,我们讨论了它在多大程度上描述了针对以下属性的五个代表性产品线分析:安全性、性能、数据流事实、安全性和功能程序属性。
{"title":"A Formal Framework of Software Product Line Analyses","authors":"Thiago M. Castro, Leopoldo Teixeira, Vander Alves, S. Apel, Maxime Cordy, Rohit Gheyi","doi":"10.1145/3442389","DOIUrl":"https://doi.org/10.1145/3442389","url":null,"abstract":"A number of product-line analysis approaches lift analyses such as type checking, model checking, and theorem proving from the level of single programs to the level of product lines. These approaches share concepts and mechanisms that suggest an unexplored potential for reuse of key analysis steps and properties, implementation, and verification efforts. Despite the availability of taxonomies synthesizing such approaches, there still remains the underlying problem of not being able to describe product-line analyses and their properties precisely and uniformly. We propose a formal framework that models product-line analyses in a compositional manner, providing an overall understanding of the space of family-based, feature-based, and product-based analysis strategies. It defines precisely how the different types of product-line analyses compose and inter-relate. To ensure soundness, we formalize the framework, providing mechanized specification and proofs of key concepts and properties of the individual analyses. The formalization provides unambiguous definitions of domain terminology and assumptions as well as solid evidence of key properties based on rigorous formal proofs. To qualitatively assess the generality of the framework, we discuss to what extent it describes five representative product-line analyses targeting the following properties: safety, performance, dataflow facts, security, and functional program properties.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"100 1","pages":"1 - 37"},"PeriodicalIF":0.0,"publicationDate":"2021-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86639802","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
DeepWukong
Pub Date : 2021-04-23 DOI: 10.1145/3436877
Xiao Cheng, Haoyu Wang, Jiayi Hua, Guoai Xu, Yulei Sui
Static bug detection has shown its effectiveness in detecting well-defined memory errors, e.g., memory leaks, buffer overflows, and null dereference. However, modern software systems have a wide variety of vulnerabilities. These vulnerabilities are extremely complicated with sophisticated programming logic, and these bugs are often caused by different bad programming practices, challenging existing bug detection solutions. It is hard and labor-intensive to develop precise and efficient static analysis solutions for different types of vulnerabilities, particularly for those that may not have a clear specification as the traditional well-defined vulnerabilities. This article presents DeepWukong, a new deep-learning-based embedding approach to static detection of software vulnerabilities for C/C++ programs. Our approach makes a new attempt by leveraging advanced recent graph neural networks to embed code fragments in a compact and low-dimensional representation, producing a new code representation that preserves high-level programming logic (in the form of control- and data-flows) together with the natural language information of a program. Our evaluation studies the top 10 most common C/C++ vulnerabilities during the past 3 years. We have conducted our experiments using 105,428 real-world programs by comparing our approach with four well-known traditional static vulnerability detectors and three state-of-the-art deep-learning-based approaches. The experimental results demonstrate the effectiveness of our research and have shed light on the promising direction of combining program analysis with deep learning techniques to address the general static code analysis challenges.
静态错误检测在检测定义良好的内存错误(如内存泄漏、缓冲区溢出和null解引用)方面已经显示出其有效性。然而,现代软件系统有各种各样的漏洞。这些漏洞非常复杂,具有复杂的编程逻辑,并且这些错误通常是由不同的不良编程实践引起的,对现有的错误检测解决方案提出了挑战。为不同类型的漏洞开发精确而有效的静态分析解决方案是非常困难和费力的,特别是对于那些可能不像传统的定义良好的漏洞那样具有清晰规范的漏洞。本文介绍了一种新的基于深度学习的嵌入方法——深度悟空,用于C/ c++程序的软件漏洞静态检测。我们的方法进行了新的尝试,利用先进的最新图形神经网络将代码片段嵌入到紧凑的低维表示中,产生一种新的代码表示,该表示保留了高级编程逻辑(以控制流和数据流的形式)以及程序的自然语言信息。我们的评估研究了过去3年中最常见的10个C/ c++漏洞。通过将我们的方法与四种众所周知的传统静态漏洞检测器和三种最先进的基于深度学习的方法进行比较,我们使用105,428个真实世界的程序进行了实验。实验结果证明了我们研究的有效性,并揭示了将程序分析与深度学习技术相结合以解决一般静态代码分析挑战的有希望的方向。
{"title":"DeepWukong","authors":"Xiao Cheng, Haoyu Wang, Jiayi Hua, Guoai Xu, Yulei Sui","doi":"10.1145/3436877","DOIUrl":"https://doi.org/10.1145/3436877","url":null,"abstract":"Static bug detection has shown its effectiveness in detecting well-defined memory errors, e.g., memory leaks, buffer overflows, and null dereference. However, modern software systems have a wide variety of vulnerabilities. These vulnerabilities are extremely complicated with sophisticated programming logic, and these bugs are often caused by different bad programming practices, challenging existing bug detection solutions. It is hard and labor-intensive to develop precise and efficient static analysis solutions for different types of vulnerabilities, particularly for those that may not have a clear specification as the traditional well-defined vulnerabilities. This article presents DeepWukong, a new deep-learning-based embedding approach to static detection of software vulnerabilities for C/C++ programs. Our approach makes a new attempt by leveraging advanced recent graph neural networks to embed code fragments in a compact and low-dimensional representation, producing a new code representation that preserves high-level programming logic (in the form of control- and data-flows) together with the natural language information of a program. Our evaluation studies the top 10 most common C/C++ vulnerabilities during the past 3 years. We have conducted our experiments using 105,428 real-world programs by comparing our approach with four well-known traditional static vulnerability detectors and three state-of-the-art deep-learning-based approaches. The experimental results demonstrate the effectiveness of our research and have shed light on the promising direction of combining program analysis with deep learning techniques to address the general static code analysis challenges.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"45 1","pages":"1 - 33"},"PeriodicalIF":0.0,"publicationDate":"2021-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74578619","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}
引用次数: 85
Taming Reflection 抑制反射
Pub Date : 2021-04-23 DOI: 10.1145/3440033
Xiaoyu Sun, Li Li, Tegawendé F. Bissyandé, Jacques Klein, Damien Octeau, John C. Grundy
Android developers heavily use reflection in their apps for legitimate reasons. However, reflection is also significantly used for hiding malicious actions. Unfortunately, current state-of-the-art static analysis tools for Android are challenged by the presence of reflective calls, which they usually ignore. Thus, the results of their security analysis, e.g., for private data leaks, are incomplete, given the measures taken by malware writers to elude static detection. We propose a new instrumentation-based approach to address this issue in a non-invasive way. Specifically, we introduce to the community a prototype tool called DroidRA, which reduces the resolution of reflective calls to a composite constant propagation problem and then leverages the COAL solver to infer the values of reflection targets. After that, it automatically instruments the app to replace reflective calls with their corresponding Java calls in a traditional paradigm. Our approach augments an app so that it can be more effectively statically analyzable, including by such static analyzers that are not reflection-aware. We evaluate DroidRA on benchmark apps as well as on real-world apps, and we demonstrate that it can indeed infer the target values of reflective calls and subsequently allow state-of-the-art tools to provide more sound and complete analysis results.
Android开发者出于合理的原因在他们的应用中大量使用反射。然而,反射也经常用于隐藏恶意操作。不幸的是,当前最先进的Android静态分析工具受到反射调用的挑战,它们通常会忽略反射调用。因此,考虑到恶意软件编写者为躲避静态检测所采取的措施,他们的安全分析结果,例如私人数据泄漏,是不完整的。我们提出了一种新的基于仪器的方法,以非侵入性的方式解决这个问题。具体来说,我们向社区介绍了一个名为DroidRA的原型工具,它降低了对复合常数传播问题的反射调用的分辨率,然后利用COAL求解器推断反射目标的值。在那之后,它会自动检测应用程序,用传统范式中相应的Java调用替换反射调用。我们的方法增强了应用程序,使其能够更有效地进行静态分析,包括通过不支持反射的静态分析程序。我们在基准应用程序和实际应用程序上评估了DroidRA,我们证明它确实可以推断反射调用的目标值,并随后允许最先进的工具提供更健全和完整的分析结果。
{"title":"Taming Reflection","authors":"Xiaoyu Sun, Li Li, Tegawendé F. Bissyandé, Jacques Klein, Damien Octeau, John C. Grundy","doi":"10.1145/3440033","DOIUrl":"https://doi.org/10.1145/3440033","url":null,"abstract":"Android developers heavily use reflection in their apps for legitimate reasons. However, reflection is also significantly used for hiding malicious actions. Unfortunately, current state-of-the-art static analysis tools for Android are challenged by the presence of reflective calls, which they usually ignore. Thus, the results of their security analysis, e.g., for private data leaks, are incomplete, given the measures taken by malware writers to elude static detection. We propose a new instrumentation-based approach to address this issue in a non-invasive way. Specifically, we introduce to the community a prototype tool called DroidRA, which reduces the resolution of reflective calls to a composite constant propagation problem and then leverages the COAL solver to infer the values of reflection targets. After that, it automatically instruments the app to replace reflective calls with their corresponding Java calls in a traditional paradigm. Our approach augments an app so that it can be more effectively statically analyzable, including by such static analyzers that are not reflection-aware. We evaluate DroidRA on benchmark apps as well as on real-world apps, and we demonstrate that it can indeed infer the target values of reflective calls and subsequently allow state-of-the-art tools to provide more sound and complete analysis results.","PeriodicalId":7398,"journal":{"name":"ACM Transactions on Software Engineering and Methodology (TOSEM)","volume":"12 1","pages":"1 - 36"},"PeriodicalIF":0.0,"publicationDate":"2021-04-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87912859","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
期刊
ACM Transactions on Software Engineering and Methodology (TOSEM)
全部 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