6 Interesting Ideas from Research Papers about Java

There are a lot of research papers related with Java. If we type “Java programming”, there are more than a million result in Google scholar. Some papers are very theoretical, some seem to be practical. I recently found some ideas are pretty interesting, so I collect them and create a list. These papers are from world top software engineering conferences.

Read more

Download Large Open Source Java Code Corpus

If you want to dump github repositories or download a large number of open source Java projects, here is the script. There are 2 files required to dump the corpus. The first is “repo-list.txt”. It contains the 39020 Java project names. The second file is “script-zip.sh”. It is the shell script that run git to … Read more

Research in Software Engineering – Available Data/Artifacts

For software engineering research, there are various kinds of data available for analysis. Those are called software artifacts and they can be generated during any stage of software lifecycle, such as design, development, testing, maintenance, etc. This is the directory of artifacts available and their download addresses. I have done investigation on different kinds of … Read more

JUnit Tutorial (2) – Annotations

This article contains JUnit annotations and examples for showing how to use them. Annotations enables us to use any method names without following any conventions. Actually, it has becomes a very popular way for a lot of projects, framework, etc. You may ask questions like: How to skip a test case in Junit? How to … Read more

JUnit Tutorial (1) – Use JUnit under Eclipse

Introduction and Installation JUnit is the defacto standard for unit testing. JUnit is part of Eclipse Java Development Tools (JDT). So, we can either install JDT via Software Updates site, or download and install Eclipse IDE for Java Developers. Using JUnit in Eclipse Environment 1. Create a project and create a class. This should contains the method you want … Read more

Why do we need software testing?

Why do we need to test our program? When people talk about the importance of software testing, common examples they give frequently are military software, aircraft, etc. That is not concrete enough to understand why we need to test our software. Here I provide an example from daily programming work. You don’t need to work … Read more

Research Topics for Software Engineering – Between SE and NLP

Someone says that programming language is also a language. This is true. Beyond this, during a software development life cycle different kinds of natural languages are added for various purposes, such as requirement analysis, comments, bug reports, etc. Since there are common features between natural language and software related data, a lot of research in … Read more

Latent Semantic Indexing

Latent Semantic Indexing(LSI) is a common technique in natural language processing area. This article is about how LSI works by comparing the pure key-word-based search. What is LSI? Latent Semantic Indexing (LSI) is an indexing and retrieval method that uses a mathematical technique called Singular value decomposition (SVD) to identify patterns in the relationships between … Read more

Research in Software Engineering- Bug Report

Bug reports are artifacts that track the defects of software systems. In software maintenance research area, there has been a bunch of research work addressing problem of bug reports in recent years.

Bugzilla is one of the most popular bug reporting system. For the sake of its popularity and open-source feature, the data for research are largely provided by Bugzilla.

The diagram below shows the major categories of work in this area. The left-bottom corner is a sample bug report from Bugzilla.

Read more

Software Engineering Research Topics – Diagram of General Perspective

Diagram is (Sometimes) Worth Ten Thousand Words. During my research starting stage, I’m trying to get myself better understanding of state-of-the-art in software engineering area. The diagram below is first one of this series. It contains the basic research topics in software maintenance/evolution area of software engineering. To better understand on each small topic on … Read more