Python-Based Constraint Language for Architecture Models
The paper presents an approach to specify constraints on AADL models in Python-based language and a toolset allowing to verify that constraints. The goal of the approach is to enable reusing of existing rich facilities of Python language, tools, and libraries as well as to reduce learning curve of engineers. Constraints must be placed into component annexes. These constraints must be written in Python programming language as functions with one argument (an object to be checked), Boolean result, and special decorator. A plugin for a modeling environment generates a program in Python from the model components declarations. While it is executing this program creates an object with the model instance and checks the object by functions from annexes. This approach is implemented in MASIW Framework that allows checking constraints on model instance. The implementation is made upon PyDev, a well-known Eclipse-plugin for Python developing in Eclipse and reuses integration of Eclipse with Python from PyDev. The Python sources generated are enough to involve automatically such PyDev tools as code coloring, auto-completion for classes (components in AADL), fields of classes (subcomponents, connections, features, etc. in AADL), methods of classes (constraints from annexes), hierarchy of packages and classes (according to components hierarchy in AADL).
Proceedings of the Institute for System Programming, vol. 27, issue 5, 2015, pp. 143-156.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2015-27(5)-8Full text of the paper in pdf (in Russian) Back to the contents of the volume