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.
Software
Research problems or ideas
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
IBM WALA tutorial
Below is a tutorial for showing how to use Wala to do static program analysis. It is done under windows. WALA is a bundle of java libraries for software analysis which is initially developed by IBM T.J. Watson Research Center. It has capacities to analyze the code of several programming languages. In this simple tutorial, … 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
How to do dynamic analysis on open source projects?
Some notes about how to do dynamic analysis on an open source project.
If a project is feasible for dynamic analysis, it needs good available testsuites. Advanced test data generation approaches can be used.
Places to find open source projects:
CodePlex, SourceForge, GitHub, Google Code.
Software Engineering Research – Frameworks (1)
To start the research of frameworks, we need to understand what is a framework and why it is created. Here we only focus on Java frameworks. One of the most significant characters of Frameworks that differ from other regular libraries is called “Reversion of Control”. When we write a java program, there is always a … Read more
What other solutions can solve problems that AOP solves?
So we have solutions for every general problem/topic. Can we find alternative solutions to address the same problem?
Code tangling and code scattering impact software in many ways:
1. Poor traceability – Simultaneous implementation of several concerns make it hard to trace requirements to implementation.
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.
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
A Must-Ask Question When Start a New Research Topic
A paper/research normally has a section or two about the significance of the problem and current solutions. To clearly identify previous research is the requirement of a new research. Even though this is obvious when talk about it, sometimes it is not always remembered and lead to nowhere when start a new research topic.