
The Python programming language has become popular among researchers and an increasing number of research software is written in Python. However, there is a lack of reusability for those that has not been maintained with RSE principles. Moreover, many of them are left unmaintained when developers find no further academic interests in them. Once developers with expertise in the software leave the software project, it is very unlikely to understand and maintain it from the scratch for developers who are new to the software. This raises an even bigger challenge if the software code base is large, or documented insufficiently. In this talk, we introduce dynamic and static analysis of Python software, a technique that enables reverse engineering of programs written in Python. Our analysis approach visualizes the target application, producing call graphs, sequence diagrams, and component dependency graphs. This way, our visualization provides an overview of the internal behavior of the target program. With this work, we present a new Python support that utilizes the monitoring and analysis parts of the Kieker Observability Framework. This work is also a step of our continued RSE research efforts to support Python software observability with Kieker, as part of our DFG-funded SustainKieker project, and the UKRI Metascience Research Grants programme. As for the next step, we will investigate into extending our monitoring and analysis to Python application's external libraries, that are system native and built for performance. SustainKieker is funded by the Deutsche Forschungsgemeinschaft (DFG – German Research Foundation) (grant no. 528713834) and UK Research and Innovation (UKRI) through the UKRI Metascience Research Grants programme (Reference S26368).
Program Analysis, RSE Research, Software Engineering
Program Analysis, RSE Research, Software Engineering
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
