Twenty Years Of Open Source Software: From Skepticism To Mainstream,
2019
Singapore Management University
Twenty Years Of Open Source Software: From Skepticism To Mainstream, Gregorio Robles, Igor Steinmacher, Paul Adams, Christoph Treude
Research Collection School Of Computing and Information Systems
Open source software (OSS) has conquered the software world. You can see it nearly everywhere, from Internet infrastructure to mobile phones to the desktop. In addition to that, although many OSS practices were viewed with skepticism 20 years ago, several have become mainstream in software engineering today: from development tools such as Git to practices such as modern code reviews.
Formal Modeling And Analysis Of A Family Of Surgical Robots,
2019
University of Nebraska-Lincoln
Formal Modeling And Analysis Of A Family Of Surgical Robots, Niloofar Mansoor
School of Computing: Dissertations, Theses, and Student Research
Safety-critical applications often use dependability cases to validate that specified properties are invariant, or to demonstrate a counterexample showing how that property might be violated. However, most dependability cases are written with a single product in mind. At the same time, software product lines (families of related software products) have been studied with the goal of modeling variability and commonality and building family-based techniques for both modeling and analysis. This thesis presents a novel approach for building an end to end dependability case for a software product line, where a property is formally modeled, a counterexample is found and then …
Deepfuzzer: Accelerated Deep Greybox Fuzzing,
2019
Tsinghua University
Deepfuzzer: Accelerated Deep Greybox Fuzzing, Jie Liang, Yu Jiang, Mingzhe Wang, Houbing Song, Kim-Kwang Raymond Choo
Publications
Fuzzing is one of the most effective vulnerability detection techniques, widely used in practice. However, the performance of fuzzers may be limited by their inability to pass complicated checks, inappropriate mutation frequency, arbitrary mutation strategy, or the variability of the environment. In this paper, we present DeepFuzzer, an enhanced greybox fuzzer with qualified seed generation, balanced seed selection, and hybrid seed mutation. First, we use symbolic execution in a lightweight approach to generate qualified initial seeds which then guide the fuzzer through complex checks. Second, we apply a statistical seed selection algorithm to balance the mutation frequency between different seeds. …
Gesture-Based Profiling Of Commonplace Lifestyle And Physical Activity Behaviors,
2019
Singapore Management University
Gesture-Based Profiling Of Commonplace Lifestyle And Physical Activity Behaviors, Meeralakshmi Radhakrishnan
Dissertations and Theses Collection (Open Access)
The widespread availability of sensors on personal devices (e.g., smartphones, smartwatches) and other cheap, commoditized IoT devices in the environment has opened up the opportunity for developing applications that capture and enhance various lifestyle-driven daily activities of individuals. Moreover, there is a growing trend of leveraging ubiquitous computing technologies to improve physical health and wellbeing. Several of the lifestyle monitoring applications rely primarily on the capability of recognizing contextually relevant human movements, actions and gestures. As such, gesture recognition techniques, and gesture-based analytics have emerged as a fundamental component for realizing personalized lifestyle applications.
This thesis explores how such wealth …
Compositional Verification Of Heap-Manipulating Programs Through Property-Guided Learning,
2019
Singapore University of Technology and Design
Compositional Verification Of Heap-Manipulating Programs Through Property-Guided Learning, Long H. Pham, Jun Sun, Quang Loc Le
Research Collection School Of Computing and Information Systems
Analyzing and verifying heap-manipulating programs automatically is challenging. A key for fighting the complexity is to develop compositional methods. For instance, many existing verifiers for heap-manipulating programs require user-provided specification for each function in the program in order to decompose the verification problem. The requirement, however, often hinders the users from applying such tools. To overcome the issue, we propose to automatically learn heap-related program invariants in a property-guided way for each function call. The invariants are learned based on the memory graphs observed during test execution and improved through memory graph mutation. We implemented a prototype of our approach …
Treecaps: Tree-Structured Capsule Networks For Program Source Code Processing,
2019
Singapore Management University
Treecaps: Tree-Structured Capsule Networks For Program Source Code Processing, Vinoj Jayasundara, Duy Quoc Nghi Bui, Lingxiao Jiang, David Lo
Research Collection School Of Computing and Information Systems
Program comprehension is a fundamental task in software development and maintenance processes. Software developers often need to understand a large amount of existing code before they can develop new features or fix bugs in existing programs. Being able to process programming language code automatically and provide summaries of code functionality accurately can significantly help developers to reduce time spent in code navigation and understanding, and thus increase productivity. Different from natural language articles, source code in programming languages often follows rigid syntactical structures and there can exist dependencies among code elements that are located far away from each other through …
Finding Needles In A Haystack: Leveraging Co-Change Dependencies To Recommend Refactorings,
2019
University of Brasilia
Finding Needles In A Haystack: Leveraging Co-Change Dependencies To Recommend Refactorings, Marcos César De Oliveira, Davi Freitas, Rodrigo Bonifacio, Gustavo Pinto, David Lo
Research Collection School Of Computing and Information Systems
A fine-grained co-change dependency arises when two fine-grained source-code entities, e.g., a method,change frequently together. This kind of dependency is relevant when considering remodularization efforts (e.g., to keep methods that change together in the same class). However, existing approaches forrecommending refactorings that change software decomposition (such as a move method) do not explorethe use of fine-grained co-change dependencies. In this paper we present a novel approach for recommending move method and move field refactorings, which removes co-change dependencies and evolutionary smells, a particular type of dependency that arise when fine-grained entities that belong to different classes frequently change together. First …
Leveraging Defects Life-Cycle For Labeling Defective Classes,
2019
California Polytechnic State University, San Luis Obispo
Leveraging Defects Life-Cycle For Labeling Defective Classes, Bailey R. Vandehei
Master's Theses
Data from software repositories are a very useful asset to building dierent kinds of
models and recommender systems aimed to support software developers. Specically,
the identication of likely defect-prone les (i.e., classes in Object-Oriented systems)
helps in prioritizing, testing, and analysis activities. This work focuses on automated
methods for labeling a class in a version as defective or not. The most used methods
for automated class labeling belong to the SZZ family and fail in various circum-
stances. Thus, recent studies suggest the use of aect version (AV) as provided by
developers and available in the issue tracker such as …
Blockchain In Libraries,
2019
San Jose State University
Blockchain In Libraries, Michael Meth
Faculty Research, Scholarly, and Creative Activity
This issue of Library Technology Reports (vol. 55, no. 8), “Blockchain in Libraries,” examines the application of blockchain in libraries. Blockchain technology has the ability to transform how libraries provide services and organize information. To date, most of these applications are still in the conceptual stage. However, sooner or later, development and implementation will follow. This report is intended to provide a primer on the technology and some thought starters. In chapter 2, the concept of blockchain is explained. Chapter 3 provides eight thought and conversation starters that look at how blockchain could be applied in libraries. Chapter 4 looks …
Pieces Of Contextual Information Suitable For Predicting Co-Changes? An Empirical Study,
2019
Singapore Management University
Pieces Of Contextual Information Suitable For Predicting Co-Changes? An Empirical Study, Igor Scaliante Wiese, Rodrigo Takashi Kuroda, Igor Steinmacher, Gustavo A. Oliva, Reginaldo Ré, Christoph Treude, Marco Aurélio Gerosa
Research Collection School Of Computing and Information Systems
Models that predict software artifact co-changes have been proposed to assist developers in altering a software system and they often rely on coupling. However, developers have not yet widely adopted these approaches, presumably because of the high number of false recommendations. In this work, we conjecture that the contextual information related to software changes, which is collected from issues (e.g., issue type and reporter), developers’ communication (e.g., number of issue comments, issue discussants and words in the discussion), and commit metadata (e.g., number of lines added, removed, and modified), improves the accuracy of co-change prediction. We built customized prediction models …
Salience-Aware Adaptive Resonance Theory For Large-Scale Sparse Data Clustering,
2019
Singapore Management University
Salience-Aware Adaptive Resonance Theory For Large-Scale Sparse Data Clustering, Lei Meng, Ah-Hwee Tan, Chunyan Miao
Research Collection School Of Computing and Information Systems
Sparse data is known to pose challenges to cluster analysis, as the similarity between data tends to be ill-posed in the high-dimensional Hilbert space. Solutions in the literature typically extend either k-means or spectral clustering with additional steps on representation learning and/or feature weighting. However, adding these usually introduces new parameters and increases computational cost, thus inevitably lowering the robustness of these algorithms when handling massive ill-represented data. To alleviate these issues, this paper presents a class of self-organizing neural networks, called the salience-aware adaptive resonance theory (SA-ART) model. SA-ART extends Fuzzy ART with measures for cluster-wise salient feature modeling. …
Guest Editorial: Special Issue On Software Engineering For Mobile Applications,
2019
Singapore Management University
Guest Editorial: Special Issue On Software Engineering For Mobile Applications, Sebastiano Panichella, Fabio Palomba, David Lo, Meiyappan Nagappan
Research Collection School Of Computing and Information Systems
As Andreessen stated “software is eating the world” (Andreessen 2011). Most of todays industries, from engineering, manufacturing, logistics to health, are run on enterprise software applications and can efficiently automate the analysis and manipulation of several, heterogeneous types of data. One of the most prominent examples of such software diffusion is represented by the widespread adoption of mobile applications. Indeed, during the recent years, the Global App Economy experienced unprecedented growth, driven by the increasing usage of apps and by the greater adoption of mobile devices (e.g., smartphone) around the globe. This mobile application market, which is expected in few …
Influence, Information And Team Outcomes In Large Scale Software Development,
2019
Singapore Management University
Influence, Information And Team Outcomes In Large Scale Software Development, Subhajit Datta
Research Collection School Of Computing and Information Systems
It is widely perceived that the egalitarian ecosystems of large scale open source software development foster effective team outcomes. In this study, we question this conventional wisdom by examining whether and how the centralization of information and influence in a software development team relate to the quality of the team's work products. Analyzing data from more than a hundred real world projects that include development activities over close to a decade, involving 2000+ developers, who collectively resolve more than two hundred thousand defects through discussions covering more than six hundred thousand comments, we arrive at statistically significant evidence indicating that …
An Iot-Driven Smart Cafe Solution For Human Traffic Management,
2019
Singapore Management University
An Iot-Driven Smart Cafe Solution For Human Traffic Management, Maruthi Prithivirajan, Kyong Jin Shim
Research Collection School Of Computing and Information Systems
In this study, we present an IoT-driven solution for human traffic management in a corporate cafe. Using IoT sensors, our system monitors human traffic in a physical cafe located at a large international corporation located in Singapore. The backend system analyzes the streaming data from the sensors and provides insights useful to the cafe visitors as well as the cafe manager.
Automating Change-Level Self-Admitted Technical Debt Determination,
2019
Zhejiang University
Automating Change-Level Self-Admitted Technical Debt Determination, Meng Yan, Xin Xia, Emad Shihab, David Lo, Jianwei Yin, Xiaohu Yang
Research Collection School Of Computing and Information Systems
Self-Admitted Technical Debt (SATD) refers to technical debt that is introduced intentionally. Previous studies that identify SATD at the file-level in isolation cannot describe the TD context related to multiple files. Therefore, it is more beneficial to identify the SATD once a change is being made. We refer to this type of TD identification as “Change-level SATD Determination”, and identifying SATD at the change-level can help to manage and control TD by understanding the TD context through tracing the introducing changes. In this paper, we propose a change-level SATD Determination mode by extracting 25 features from software changes that are …
Scompile: Critical Path Identification And Analysis For Smart Contracts,
2019
Singapore Management University
Scompile: Critical Path Identification And Analysis For Smart Contracts, Jialiang Chang, Bo Gao, Hao Xiao, Jun Sun, Yan Cai, Zijiang Yang
Research Collection School Of Computing and Information Systems
Ethereum smart contracts are an innovation built on top of the blockchain technology, which provides a platform for automatically executing contracts in an anonymous, distributed, and trusted way. The problem is magnified by the fact that smart contracts, unlike ordinary programs, cannot be patched easily once deployed. It is important for smart contracts to be checked against potential vulnerabilities. In this work, we propose an alternative approach to automatically identify critical program paths (with multiple function calls including inter-contract function calls) in a smart contract, rank the paths according to their criticalness, discard them if they are infeasible or otherwise …
Recommendation-Based Team Formation For On-Demand Taxi-Calling Platforms,
2019
Singapore Management University
Recommendation-Based Team Formation For On-Demand Taxi-Calling Platforms, Lingyu Zhang, Tianshu Song, Yongxin Tong, Zimu Zhou, Dan Li, Wei Ai, Lulu Zhang, Guobin Wu, Yan Liu, Jieping Ye
Research Collection School Of Computing and Information Systems
On-demand taxi-calling platforms often ignore the social engagement of individual drivers. The lack of social incentives impairs the work enthusiasms of drivers and will affect the quality of service. In this paper, we propose to form teams among drivers to promote participation. A team consists of a leader and multiple members, which acts as the basis for various group-based incentives such as competition. We define the Recommendation-based Team Formation (RTF) problem to form as many teams as possible while accounting for the choices of drivers. The RTF problem is challenging. It needs both accurate recommendation and coordination among recommendations, since …
Automatic Recall Of Software Lessons Learned For Software Project Managers,
2019
The University of Western Ontario
Automatic Recall Of Software Lessons Learned For Software Project Managers, Tamer Mohamed Abdellatif Mohamed, Luiz Fernando Capretz, Danny Ho
Electrical and Computer Engineering Publications
Context: Lessons learned (LL) records constitute the software organization memory of successes and failures. LL are recorded within the organization repository for future reference to optimize planning, gain experience, and elevate market competitiveness. However, manually searching this repository is a daunting task, so it is often disregarded. This can lead to the repetition of previous mistakes or even missing potential opportunities. This, in turn, can negatively affect the organization’s profitability and competitiveness.
Objective: We aim to present a novel solution that provides an automatic process to recall relevant LL and to push those LL to project managers. This will dramatically …
Can We Rely On Smartphone Applications?,
2019
Profix Software
Can We Rely On Smartphone Applications?, Sonia Meskini, Ali Bou Nassif, Luiz Fernando Capretz
Electrical and Computer Engineering Publications
Smartphones are becoming necessary tools in the daily lives of millions of users who rely on these devices and their applications. There are thousands of applications for smartphone devices such as the iPhone, Blackberry, and Android, thus their reliability has become paramount for their users. This work aims to answer two related questions: (1) Can we assess the reliability of mobile applications by using the traditional reliability models? (2) Can we model adequately the failure data collected from many users? Firstly, it has been proved that the three most used software reliability models have fallen short of the mark when …
Map-Coverage: A Novel Coverage Criterion For Testing Thread-Safe Classes,
2019
Singapore Management University
Map-Coverage: A Novel Coverage Criterion For Testing Thread-Safe Classes, Zan Wang, Yingquan Zhao, Shuang Liu, Jun Sun, Xiang Chen, Huarui Lin
Research Collection School Of Computing and Information Systems
Concurrent programs must be thoroughly tested, as concurrency bugs are notoriously hard to detect. Code coverage criteria can be used to quantify the richness of a test suite (e.g., whether a program has been tested sufficiently) or provide practical guidelines on test case generation (e.g., as objective functions used in program fuzzing engines). Traditional code coverage criteria are, however, designed for sequential programs and thus ineffective for concurrent programs. In this work, we introduce a novel code coverage criterion for testing thread-safe classes called MAP-coverage (short for memory-access patterns). The motivation is that concurrency bugs are often correlated with certain …
