Open Access. Powered by Scholars. Published by Universities.®
- Discipline
- Institution
- Publication Year
- Publication
-
- Research Collection School Of Computing and Information Systems (12)
- Publications and Research (7)
- Articles (3)
- Theses : Honours (2)
- College of Computing and Digital Media Dissertations (1)
-
- Dissertations and Theses Collection (1)
- Dissertations and Theses Collection (Open Access) (1)
- Electrical and Computer Engineering Publications (1)
- Information Technology & Decision Sciences Faculty Publications (1)
- International Conference on Information and Communication Technologies (1)
- Theses Digitization Project (1)
- Theses and Dissertations (1)
- Theses: Doctorates and Masters (1)
- UNLV Theses, Dissertations, Professional Papers, and Capstones (1)
- Publication Type
Articles 1 - 30 of 34
Full-Text Articles in Software Engineering
Fixing Your Own Smells: Adding A Mistake-Based Familiarization Step When Teaching Code Refactoring, Ivan Wei Han Tan, Christopher M. Poskitt
Fixing Your Own Smells: Adding A Mistake-Based Familiarization Step When Teaching Code Refactoring, Ivan Wei Han Tan, Christopher M. Poskitt
Research Collection School Of Computing and Information Systems
Programming problems can be solved in a multitude of functionally correct ways, but the quality of these solutions (e.g. readability, maintainability) can vary immensely. When code quality is poor, symptoms emerge in the form of 'code smells', which are specific negative characteristics (e.g. duplicate code) that can be resolved by applying refactoring patterns. Many undergraduate computing curricula train students on this software engineering practice, often doing so via exercises on unfamiliar instructor-provided code. Our observation, however, is that this makes it harder for novices to internalise refactoring as part of their own development practices. In this paper, we propose a …
Predicting Code Refactoring Via Analyzing The History Of Quality Metrics And Code Anti-Patterns, Sarah Alanqari
Predicting Code Refactoring Via Analyzing The History Of Quality Metrics And Code Anti-Patterns, Sarah Alanqari
College of Computing and Digital Media Dissertations
Code refactoring is the process of improving the internal structure of existing code without altering its functionality. Refactoring can help to reduce technical debt, enhance the quality of the code and make the code easy to evolve. However, the manual identification of the proper code refactoring operations to apply can be time-consuming and not scalable. In this thesis, we propose an approach based on data mining and machine learning techniques to analyze historical data and predict refactoring operations that may occur in a future release of a project. The approach uses a combination of techniques to identify patterns in the …
Estimating Efforts For Various Activities In Agile Software Development: An Empirical Study, Lan Cao
Estimating Efforts For Various Activities In Agile Software Development: An Empirical Study, Lan Cao
Information Technology & Decision Sciences Faculty Publications
Effort estimation is an important practice in agile software development. The agile community believes that developers’ estimates get more accurate over time due to the cumulative effect of learning from short and frequent feedback. However, there is no empirical evidence of an improvement in estimation accuracy over time, nor have prior studies examined effort estimation in different development activities, which are associated with substantial costs. This study fills the knowledge gap in the field of software estimation in agile software development by investigating estimations across time and different development activities based on data collected from a large agile project. This …
Where2change: Change Request Localization For App Reviews, Tao Zhang, Jiachi Chen, Xian Zhan, Xiapu Luo, David Lo, He Jiang
Where2change: Change Request Localization For App Reviews, Tao Zhang, Jiachi Chen, Xian Zhan, Xiapu Luo, David Lo, He Jiang
Research Collection School Of Computing and Information Systems
Million of mobile apps have been released to the market. Developers need to maintain these apps so that they can continue to benefit end users. Developers usually extract useful information from user reviews to maintain and evolve mobile apps. One of the important activities that developers need to do while reading user reviews is to locate the source code related to requested changes. Unfortunately, this manual work is costly and time consuming since: (1) an app can receive thousands of reviews, and (2) a mobile app can consist of hundreds of source code files. To address this challenge, Palomba et …
Mining And Managing Big Data Refactoring For Design Improvement: Are We There Yet?, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni
Mining And Managing Big Data Refactoring For Design Improvement: Are We There Yet?, Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni
Articles
Refactoring is a set of code changes applied to improve the internal structure of a program, without altering its external behavior. With the rise of continuous integration and the awareness of the necessity of managing technical debt, refactoring has become even more popular in recent software builds. Recent studies indicate that developers often perform refactorings. If we consider all refactorings performed across all projects, this consists of the refactoring knowledge that represents a rich source of information that can be useful for both developers and practitioners to better understand how refactoring is being applied in practice. However, mining, processing, and …
An Ensemble Approach For Annotating Source Code Identifiers With Part-Of-Speech Tags, Christian D. Newman,, Michael J. Decker, Reem S. Alsuhaibani, Anthony Peruma, Mohamed Wiem Mkaouer, Satyajit Mohapatra, Tejal Vishnoi, Marcos Zampieri, Timothy Sheldon, Emily Hill
An Ensemble Approach For Annotating Source Code Identifiers With Part-Of-Speech Tags, Christian D. Newman,, Michael J. Decker, Reem S. Alsuhaibani, Anthony Peruma, Mohamed Wiem Mkaouer, Satyajit Mohapatra, Tejal Vishnoi, Marcos Zampieri, Timothy Sheldon, Emily Hill
Articles
This paper presents an ensemble part-of-speech tagging approach for source code identifiers. Ensemble tagging is a technique that uses machine-learning and the output from multiple part-of-speech taggers to annotate natural language text at a higher quality than the part-of-speech taggers are able to obtain independently. Our ensemble uses three state-of-the-art part-of-speech taggers: SWUM, POSSE, and Stanford. We study the quality of the ensemble's annotations on five different types of identifier names: function, class, attribute, parameter, and declaration statement at the level of both individual words and full identifier names. We also study and discuss the weaknesses of our tagger to …
On The Generation, Structure, And Semantics Of Grammar Patterns In Source Code Identifiers, Christian D. Newman,, Reem S. Alsuhaibani, Michael J. Decker, Anthony Peruma, Dishant Kaushik, Mohamed Wiem Mkaouer, Emily Hill
On The Generation, Structure, And Semantics Of Grammar Patterns In Source Code Identifiers, Christian D. Newman,, Reem S. Alsuhaibani, Michael J. Decker, Anthony Peruma, Dishant Kaushik, Mohamed Wiem Mkaouer, Emily Hill
Articles
Identifier names are the atoms of program comprehension. Weak identifier names decrease developer productivity and degrade the performance of automated approaches that leverage identifier names in source code analysis; threatening many of the advantages which stand to be gained from advances in artificial intelligence and machine learning. Therefore, it is vital to support developers in naming and renaming identifiers. In this paper, we extend our prior work, which studies the primary method through which names evolve: rename refactorings. In our prior work, we contextualize rename changes by examining commit messages and other refactorings. In this extension, we further consider data …
Coinwatch: A Clone-Based Approach For Detecting Vulnerabilities In Cryptocurrencies, Qingze Hum, Wei Jin Tan, Shi Ying Tey, Latasha Lenus, Ivan Homoliak, Yun Lin, Jun Sun
Coinwatch: A Clone-Based Approach For Detecting Vulnerabilities In Cryptocurrencies, Qingze Hum, Wei Jin Tan, Shi Ying Tey, Latasha Lenus, Ivan Homoliak, Yun Lin, Jun Sun
Research Collection School Of Computing and Information Systems
Cryptocurrencies have become very popular in recent years. Thousands of new cryptocurrencies have emerged, proposing new and novel techniques that improve on Bitcoin's core innovation of the blockchain data structure and consensus mechanism. However, cryptocurrencies are a major target for cyber-attacks, as they can be sold on exchanges anonymously and most cryptocurrencies have their codebases publicly available. One particular issue is the prevalence of code clones in cryptocurrencies, which may amplify security threats. If a vulnerability is found in one cryptocurrency, it might be propagated into other cloned cryptocurrencies. In this work, we propose a systematic remedy to this problem, …
Code Duplication On Stack Overflow, Sebastian Baltes, Christoph Treude
Code Duplication On Stack Overflow, Sebastian Baltes, Christoph Treude
Research Collection School Of Computing and Information Systems
Despite the unarguable importance of Stack Overflow (SO) for the daily work of many software developers and despite existing knowledge about the impact of code duplication on software maintainability, the prevalence and implications of code clones on SO have not yet received the attention they deserve. In this paper, we motivate why studies on code duplication within SO are needed and how existing studies on code reuse differ from this new research direction. We present similarities and differences between code clones in general and code clones on SO and point to open questions that need to be addressed to be …
Supporting Software Architecture Maintenance By Providing Task-Specific Recommendations, Matthias Galster, Christoph Treude, Kelly Blincoe
Supporting Software Architecture Maintenance By Providing Task-Specific Recommendations, Matthias Galster, Christoph Treude, Kelly Blincoe
Research Collection School Of Computing and Information Systems
During software maintenance, developers have different information needs (e.g., to understand what type of maintenance activity to perform, the impact of a maintenance activity and its effort). However, information to support developers may be distributed across various sources. Furthermore, information captured in formal architecture documentation may be outdated. In this paper, we put forward a late breaking idea and outline a solution to improve the productivity of developers by providing task-specific recommendations based on concrete information needs that arise during software maintenance.
Sar: Learning Cross-Language Api Mappings With Little Knowledge, Duy Quoc Nghi Bui, Yijun Yu, Lingxiao Jiang
Sar: Learning Cross-Language Api Mappings With Little Knowledge, Duy Quoc Nghi Bui, Yijun Yu, Lingxiao Jiang
Research Collection School Of Computing and Information Systems
To save effort, developers often translate programs from one programming language to another, instead of implementing it from scratch. Translating application program interfaces (APIs) used in one language to functionally equivalent ones available in another language is an important aspect of program translation. Existing approaches facilitate the translation by automatically identifying the API mappings across programming languages. However, these approaches still require large amount of parallel corpora, ranging from pairs of APIs or code fragments that are functionally equivalent, to similar code comments. To minimize the need of parallel corpora, this paper aims at an automated approach that can map …
Code Smells For Model-View-Controller Architectures, Maurício Aniche, Gabriele Bavota, Christoph Treude, Marco Aurélio Gerosa, Arie Van Deursen
Code Smells For Model-View-Controller Architectures, Maurício Aniche, Gabriele Bavota, Christoph Treude, Marco Aurélio Gerosa, Arie Van Deursen
Research Collection School Of Computing and Information Systems
Previous studies have shown the negative effects that low-quality code can have on maintainability proxies, such as code change- and defect-proneness. One of the symptoms of low-quality code are code smells, defined as sub-optimal implementation choices. While this definition is quite general and seems to suggest a wide spectrum of smells that can affect software systems, the research literature mostly focuses on the set of smells defined in the catalog by Fowler and Beck, reporting design issues that can potentially affect any kind of system, regardless of their architecture (e.g., Complex Class). However, systems adopting a specific architecture (e.g., the …
Hierarchical Learning Of Cross-Language Mappings Through Distributed Vector Representations For Code, Nghi D. Q. Bui, Lingxiao Jiang
Hierarchical Learning Of Cross-Language Mappings Through Distributed Vector Representations For Code, Nghi D. Q. Bui, Lingxiao Jiang
Research Collection School Of Computing and Information Systems
Translating a program written in one programming language to another can be useful for software development tasks that need functionality implementations in different languages. Although past studies have considered this problem, they may be either specific to the language grammars, or specific to certain kinds of code elements (e.g., tokens, phrases, API uses). This paper proposes a new approach to automatically learn cross-language representations for various kinds of structural code elements that may be used for program translation. Our key idea is two folded: First, we normalize and enrich code token streams with additional structural and semantic information, and train …
Mining Software Repositories For Automatic Software Bug Management From Bug Triaging To Patch Backporting, Yuan Tian
Dissertations and Theses Collection
Software systems are often released with bugs due to system complexity and inadequate testing. Bug resolving process plays an important role in development and evolution of software systems because developers could collect a considerable number of bugs from users and testers daily. For instance, during September 2015, the Eclipse project received approximately 2,500 bug reports, averaging 80 new reports each day. To help developers effectively address and manage bugs, bug tracking systems such as Bugzilla and JIRA are adopted to manage the life cycle of a bug through bug report. Since most of the information related to bugs are stored …
Detecting Broken Pointcuts Using Structural Commonality And Degree Of Interest, Raffi Khatchadourian, Awais Rashid, Hidehiko Masuhara, Takuya Watanabe
Detecting Broken Pointcuts Using Structural Commonality And Degree Of Interest, Raffi Khatchadourian, Awais Rashid, Hidehiko Masuhara, Takuya Watanabe
Publications and Research
Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. Deciding which pointcuts have broken due to base-code changes is a daunting venture, especially in large and complex systems. We present an automated approach that recommends pointcuts that are likely to require modification due to a particular base-code change, as well as ones that do not. Our hypothesis is that join points selected by a pointcut exhibit common structural characteristics. Patterns describing such commonality are used to recommend pointcuts that have potentially …
"Automated Debugging Considered Harmful" Considered Harmful: A User Study Revisiting The Usefulness Of Spectra-Based Fault Localization Techniques With Professionals Using Real Bugs From Large Systems, Xin Xia, Lingfeng Bao, David Lo, Shanping Li
"Automated Debugging Considered Harmful" Considered Harmful: A User Study Revisiting The Usefulness Of Spectra-Based Fault Localization Techniques With Professionals Using Real Bugs From Large Systems, Xin Xia, Lingfeng Bao, David Lo, Shanping Li
Research Collection School Of Computing and Information Systems
Due to the complexity of software systems, bugs are inevitable. Software debugging is tedious and time consuming. To help developers perform this crucial task, a number of spectra-based fault localization techniques have been proposed. In general, spectra-based fault localization helps developers to find the location of a bug given its symptoms (e.g., program failures). A previous study by Parnin and Orso however implies that several assumptions made by existing work on spectra-based fault localization do not hold in practice, which hinders the practical usage of these tools. Moreover, a recent study by Xie et al. claims that spectra-based fault localization …
Automated Refactoring Of Legacy Java Software To Enumerated Types, Raffi Khatchadourian
Automated Refactoring Of Legacy Java Software To Enumerated Types, Raffi Khatchadourian
Publications and Research
Modern Java languages introduce several new features that offer significant improvements over older Java technology. In this article we consider the new enum construct, which provides language support for enumerated types. Prior to recent Java languages, programmers needed to employ various patterns (e.g., the weak enum pattern) to compensate for the absence of enumerated types in Java. Unfortunately, these compensation patterns lack several highly-desirable properties of the enum construct, most notably, type safety. We present a novel fully-automated approach for transforming legacy Java code to use the new enumeration construct. This semantics-preserving approach increases type safety, produces code that is …
An Ecological Model For Digital Platforms Maintenance And Evolution, Paolo Rocchi, Paolo Spagnoletti, Subhajit Datta
An Ecological Model For Digital Platforms Maintenance And Evolution, Paolo Rocchi, Paolo Spagnoletti, Subhajit Datta
Research Collection School Of Computing and Information Systems
The maintenance of software products has been studied extensively in both software engineering and management information systems. Such studies are mainly focused on the activities that take place prior to starting the maintenance phase. Their contribution is either related to the improvement of software quality or to validating contingency models for reducing maintenance efforts. The continuous maintenance philosophy suggests to shift the attention within the maintenance phase for better coping with the evolutionary trajectories of digital platforms. In this paper, we examine the maintenance process of a digital platform from the perspective of the software vendor. Based on our empirical …
Compositional Vector Space Models For Improved Bug Localization, Shaowei Wang, David Lo, Julia Lawall
Compositional Vector Space Models For Improved Bug Localization, Shaowei Wang, David Lo, Julia Lawall
Research Collection School Of Computing and Information Systems
Software developers and maintainers often need to locate code units responsible for a particular bug. A number of Information Retrieval (IR) techniques have been proposed to map natural language bug descriptions to the associated code units. The vector space model (VSM) with the standard tf-idf weighting scheme (VSMnatural), has been shown to outperform nine other state-of-the-art IR techniques. However, there are multiple VSM variants with different weighting schemes, and their relative performance differs for different software systems. Based on this observation, we propose to compose various VSM variants, modelling their composition as an optimization problem. We propose a genetic algorithm …
Ranking-Based Approaches For Localizing Faults, Lucia Lucia
Ranking-Based Approaches For Localizing Faults, Lucia Lucia
Dissertations and Theses Collection (Open Access)
A fault is the root cause of program failures where a program behaves differently from the intended behavior. Finding or localizing faults is often laborious (especially so for complex programs), yet it is an important task in the software lifecycle. An automated technique that can accurately and quickly identify the faulty code is greatly needed to alleviate the costs of software debugging. Many fault localization techniques assume that faults are localizable, i.e., each fault manifests only in a single or a few lines of code that are close to one another. To verify this assumption, we study how faults spread …
Extension Of Object-Oriented Metrics Suite For, John Michura, Miriam A M Capretz, Shuying Wang
Extension Of Object-Oriented Metrics Suite For, John Michura, Miriam A M Capretz, Shuying Wang
Electrical and Computer Engineering Publications
Software developers require information to understand the characteristics of systems, such as complexity and maintainability. In order to further understand and determine characteristics of object-oriented (OO) systems, this paper describes research that identifies attributes that are valuable in determining the difficulty in implementing changes during maintenance, as well as the possible effects that such changes may produce. A set of metrics are proposed to quantify and measure these attributes. The proposed complexity metrics are used to determine the difficulty in implementing changes through the measurement of method complexity, method diversity, and complexity density. The paper establishes impact metrics to determine …
Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid, Harry Xu
Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid, Harry Xu
Publications and Research
Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base code can lead to join points incorrectly falling in or out of the scope of pointcuts. In this paper, we present an automated approach that limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program elements corresponding to join points selected by a pointcut. The extracted patterns are then applied to later versions to offer suggestions of new join points that may require inclusion. To illustrate that the motivation behind our proposal is well founded, …
Identifying Effort Estimation Factors For Corrective Maintenance In Object-Oriented Systems, Michael J. Lee
Identifying Effort Estimation Factors For Corrective Maintenance In Object-Oriented Systems, Michael J. Lee
UNLV Theses, Dissertations, Professional Papers, and Capstones
This research identifies factors that impact software maintenance effort by exploring the decision-making process of expert estimators of corrective maintenance projects by using qualitative methods to identify the factors that they use in deriving estimates. We implement a technique called causal mapping, which allows us to identify the cognitive links between the information that estimators use, and the estimates that they produce based on that information. Results suggest that a total of 17 factors may be relevant for corrective maintenance effort estimation, covering constructs related to developers, code, defects, and environment. When these factors are rank-ordered, they demonstrate that some …
Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid, Guoqing Harry Xu
Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid, Guoqing Harry Xu
Publications and Research
Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. We present an automated approach that limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program elements corresponding to join points selected by a pointcut. The extracted patterns are then applied to later versions to offer suggestions of new join points that may require inclusion. We demonstrate the usefulness of our technique by rejuvenating pointcuts in multiple versions of several …
Rejuvenate Pointcut: A Tool For Pointcut Expression Recovery In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Awais Rashid
Rejuvenate Pointcut: A Tool For Pointcut Expression Recovery In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Awais Rashid
Publications and Research
Aspect-oriented programming (AOP) strives to localize the scattered and tangled implementations of crosscutting concerns (CCCs) by allowing developers to declare that certain actions (advice) should be taken at specific points (join points) during the execution of software where a CCC (an aspect) is applicable. However, it is non-trivial to construct optimal pointcut expressions (a collection of join points) that capture the true intentions of the programmer and, upon evolution, maintain these intentions. We demonstrate an AspectJ source-level inferencing tool called rejuvenate pointcut which helps developers maintain pointcut expressions over the lifetime of a software product. A key insight into the …
Scalable Detection Of Semantic Clones, Mark Gabel, Lingxiao Jiang, Zhendong Su
Scalable Detection Of Semantic Clones, Mark Gabel, Lingxiao Jiang, Zhendong Su
Research Collection School Of Computing and Information Systems
Several techniques have been developed for identifying similar code fragments in programs. These similar fragments, referred to as code clones, can be used to identify redundant code, locate bugs, or gain insight into program design. Existing scalable approaches to clone detection are limited to finding program fragments that are similar only in their contiguous syntax. Other, semantics-based approaches are more resilient to differences in syntax, such as reordered statements, related statements interleaved with other unrelated statements, or the use of semantically equivalent control structures. However, none of these techniques have scaled to real world code bases. These approaches capture semantic …
Automated Refactoring Of Legacy Java Software To Enumerated Types, Raffi Khatchadourian, Jason Sawin, Atanas Rountev
Automated Refactoring Of Legacy Java Software To Enumerated Types, Raffi Khatchadourian, Jason Sawin, Atanas Rountev
Publications and Research
Modern Java languages introduce several new features that offer significant improvements over older Java technology. In this article we consider the new enum construct, which provides language support for enumerated types. Prior to recent Java languages, programmers needed to employ various patterns (e.g., the weak enum pattern) to compensate for the absence of enumerated types in Java. Unfortunately, these compensation patterns lack several highly-desirable properties of the enum construct, most notably, type safety. We present a novel fully-automated approach for transforming legacy Java code to use the new enumeration construct. This semantics-preserving approach increases type safety, produces code that is …
Automated Refactoring Of Legacy Java Software To Enumerated Types, Raffi Khatchadourian, Jason Sawin, Atanas Rountev
Automated Refactoring Of Legacy Java Software To Enumerated Types, Raffi Khatchadourian, Jason Sawin, Atanas Rountev
Publications and Research
Modern Java languages introduce several new features that offer significant improvements over older Java technology. In this article we consider the new enum construct, which provides language support for enumerated types. Prior to recent Java languages, programmers needed to employ various patterns (e.g., the weak enum pattern) to compensate for the absence of enumerated types in Java. Unfortunately, these compensation patterns lack several highly-desirable properties of the enum construct, most notably, type safety. We present a novel fully-automated approach for transforming legacy Java code to use the new enumeration construct. This semantics-preserving approach increases type safety, produces code that is …
Enhancement Of Software Engineering By Shifting From Software Product To Software Service, Muhammad Saeed, Muhammad Jaffar-Ur- Rehman
Enhancement Of Software Engineering By Shifting From Software Product To Software Service, Muhammad Saeed, Muhammad Jaffar-Ur- Rehman
International Conference on Information and Communication Technologies
Software development has always been a supply side affair, in which domain experts were the main requirement providers. Software engineers have been creating new technologies, frameworks and methodologies but this has made the software engineering job more complex. Recently all this has been looked at from demand-side prospective. So a new concept of Service Based Software Engineering is shaping up which look at the software as a service rather then a product. This paper is going to analysis the fundamental requirements of such a paradigm shift, by first gathering the concept and then translating this to a workable solution. Different …
Easy Net Admin: Inventory Tool For Network Administrators, Rohini Mopu Reddy
Easy Net Admin: Inventory Tool For Network Administrators, Rohini Mopu Reddy
Theses Digitization Project
The purpose of this project was to develop a tool / utility for network administrators to maintain information about all the systems operated by the College of Natural Sciences at California State University, San Bernardino.