Adriaan Lotter, Sherlock A. Licorish, Bastin Tony Roy Savarimuthu, Sarah Meldrum
{"title":"Code Reuse in Stack Overflow and Popular Open Source Java Projects","authors":"Adriaan Lotter, Sherlock A. Licorish, Bastin Tony Roy Savarimuthu, Sarah Meldrum","doi":"10.1109/ASWEC.2018.00027","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00027","url":null,"abstract":"Solutions provided in Question and Answer (Q&A) websites such as Stack Overflow are regularly used in Open Source Software (OSS). However, many developers are unaware that both Stack Overflow and OSS are governed by licenses. Hence, developers reusing code from Stack Overflow for their OSS projects may violate licensing agreements if their attributions are not correct. Additionally, if code migrates from one OSS through Stack Overflow to another OSS, then complex licensing issues are likely to exist. Such forms of software reuse also have implications for future software maintenance, particularly where developers have poor understanding of copied code. This paper investigates code reuse between these two platforms (i.e., Stack Overflow and OSS), with the aim of providing insights into this issue. This study mined 151,946 Java code snippets from Stack Overflow, 16,617 Java files from 12 of the top weekly listed projects on SourceForge and GitHub, and 39,616 Java files from the top 20 most popular Java projects on SourceForge. Our analyses were aimed at finding the number of clones (indicating reuse) (a) within Stack Overflow posts, (b) between Stack Overflow and popular Java OSS projects, and (c) between the projects. Outcomes reveal that there was up to 3.3% code reuse within Stack Overflow, while 1.0% of Stack Overflow code was reused in recent popular Java projects and 2.3% in those projects that were more established. Reuse across projects was much higher, accounting for as much as 77.2%. Our outcomes have implication for strategies aimed at introducing strict quality assurance measures to ensure the appropriateness of code reuse, and licensing requirements awareness.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128766376","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}
J. Warren, E. Tempero, I. Warren, Anjuka Sathianathan, Sarah Hopkins, M. Shepherd, Sally Merry
{"title":"Experience Building IT Infrastructure for Research with Online Youth Mental Health Tools","authors":"J. Warren, E. Tempero, I. Warren, Anjuka Sathianathan, Sarah Hopkins, M. Shepherd, Sally Merry","doi":"10.1109/ASWEC.2018.00029","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00029","url":null,"abstract":"There is great potential for online tools to be helpful for youth mental health, but equally there are many open research questions requiring field trials. Such research places considerable demands on IT infrastructure to provide appropriate data management, and to be maintainable and scalable through iterations of studies. We report experience building an IT infrastructure for research with online tools for youth mental health. The aim is to create a platform that enables an 'ecosystem' of youth mental health software to be available for field trials and beneficial usage. Key services of the platform include identity management, health assessment storage and reasoning, usage logging, and clinical trial consent and randomisation. This paper reports initial design of the platform, first field tests and ongoing iterative development.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129024551","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":"Missing Clean Code Acceptance and Support in Practice - An Empirical Study","authors":"Paula Rachow, Sandra Schröder, Matthias Riebisch","doi":"10.1109/ASWEC.2018.00026","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00026","url":null,"abstract":"Code quality is important for maintainability and sustainability of software systems, and is addressed by guidelines and peer reviews. There are well-defined methods and standards for code quality for example the Clean Code approach [1], and they are integrated with current software development process models such as SCRUM. However, developers have to be encouraged to invest effort due to the trade-off between software quality measures and projects' time pressure. Unfortunately, there are no proven hypotheses about the reasons for missing acceptance of such methods and standards by developers. To investigate hindering aspects for code quality acceptance in practice, empirical studies might help to determine the root problems and to establish solutions. However, there is a lack of empirical studies concerning this topic. Therefore, we performed an empirical study with practitioners to investigate problems and challenges while enforcing Clean Code. Semi-structured interviews were used to consult experienced practitioners from different companies and backgrounds. The transcripts were analyzed with open coding. The results showed that a lack of even one of the people-related aspects such as motivation, knowledge, experience and code quality awareness, hinders the enforcement of code quality. Surprisingly, tools might establish hindering factors due to high initial effort. As conclusions we propose implications for academic research, organization, practitioners and tool providers.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126241091","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":"Towards Understanding Programs by Counting Objects","authors":"E. Tempero, P. Ralph","doi":"10.1109/ASWEC.2018.00009","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00009","url":null,"abstract":"A question familiar to any developer facing legacy code for the first time is, where to start? Understanding the entire code base of any large project is impractical, so techniques for identifying the most relevant code are needed. We discuss one potential technique, which we call \"object counts:\"' a report of the number of objects created during the execution of an object-oriented program. We show how object counts can help when comparing small designs, and comprehending a larger design—specifically JUnit. Our results indicate that the small amount of data provided by object counts can provide significant insight into a system's design.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121055354","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":"Identification of Technology Features to Understand and Maintain Software Architectures","authors":"Sebastian Gerdes, T. Fechner, Matthias Riebisch","doi":"10.1109/ASWEC.2018.00035","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00035","url":null,"abstract":"For software architects involved in maintaining existing software systems, understanding the architecture is a crucial task. They have to comprehend the evolution of a system and the rationale behind design decisions to avoid architecture erosion. This is challenging due to frequently outdated documentation and incomplete knowledge about the system, which especially applies to long-living systems. Therefore, it is necessary to retrieve the missing information straight from the existing system. Most existing approaches are limited to reconstruct the structure of a software system by preferably analyzing static dependencies between components, without considering their behavior. However, the usage of technologies determines the behavior of a software system. In this paper, we propose an approach to identify technology features in existing systems. Used technology features are fundamental facts which support architects to understand the software architecture and to find alternative technology solutions. We provide tool support and present first results of the identification of technology features in open source systems.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124454174","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":"Monitoring Informed Testing for IoT","authors":"A. Abdullah, H. Schmidt, M. Spichkova, Huai Liu","doi":"10.1109/ASWEC.2018.00020","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00020","url":null,"abstract":"Internet of Things (IoT) systems continuously collect a large amount of data from heterogeneous \"smart objects\" through standardised service interfaces. A key challenge is how to use these data and relevant event logs to construct continuously adapted usage profiles and apply them to enhance testing methods, i.e., prioritization of tests for the testing of continuous integration of an IoT system. In addition, these usage profiles provide relevance weightings to analyse architecture and behaviour of the system. Based on the analysis, testing methods can predict specific system locations that are susceptible to error, and therefore suggest where expanded runtime monitoring is necessary. Furthermore, IoT aims to connect billions of \"smart devices\" over the network. Testing even a small IoT system connecting a few dozens of smart devices would require a network of test Virtual Machines (VMs) possibly spreading across the Fog and the Cloud. In this paper we propose a framework for testing of each IoT layer in a separate VM environment, and discuss potential difficulties with optimal VM allocation.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130030978","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}
Abdulaziz Alhefdhi, K. Dam, Hideaki Hata, A. Ghose
{"title":"Generating Pseudo-Code from Source Code Using Deep Learning","authors":"Abdulaziz Alhefdhi, K. Dam, Hideaki Hata, A. Ghose","doi":"10.1109/ASWEC.2018.00011","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00011","url":null,"abstract":"Pseudo-code written in natural language and mathematical expressions is a useful description of source code. Pseudocode aids programmers in understanding the code written in a programming language they are not familiar with. However, writing pseudo-code for each code statement is labour intensive. In this paper, we propose a novel approach to automatically generate pseudo-code from source code using Neural Machine Translation. Our model is built upon the deep learning encoderdecoder using the attention-based Long Short-Term Memory architecture to capture the long-term dependencies in both source code and pseudo-code. An empirical evaluation on a real Python dataset demonstrates the applicability of our approach in practice.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128385275","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}
M. Yasir, Kevin Michael, Bastin Tony Roy Savarimuthu, Sherlock A. Licorish
{"title":"Formal in the Informal: A Multi-Level Analysis of Core Python Developers' Tweets","authors":"M. Yasir, Kevin Michael, Bastin Tony Roy Savarimuthu, Sherlock A. Licorish","doi":"10.1109/ASWEC.2018.00028","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00028","url":null,"abstract":"Context: Contributors to Open Source Software (OSS) development projects use social media to discuss personal and work-related issues. While there has been some interest in studying social media posts of developers, the investigation of the use of this medium by core contributors has not received much attention. Such an investigation could be useful given the technical and social insights such members bring to their team's development. Objective: To bridge this gap, we have investigated Python core developers' posts on Twitter. Method: We systematically collected 27,805 tweets from 80 core developers' Twitter accounts of which 3,282 (11.8%) were relevant to Python development. We performed multiple forms of analyses on these tweets, involving bottom-up thematic analysis on three levels (topics, questions and answers, and decision-making). We also conducted social network analysis of the topics of interest of core developers. Results: Core developers' Python-related tweets fall under 23 different topics (in 5 higher-level topic categories). The top two categories were software-related and community-related tweets. Core developers also used Twitter as a medium to discuss technical issues related to Python software development in the form of questions and answers (Q&As) to a large extent (45% of the tweets). Moreover, this informal medium is also used for decision-making 2% of the time, supplementing the formal channels of decision-making (i.e., mailing lists). Additionally, we have identified five different groups of core developers based on their topic interests. Conclusion: Although informal in nature, social media platforms provide another window, beyond formal project repositories, for understanding OSS ecosystems. Consequently, informal sources must be integrated with formal sources to obtain a comprehensive view of OSS development activities.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123493242","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}
Jim Buchan, Muneera Bano, D. Zowghi, Phonephasouk Volabouth
{"title":"Semi-Automated Extraction of New Requirements from Online Reviews for Software Product Evolution","authors":"Jim Buchan, Muneera Bano, D. Zowghi, Phonephasouk Volabouth","doi":"10.1109/ASWEC.2018.00013","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00013","url":null,"abstract":"In order to improve and increase their utility, software products must evolve continually and incrementally to meet the new requirements of current and future users. Online reviews from users of the software provide a rich and readily available resource for discovering candidate new features for future software releases. However, it is challenging to manually analyze a large volume of potentially unstructured and noisy data to extract useful information to support software release planning decisions. This paper investigates machine learning techniques to automatically identify text that represents users' ideas for new features from their online reviews. A binary classification approach to categorize extracted text as either a feature or non-feature was evaluated experimentally. Three machine learning algorithms were evaluated in the experiments: Naïve Bayes (with multinomial and Bernoulli variants), Support Vector Machines (with linear and multinomial variants) and Logistic Regression. Variations on the configurations of k-fold cross validation, the use of n-grams and review sentiment were also experimentally evaluated. Based on binary classification of over a thousand separate reviews of two products, Trello and Jira, linear Support Vector Machines with review sentiment as an input, using n-gram (1,4) together with k-fold 10 cross validation gave the best performance. The results have confirmed the feasibility and accuracy of semi-automated extraction of candidate requirements from a large volume of unstructured and noisy online user reviews. The next steps planned are to experiment with machine supported grouping, prioritizing and visualizing the extracted features to best support release planners' work, as well as extending the sources of candidate requirements.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129995000","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":"Automated Analysis of the Impact of Weather Conditions on Medicine Consumption","authors":"M. Spichkova","doi":"10.1109/ASWEC.2018.00030","DOIUrl":"https://doi.org/10.1109/ASWEC.2018.00030","url":null,"abstract":"Software solutions for big data analysis not only provide many opportunities for industry but might help to increase social and economics sustainability. In this paper, we discuss the lessons learned from a project on the analysis of the possible impact of weather conditions on the medicine consumption. We elaborated a framework and successfully applied it on a number of case studies.","PeriodicalId":331846,"journal":{"name":"2018 25th Australasian Software Engineering Conference (ASWEC)","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134238444","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}