Open Access. Powered by Scholars. Published by Universities.®

Computer Sciences Commons

Open Access. Powered by Scholars. Published by Universities.®

Software Engineering

Singapore Management University

Java

Articles 1 - 11 of 11

Full-Text Articles in Computer Sciences

Chatgpt, Can You Generate Solutions For My Coding Exercises? An Evaluation On Its Effectiveness In An Undergraduate Java Programming Course, Eng Lieh Ouh, Benjamin Gan, Kyong Jin Shim, Swavek Wlodkowski Jul 2023

Chatgpt, Can You Generate Solutions For My Coding Exercises? An Evaluation On Its Effectiveness In An Undergraduate Java Programming Course, Eng Lieh Ouh, Benjamin Gan, Kyong Jin Shim, Swavek Wlodkowski

Research Collection School Of Computing and Information Systems

In this study, we assess the efficacy of employing the ChatGPT language model to generate solutions for coding exercises within an undergraduate Java programming course. ChatGPT, a large-scale, deep learning-driven natural language processing model, is capable of producing programming code based on textual input. Our evaluation involves analyzing ChatGPT-generated solutions for 80 diverse programming exercises and comparing them to the correct solutions. Our findings indicate that ChatGPT accurately generates Java programming solutions, which are characterized by high readability and well-structured organization. Additionally, the model can produce alternative, memory-efficient solutions. However, as a natural language processing model, ChatGPT struggles with coding …


Automatic Solution Summarization For Crash Bugs, Haoye Wang, Xin Xia, David Lo, John C. Grundy, Xinyu Wang May 2021

Automatic Solution Summarization For Crash Bugs, Haoye Wang, Xin Xia, David Lo, John C. Grundy, Xinyu Wang

Research Collection School Of Computing and Information Systems

The causes of software crashes can be hidden anywhere in the source code and development environment. When encountering software crashes, recurring bugs that are discussed on Q&A sites could provide developers with solutions to their crashing problems. However, it is difficult for developers to accurately search for relevant content on search engines, and developers have to spend a lot of manual effort to find the right solution from the returned results. In this paper, we present CRASOLVER, an approach that takes into account both the structural information of crash traces and the knowledge of crash-causing bugs to automatically summarize solutions …


Semantic Patches For Java Program Transformation (Artifact), Hong Jin Kang, Thung Ferdian, Julia Lawall, Gilles Muller, Lingxiao Jiang, David Lo Jul 2019

Semantic Patches For Java Program Transformation (Artifact), Hong Jin Kang, Thung Ferdian, Julia Lawall, Gilles Muller, Lingxiao Jiang, David Lo

Research Collection School Of Computing and Information Systems

The program transformation tool Coccinelle is designed for making changes that is required in many locations within a software project. It has been shown to be useful for C code and has been been adopted for use in the Linux kernel by many developers. Over 6000 commits mentioning the use of Coccinelle have been made in the Linux kernel. Our artifact, Coccinelle4J, is an extension to Coccinelle in order for it to apply program transformations to Java source code. This artifact accompanies our experience report “Semantic Patches for Java Program Transformation”, in which we show a case study of applying …


Semantic Patches For Java Program Transformation, Hong Jin Kang, Ferdian Thung, Julia Lawall, Gilles Muller, Lingxiao Jiang, David Lo Jul 2019

Semantic Patches For Java Program Transformation, Hong Jin Kang, Ferdian Thung, Julia Lawall, Gilles Muller, Lingxiao Jiang, David Lo

Research Collection School Of Computing and Information Systems

Developing software often requires code changes that are widespread and applied to multiple locations.There are tools for Java that allow developers to specify patterns for program matching and source-to-source transformation. However, to our knowledge, none allows for transforming code based on its control-flow context. We prototype Coccinelle4J, an extension to Coccinelle, which is a program transformation tool designed for widespread changes in C code, in order to work on Java source code. We adapt Coccinelle to be able to apply scripts written in the Semantic Patch Language (SmPL), a language provided by Coccinelle, to Java source files. As a case …


Understanding Stack Overflow Code Fragments, Christoph Treude, Martin P. Robillard Sep 2017

Understanding Stack Overflow Code Fragments, Christoph Treude, Martin P. Robillard

Research Collection School Of Computing and Information Systems

