Transforming Python into KDM to Support Cloud Conformance Checking

Alexander Clausen · 2012

Python is a well-suited language for developing web applications. This is demonstrated by the success of social networking websites like Pinterest, Reddit, Instagram, or Disqus, whose application servers mostly run Python code. But as software ages, it often needs to go through large changes in its architecture. Doing them by hand is usually tedious and error-prone. Model-driven software development is a promising approach to this problem, as it provides automation for doing software changes. One step of this is often reverse-engineering, where a model is extracted from the existing system. The Knowledge Discovery Meta-Model (KDM) is a meta-model which can be applied here. KDM, specified by the OMG (Object Management Group), describes a software system on different levels of abstraction in a language-independent way. It is designed as a standard for exchanging information between model-driven software modernization tools from different vendors. KDM is used by the CloudMIG approach to support semi-automatic model-driven migration of software systems to the cloud. CloudMIG supports cloud conformance checking, which analyzes a model for violations of a set of constraints that describe the cloud environment. CloudMIG Xpress is an implementation of the CloudMIG approach. There are already plugins to extract KDM models from Java and C# software systems. In this thesis, we present the transformation of Python software systems to KDM instances, towards the goal of supporting Python in CloudMIG Xpress. A tool for extracting a KDM model from Python is developed. As a prerequisite, a mapping between Python and KDM is defined and a multi-phase approach for transforming Python to KDM is shown. Finally, the feasibility and performance of the approach is analyzed using three Python code bases.

Read the paper · More papers on PaperTik