Automated refactoring of the Java code using ANTLR in Python

Posted on Mon 02 May 2022 in blog • Tagged with blog, ANTLR, compiler, tutorial

Refactoring is a type of program transformation that preserves the program’s behavior. The goal of refactoring is to improve the program’s internal structure without changing its external behavior. In this way, the program quality, defined and measured in terms of quality attributes, is improved. The refactoring process could be automated to reduce the required time and cost and increase the reliability of applied transformation. In this tutorial, I give a short description of how we can automate the refactoring process with ANTLR in Python.


Continue reading

Do software engineers sacrifice themselves?

Posted on Mon 05 April 2021 in blog • Tagged with blog

We all know about the advantages of agile software development methodologies, DevOps, and CICD. But, what are the negative impacts and the dark sides/dark corners of such highly accepted and recommended software development practices and mindsets on software engineers’ life?


Continue reading

Program dynamic analysis with ANTLR

Posted on Tue 30 March 2021 in blog • Tagged with blog, ANTLR, compiler, tutorial

Dynamic analysis refers to extracting specific information from the program related to the program's execution. Therefore, it requires to execute the program under analysis. Often the source code must be augmented in a way that executing the program outputs the additional information required for dynamic analysis. A well-known technique for this aim is program instrumentation. The ANTLR tool can be used to instrument the source code effectively. In this tutorial, I explain how we can use the ANTLR tool to instrument the C++ program in the Python programming language.


Continue reading

Program static analysis with ANTLR

Posted on Mon 29 March 2021 in blog • Tagged with blog, ANTLR, compiler, tutorial

Static analysis means extracting specific information from the program artifacts, e.g., source code, without any execution of the program. The ANTLR tool can be used to perform all types of static analysis at the source-code level. In this tutorial, I explain how we can use the ANTLR tool to perform some basic kinds of static analysis of the C++ programs in the Python programming language. The task I chose to explain is extracting the class diagram and computing the relevant design metrics.


Continue reading

Advanced Software Engineering

Posted on Tue 23 March 2021 in courses • Tagged with courses, teaching

Advanced Software Engineering, graduate course.


Continue reading