TrueChange (TM) Under the Hood: How We Check the Consistency of Large Models (Almost) Instantly
Hugo Lourenço, Rui Eugénio · 2019
The OutSystems Platform is a visual model-driven development and delivery platform that allows developers to create enterprise-grade web and mobile applications. The models created with the platform are translated by its compiler into a set of standard-technology artifacts (C#, JavaScript, SQL, etc). The model must be checked for consistency (i.e., that it is well-formed and well-typed) before compilation can proceed. Our Integrated Development Environment (IDE) does this in real-time: after each change made a developer, the IDE either automatically heals the other parts of the model that are impacted by the change, or provides immediate feedback on the errors that must be manually corrected. It is not uncommon for an OutSystems model to contain in excess of 200,000 individual elements. Handling large models efficiently is thus of paramount importance: consistency checks must run as fast as possible, otherwise the developer's experience is significantly impaired. In this paper we present the techniques we have developed to speed up consistency checks, and which resulted in the TrueChangeTM engine. We use an incremental approached paired with automatically managed back pointers. We believe these techniques are of general application and not limited to our particular case.