How a master-level Software Reengineering course uses CodeScene.
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.
Dr. Henrique Rocha
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?
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.