Interview with Dr. Henrique Rocha from the University of Antwerp

How a master-level Software Reengineering course uses CodeScene.

“An existing software can be very complex, understanding the software architecture and infrastructure well enough to contribute with changes can be very challenging.”

Background:

AnSyMo, Antwerp Systems and software Modelling, is a research group at the University of Antwerp investigating foundations, techniques, methods and tools for the design, analysis and maintenance of software-intensive systems.

Today, a large part of our world and society is shaped and steered by systems and software. More or less all devices and machines use software to some extent. Add to this all the organizations, businesses and enterprises that you communicate with on a daily basis that could not function without software.

One of the courses led by AnSyMo is the master course Software Reengineering. Find below an interview with Dr. Henrique Rocha about challenges with software reengineering and the goal of the course.

The goal of the course is to become acquainted with a broad selection of principles, techniques and skills used when reengineering existing software systems. For 2 semesters this course has used CodeScene in an assignment to restructure existing software.

What is a common challenge or pain point when restructuring existing software?
From my experience, the hardest part is what some researchers call the “entry barrier for contributors”. An existing software can be very complex, understanding the software architecture and infrastructure well enough to contribute with changes can be very challenging. Most often, new developers trying to contribute to open-source software feel discouraged as they don’t know where to start. From my observations, our students face similar problems when attempting to reengineer a software for the course.
How are your master-class students using CodeScene?

We suggest students to always start with CodeScene as it provides great insights on how to begin the restructuring project.

CodeScene is the recommended software for two topics, visualization and metrics. CodeScene provides several visualization options that allow the students to have a better overview of the analyzed software. The visualizations also help the students identify possible candidates for refactoring, especially the Technical Debt tab. Moreover, the complexity metrics and smells details on artifact-level shows the reasoning for the students on why such artifacts were marked as candidates for refactoring.

About how long does it take new students to get up to speed with CodeScene?
The learning curve for CodeScene seems very easy. We direct them in a lab lecture on how to use most of the Technical Debt tab, and to look at the complexity metrics. Most students tend to explore other features for themselves. But usually, after one lab session, the students seem more than able and comfortable to use CodeScene.
How does CodeScene complement other tools used in your master-class?
The visualizations options provided by CodeScene synergizes well with other tools. Moreover, I was impressed by how CodeScene has so many more features that complement tools for other topics. For instance, we use SonarQube in the lecture “Refactoring Assistants”. SonarQube shows detailed reports for code smells, often too much detail. CodeScene also shows potential refactoring targets and some code smells affecting artifacts. Therefore, good projects use both to justify their refactorings. As another example, other CodeScene features fall into the “Mining Software Repositories” lecture, complementing its analysis.

For readers interested in learning more about AnSyMo and their research on the increasing complexity of software intensive systems, there is more information here.

CodeScene is free for students, find more information about it here.

CodeScene is also active in an international research project with the overall goal of helping software teams strike a balance between increased development speed without sacrificing quality. Read more here or visit the project directly.