Adaptation and sustainability are two key challenges leading the development of software-systems nowadays. Adaptation denotes the capacity of a system to cope with variations and uncertainties at runtime in order to continue providing its functionalities with certain quality levels, notwithstanding change. But how can adaptation and its intent be expressed at design time so that to analyze its possible impact at runtime over a long period of time? To answer this question we look at adaptation from the sustainability point of view. Sustainability denotes the capacity of a system to both endure and preserve its function over time. We propose an approach which uses decision maps to make sustainability-driven decisions for adaptation in a systematic way. The proposed approach is illustrated through two self-adaptive exemplars as illustrative cases.
{"title":"Expressing the Adaptation Intent as a Sustainability Goal","authors":"I. Gerostathopoulos, C. Raibulet, P. Lago","doi":"10.1145/3510455.3512776","DOIUrl":"https://doi.org/10.1145/3510455.3512776","url":null,"abstract":"Adaptation and sustainability are two key challenges leading the development of software-systems nowadays. Adaptation denotes the capacity of a system to cope with variations and uncertainties at runtime in order to continue providing its functionalities with certain quality levels, notwithstanding change. But how can adaptation and its intent be expressed at design time so that to analyze its possible impact at runtime over a long period of time? To answer this question we look at adaptation from the sustainability point of view. Sustainability denotes the capacity of a system to both endure and preserve its function over time. We propose an approach which uses decision maps to make sustainability-driven decisions for adaptation in a systematic way. The proposed approach is illustrated through two self-adaptive exemplars as illustrative cases.","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"141 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123225220","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}
Matthew M. Frazier, Shaayal Kumar, Kostadin Damevski, L. Pollock
Conversational agents that respond to user information requests through a natural conversation have the potential to revolutionize how we acquire new information on the Web (i.e., perform exploratory Web searches). Recent advances to conversational search agents use popular Web search engines as a back-end and sophisticated AI algorithms to maintain context, automatically generate search queries, and summarize results into utterances. While showing impressive results on general topics, the potential of this technology for software engineering is unclear. In this paper, we study the potential of conversational search agents to aid software developers as they acquire new knowledge. We also obtain user perceptions of how far the most recent generation of such systems (e.g., Facebook’s BlenderBot2) has come in its ability to serve software developers. Our study indicates that users find conversational agents helpful in gaining useful information for software-related exploratory search; however, their perceptions also indicate a large gap between expectations and current state of the art tools, especially in providing high-quality information. Participant responses provide directions for future work. CCS CONCEPTS• General and reference $rightarrow$Empirical studies.
{"title":"Investigating User Perceptions of Conversational Agents for Software-related ExploratoryWeb Search","authors":"Matthew M. Frazier, Shaayal Kumar, Kostadin Damevski, L. Pollock","doi":"10.1145/3510455.3512778","DOIUrl":"https://doi.org/10.1145/3510455.3512778","url":null,"abstract":"Conversational agents that respond to user information requests through a natural conversation have the potential to revolutionize how we acquire new information on the Web (i.e., perform exploratory Web searches). Recent advances to conversational search agents use popular Web search engines as a back-end and sophisticated AI algorithms to maintain context, automatically generate search queries, and summarize results into utterances. While showing impressive results on general topics, the potential of this technology for software engineering is unclear. In this paper, we study the potential of conversational search agents to aid software developers as they acquire new knowledge. We also obtain user perceptions of how far the most recent generation of such systems (e.g., Facebook’s BlenderBot2) has come in its ability to serve software developers. Our study indicates that users find conversational agents helpful in gaining useful information for software-related exploratory search; however, their perceptions also indicate a large gap between expectations and current state of the art tools, especially in providing high-quality information. Participant responses provide directions for future work. CCS CONCEPTS• General and reference $rightarrow$Empirical studies.","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"108 9","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114023304","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}
Carlos Gavidia-Calderon, A. Bennaceur, Anastasia Kordoni, Mark Levine, B. Nuseibeh
Autonomous systems, like drones and self-driving cars, are becoming part of our daily lives. Multiple people interact with them, each with their own expectations regarding system behaviour. To adapt system behaviour to human preferences, we propose and explore a game-theoretic approach. In our architecture, autonomous systems use sensor data to build game-theoretic models of their interaction with humans. In these models, we represent human preferences with types and a probability distribution over them. Game-theoretic analysis then outputs a strategy, that determines how the system should act to maximise utility, given its beliefs over human types. We showcase our approach in a search-and-rescue (SAR) scenario, with a robot in charge of locating victims. According to social psychology, depending on their identity some people are keen to help others, while some prioritise their personal safety. These social identities define what a person favours, so we can map them directly to game-theoretic types. We show that our approach enables a SAR robot to take advantage of human collaboration, outperforming non-adaptive configurations in average number of successful evacuations. CCS CONCEPTS • Computer systems organization $rightarrow$Robotics; • Human- centered computing $rightarrow$Collaborative interaction. ACM Reference Format: Carlos Gavidia-Calderon, Amel Bennaceur, Anastasia Kordoni, Mark Levine, and Bashar Nuseibeh. 2022. What Do You Want From Me? Adapting Systems to the Uncertainty of Human Preferences. In New Ideas and Emerging Results (ICSE-NIER’22), May 21-29, 2022, Pittsburgh, PA, USA. ACM, New York, NY, USA, 5 pages. https://doi.org/10.1145/3510455.3512791
{"title":"What Do You Want From Me? Adapting Systems to the Uncertainty of Human Preferences","authors":"Carlos Gavidia-Calderon, A. Bennaceur, Anastasia Kordoni, Mark Levine, B. Nuseibeh","doi":"10.1145/3510455.3512791","DOIUrl":"https://doi.org/10.1145/3510455.3512791","url":null,"abstract":"Autonomous systems, like drones and self-driving cars, are becoming part of our daily lives. Multiple people interact with them, each with their own expectations regarding system behaviour. To adapt system behaviour to human preferences, we propose and explore a game-theoretic approach. In our architecture, autonomous systems use sensor data to build game-theoretic models of their interaction with humans. In these models, we represent human preferences with types and a probability distribution over them. Game-theoretic analysis then outputs a strategy, that determines how the system should act to maximise utility, given its beliefs over human types. We showcase our approach in a search-and-rescue (SAR) scenario, with a robot in charge of locating victims. According to social psychology, depending on their identity some people are keen to help others, while some prioritise their personal safety. These social identities define what a person favours, so we can map them directly to game-theoretic types. We show that our approach enables a SAR robot to take advantage of human collaboration, outperforming non-adaptive configurations in average number of successful evacuations. CCS CONCEPTS • Computer systems organization $rightarrow$Robotics; • Human- centered computing $rightarrow$Collaborative interaction. ACM Reference Format: Carlos Gavidia-Calderon, Amel Bennaceur, Anastasia Kordoni, Mark Levine, and Bashar Nuseibeh. 2022. What Do You Want From Me? Adapting Systems to the Uncertainty of Human Preferences. In New Ideas and Emerging Results (ICSE-NIER’22), May 21-29, 2022, Pittsburgh, PA, USA. ACM, New York, NY, USA, 5 pages. https://doi.org/10.1145/3510455.3512791","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"81 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126005558","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}
We discuss the advent of a new program analysis paradigm that allows anyone to make precise statements about the behavior of programs as they run in production across hundreds and millions of machines or devices. The scale-oblivious, in vivo program analysis leverages an almost inconceivable rate of user-generated program executions across large fleets to analyze programs of arbitrary size and composition with negligible performance overhead. In this paper, we reflect on the program analysis problem, the prevalent paradigm, and the practical reality of program analysis at large software companies. We illustrate the new paradigm using several success stories and suggest a number of exciting new research directions.
{"title":"Statistical Reasoning About Programs","authors":"Marcel Böhme","doi":"10.1145/3510455.3512796","DOIUrl":"https://doi.org/10.1145/3510455.3512796","url":null,"abstract":"We discuss the advent of a new program analysis paradigm that allows anyone to make precise statements about the behavior of programs as they run in production across hundreds and millions of machines or devices. The scale-oblivious, in vivo program analysis leverages an almost inconceivable rate of user-generated program executions across large fleets to analyze programs of arbitrary size and composition with negligible performance overhead. In this paper, we reflect on the program analysis problem, the prevalent paradigm, and the practical reality of program analysis at large software companies. We illustrate the new paradigm using several success stories and suggest a number of exciting new research directions.","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"189 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134177287","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}
The terminal is a remarkably resilient interface for many programming activities. From its humble beginnings as a teletypewriter more than half a century ago, through video terminals like the VT100, to present-day windowed terminal emulators, it has remained a relevant and productive, albeit very gaunt, interface. This is in stark contrast with feature-rich integrated development environments (IDEs), which on top of their innate complexity allow for the creation of custom extensions. Indeed, researchers have been prolific in proposing innumerable, but often ignored, plug-ins. We propose using inter-connected windowed terminal emulators as the foundation for a new type of distributed and language-agnostic development environment. By delegating the handling of a system’s source code to a set of dedicated windowed terminal emulators we aim at complementing existing visual tools and leveraging the large body of existing command-line and terminal-based development tools. We present the architecture of the terminal-based development environment that we envision, outline our future implementation plans, and discuss how such an environment can be evaluated both in terms of its usefulness and usability.
{"title":"Terminals All the Way Down","authors":"Michael MacInnis, Olga Baysal, Michele Lanza","doi":"10.1145/3510455.3512784","DOIUrl":"https://doi.org/10.1145/3510455.3512784","url":null,"abstract":"The terminal is a remarkably resilient interface for many programming activities. From its humble beginnings as a teletypewriter more than half a century ago, through video terminals like the VT100, to present-day windowed terminal emulators, it has remained a relevant and productive, albeit very gaunt, interface. This is in stark contrast with feature-rich integrated development environments (IDEs), which on top of their innate complexity allow for the creation of custom extensions. Indeed, researchers have been prolific in proposing innumerable, but often ignored, plug-ins. We propose using inter-connected windowed terminal emulators as the foundation for a new type of distributed and language-agnostic development environment. By delegating the handling of a system’s source code to a set of dedicated windowed terminal emulators we aim at complementing existing visual tools and leveraging the large body of existing command-line and terminal-based development tools. We present the architecture of the terminal-based development environment that we envision, outline our future implementation plans, and discuss how such an environment can be evaluated both in terms of its usefulness and usability.","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134324746","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}
Kindness can boost happiness and wellbeing. It can benefit individuals (e.g., increasing resilience) as well as society (e.g., increasing trust). With digital technology permeating our daily lives, there are increasing opportunities for such technology to enable, mediate, and amplify kindness in society. In this paper, we propose kind computing, a new computing paradigm that explicitly incorporates kindness into the development and use of digital technology. We envisage software engineering as a discipline that can deliver such technology. However, software engineering techniques do not provide explicit abstractions, formalisms, and tools to consider, analyse, and implement software that delivers such technology. With reference to related work, we elaborate on kind computing and the role of software engineering in enabling it, identify open research challenges, elicit three categories of kind computing requirements, and sketch a research agenda for future work. CCS CONCEPTS • Human-centered computing; • Software and its engineering;
{"title":"Kind Computing","authors":"Faeq Alrimawi, B. Nuseibeh","doi":"10.1145/3510455.3512794","DOIUrl":"https://doi.org/10.1145/3510455.3512794","url":null,"abstract":"Kindness can boost happiness and wellbeing. It can benefit individuals (e.g., increasing resilience) as well as society (e.g., increasing trust). With digital technology permeating our daily lives, there are increasing opportunities for such technology to enable, mediate, and amplify kindness in society. In this paper, we propose kind computing, a new computing paradigm that explicitly incorporates kindness into the development and use of digital technology. We envisage software engineering as a discipline that can deliver such technology. However, software engineering techniques do not provide explicit abstractions, formalisms, and tools to consider, analyse, and implement software that delivers such technology. With reference to related work, we elaborate on kind computing and the role of software engineering in enabling it, identify open research challenges, elicit three categories of kind computing requirements, and sketch a research agenda for future work. CCS CONCEPTS • Human-centered computing; • Software and its engineering;","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132592966","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}
Untrusted deserialization exploits, where a serialised object graph is used to achieve denial-of-service or arbitrary code execution, have become so prominent that they were introduced in the 2017 OWASP Top 10. In this paper, we present a novel and lightweight approach for runtime prevention of deserialization attacks using Markov chains. The intuition behind our work is that the features and ordering of classes in malicious object graphs make them distinguishable from benign ones. Preliminary results indeed show that our approach achieves an Fl-score of 0.94 on a dataset of 264 serialised payloads, collected from an industrial Java BE application server and a repository of deserialization exploits. ACM Reference Format: François Gauthier and Sora Bae. 2022. Runtime Prevention of Deserialization Attacks. In New Ideas and Emerging Results (ICSE-NIER’22), May 21–29, 2022, Pittsburgh, PA, USA. ACM, New York, NY, USA, 5 pages. https://doi.org/10.1145/3510455.3512786
不受信任的反序列化漏洞,即使用序列化对象图来实现拒绝服务或任意代码执行,已经变得如此突出,以至于它们被引入了2017年OWASP十大漏洞。在本文中,我们提出了一种新颖的轻量级方法,用于使用马尔可夫链来防止运行时反序列化攻击。我们工作背后的直觉是,恶意对象图中的类的特征和顺序使它们与良性对象图区分开来。初步结果确实表明,我们的方法在264个序列化有效负载的数据集上实现了0.94的fl分数,这些数据集来自工业Java BE应用服务器和反序列化漏洞存储库。ACM参考格式:franois Gauthier and Sora Bae。2022。反序列化攻击的运行时防护。新思想和新成果(ICSE-NIER ' 22), 2022年5月21-29日,美国宾夕法尼亚州匹兹堡。ACM,纽约,美国,5页。https://doi.org/10.1145/3510455.3512786
{"title":"Runtime Prevention of Deserialization Attacks","authors":"François Gauthier, Sora Bae","doi":"10.1145/3510455.3512786","DOIUrl":"https://doi.org/10.1145/3510455.3512786","url":null,"abstract":"Untrusted deserialization exploits, where a serialised object graph is used to achieve denial-of-service or arbitrary code execution, have become so prominent that they were introduced in the 2017 OWASP Top 10. In this paper, we present a novel and lightweight approach for runtime prevention of deserialization attacks using Markov chains. The intuition behind our work is that the features and ordering of classes in malicious object graphs make them distinguishable from benign ones. Preliminary results indeed show that our approach achieves an Fl-score of 0.94 on a dataset of 264 serialised payloads, collected from an industrial Java BE application server and a repository of deserialization exploits. ACM Reference Format: François Gauthier and Sora Bae. 2022. Runtime Prevention of Deserialization Attacks. In New Ideas and Emerging Results (ICSE-NIER’22), May 21–29, 2022, Pittsburgh, PA, USA. ACM, New York, NY, USA, 5 pages. https://doi.org/10.1145/3510455.3512786","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130734345","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}
Commit messages play an important role in several software engineering tasks such as program comprehension and understanding program evolution. However, programmers neglect to write good commit messages. Hence, several Commit Message Generation (CMG) tools have been proposed. We observe that the recent state of the art CMG tools use simple and easy to compute automated evaluation metrics such as BLEU4 or its variants. The advances in the field of Machine Translation (MT) indicate several weaknesses of BLEU4 and its variants. They also propose several other metrics for evaluating Natural Language Generation (NLG) tools. In this work, we discuss the suitability of various MT metrics for the CMG task. Based on the insights from our experiments, we propose a new variant specifically for evaluating the CMG task. We re-evaluate the state of the art CMG tools on our new metric. We believe that our work fixes an important gap that exists in the understanding of evaluation metrics for CMG research. CCS CONCEPTS• Software and its engineering $rightarrow$Software verification and validation.
{"title":"Evaluating Commit Message Generation: To BLEU Or Not To BLEU?","authors":"Samanta Dey, Venkatesh Vinayakarao, Monika Gupta, Sampath Dechu","doi":"10.1145/3510455.3512790","DOIUrl":"https://doi.org/10.1145/3510455.3512790","url":null,"abstract":"Commit messages play an important role in several software engineering tasks such as program comprehension and understanding program evolution. However, programmers neglect to write good commit messages. Hence, several Commit Message Generation (CMG) tools have been proposed. We observe that the recent state of the art CMG tools use simple and easy to compute automated evaluation metrics such as BLEU4 or its variants. The advances in the field of Machine Translation (MT) indicate several weaknesses of BLEU4 and its variants. They also propose several other metrics for evaluating Natural Language Generation (NLG) tools. In this work, we discuss the suitability of various MT metrics for the CMG task. Based on the insights from our experiments, we propose a new variant specifically for evaluating the CMG task. We re-evaluate the state of the art CMG tools on our new metric. We believe that our work fixes an important gap that exists in the understanding of evaluation metrics for CMG research. CCS CONCEPTS• Software and its engineering $rightarrow$Software verification and validation.","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"12 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114936213","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}
Microservices have become the de-facto software architecture for cloud-native applications. A contentious architectural decision in microservices is to compose them using choreography or orchestration. In choreography, every service works independently, whereas, in orchestration, there is a controller that coordinates service interactions. This paper makes a case for orchestration. The promise of microservices is that each microservice can be independently developed, deployed, tested, upgraded, and scaled. This makes them suitable for systems running on cloud infrastructures. However, microservice-based systems become complicated due to the complex interactions of various services, concurrent events, failing components, developers’ lack of global view, and configurations of the environment. This makes maintaining and debugging such systems very challenging. We hypothesize that orchestrated services are easier to debug and to test this we ported the largest publicly available microservices’ benchmark TrainTicket [24], which is implemented using choreography, to a fault-oblivious stateful workflow framework Temporal [19]. We report our experience in porting the code from traditional choreographed microservice architecture to one orchestrated by Temporal and present our initial findings of time to debug the 22 bugs present in the benchmark. Our findings suggest that an effort towards making a transition to orchestrated approach is worthwhile, making the ported code easier to debug.
{"title":"Case for Microservices Orchestration Using Workflow Engines","authors":"Anas Nadeem, Muhammad Zubair Malik","doi":"10.1145/3510455.3512777","DOIUrl":"https://doi.org/10.1145/3510455.3512777","url":null,"abstract":"Microservices have become the de-facto software architecture for cloud-native applications. A contentious architectural decision in microservices is to compose them using choreography or orchestration. In choreography, every service works independently, whereas, in orchestration, there is a controller that coordinates service interactions. This paper makes a case for orchestration. The promise of microservices is that each microservice can be independently developed, deployed, tested, upgraded, and scaled. This makes them suitable for systems running on cloud infrastructures. However, microservice-based systems become complicated due to the complex interactions of various services, concurrent events, failing components, developers’ lack of global view, and configurations of the environment. This makes maintaining and debugging such systems very challenging. We hypothesize that orchestrated services are easier to debug and to test this we ported the largest publicly available microservices’ benchmark TrainTicket [24], which is implemented using choreography, to a fault-oblivious stateful workflow framework Temporal [19]. We report our experience in porting the code from traditional choreographed microservice architecture to one orchestrated by Temporal and present our initial findings of time to debug the 22 bugs present in the benchmark. Our findings suggest that an effort towards making a transition to orchestrated approach is worthwhile, making the ported code easier to debug.","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116400113","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}
Staged rollout is a strategy of incrementally releasing software updates to portions of the user population in order to accelerate defect discovery without incurring catastrophic outcomes such as system wide outages. Some past studies have examined how to quantify and automate staged rollout, but stop short of simultaneously considering multiple product or process metrics explicitly. This paper demonstrates the potential to automate staged rollout with multi-objective reinforcement learning in order to dynamically balance stakeholder needs such as time to deliver new features and downtime incurred by failures due to latent defects. CCS CONCEPTS • Software and its engineering → Software testing and debugging.
{"title":"Automating Staged Rollout with Reinforcement Learning","authors":"Shadow Pritchard, V. Nagaraju, L. Fiondella","doi":"10.1145/3510455.3512782","DOIUrl":"https://doi.org/10.1145/3510455.3512782","url":null,"abstract":"Staged rollout is a strategy of incrementally releasing software updates to portions of the user population in order to accelerate defect discovery without incurring catastrophic outcomes such as system wide outages. Some past studies have examined how to quantify and automate staged rollout, but stop short of simultaneously considering multiple product or process metrics explicitly. This paper demonstrates the potential to automate staged rollout with multi-objective reinforcement learning in order to dynamically balance stakeholder needs such as time to deliver new features and downtime incurred by failures due to latent defects. CCS CONCEPTS • Software and its engineering → Software testing and debugging.","PeriodicalId":416186,"journal":{"name":"2022 IEEE/ACM 44th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)","volume":"70 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129023111","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}