首页 > 最新文献

Proceedings of the 16th Innovations in Software Engineering Conference最新文献

英文 中文
Human-Centered AI for Software Engineering: Requirements, Reflection, and Road Ahead 软件工程中以人为中心的人工智能:需求、反思和前进道路
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3581767
D. Lo
Since its inception in the 2000s, AI for Software Engineering (AI4SE) has grown rapidly. AI in its different forms, e.g., data mining, information retrieval, machine learning, natural language processing, etc., has been demonstrated to be able to produce good results for automating many tasks, including specification mining, bug and vulnerability discovery, bug localization, duplicate bug report identification, failure detection, program repair, technical question answering, code search, and many more. AI4SE has much potential to improve software engineers’ productivity and software quality. Due to its potential, it is currently one of the most popular research areas in the software engineering field. To advance AI4SE, this keynote puts forward Human-Centered AI4SE. Without considering humans, it is easy for AI-powered tools to hinder rather than help humans in their job or introduce unwanted and unacceptable side effects. Human-centered AI4SE puts humans (i.e., software practitioners) at the forefront of the design of AI4SE tools, with the goal of amplifying and augmenting software practitioners’ capabilities. I will describe some requirements of human-centered AI4SE. Specifically, among others, the need to (i) listen to humans, (ii) learn from (and like) humans, and (iii) synergize with humans. For each requirement, I will present a reflection on the progress the AI4SE area has made over the years, including work done by our research group in Singapore. At the end of this talk, I will describe the road ahead for the above-mentioned requirements toward making AI4SE tools trustworthy, which is an essential attribute to allow them to be widely used by practitioners.
自2000年代成立以来,软件工程人工智能(AI4SE)发展迅速。不同形式的人工智能,如数据挖掘、信息检索、机器学习、自然语言处理等,已被证明能够为自动化许多任务产生良好的结果,包括规范挖掘、错误和漏洞发现、错误定位、重复错误报告识别、故障检测、程序修复、技术问题回答、代码搜索等等。AI4SE在提高软件工程师的生产力和软件质量方面具有很大的潜力。由于其潜力,它是目前软件工程领域最热门的研究领域之一。为了推进AI4SE,本主题提出了以人为中心的AI4SE。如果不考虑人类,人工智能驱动的工具很容易阻碍而不是帮助人类的工作,或者引入不必要的和不可接受的副作用。以人为中心的AI4SE将人(即软件从业者)置于AI4SE工具设计的最前沿,其目标是扩大和增强软件从业者的能力。我将描述以人为中心的AI4SE的一些要求。具体来说,在其他方面,需要(i)倾听人类,(ii)向人类学习(和喜欢),以及(iii)与人类协同。对于每一项要求,我将介绍AI4SE领域多年来取得的进展,包括我们在新加坡的研究小组所做的工作。在这次演讲的最后,我将描述使AI4SE工具值得信赖的前面的道路,这是允许它们被从业者广泛使用的基本属性。
{"title":"Human-Centered AI for Software Engineering: Requirements, Reflection, and Road Ahead","authors":"D. Lo","doi":"10.1145/3578527.3581767","DOIUrl":"https://doi.org/10.1145/3578527.3581767","url":null,"abstract":"Since its inception in the 2000s, AI for Software Engineering (AI4SE) has grown rapidly. AI in its different forms, e.g., data mining, information retrieval, machine learning, natural language processing, etc., has been demonstrated to be able to produce good results for automating many tasks, including specification mining, bug and vulnerability discovery, bug localization, duplicate bug report identification, failure detection, program repair, technical question answering, code search, and many more. AI4SE has much potential to improve software engineers’ productivity and software quality. Due to its potential, it is currently one of the most popular research areas in the software engineering field. To advance AI4SE, this keynote puts forward Human-Centered AI4SE. Without considering humans, it is easy for AI-powered tools to hinder rather than help humans in their job or introduce unwanted and unacceptable side effects. Human-centered AI4SE puts humans (i.e., software practitioners) at the forefront of the design of AI4SE tools, with the goal of amplifying and augmenting software practitioners’ capabilities. I will describe some requirements of human-centered AI4SE. Specifically, among others, the need to (i) listen to humans, (ii) learn from (and like) humans, and (iii) synergize with humans. For each requirement, I will present a reflection on the progress the AI4SE area has made over the years, including work done by our research group in Singapore. At the end of this talk, I will describe the road ahead for the above-mentioned requirements toward making AI4SE tools trustworthy, which is an essential attribute to allow them to be widely used by practitioners.","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125594115","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
Towards the Essence of Specifying Sociotechnical Digital Twins 论社会技术数字孪生的本质
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3578542
B. Barn, Tony Clark, Souvik Barat, V. Kulkarni
Digital Twins are now mainstream technology in the engineering domain. Capabilities and underpinning concepts are well understood and augmented by proven theories from the physical sciences. Nonetheless the design of digital twins in engineering still remains essential a craft. As digital twin technology merges with more traditional computational modelling approaches such as that found in simulation, new application domains are emerging and public policy experts see significant potential in DT for understanding their complex system areas. Such domains have a significant sociotechnical component and as such a new type of digital twin is required, together with a means of specifying such a digital twin. This paper proposes a specification language/method for this purpose. Requirements elicitation for this language utilises a tabletop paper template that serves as a boundary object between domain experts and technical experts. The language is conformant with accepted practice in simulation methods and its semantics provides a route to implementation of a digital twin. We argue that the language is a contribution to a breadcrumb trail for future work in this emerging application area for digital twins.
数字孪生现在是工程领域的主流技术。能力和基础概念得到了很好的理解,并通过物理科学的成熟理论得到了增强。尽管如此,工程上的数字孪生设计仍然是一门必不可少的手艺。随着数字孪生技术与更传统的计算建模方法(如在仿真中发现的方法)相结合,新的应用领域正在出现,公共政策专家看到了数字孪生技术在理解其复杂系统领域方面的巨大潜力。这些领域具有重要的社会技术成分,因此需要一种新型的数字孪生,以及指定这种数字孪生的方法。本文为此目的提出了一种规范语言/方法。这种语言的需求引出使用桌面纸模板作为领域专家和技术专家之间的边界对象。该语言符合仿真方法中公认的实践,其语义为实现数字孪生提供了一条途径。我们认为,该语言为数字孪生在这一新兴应用领域的未来工作提供了线索。
{"title":"Towards the Essence of Specifying Sociotechnical Digital Twins","authors":"B. Barn, Tony Clark, Souvik Barat, V. Kulkarni","doi":"10.1145/3578527.3578542","DOIUrl":"https://doi.org/10.1145/3578527.3578542","url":null,"abstract":"Digital Twins are now mainstream technology in the engineering domain. Capabilities and underpinning concepts are well understood and augmented by proven theories from the physical sciences. Nonetheless the design of digital twins in engineering still remains essential a craft. As digital twin technology merges with more traditional computational modelling approaches such as that found in simulation, new application domains are emerging and public policy experts see significant potential in DT for understanding their complex system areas. Such domains have a significant sociotechnical component and as such a new type of digital twin is required, together with a means of specifying such a digital twin. This paper proposes a specification language/method for this purpose. Requirements elicitation for this language utilises a tabletop paper template that serves as a boundary object between domain experts and technical experts. The language is conformant with accepted practice in simulation methods and its semantics provides a route to implementation of a digital twin. We argue that the language is a contribution to a breadcrumb trail for future work in this emerging application area for digital twins.","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"150 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121261642","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
Serial Compositional Runtime Enforcement of Safety Timed Properties 安全定时属性的串行组合运行时执行
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3578529
Saumya Shankar, Srinivas Pinisetty
Runtime enforcement is a mechanism that compels a (black-box) system to obey some expected properties. For that, it employs an enforcement monitor /enforcer which modifies an (untrusted) sequence of events into a sequence that complies with the property. In reality, we may have many critical (timed) properties to enforce. Furthermore, an ideal deployed system allows for system customization to meet the needs of the end-users. Thus, it is highly needed to build not a monolithic enforcer for all the properties, instead, there must be individual enforcers for each property and these individual enforcers should be composed accordingly. We investigate and provide a framework for composing enforcers of (timed) safety properties, formalized as timed automata, demonstrating that enforcement under this approach is not serially compositional in general. However, we identify and establish syntactic criteria on the automata, such that enforcers are serially compositional for any given set of safety timed automata satisfying these conditions. We show some examples of safety timed automata that satisfy those syntactic constraints, and via a prototype implementation, we evaluate the performance of our framework.
运行时强制是一种迫使(黑盒)系统服从某些预期属性的机制。为此,它使用强制监视器/强制执行器,将(不受信任的)事件序列修改为符合属性的序列。实际上,我们可能有许多关键(定时)属性需要强制执行。此外,理想的部署系统允许对系统进行定制,以满足最终用户的需求。因此,非常需要为所有属性构建一个单一的执行器,相反,每个属性必须有单独的执行器,并且这些单独的执行器应该相应地组成。我们研究并提供了一个框架,用于组合(定时)安全属性的执行器,形式化为定时自动机,证明在这种方法下的执行通常不是串行组合的。然而,我们在自动机上识别并建立了语法标准,这样,对于满足这些条件的任何给定的安全定时自动机集,强制执行器都是串行组合的。我们展示了一些满足这些语法约束的安全定时自动机示例,并通过原型实现来评估框架的性能。
{"title":"Serial Compositional Runtime Enforcement of Safety Timed Properties","authors":"Saumya Shankar, Srinivas Pinisetty","doi":"10.1145/3578527.3578529","DOIUrl":"https://doi.org/10.1145/3578527.3578529","url":null,"abstract":"Runtime enforcement is a mechanism that compels a (black-box) system to obey some expected properties. For that, it employs an enforcement monitor /enforcer which modifies an (untrusted) sequence of events into a sequence that complies with the property. In reality, we may have many critical (timed) properties to enforce. Furthermore, an ideal deployed system allows for system customization to meet the needs of the end-users. Thus, it is highly needed to build not a monolithic enforcer for all the properties, instead, there must be individual enforcers for each property and these individual enforcers should be composed accordingly. We investigate and provide a framework for composing enforcers of (timed) safety properties, formalized as timed automata, demonstrating that enforcement under this approach is not serially compositional in general. However, we identify and establish syntactic criteria on the automata, such that enforcers are serially compositional for any given set of safety timed automata satisfying these conditions. We show some examples of safety timed automata that satisfy those syntactic constraints, and via a prototype implementation, we evaluate the performance of our framework.","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133250040","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
Programming Language Processing : How AI can Revolutionize Software Development? 编程语言处理:人工智能如何革新软件开发?
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3581766
Baishakhi Ray
The past decade has seen unprecedented growth in Software Engineering— developers spend enormous time and effort to create new products. With such enormous growth comes the responsibility of producing and maintaining quality and robust software. However, developing such software is non-trivial— 50% of software developers’ valuable time is wasted on finding and fixing bugs, costing the global economy around USD$1.1 trillion. Today, I will discuss how AI can help in different stages of the software development life cycle for developing quality products. In particular, I will talk about Programming Language Processing (PLP), an emerging research field that can model different aspects of code (source, binary, execution, etc.) to automate diverse Software Engineering tasks, including code generation, bug finding, security analysis, etc.
过去的十年见证了软件工程前所未有的发展——开发人员花费了大量的时间和精力来创建新产品。随着如此巨大的增长,生产和维护高质量和健壮软件的责任也随之而来。然而,开发这样的软件并不是微不足道的——50%的软件开发人员的宝贵时间被浪费在寻找和修复bug上,造成全球经济损失约1.1万亿美元。今天,我将讨论AI如何在软件开发生命周期的不同阶段帮助开发高质量的产品。特别是,我将讨论编程语言处理(PLP),这是一个新兴的研究领域,它可以对代码的不同方面(源代码、二进制文件、执行等)进行建模,以自动执行各种软件工程任务,包括代码生成、bug查找、安全性分析等。
{"title":"Programming Language Processing : How AI can Revolutionize Software Development?","authors":"Baishakhi Ray","doi":"10.1145/3578527.3581766","DOIUrl":"https://doi.org/10.1145/3578527.3581766","url":null,"abstract":"The past decade has seen unprecedented growth in Software Engineering— developers spend enormous time and effort to create new products. With such enormous growth comes the responsibility of producing and maintaining quality and robust software. However, developing such software is non-trivial— 50% of software developers’ valuable time is wasted on finding and fixing bugs, costing the global economy around USD$1.1 trillion. Today, I will discuss how AI can help in different stages of the software development life cycle for developing quality products. In particular, I will talk about Programming Language Processing (PLP), an emerging research field that can model different aspects of code (source, binary, execution, etc.) to automate diverse Software Engineering tasks, including code generation, bug finding, security analysis, etc.","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"193 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134019708","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
A Code Centric Evaluation of C/C++ Vulnerability Datasets for Deep Learning Based Vulnerability Detection Techniques 基于深度学习的漏洞检测技术中C/ c++漏洞数据集的代码中心评估
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3578530
Ridhi Jain, Nicole Gervasoni, Mthandazo Ndhlovu, Sanjay Rawat
Recent years have witnessed tremendous progress in NLP-based code comprehension via deep neural networks (DNN) learning, especially Large Language Models (LLMs). While the original application of LLMs is focused on code generation, there have been attempts to extend the application to more specialized tasks, like code similarity, author attribution, code repairs, and so on. As data plays an important role in the success of any machine learning approach, researchers have also proposed several benchmarks which are coupled with a specific task at hand. It is well known in the machine learning (ML) community that the presence of biases in the dataset affects the quality of the ML algorithm in a real-world scenario. This paper evaluates several existing datasets from DNN’s application perspective. We specifically focus on training datasets of C/C++ language code. Our choice of language stems from the fact that while LLM-based techniques have been applied and evaluated on programming languages like Python, JavaScript, and Ruby, there is not much LLM research for C/C++. As a result, datasets generated synthetically or from real-world codes are in individual research work. Consequently, in the absence of a uniform dataset, such works are hard to compare with each other. In this work, we aim to achieve two main objectives– 1. propose code-centric features that are relevant to security program analysis tasks like vulnerability detection; 2. a thorough (qualitative and quantitative) examination of the existing code datasets that demonstrate the main characteristics of the individual datasets to have a clear comparison. Our evaluation finds exciting facts about existing datasets highlighting gaps that need to be addressed.
近年来,通过深度神经网络(DNN)学习,特别是大型语言模型(llm),在基于nlp的代码理解方面取得了巨大进展。虽然llm的原始应用程序主要集中在代码生成上,但已经有人尝试将该应用程序扩展到更专门的任务,如代码相似性、作者归属、代码修复等。由于数据在任何机器学习方法的成功中都起着重要作用,研究人员还提出了几个与手头特定任务相结合的基准。众所周知,在机器学习(ML)社区中,数据集中偏差的存在会影响现实场景中ML算法的质量。本文从深度神经网络应用的角度对现有的几个数据集进行了评估。我们特别关注C/ c++语言代码的训练数据集。我们选择的语言源于这样一个事实,即尽管基于法学硕士的技术已经在Python、JavaScript和Ruby等编程语言上得到了应用和评估,但针对C/ c++的法学硕士研究并不多。因此,合成或从现实世界代码生成的数据集是在个人研究工作中。因此,在缺乏统一数据集的情况下,这些工作很难相互比较。在这项工作中,我们的目标是实现两个主要目标:1。提出与漏洞检测等安全程序分析任务相关的以代码为中心的功能;2. 对现有代码数据集进行彻底的(定性和定量)检查,展示各个数据集的主要特征,以便进行清晰的比较。我们的评估发现了有关现有数据集的令人兴奋的事实,突出了需要解决的差距。
{"title":"A Code Centric Evaluation of C/C++ Vulnerability Datasets for Deep Learning Based Vulnerability Detection Techniques","authors":"Ridhi Jain, Nicole Gervasoni, Mthandazo Ndhlovu, Sanjay Rawat","doi":"10.1145/3578527.3578530","DOIUrl":"https://doi.org/10.1145/3578527.3578530","url":null,"abstract":"Recent years have witnessed tremendous progress in NLP-based code comprehension via deep neural networks (DNN) learning, especially Large Language Models (LLMs). While the original application of LLMs is focused on code generation, there have been attempts to extend the application to more specialized tasks, like code similarity, author attribution, code repairs, and so on. As data plays an important role in the success of any machine learning approach, researchers have also proposed several benchmarks which are coupled with a specific task at hand. It is well known in the machine learning (ML) community that the presence of biases in the dataset affects the quality of the ML algorithm in a real-world scenario. This paper evaluates several existing datasets from DNN’s application perspective. We specifically focus on training datasets of C/C++ language code. Our choice of language stems from the fact that while LLM-based techniques have been applied and evaluated on programming languages like Python, JavaScript, and Ruby, there is not much LLM research for C/C++. As a result, datasets generated synthetically or from real-world codes are in individual research work. Consequently, in the absence of a uniform dataset, such works are hard to compare with each other. In this work, we aim to achieve two main objectives– 1. propose code-centric features that are relevant to security program analysis tasks like vulnerability detection; 2. a thorough (qualitative and quantitative) examination of the existing code datasets that demonstrate the main characteristics of the individual datasets to have a clear comparison. Our evaluation finds exciting facts about existing datasets highlighting gaps that need to be addressed.","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"92 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128096955","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
Automatic Identification of Video Game Development Problems using Word Embedding and Ensemble Classifiers 基于词嵌入和集成分类器的电子游戏开发问题自动识别
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3578543
Anirudh, L. Kumar, N. B. Murthy, A. Krishna
The video game development industry, also known as the interactive entertainment business, is involved in building, marketing, advertising, and monetizing video games. Over the last few years, this industry has come into the mainstream from initially being in the focused market. The growing video gamer demographic has increased by video game development methods and techniques. A postmortem of a video game is a close examination of the video game’s development phase and an analysis of what went right or wrong with the video game. Unfortunately, since there is not much understanding regarding the challenges encountered by programmers, there is a lack of trustworthiness primarily because postmortems lack a proper structure and are informally written. In this work, with the help of word embeddings and ensemble machine learning classifiers, a systematic analysis is performed on various technical and non-technical issues faced by the video game industry. It is believed that automation and machine learning classifiers could aid game developers in identifying what problem they are facing, given the quote (description), and thus be able to figure out a solution quickly. Frequently committed mistakes could be identified and avoided, and this work could act as a starting point to further consider software development and video game development in the same context.
电子游戏开发行业,也被称为互动娱乐业务,涉及电子游戏的构建、营销、广告和盈利。在过去的几年里,这个行业已经从最初的集中市场变成了主流。随着电子游戏开发方法和技术的发展,电子游戏玩家的数量也在不断增长。电子游戏的事后分析是指仔细检查电子游戏的开发阶段,分析电子游戏的正确或错误之处。不幸的是,由于对程序员所遇到的挑战没有太多的了解,因此缺乏可信度主要是因为事后分析缺乏适当的结构并且是非正式编写的。在这项工作中,借助词嵌入和集成机器学习分类器,对视频游戏行业面临的各种技术和非技术问题进行了系统分析。人们相信,自动化和机器学习分类器可以帮助游戏开发者识别他们所面临的问题,给出报价(描述),从而能够快速找到解决方案。经常犯的错误可以被识别和避免,这项工作可以作为一个起点,进一步考虑软件开发和电子游戏开发的相同背景。
{"title":"Automatic Identification of Video Game Development Problems using Word Embedding and Ensemble Classifiers","authors":"Anirudh, L. Kumar, N. B. Murthy, A. Krishna","doi":"10.1145/3578527.3578543","DOIUrl":"https://doi.org/10.1145/3578527.3578543","url":null,"abstract":"The video game development industry, also known as the interactive entertainment business, is involved in building, marketing, advertising, and monetizing video games. Over the last few years, this industry has come into the mainstream from initially being in the focused market. The growing video gamer demographic has increased by video game development methods and techniques. A postmortem of a video game is a close examination of the video game’s development phase and an analysis of what went right or wrong with the video game. Unfortunately, since there is not much understanding regarding the challenges encountered by programmers, there is a lack of trustworthiness primarily because postmortems lack a proper structure and are informally written. In this work, with the help of word embeddings and ensemble machine learning classifiers, a systematic analysis is performed on various technical and non-technical issues faced by the video game industry. It is believed that automation and machine learning classifiers could aid game developers in identifying what problem they are facing, given the quote (description), and thus be able to figure out a solution quickly. Frequently committed mistakes could be identified and avoided, and this work could act as a starting point to further consider software development and video game development in the same context.","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"129 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121157158","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
Memory leak detection using Heap Object Flow Graph (HOFG) 使用堆对象流图(HOFG)进行内存泄漏检测
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3578528
Haritha Madhav C, Unnikrishnan Cheramangalath
Unsafe programming languages like C/C++ lack efficient memory management module. A programmer is privileged to do explicit allocation and deallocation of heap memory blocks in C/C++ programming languages. Memory errors related to heap memory are difficult to capture using software testing in such programming languages. Program analysis can improve the reliability of software by identifying and repairing bugs related to dynamic memory management. An efficient static analyzer needs to look at the control flow graph of the whole program binary. Capturing context, path, and flow sensitivity is challenging using abstract interpretation and can lead to over approximated results. We propose Heap Object Flow Graph (HOFG), a program representation that eases program analysis to detect memory errors using static program analysis. An efficient program analysis on HOFG called HOFG-Analyser is defined, to capture memory leaks. We were able to detect memory leaks on different benchmarks written in C/C++ programming language with sizes up to 521K Lines of Code (LoC) with minimal false positive rates. Our experimental evaluation show that HOFG-Analyser is efficient and effective than an existing static analysis tool, INFER. In many cases, more number of leaks and less false positive rate is achieved by the HOFG-Analyser.
不安全的编程语言如C/ c++缺乏高效的内存管理模块。程序员有权在C/ c++编程语言中显式地分配和释放堆内存块。在这种编程语言中使用软件测试很难捕获与堆内存相关的内存错误。程序分析可以通过识别和修复与动态内存管理相关的错误来提高软件的可靠性。一个高效的静态分析器需要查看整个程序二进制的控制流图。使用抽象解释捕获上下文、路径和流敏感性是具有挑战性的,并且可能导致过度近似的结果。我们提出了堆对象流图(HOFG),这是一种简化程序分析的程序表示,可以使用静态程序分析来检测内存错误。定义了一个高效的HOFG程序分析,称为HOFG分析器,用于捕获内存泄漏。我们能够在用C/ c++编程语言编写的不同基准测试中检测内存泄漏,其大小可达521K代码行(LoC),并具有最小的误报率。我们的实验评估表明,HOFG-Analyser比现有的静态分析工具INFER更高效。在许多情况下,hhog分析仪可以实现更多的泄漏数量和更少的误报率。
{"title":"Memory leak detection using Heap Object Flow Graph (HOFG)","authors":"Haritha Madhav C, Unnikrishnan Cheramangalath","doi":"10.1145/3578527.3578528","DOIUrl":"https://doi.org/10.1145/3578527.3578528","url":null,"abstract":"Unsafe programming languages like C/C++ lack efficient memory management module. A programmer is privileged to do explicit allocation and deallocation of heap memory blocks in C/C++ programming languages. Memory errors related to heap memory are difficult to capture using software testing in such programming languages. Program analysis can improve the reliability of software by identifying and repairing bugs related to dynamic memory management. An efficient static analyzer needs to look at the control flow graph of the whole program binary. Capturing context, path, and flow sensitivity is challenging using abstract interpretation and can lead to over approximated results. We propose Heap Object Flow Graph (HOFG), a program representation that eases program analysis to detect memory errors using static program analysis. An efficient program analysis on HOFG called HOFG-Analyser is defined, to capture memory leaks. We were able to detect memory leaks on different benchmarks written in C/C++ programming language with sizes up to 521K Lines of Code (LoC) with minimal false positive rates. Our experimental evaluation show that HOFG-Analyser is efficient and effective than an existing static analysis tool, INFER. In many cases, more number of leaks and less false positive rate is achieved by the HOFG-Analyser.","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133524427","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
Inclusivity Checker: A Testing Tool to Detect Inclusivity Bugs in Websites 包容性检查:一个测试工具,以检测网站的包容性错误
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3578547
Kushagra Pathak, Parita Patel, Mital Kamani, Saurabh Tiwari
At the current speed of technological advancement, particularly with the pandemic driving the shift from physical to virtual, everyone must have access to the digital world. Guidelines for accessible technology exist to assist software engineers in creating websites accessible to disabled populations but are extensive and, therefore, difficult to follow completely. Additionally, no standard guidelines are available to address a wider range of human diversity beyond disabilities. In this paper, we present a browser extension tool, Inclusivity Checker, that can assist in building more inclusive websites by performing tests on checkpoints categorized into various user groups based on disability type and diversity parameters. These checkpoints are based on existing guidelines and present developers with errors, warnings, and tips. To gauge the efficiency of the developed tool, we evaluated the results manually. Furthermore, we collected the developers’ feedback on the tool to test its usability.
以目前的技术进步速度,特别是在疫情推动从实体向虚拟转变的情况下,每个人都必须能够进入数字世界。无障碍技术指南的存在是为了帮助软件工程师创建残疾人可访问的网站,但这些指南过于宽泛,因此很难完全遵循。此外,没有标准的指导方针来处理除残疾之外的更广泛的人类多样性。在本文中,我们介绍了一个浏览器扩展工具,包容性检查器,它可以根据残疾类型和多样性参数对不同的用户组进行测试,从而帮助构建更具包容性的网站。这些检查点基于现有的指导方针,并向开发人员提供错误、警告和提示。为了评估开发工具的效率,我们手动评估了结果。此外,我们收集了开发人员对该工具的反馈,以测试其可用性。
{"title":"Inclusivity Checker: A Testing Tool to Detect Inclusivity Bugs in Websites","authors":"Kushagra Pathak, Parita Patel, Mital Kamani, Saurabh Tiwari","doi":"10.1145/3578527.3578547","DOIUrl":"https://doi.org/10.1145/3578527.3578547","url":null,"abstract":"At the current speed of technological advancement, particularly with the pandemic driving the shift from physical to virtual, everyone must have access to the digital world. Guidelines for accessible technology exist to assist software engineers in creating websites accessible to disabled populations but are extensive and, therefore, difficult to follow completely. Additionally, no standard guidelines are available to address a wider range of human diversity beyond disabilities. In this paper, we present a browser extension tool, Inclusivity Checker, that can assist in building more inclusive websites by performing tests on checkpoints categorized into various user groups based on disability type and diversity parameters. These checkpoints are based on existing guidelines and present developers with errors, warnings, and tips. To gauge the efficiency of the developed tool, we evaluated the results manually. Furthermore, we collected the developers’ feedback on the tool to test its usability.","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134444858","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
Cloud Software Engineering 云软件工程
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3581746
Rupashree Rangaiyengar
Cloud is a distributed ecosystem and differs significantly from on-premise software development platform. Cloud application development is built upon a service-based architecture, application programming interface driven communications, container-based infrastructure and a bias for DevOps process such as continuous improvement, agile development, continuous delivery and collaborative development among developers, quality assurance teams, security professionals, IT operations and line-of-business stakeholders. Therefore, while building applications on the cloud there needs to be a novel attitude to requirements gathering, software design, development, deployment, debugging, maintenance and testing. The main objective of the workshop is to discuss how Cloud Software Engineering differs from traditional software engineering and the challenges that arise and create a community around the relevant work areas.
云是一个分布式的生态系统,与本地软件开发平台有很大的不同。云应用程序开发建立在基于服务的架构、应用程序编程接口驱动的通信、基于容器的基础设施和对DevOps流程(如持续改进、敏捷开发、持续交付和开发人员、质量保证团队、安全专业人员、IT运营和业务线利益相关者之间的协作开发)的偏爱之上。因此,在云上构建应用程序时,需要对需求收集、软件设计、开发、部署、调试、维护和测试采取新的态度。研讨会的主要目的是讨论云软件工程与传统软件工程的不同之处,以及由此产生的挑战,并围绕相关工作领域创建一个社区。
{"title":"Cloud Software Engineering","authors":"Rupashree Rangaiyengar","doi":"10.1145/3578527.3581746","DOIUrl":"https://doi.org/10.1145/3578527.3581746","url":null,"abstract":"Cloud is a distributed ecosystem and differs significantly from on-premise software development platform. Cloud application development is built upon a service-based architecture, application programming interface driven communications, container-based infrastructure and a bias for DevOps process such as continuous improvement, agile development, continuous delivery and collaborative development among developers, quality assurance teams, security professionals, IT operations and line-of-business stakeholders. Therefore, while building applications on the cloud there needs to be a novel attitude to requirements gathering, software design, development, deployment, debugging, maintenance and testing. The main objective of the workshop is to discuss how Cloud Software Engineering differs from traditional software engineering and the challenges that arise and create a community around the relevant work areas.","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132963966","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
PRIORITY: An Intelligent Problem Indicator Repository 优先级:一个智能问题指示器存储库
Pub Date : 2023-02-23 DOI: 10.1145/3578527.3578533
Sharath H. Padmanabha, Fahad Shaikh, Mayank Bansal, Debanjan Chatterjee, Preeti Singh, Amey Karkare, Purushottam Kar
We report the design, development and deployment of PRIORITY, an intelligent portal aimed at reducing the workload of instructors, tutors and teaching assistants in large programming courses of creating lab, assignment and exam problems every week. PRIORITY offers a scalable, user friendly and indexed repository of problems that can be queried to retrieve problems related to a particular programming concept, say for loops. PRIORITY accomplishes this by casting problem retrieval as a multi-label learning problem and using solving it using novel feature selection and AI-techniques. We also report the results of an A/B test and user survey, both conducted while PRIORITY was being used to offer a CS1 course taught at IIT Kanpur with over 500 students. PRIORITY has been in deployment at IIT Kanpur for almost 2 years now and our experience thus far suggests that it not only presents a valuable tool for course administrators, but also opens up several intriguing problems at the intersection of programming instruction, pedagogy, machine learning, semi-supervised learning and information retrieval. Code for PRIORITY is available at https://github.com/purushottamkar/priority/
我们报告了PRIORITY的设计、开发和部署,这是一个智能门户,旨在减少教师、导师和助教在大型编程课程中每周创建实验、作业和考试问题的工作量。PRIORITY提供了一个可伸缩的、用户友好的、有索引的问题存储库,可以通过查询来检索与特定编程概念(比如for循环)相关的问题。优先级通过将问题检索作为一个多标签学习问题,并使用新的特征选择和人工智能技术来解决它来实现这一点。我们还报告了A/B测试和用户调查的结果,这两项调查都是在印度理工学院坎普尔分校使用PRIORITY提供CS1课程时进行的,有500多名学生参加。到目前为止,我们的经验表明,它不仅为课程管理员提供了一个有价值的工具,而且在编程指导、教育学、机器学习、半监督学习和信息检索的交叉领域开辟了一些有趣的问题。优先级代码可在https://github.com/purushottamkar/priority/上获得
{"title":"PRIORITY: An Intelligent Problem Indicator Repository","authors":"Sharath H. Padmanabha, Fahad Shaikh, Mayank Bansal, Debanjan Chatterjee, Preeti Singh, Amey Karkare, Purushottam Kar","doi":"10.1145/3578527.3578533","DOIUrl":"https://doi.org/10.1145/3578527.3578533","url":null,"abstract":"We report the design, development and deployment of PRIORITY, an intelligent portal aimed at reducing the workload of instructors, tutors and teaching assistants in large programming courses of creating lab, assignment and exam problems every week. PRIORITY offers a scalable, user friendly and indexed repository of problems that can be queried to retrieve problems related to a particular programming concept, say for loops. PRIORITY accomplishes this by casting problem retrieval as a multi-label learning problem and using solving it using novel feature selection and AI-techniques. We also report the results of an A/B test and user survey, both conducted while PRIORITY was being used to offer a CS1 course taught at IIT Kanpur with over 500 students. PRIORITY has been in deployment at IIT Kanpur for almost 2 years now and our experience thus far suggests that it not only presents a valuable tool for course administrators, but also opens up several intriguing problems at the intersection of programming instruction, pedagogy, machine learning, semi-supervised learning and information retrieval. Code for PRIORITY is available at https://github.com/purushottamkar/priority/","PeriodicalId":326318,"journal":{"name":"Proceedings of the 16th Innovations in Software Engineering Conference","volume":"35 9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123517817","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
期刊
Proceedings of the 16th Innovations in Software Engineering Conference
全部 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