DESOSA 2022

Checkstyle

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard.

Authors

Sander Gielisse

I am a second year MSc Computer Science Student, doing my thesis at the PRB lab, mostly interested in Computer Vision by Deep Learning.

Otto Kaaij

I am a first year MSc Computer Science Student, with an interest in algorithmics and distributed systems. I did a Bachelor Thesis on XAI, and have an interest in eduction.

Ricardo Vogel

I'm a first year MSc Computer Science student in the software engineering track. I'm interested in human-computer interaction, interactive intelligence, and computer ethics.

Yoshi van den Akker

I'm an MSc Computer Science student, specialising in algorithmics and with a passion for teaching.

Running Checkstyle on Larger Projects

Scalability is about being able to handle more work without this causing issues. For most software, scalability is about the number of people using it. If a million people suddenly open your website at the same time, your server should be able to handle this. As Checkstyle is only run locally or as part of a continuous integration pipeline, this aspect of scalability is not an issue. What can however grow, is the size of the project Checkstyle is run on, and the number of checks to be run.

Checkstyle: Quality and Evolution

For a project like Checkstyle, being able to assure some quality standards is both beneficial for developers and users, as it has the advantage of likely making the software more reliable, as well as creating a project that is easier to maintain. Checkstyle makes an attempt to ensure quality by going through several measures. In this essay, we will be evaluating the actions the Checkstyle team has chosen to ensure quality, analyse them together with some discussion, and find possible reasons for their choices.

Checkstyle: Architecture for Extensibility

As discussed in our previous essay, The Checkstyle Vision: Keeping Your Code in Check, Checkstyle is a static analysis tool that can help a Java development team keep the same coherent code style across their project, which keeps the code readable, maintainable, and consistent. This essay will talk about the core architecture of Checkstyle. Firstly, we will talk about the main design pattern used in Checkstyle: the visitor pattern. Then, we will go over four different levels of overview: the container view, the component and connector view, the development view, and the runtime view.

The Checkstyle Vision: Keeping Your Code in Check

Most of us probably remember the advertisements: ‘more than 3 billion devices run Java!’, and since the time when these ads were common, the Java ecosystem has continued evolving. It is hard to overstate the influence of Java: it is used extensively in server development, it is a key pillar in Android, and its object-oriented approach has influenced the development of many other languages. At the end of 2018, there were an estimated 7.