Code fragments posted in answers on Q&A forums can form an important source of developer knowledge. However, effective reuse of code fragments found online often requires information other than the code fragment alone. We report on the results of a survey-based study to investigate to what extent developers perceive Stack Overflow code fragments to be self-explanatory. As part of the study, we also investigated the types of information missing from fragments that were not self-explanatory. We find that less than half of the Stack Overflow code fragments in our sample are considered to be self-explanatory by the 321 participants who …


"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 Oct 2016

"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 …


Mining Revision Histories To Detect Cross-Language Clones Without Intermediates, Lingxiao Jiang, Zhiming Peng, Lingxiao Jiang, Hao Zhong, Haibo Yu, Jianjun Zhao Sep 2016

Mining Revision Histories To Detect Cross-Language Clones Without Intermediates, Lingxiao Jiang, Zhiming Peng, Lingxiao Jiang, Hao Zhong, Haibo Yu, Jianjun Zhao

Research Collection School Of Computing and Information Systems

To attract more users on different platforms, many projects release their versions in multiple programming languages (e.g., Java and C#). They typically have many code snippets that implement similar functionalities, i.e., cross-language clones. Programmers often need to track and modify cross-language clones consistently to maintain similar functionalities across different language implementations. In literature, researchers have proposed approaches to detect cross-language clones, mostly for languages that share a common intermediate language (such as the .NET language family) so that techniques for detecting single-language clones can be applied. As a result, those approaches cannot detect cross-language clones for many projects that are …


A Large Scale Study Of Multiple Programming Languages And Code Quality, Pavneet Singh Kochhar, Withthige Dinusha Ruchira Wijedasa, David Lo Mar 2016

A Large Scale Study Of Multiple Programming Languages And Code Quality, Pavneet Singh Kochhar, Withthige Dinusha Ruchira Wijedasa, David Lo

Research Collection School Of Computing and Information Systems

Nowadays, most software use multiple programming languages to implement certain functionalities based on the strengths and weaknesses of different languages. Researchers in the past have studied the impact of independent programming languages on software quality, however, there has been little or no research on the impact of multiple languages on the quality of software. Does the use of multiple languages cause more bugs? Are certain languages when used with other languages make software more bug prone? What are the relationships between multi-language usage and various bug categories? In this study, we perform a large scale empirical investigation to shed light …


Sewordsim: Software-Specific Word Similarity Database, Yuan Tian, David Lo, Julia Lawall Jun 2014

Sewordsim: Software-Specific Word Similarity Database, Yuan Tian, David Lo, Julia Lawall

Research Collection School Of Computing and Information Systems

Measuring the similarity of words is important in accurately representing and comparing documents, and thus improves the results of many natural language processing (NLP) tasks. The NLP community has proposed various measurements based on WordNet, a lexical database that contains relationships between many pairs of words. Recently, a number of techniques have been proposed to address software engineering issues such as code search and fault localization that require understanding natural language documents, and a measure of word similarity could improve their results. However, WordNet only contains information about words senses in general-purpose conversation, which often differ from word senses in …


Automatic Recommendation Of Api Methods From Feature Requests, Ferdian Thung, Shaowei Wang, David Lo, Julia Lawall Nov 2013

Automatic Recommendation Of Api Methods From Feature Requests, Ferdian Thung, Shaowei Wang, David Lo, Julia Lawall

Research Collection School Of Computing and Information Systems

Developers often receive many feature requests. To implement these features, developers can leverage various methods from third party libraries. In this work, we propose an automated approach that takes as input a textual description of a feature request. It then recommends methods in library APIs that developers can use to implement the feature. Our recommendation approach learns from records of other changes made to software systems, and compares the textual description of the requested feature with the textual descriptions of various API methods. We have evaluated our approach on more than 500 feature requests of Axis2/Java, CXF, Hadoop Common, HBase, …


Concernlines: A Timeline View Of Co-Occurring Concerns, Christoph Treude, Margaret-Anne Storey May 2009

Concernlines: A Timeline View Of Co-Occurring Concerns, Christoph Treude, Margaret-Anne Storey

Research Collection School Of Computing and Information Systems

Understanding the evolution of a software system requires understanding how information about the release history, non-functional requirements and project milestones relates to functional requirements on the software components. This short paper describes a new tool, called CONCERNLINES, that supports this cognitive process by visualizing co-occurring concerns over time.