Can Refactoring Be Self-Affirmed? An Exploratory Study On How Developers Document Their Refactoring Activities In Commit Messages,
2019
Rochester Institute of Technology
Can Refactoring Be Self-Affirmed? An Exploratory Study On How Developers Document Their Refactoring Activities In Commit Messages, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni
Articles
Refactoring is a critical task in software maintenance and is usually performed to enforce best design practices, or to cope with design defects. Previous studies heavily rely on defining a set of keywords to identify refactoring commits from a list of general commits extracted from a small set of software
systems. All approaches thus far consider all commits without checking whether refactorings had actually happened or not. In this paper, we aim at exploring how developers document their refactoring activities during the software life cycle. We call such activity Self-Affirmed Refactoring, which is an indication of
the developer-related refactoring events …
Dynamic Shifting Of Virtual Network Topologies For Network Attack Prevention,
2019
California Polytechnic State University, San Luis Obispo
Dynamic Shifting Of Virtual Network Topologies For Network Attack Prevention, Lenoy Avidan
Master's Theses
Computer networks were not designed with security in mind, making research into the subject of network security vital. Virtual Networks are similar to computer networks, except the components of a Virtual Network are in software rather than hardware. With the constant threat of attacks on networks, security is always a big concern, and Virtual Networks are no different. Virtual Networks have many potential attack vectors similar to physical networks, making research into Virtual Network security of great importance. Virtual Networks, since they are composed of virtualized network components, have the ability to dynamically change topologies. In this paper, we explore …
How Practitioners Perceive Coding Proficiency,
2019
Singapore Management University
How Practitioners Perceive Coding Proficiency, Xin Xia, Zhiyuan Wan, Pavneet S. Kochhar, David Lo
Research Collection School Of Computing and Information Systems
Coding proficiency is essential to software practitioners. Unfortunately, our understanding on coding proficiency often translates to vague stereotypes, e.g., “able to write good code”. The lack of specificity hinders employers from measuring a software engineer’s coding proficiency, and software engineers from improving their coding proficiency skills. This raises an important question: what skills matter to improve one’s coding proficiency. To answer this question, we perform an empirical study by surveying 340 software practitioners from 33 countries across 5 continents. We first identify 38 coding proficiency skills grouped into nine categories by interviewing 15 developers from three companies. We then ask …
On The Impact Of Refactoring On The Relationship Between Quality Attributes And Design Metrics,
2019
Rochester Institute of Technology
On The Impact Of Refactoring On The Relationship Between Quality Attributes And Design Metrics, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Ali Ouni, Marouane Kessentini
Articles
Refactoring is a critical task in software maintenance and is generally performed to enforce the best design and implementation practices or to cope with design defects. Several studies attempted to detect refactoring activities through mining software repositories allowing to collect, analyze and get actionable data-driven insights about refactoring practices within software projects. Aim: We aim at identifying, among the various quality models presented in the literature, the ones that are more in-line with the developer’s vision of quality optimization, when they explicitly mention that they are refactoring to improve them. Method: We extract a large corpus of design-related refactoring activities …
Grant Anon Minigames Extension,
2019
University of Nebraska at Omaha
Grant Anon Minigames Extension, Justin Robbins
Theses/Capstones/Creative Projects
The Grant Anon system was designed to be a casualized version of the real-time strategy genre, a genre usually known for its difficulty and competitiveness because of Starcraft II, the most popular game in the genre. Grant Anon was designed as part of a capstone project, and this report details the extension that was created to add an additional element designed to make it easier for any player to enjoy Grant Anon: minigames. These minigames serve to reduce the skill needed to participate effectively in Grant Anon. This is accomplished by providing an alternative means of gaining an advantage over …
Practitioners' Views On Good Software Testing Practices,
2019
Singapore Management University
Practitioners' Views On Good Software Testing Practices, Pavneet S. Kochhar, Xin Xia, David Lo
Research Collection School Of Computing and Information Systems
Software testing is an integral part of software development process. Unfortunately, for many projects, bugs are prevalent despite testing effort, and testing continues to cost significant amount of time and resources. This brings forward the issue of test case quality and prompts us to investigate what make good test cases. To answer this important question, we interview 21 and survey 261 practitioners, who come from many small to large companies and open source projects distributed in 27 countries, to create and validate 29 hypotheses that describe characteristics of good test cases and testing practices. These characteristics span multiple dimensions including …
Patchnet: A Tool For Deep Patch Classification,
2019
Singapore Management University
Patchnet: A Tool For Deep Patch Classification, Thong Hoang, Julia Lawall, Richard J. Oentaryo, Yuan Tian, David Lo
Research Collection School Of Computing and Information Systems
This work proposes PatchNet, an automated tool based on hierarchical deep learning for classifying patches by extracting features from commit messages and code changes. PatchNet contains a deep hierarchical structure that mirrors the hierarchical and sequential structure of a code change, differentiating it from the existing deep learning models on source code. PatchNet provides several options allowing users to select parameters for the training process. The tool has been validated in the context of automatic identification of stable-relevant patches in the Linux kernel and is potentially applicable to automate other software engineering tasks that can be formulated as patch classification …
A Homophily-Free Community Detection Framework For Trajectories With Delayed Responses,
2019
Singapore Management University
A Homophily-Free Community Detection Framework For Trajectories With Delayed Responses, Chung-Kyun Han, Shih-Fen Cheng, Pradeep Varakantham
Research Collection School Of Computing and Information Systems
No abstract provided.
Patchnet: A Tool For Deep Patch Classification,
2019
Singapore Management University
Patchnet: A Tool For Deep Patch Classification, Thong Hoang, Julia Lawall, Richard J. Oentaryo, Yuan Tian, David Lo
Research Collection School Of Computing and Information Systems
This work proposes PatchNet, an automated tool based on hierarchical deep learning for classifying patches by extracting features from commit messages and code changes. PatchNet contains a deep hierarchical structure that mirrors the hierarchical and sequential structure of a code change, differentiating it from the existing deep learning models on source code. PatchNet provides several options allowing users to selectparameters for the training process. The tool has been validated in the context of automatic identification of stable-relevant patches in the Linux kernel and is potentially applicable to automate other software engineering tasks that can be formulated as patch classification problems. …
Emerging App Issue Identification From User Feedback: Experience On Wechat,
2019
Singapore Management University
Emerging App Issue Identification From User Feedback: Experience On Wechat, Cuiyun Gao, Wujie Zheng, Yuetang Deng, David Lo, Jichuan Zeng, Michael R. Lyu, Irwin King
Research Collection School Of Computing and Information Systems
It is vital for popular mobile apps with large numbers of users to release updates with rich features while keeping stable user experience. Timely and accurately locating emerging app issues can greatly help developers to maintain and update apps. User feedback (i.e., user reviews) is a crucial channel between app developers and users, delivering a stream of information about bugs and features that concern users. Methods to identify emerging issues based on user feedback have been proposed in the literature, however, their applicability in industry has not been explored. We apply the recent method IDEA to WeChat, a popular messenger …
On Reliability Of Patch Correctness Assessment,
2019
Carnegie Mellon University
On Reliability Of Patch Correctness Assessment, Xuan-Bach D. Le, Lingfeng Bao, David Lo, Xin Xia, Shanping Li, Corina S. Pasareanu
Research Collection School Of Computing and Information Systems
Current state-of-the-art automatic software repair (ASR) techniques rely heavily on incomplete specifications, or test suites, to generate repairs. This, however, may cause ASR tools to generate repairs that are incorrect and hard to generalize. To assess patch correctness, researchers have been following two methods separately: (1) Automated annotation, wherein patches are automatically labeled by an independent test suite (ITS) – a patch passing the ITS is regarded as correct or generalizable, and incorrect otherwise, (2) Author annotation, wherein authors of ASR techniques manually annotate the correctness labels of patches generated by their and competing tools. While automated annotation cannot ascertain …
Deepjit: An End-To-End Deep Learning Framework For Just-In-Time Defect Prediction,
2019
Singapore Management University
Deepjit: An End-To-End Deep Learning Framework For Just-In-Time Defect Prediction, Thong Hoang, Hoa Khanh Dam, Yasutaka Kamei, David Lo, Naoyasu Ubayashi
Research Collection School Of Computing and Information Systems
Software quality assurance efforts often focus on identifying defective code. To find likely defective code early, change-level defect prediction – aka. Just-In-Time (JIT) defect prediction – has been proposed. JIT defect prediction models identify likely defective changes and they are trained using machine learning techniques with the assumption that historical changes are similar to future ones. Most existing JIT defect prediction approaches make use of manually engineered features. Unlike those approaches, in this paper, we propose an end-to-end deep learning framework, named DeepJIT, that automatically extracts features from commit messages and code changes and use them to identify defects. Experiments …
Assume-Guarantee Reasoning Using A Cyber Security Ontology,
2019
Florida Institute of Technology
Assume-Guarantee Reasoning Using A Cyber Security Ontology, Ali Abdurhman Alfageeh
Theses and Dissertations
Design of a network is a challenging problem as it involves the integration of several complex components such as routers, servers, computers, smart devices. This is further complicated by the need to have robust security policies implemented to prevent violation of confidentiality as the networked devices interact. The design of such complex networked systems demand a more rigorous approach to the modeling and analysis, which can be inherited from the field of Software engineering. Presently, network or security engineers do not use a system/software engineering approach to design and build cybersecurity systems. Thus, we propose a system/software engineering approach to …
Robust Factorization Machine: A Doubly Capped Norms Minimization,
2019
Singapore Management University
Robust Factorization Machine: A Doubly Capped Norms Minimization, Chenghao Liu, Teng Zhang, Jundong Li, Jianwen Yin, Peilin Zhao, Jianling Sun, Steven C. H. Hoi
Research Collection School Of Computing and Information Systems
Factorization Machine (FM) is a general supervised learning framework for many AI applications due to its powerful capability of feature engineering. Despite being extensively studied, existing FM methods have several limitations in common. First of all, most existing FM methods often adopt the squared loss in the modeling process, which can be very sensitive when the data for learning contains noises and outliers. Second, some recent FM variants often explore the low-rank structure of the feature interactions matrix by relaxing the low-rank minimization problem as a trace norm minimization, which cannot always achieve a tight approximation to the original one. …
Graph Based Optimization For Multiagent Cooperation,
2019
Singapore Management University
Graph Based Optimization For Multiagent Cooperation, Arambam James Singh, Akshat Kumar
Research Collection School Of Computing and Information Systems
We address the problem of solving math programs defined over a graph where nodes represent agents and edges represent interaction among agents. The objective and constraint functions of this program model the task agent team must perform and the domain constraints. In this multiagent setting, no single agent observes the complete objective and all the constraints of the program. Thus, we develop a distributed message-passing approach to solve this optimization problem. We focus on the class of graph structured linear and quadratic programs (LPs/QPs) which can model important multiagent coordination frameworks such as distributed constraint optimization (DCOP). For DCOPs, our …
A Mobile Application For Crowdsourced Acquisition Of Urban Street-View Pedestrian Facility Data,
2019
University of Southern Mississippi
A Mobile Application For Crowdsourced Acquisition Of Urban Street-View Pedestrian Facility Data, Andrew Fink
Honors Theses
In recent years, pedestrians have been dangerously overrepresented in traffic crashes, and the pedestrian fatality rate has steadily increased during the last decade. Additionally, studies have shown that the majority of pedestrian-involved traffic accidents occur in urban non-intersections, which suggests that a more well-connected pedestrian facility network in cities would lower the rate of pedestrian involvement in traffic accidents. One way to improve the pedestrian facility network coverage is to first have up-to-date, accurate, and thorough data regarding the presence of existing pedestrian facilities. However, state departments of transportation have stated that the current methods of acquiring this data are …
Witt: Querying Technology Terms Based On Automated Classification,
2019
Singapore Management University
Witt: Querying Technology Terms Based On Automated Classification, Mathieu Nassif, Christoph Treude, Martin P. Robillard
Research Collection School Of Computing and Information Systems
Witt is a tool that systematically and automatically categorizes software technologies using original information extraction algorithms applied to Stack Overflow and Wikipedia. Witt takes as input a term, such as "django", and returns one or more categories that describe it (e.g., "framework"), along with attributes that further qualify it (e.g., "web-application"). Our comparative evaluation of Witt against six independent taxonomy tools showed that, when applied to software terms, Witt has better coverage than alternative solutions, without a corresponding degradation in the number of spurious results. The information extracted by Witt is available through the Witt Web Application, which allows users …
9.6 Million Links In Source Code Comments: Purpose, Evolution, And Decay,
2019
Singapore Management University
9.6 Million Links In Source Code Comments: Purpose, Evolution, And Decay, Hideaki Hata, Christoph Treude, Raula Gaikovina Kula, Takashi Ishio
Research Collection School Of Computing and Information Systems
Links are an essential feature of the World Wide Web, and source code repositories are no exception. However, despite their many undisputed benefits, links can suffer from decay, insufficient versioning, and lack of bidirectional traceability. In this paper, we investigate the role of links contained in source code comments from these perspectives. We conducted a large-scale study of around 9.6 million links to establish their prevalence, and we used a mixed-methods approach to identify the links' targets, purposes, decay, and evolutionary aspects. We found that links are prevalent in source code repositories, that licenses, software homepages, and specifications are common …
Automatically Generating Documentation For Lambda Expressions In Java,
2019
Singapore Management University
Automatically Generating Documentation For Lambda Expressions In Java, Anwar Alqaimi, Patanamon Thongtanunam, Christoph Treude
Research Collection School Of Computing and Information Systems
When lambda expressions were introduced to the Java programming language as part of the release of Java 8 in 2014, they were the language’s first step into functional programming. Since lambda expressions are still relatively new, not all developers use or understand them. In this paper, we first present the results of an empirical study to determine how frequently developers of GitHub repositories make use of lambda expressions and how they are documented. We find that 11% of Java GitHub repositories use lambda expressions, and that only 6% of the lambda expressions are accompanied by source code comments. We then …
Predicting Good Configurations For Github And Stack Overflow Topic Models,
2019
Singapore Management University
Predicting Good Configurations For Github And Stack Overflow Topic Models, Christoph Treude, Markus Wagner
Research Collection School Of Computing and Information Systems
Software repositories contain large amounts of textual data, ranging from source code comments and issue descriptions to questions, answers, and comments on Stack Overflow. To make sense of this textual data, topic modelling is frequently used as a text-mining tool for the discovery of hidden semantic structures in text bodies. Latent Dirichlet allocation (LDA) is a commonly used topic model that aims to explain the structure of a corpus by grouping texts. LDA requires multiple parameters to work well, and there are only rough and sometimes conflicting guidelines available on how these parameters should be set. In this paper, we …
