Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00073
Jevgenija Pantiuchina
Code smells have been defined as symptoms of poor design and implementation choices. Empirical studies showed that code smells can have a negative impact on the maintainability of code. For this reason, tools have been developed to auto-matically detect design flaws and, in some cases, to recommend developers how to remove them via refactoring. However, these tools are not able to prevent the introduction of design flaws. This means that the code has to experience a quality decay before state-of-the-art tools can be applied. In addition, existing tools recommend refactoring operations that mostly target the improvement of quality metrics (e.g., cohesion) rather than the generation of refactorings that are meaningful from the developers' perspective. Our goal is to develop techniques serving as the basis for a new generation of refactoring recommenders able to (i) predict code components likely to be affected by code smells in the near future, to refactor them before they experience a quality decay and (ii) recommend meaningful refactorings emulating the ones that developers would perform, rather than the ones targeting the improvement of metrics. We refer to such a perspective on refactoring as just-in-time rational refactoring.
{"title":"Towards Just-In-Time Rational Refactoring","authors":"Jevgenija Pantiuchina","doi":"10.1109/ICSE-Companion.2019.00073","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00073","url":null,"abstract":"Code smells have been defined as symptoms of poor design and implementation choices. Empirical studies showed that code smells can have a negative impact on the maintainability of code. For this reason, tools have been developed to auto-matically detect design flaws and, in some cases, to recommend developers how to remove them via refactoring. However, these tools are not able to prevent the introduction of design flaws. This means that the code has to experience a quality decay before state-of-the-art tools can be applied. In addition, existing tools recommend refactoring operations that mostly target the improvement of quality metrics (e.g., cohesion) rather than the generation of refactorings that are meaningful from the developers' perspective. Our goal is to develop techniques serving as the basis for a new generation of refactoring recommenders able to (i) predict code components likely to be affected by code smells in the near future, to refactor them before they experience a quality decay and (ii) recommend meaningful refactorings emulating the ones that developers would perform, rather than the ones targeting the improvement of metrics. We refer to such a perspective on refactoring as just-in-time rational refactoring.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133992271","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}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00126
Sonja M. Hyrynsalmi, S. Hyrynsalmi
The software industry is suffering from a widespread labour shortage and, at the same time, universities have not been able to react and provide enough skilled talents for the field. A wide selection of actions has been focused into getting more women for the STEM industries. However, the results have not been as efficient that would have hoped for. This study addresses the question how high-educated women perceive the attractiveness of software engineering studies. The data for the paper is collected with an open internet survey (n=134) from Finnish women who have already done or are planning to make a career change to the software industry. The attitudes towards new and old modes of learning and education are surveyed. This study shows that women perceive industry as attractive and value university education, yet there are overabundance of offering in entry-level training courses and lack of advanced studies. The university education is perceived to be rigid and old-fashioned.
{"title":"Software Engineering Studies Attractiveness for the Highly Educated Women Planning to Change Career in Finland","authors":"Sonja M. Hyrynsalmi, S. Hyrynsalmi","doi":"10.1109/ICSE-Companion.2019.00126","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00126","url":null,"abstract":"The software industry is suffering from a widespread labour shortage and, at the same time, universities have not been able to react and provide enough skilled talents for the field. A wide selection of actions has been focused into getting more women for the STEM industries. However, the results have not been as efficient that would have hoped for. This study addresses the question how high-educated women perceive the attractiveness of software engineering studies. The data for the paper is collected with an open internet survey (n=134) from Finnish women who have already done or are planning to make a career change to the software industry. The attitudes towards new and old modes of learning and education are surveyed. This study shows that women perceive industry as attractive and value university education, yet there are overabundance of offering in entry-level training courses and lack of advanced studies. The university education is perceived to be rigid and old-fashioned.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133526402","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}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00082
Chris Brown
Researchers have examined a wide variety of practices to help software engineers complete different programming tasks. Despite the fact that studies show software engineering practices and tools created to improve the software development process are useful for preventing bugs, decreasing debugging costs, reducing debugging time, and providing additional benefits, software engineers rarely use them in practice. To persuade humans to alter and adopt new behaviors, psychologists have studied the concept of nudges. My research aims to investigate how digital nudges, or the process of using technology to automatically create nudges, can be beneficial in helping software developers and teams adopt software engineering activities and integrate them into their normal workflow.
{"title":"Digital Nudges for Encouraging Developer Actions","authors":"Chris Brown","doi":"10.1109/ICSE-Companion.2019.00082","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00082","url":null,"abstract":"Researchers have examined a wide variety of practices to help software engineers complete different programming tasks. Despite the fact that studies show software engineering practices and tools created to improve the software development process are useful for preventing bugs, decreasing debugging costs, reducing debugging time, and providing additional benefits, software engineers rarely use them in practice. To persuade humans to alter and adopt new behaviors, psychologists have studied the concept of nudges. My research aims to investigate how digital nudges, or the process of using technology to automatically create nudges, can be beneficial in helping software developers and teams adopt software engineering activities and integrate them into their normal workflow.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"171 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122054568","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}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00130
Justin Alvin, Bob Kurtz, P. Ammann, H. Rangwala, René Just
This paper addresses two long-standing goals in software testing: making mutation-based testing practical and software testing overall more effective, predictable, and consistent. To that end, this paper proposes a novel mutation-based approach that guides testing effort based on test goal utility.
{"title":"Guiding Testing Effort Using Mutant Utility","authors":"Justin Alvin, Bob Kurtz, P. Ammann, H. Rangwala, René Just","doi":"10.1109/ICSE-Companion.2019.00130","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00130","url":null,"abstract":"This paper addresses two long-standing goals in software testing: making mutation-based testing practical and software testing overall more effective, predictable, and consistent. To that end, this paper proposes a novel mutation-based approach that guides testing effort based on test goal utility.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123936531","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}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00050
G. Barbon, V. Leroy, Gwen Salaün, Emmanuel Yah
In this paper, we present the CLEAR visualizer tool, which supports the debugging task of behavioural models being analyzed using model checking techniques. The tool provides visualization techniques for simplifying the comprehension of counterexamples by highlighting some specific states in the model where a choice is possible between executing a correct behaviour or falling into an erroneous part of the model. Our tool was applied successfully to many case studies and allowed us to visually identify several kinds of typical bugs. Video URL: https://youtu.be/nJLOnRaPe1A
{"title":"Visual Debugging of Behavioural Models","authors":"G. Barbon, V. Leroy, Gwen Salaün, Emmanuel Yah","doi":"10.1109/ICSE-Companion.2019.00050","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00050","url":null,"abstract":"In this paper, we present the CLEAR visualizer tool, which supports the debugging task of behavioural models being analyzed using model checking techniques. The tool provides visualization techniques for simplifying the comprehension of counterexamples by highlighting some specific states in the model where a choice is possible between executing a correct behaviour or falling into an erroneous part of the model. Our tool was applied successfully to many case studies and allowed us to visually identify several kinds of typical bugs. Video URL: https://youtu.be/nJLOnRaPe1A","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130120456","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}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00040
Wuxia Jin, Yuanfang Cai, R. Kazman, Q. Zheng, Di Cui, Ting Liu
Understanding the dependencies among code entities is fundamental to many software analysis tools and techniques. However, with the emergence of new programming languages and paradigms, the increasingly common practice of writing systems in multiple languages, and the increasing popularity of dynamic languages, no existing framework can reliably extract this information. That is, no tools exist to accurately extract dependencies from systems written in multiple and dynamic languages. To address this problem, we have designed and implemented the Extensible eNtity Relation Extraction (ENRE) framework. ENRE supports the extraction of entities and their dependencies from systems written in multiple languages, enables the customization of dependencies of interest to the user, and makes implicit dependencies explicit. To demonstrate feasibility of this framework, we developed two ENRE instances for analyzing Python and Golang programs. Our experiments on 12 Python and Golang projects demonstrated the effectiveness and flexibility of ENRE. By comparing with a commercial static analysis tool, we show that we can extract dependencies from Golang programs which are not supported by existing tools and we can reveal implicit dependencies in Python. (Demo Video: https://youtu.be/BfXp5bb1yqc)
{"title":"ENRE: A Tool Framework for Extensible eNtity Relation Extraction","authors":"Wuxia Jin, Yuanfang Cai, R. Kazman, Q. Zheng, Di Cui, Ting Liu","doi":"10.1109/ICSE-Companion.2019.00040","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00040","url":null,"abstract":"Understanding the dependencies among code entities is fundamental to many software analysis tools and techniques. However, with the emergence of new programming languages and paradigms, the increasingly common practice of writing systems in multiple languages, and the increasing popularity of dynamic languages, no existing framework can reliably extract this information. That is, no tools exist to accurately extract dependencies from systems written in multiple and dynamic languages. To address this problem, we have designed and implemented the Extensible eNtity Relation Extraction (ENRE) framework. ENRE supports the extraction of entities and their dependencies from systems written in multiple languages, enables the customization of dependencies of interest to the user, and makes implicit dependencies explicit. To demonstrate feasibility of this framework, we developed two ENRE instances for analyzing Python and Golang programs. Our experiments on 12 Python and Golang projects demonstrated the effectiveness and flexibility of ENRE. By comparing with a commercial static analysis tool, we show that we can extract dependencies from Golang programs which are not supported by existing tools and we can reveal implicit dependencies in Python. (Demo Video: https://youtu.be/BfXp5bb1yqc)","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129802041","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}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00030
Alessio Gambi, Marc Müller, G. Fraser
Ensuring the safety of self-driving cars is important, but neither industry nor authorities have settled on a standard way to test them. Deploying self-driving cars for testing in regular traffic is a common, but costly and risky method, which has already caused fatalities. As a safer alternative, virtual tests, in which self-driving car software is tested in computer simulations, have been proposed. One cannot hope to sufficiently cover the huge number of possible driving situations self-driving cars must be tested for by manually creating such tests. Therefore, we developed AsFault, a tool for automatically generating virtual tests for systematically testing self-driving car software. We demonstrate AsFault by testing the lane keeping feature of an artificial intelligence-based self-driving car software, for which AsFault generates scenarios that cause it to drive off the road. A video illustrating AsFault in action is available at: https://youtu.be/lJ1sa42VLDw
{"title":"AsFault: Testing Self-Driving Car Software Using Search-Based Procedural Content Generation","authors":"Alessio Gambi, Marc Müller, G. Fraser","doi":"10.1109/ICSE-Companion.2019.00030","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00030","url":null,"abstract":"Ensuring the safety of self-driving cars is important, but neither industry nor authorities have settled on a standard way to test them. Deploying self-driving cars for testing in regular traffic is a common, but costly and risky method, which has already caused fatalities. As a safer alternative, virtual tests, in which self-driving car software is tested in computer simulations, have been proposed. One cannot hope to sufficiently cover the huge number of possible driving situations self-driving cars must be tested for by manually creating such tests. Therefore, we developed AsFault, a tool for automatically generating virtual tests for systematically testing self-driving car software. We demonstrate AsFault by testing the lane keeping feature of an artificial intelligence-based self-driving car software, for which AsFault generates scenarios that cause it to drive off the road. A video illustrating AsFault in action is available at: https://youtu.be/lJ1sa42VLDw","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"163 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131948686","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}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00028
A. Krishna, M. L. Pallec, Radu Mateescu, L. Noirie, Gwen Salaün
The Internet of Things (IoT) consists of interconnected physical devices and software components. These connected things or objects exchange information in order to provide an end-user service. To fulfil this objective, such applications have to be designed by composing existing objects. However, this is a very difficult task mostly due to the heterogeneity and diversity of available objects. The IoT Composer tool was developed for supporting the development of IoT applications by first providing a behavioural model for objects and their composition. IoT Composer is developed as a web application that provides graphical support for composing available objects. The tool also provides automated validation techniques for verifying that the composition behaves correctly. Finally, a deployment plan is generated and can be run for effectively binding and instantiating all objects involved in the composition. IoT Composer was applied successfully to several real-world case studies. Video URL: https://youtu.be/6Cn3CUm5-qU
物联网(Internet of Things, IoT)由相互连接的物理设备和软件组件组成。这些连接的事物或对象交换信息以提供最终用户服务。为了实现这一目标,必须通过组合现有对象来设计此类应用程序。然而,这是一项非常困难的任务,主要是由于可用对象的异质性和多样性。IoT Composer工具是为了支持物联网应用程序的开发而开发的,它首先为对象及其组成提供了行为模型。IoT Composer是作为一个web应用程序开发的,它为组合可用对象提供图形支持。该工具还提供了自动验证技术,用于验证组合的行为是否正确。最后,生成一个部署计划,可以运行它来有效地绑定和实例化组合中涉及的所有对象。IoT Composer成功地应用于几个现实世界的案例研究。视频网址:https://youtu.be/6Cn3CUm5-qU
{"title":"IoT Composer: Composition and Deployment of IoT Applications","authors":"A. Krishna, M. L. Pallec, Radu Mateescu, L. Noirie, Gwen Salaün","doi":"10.1109/ICSE-Companion.2019.00028","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00028","url":null,"abstract":"The Internet of Things (IoT) consists of interconnected physical devices and software components. These connected things or objects exchange information in order to provide an end-user service. To fulfil this objective, such applications have to be designed by composing existing objects. However, this is a very difficult task mostly due to the heterogeneity and diversity of available objects. The IoT Composer tool was developed for supporting the development of IoT applications by first providing a behavioural model for objects and their composition. IoT Composer is developed as a web application that provides graphical support for composing available objects. The tool also provides automated validation techniques for verifying that the composition behaves correctly. Finally, a deployment plan is generated and can be run for effectively binding and instantiating all objects involved in the composition. IoT Composer was applied successfully to several real-world case studies. Video URL: https://youtu.be/6Cn3CUm5-qU","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131298632","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}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00032
Mitchell J. Gerrard, Matthew B. Dwyer
Program analysis tools typically compute either may or must information. By accumulating both kinds of information computed with respect to different portions of a program's state space, it is possible to collect a comprehensive view of how program inputs relate to some property. This can be done using the framework of an alternating conditional analysis (ACA). In this paper, we present a toolset that instantiates an ACA to analyze C programs. The toolset, dubbed ALPACA (A Large Portfolio-based ACA), computes a sound characterization of all the ways a program either may or must satisfy some property. It does so by alternating between over-and underapproximate analyses, conditioning analyses to ignore portions of the program that have already been analyzed, and combining the results of 14 state-of-the-art analysis tools in a portfolio run in parallel. Download ALPACA at https://bitbucket.org/mgerrard/alpaca. Its video demonstration is at https://youtu.be/H2yXtvODurQ.
{"title":"ALPACA: A Large Portfolio-Based Alternating Conditional Analysis","authors":"Mitchell J. Gerrard, Matthew B. Dwyer","doi":"10.1109/ICSE-Companion.2019.00032","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00032","url":null,"abstract":"Program analysis tools typically compute either may or must information. By accumulating both kinds of information computed with respect to different portions of a program's state space, it is possible to collect a comprehensive view of how program inputs relate to some property. This can be done using the framework of an alternating conditional analysis (ACA). In this paper, we present a toolset that instantiates an ACA to analyze C programs. The toolset, dubbed ALPACA (A Large Portfolio-based ACA), computes a sound characterization of all the ways a program either may or must satisfy some property. It does so by alternating between over-and underapproximate analyses, conditioning analyses to ignore portions of the program that have already been analyzed, and combining the results of 14 state-of-the-art analysis tools in a portfolio run in parallel. Download ALPACA at https://bitbucket.org/mgerrard/alpaca. Its video demonstration is at https://youtu.be/H2yXtvODurQ.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124746459","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}
Pub Date : 2019-05-25DOI: 10.1109/ICSE-Companion.2019.00048
C. Menghi, Christos Tsigkanos, T. Berger, Patrizio Pelliccione
Engineering dependable software for mobile robots is becoming increasingly important. A core asset to engineering mobile robots is the mission specification – a description of the mission that mobile robots shall achieve. Mission specifications are used, among others, to synthesize, verify, simulate or guide the engineering of robot software. However, development of precise mission specifications is challenging, as engineers need to translate requirements into specification structures often expressed in a logical language – a laborious and error-prone task. Specification patterns, as solutions for recurrent specification problems have been recognized as a solution for this problem. Each pattern details the usage intent, known uses, relationships to other patterns, and—most importantly—a template mission specification in temporal logic. Patterns constitute reusable building blocks that can be used by engineers to create complex mission specifications while reducing mistakes. To this end, we describe PsALM, a toolchain supporting the development of dependable robotic missions. PsALM supports the description of mission requirements through specification patterns and allows automatic generation of mission specifications. PsALM produces specifications expressed in LTL and CTL temporal logics to be used by planners, simulators and model checkers, supporting systematic mission design. The pattern catalog and PsALM is available on our dedicated website www.roboticpatterns.com
{"title":"PsALM: Specification of Dependable Robotic Missions","authors":"C. Menghi, Christos Tsigkanos, T. Berger, Patrizio Pelliccione","doi":"10.1109/ICSE-Companion.2019.00048","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00048","url":null,"abstract":"Engineering dependable software for mobile robots is becoming increasingly important. A core asset to engineering mobile robots is the mission specification – a description of the mission that mobile robots shall achieve. Mission specifications are used, among others, to synthesize, verify, simulate or guide the engineering of robot software. However, development of precise mission specifications is challenging, as engineers need to translate requirements into specification structures often expressed in a logical language – a laborious and error-prone task. Specification patterns, as solutions for recurrent specification problems have been recognized as a solution for this problem. Each pattern details the usage intent, known uses, relationships to other patterns, and—most importantly—a template mission specification in temporal logic. Patterns constitute reusable building blocks that can be used by engineers to create complex mission specifications while reducing mistakes. To this end, we describe PsALM, a toolchain supporting the development of dependable robotic missions. PsALM supports the description of mission requirements through specification patterns and allows automatic generation of mission specifications. PsALM produces specifications expressed in LTL and CTL temporal logics to be used by planners, simulators and model checkers, supporting systematic mission design. The pattern catalog and PsALM is available on our dedicated website www.roboticpatterns.com","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124766120","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}