Pub Date : 2019-05-01DOI: 10.1109/ICSE-Companion.2019.00036
David Moreno, Santiago Dueñas, Valerio Cosentino, M. A. Fernández, Ahmed Zerouali, G. Robles, Jesus M. Gonzalez-Barahona
Nowadays, software projects and in particular open source ones heavily rely on a plethora of tools (e.g., Git, GitHub) to support and coordinate development activities. Despite their paramount value, they foster to fragment members' contribution, since members can access them with different identities (e.g., email, username). Thus, researchers and practitioners willing to evaluate individual members contributions are often forced to develop ad-hoc scripts or perform manual work to merge identities. This comes at the risk of obtaining wrong results and hindering replication of their work. In this demo we present SortingHat, which helps to track unique identities of project members and their related information such as gender, country and organization enrollments. It allows to manipulate identities interactively as well as to load bulks of identities via batch files (useful for projects with large communities). SortingHat is a component of GrimoireLab, an industry strong free platform developed by Bitergia, which offers commercial software analytics and is part of the CHAOSS project of the Linux Foundation. A video showing SortingHat is available at https://youtu.be/724I1XcQV6c.
{"title":"SortingHat: Wizardry on Software Project Members","authors":"David Moreno, Santiago Dueñas, Valerio Cosentino, M. A. Fernández, Ahmed Zerouali, G. Robles, Jesus M. Gonzalez-Barahona","doi":"10.1109/ICSE-Companion.2019.00036","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00036","url":null,"abstract":"Nowadays, software projects and in particular open source ones heavily rely on a plethora of tools (e.g., Git, GitHub) to support and coordinate development activities. Despite their paramount value, they foster to fragment members' contribution, since members can access them with different identities (e.g., email, username). Thus, researchers and practitioners willing to evaluate individual members contributions are often forced to develop ad-hoc scripts or perform manual work to merge identities. This comes at the risk of obtaining wrong results and hindering replication of their work. In this demo we present SortingHat, which helps to track unique identities of project members and their related information such as gender, country and organization enrollments. It allows to manipulate identities interactively as well as to load bulks of identities via batch files (useful for projects with large communities). SortingHat is a component of GrimoireLab, an industry strong free platform developed by Bitergia, which offers commercial software analytics and is part of the CHAOSS project of the Linux Foundation. A video showing SortingHat is available at https://youtu.be/724I1XcQV6c.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"264 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133696920","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-01DOI: 10.1109/icse-companion.2019.00012
{"title":"Message from the Student Research Competition Chairs of ICSE 2019","authors":"","doi":"10.1109/icse-companion.2019.00012","DOIUrl":"https://doi.org/10.1109/icse-companion.2019.00012","url":null,"abstract":"","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132408743","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}
{"title":"Workshops Program Committee of ICSE 2019","authors":"","doi":"10.1109/icse.2019.00016","DOIUrl":"https://doi.org/10.1109/icse.2019.00016","url":null,"abstract":"","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127204810","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-01DOI: 10.1109/ICSE-Companion.2019.00078
Tobias Hey
Traceability information is important for software maintenance, change impact analysis, software reusability, and other software engineering tasks. However, manually generating this information is costly. State-of-the-art automation approaches suffer from their imprecision and domain dependence. I propose INDIRECT, an intent-driven approach to automated requirements-to-code traceability. It combines natural language understanding and program analysis to generate intent models for both requirements and source code. Then INDIRECT learns a mapping between the two intent models. I expect that using the two intent models as base for the mapping poses a more precise and general approach. The intent models contain information such as the semantics of the statements, underlying concepts, and relations between them. The generation of the requirements intent model is divided into smaller subtasks by using an iterative natural language understanding. Likewise, the intent model for source code is built iteratively by identifying and understanding semantically related source code chunks.
{"title":"INDIRECT: Intent-Driven Requirements-to-Code Traceability","authors":"Tobias Hey","doi":"10.1109/ICSE-Companion.2019.00078","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00078","url":null,"abstract":"Traceability information is important for software maintenance, change impact analysis, software reusability, and other software engineering tasks. However, manually generating this information is costly. State-of-the-art automation approaches suffer from their imprecision and domain dependence. I propose INDIRECT, an intent-driven approach to automated requirements-to-code traceability. It combines natural language understanding and program analysis to generate intent models for both requirements and source code. Then INDIRECT learns a mapping between the two intent models. I expect that using the two intent models as base for the mapping poses a more precise and general approach. The intent models contain information such as the semantics of the statements, underlying concepts, and relations between them. The generation of the requirements intent model is divided into smaller subtasks by using an iterative natural language understanding. Likewise, the intent model for source code is built iteratively by identifying and understanding semantically related source code chunks.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117129581","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-01DOI: 10.1109/icse-companion.2019.00017
{"title":"Message from the Software Engineering Student Mentoring Workshop Chairs of ICSE 2019","authors":"","doi":"10.1109/icse-companion.2019.00017","DOIUrl":"https://doi.org/10.1109/icse-companion.2019.00017","url":null,"abstract":"","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127815417","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-01DOI: 10.1109/ICSE-Companion.2019.00080
Boyuan Chen
DevOps refers to a set of practices dedicated to accelerating modern software engineering process. It breaks the barriers between software development and IT operations and aims to produce and maintain high quality software systems. Software logging is widely used in DevOps. However, there are few guidelines and tool support for composing high quality logging code and current application context of log analysis is very limited with respect to feedback for developers and correlations among other telemetry data. This thesis proposes automated approaches to improving software logging practices in DevOps by leveraging various types of software repositories (e.g., historical, communication, bug, and runtime repositories). We aim to support the software development side by providing guidelines and tools on developing and maintaining high quality logging code. We aim to support the IT operation side by enriching the log analysis context through systematic estimating code coverage via executing logs and in-depth problem diagnosis by correlating logs with other telemetry data (e.g., traces and APM data). Case studies show that our approaches can provide useful software logging suggestions to both developers and operators in open source and commercial systems.
{"title":"Improving the Software Logging Practices in DevOps","authors":"Boyuan Chen","doi":"10.1109/ICSE-Companion.2019.00080","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00080","url":null,"abstract":"DevOps refers to a set of practices dedicated to accelerating modern software engineering process. It breaks the barriers between software development and IT operations and aims to produce and maintain high quality software systems. Software logging is widely used in DevOps. However, there are few guidelines and tool support for composing high quality logging code and current application context of log analysis is very limited with respect to feedback for developers and correlations among other telemetry data. This thesis proposes automated approaches to improving software logging practices in DevOps by leveraging various types of software repositories (e.g., historical, communication, bug, and runtime repositories). We aim to support the software development side by providing guidelines and tools on developing and maintaining high quality logging code. We aim to support the IT operation side by enriching the log analysis context through systematic estimating code coverage via executing logs and in-depth problem diagnosis by correlating logs with other telemetry data (e.g., traces and APM data). Case studies show that our approaches can provide useful software logging suggestions to both developers and operators in open source and commercial systems.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126776011","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-01DOI: 10.1109/ICSE-Companion.2019.00090
He Jiang, Dong Liu, Xin Chen, Hui Liu, Hong Mei
In recent years, design pattern has become an accepted concept in software design and many studies have involved various aspects of design patterns. However, it is an open question that how design patterns are discussed by developers. In this study, we conduct an empirical study to answer this question by soliciting Stack Overflow. First we build a new open catalog with 425 design patterns. Then, we extract 187,493 design pattern relevant posts from Stack Overflow. As to these posts, we find that the popularity of design patterns follows a long tail distribution. More surprisingly, nearly half of the posts focus on only five design patterns. We also successfully detect many potential new co-occuring design patterns, which could well complement the deficiency of existing studies.
{"title":"How Are Design Patterns Concerned by Developers?","authors":"He Jiang, Dong Liu, Xin Chen, Hui Liu, Hong Mei","doi":"10.1109/ICSE-Companion.2019.00090","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00090","url":null,"abstract":"In recent years, design pattern has become an accepted concept in software design and many studies have involved various aspects of design patterns. However, it is an open question that how design patterns are discussed by developers. In this study, we conduct an empirical study to answer this question by soliciting Stack Overflow. First we build a new open catalog with 425 design patterns. Then, we extract 187,493 design pattern relevant posts from Stack Overflow. As to these posts, we find that the popularity of design patterns follows a long tail distribution. More surprisingly, nearly half of the posts focus on only five design patterns. We also successfully detect many potential new co-occuring design patterns, which could well complement the deficiency of existing studies.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125788969","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}
Graphical User Interface (GUI) testing has been the focus of mobile app testing. Manual test cases, containing valuable human knowledge about the apps under test, are often coded as scripts to enable automated and repeated execution for test cost reduction. Unfortunately, many test scripts may become broken due to changes made during app updates. Broken test scripts are expected to be updated for reuse; however, the maintenance cost can be high if large numbers of test scripts require manual repair. We propose an approach named METER to repairing broken test scripts automatically when mobile apps are updated. METER novelly leverages computer vision techniques to infer GUI changes between two versions from screenshots and uses the GUI changes to guide the repair of test scripts. In experiments conducted on 18 Android apps, METER was able to repair 78.3% broken test scripts.
{"title":"GUI-Guided Repair of Mobile Test Scripts","authors":"Minxue Pan, Tongtong Xu, Yu Pei, Zhong Li, Tian Zhang, Xuandong Li","doi":"10.1109/ICSE-Companion.2019.00137","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00137","url":null,"abstract":"Graphical User Interface (GUI) testing has been the focus of mobile app testing. Manual test cases, containing valuable human knowledge about the apps under test, are often coded as scripts to enable automated and repeated execution for test cost reduction. Unfortunately, many test scripts may become broken due to changes made during app updates. Broken test scripts are expected to be updated for reuse; however, the maintenance cost can be high if large numbers of test scripts require manual repair. We propose an approach named METER to repairing broken test scripts automatically when mobile apps are updated. METER novelly leverages computer vision techniques to infer GUI changes between two versions from screenshots and uses the GUI changes to guide the repair of test scripts. In experiments conducted on 18 Android apps, METER was able to repair 78.3% broken test scripts.","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-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125766209","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-01DOI: 10.1109/icse-companion.2019.00011
Daniel Amyot, Andrew Begel, T. Breaux, Betty H. C. Cheng
Daniel Amyot University of Ottawa, Canada Andrew Begel Microsoft Research, USA Travis Breaux Carnegie Mellon University, USA Betty C. Cheng Michigan State University, USA Gregor Engels Paderborn University, Germany Ahmed E. Hassan Queen’s University, Canada Paola Inverardi University of L’Aquila, Italy Grace Lewis Software Engineering Institute, USA Gail Murphy University of British Columbia, Canada Ita Richardson Lero and University of Limerick, Ireland Guenther Ruhe University of Calgary, Canada Riccardo Scandariato University of Gothenburg, Sweden David C. Shepherd ABB Inc., USA Diomidis Spinellis Athens University of Economics and Business, Greece Sira Vegas Universidad Politécnica de Madrid, Spain
Daniel Amyot加拿大渥太华大学Andrew Begel微软研究院,美国Travis Breaux卡内基梅隆大学,美国Betty C. Cheng密歇根州立大学,美国Gregor Engels Paderborn大学,德国Ahmed E. Hassan皇后大学,加拿大拉奎拉Paola Inverardi大学,意大利Grace Lewis软件工程学院,美国Gail Murphy不列颠哥伦比亚大学,加拿大Ita Richardson Lero和利默里克大学,爱尔兰Guenther Ruhe卡尔加里大学,加拿大Riccardo Scandariato瑞典哥德堡大学David C. Shepherd ABB Inc.,美国Diomidis Spinellis希腊雅典经济与商业大学西班牙马德里politacimnica University
{"title":"Doctoral Symposium Program Committee of ICSE 2019","authors":"Daniel Amyot, Andrew Begel, T. Breaux, Betty H. C. Cheng","doi":"10.1109/icse-companion.2019.00011","DOIUrl":"https://doi.org/10.1109/icse-companion.2019.00011","url":null,"abstract":"Daniel Amyot University of Ottawa, Canada Andrew Begel Microsoft Research, USA Travis Breaux Carnegie Mellon University, USA Betty C. Cheng Michigan State University, USA Gregor Engels Paderborn University, Germany Ahmed E. Hassan Queen’s University, Canada Paola Inverardi University of L’Aquila, Italy Grace Lewis Software Engineering Institute, USA Gail Murphy University of British Columbia, Canada Ita Richardson Lero and University of Limerick, Ireland Guenther Ruhe University of Calgary, Canada Riccardo Scandariato University of Gothenburg, Sweden David C. Shepherd ABB Inc., USA Diomidis Spinellis Athens University of Economics and Business, Greece Sira Vegas Universidad Politécnica de Madrid, Spain","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"77 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125182832","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-01DOI: 10.1109/icse-companion.2019.00007
{"title":"Demonstrations Program Committee of ICSE 2019","authors":"","doi":"10.1109/icse-companion.2019.00007","DOIUrl":"https://doi.org/10.1109/icse-companion.2019.00007","url":null,"abstract":"","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132764906","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}