Research prototype and application examples are available on GitHub.
An extended evaluation has been performed in a case study within the context of an industrial eCl@ss-standard-conforming production-system modelling language (EPML) as part of its integration into the Extremo tool, which manuscript has been submitted to the International Journal of Automated Software Engineering (August 2017).
Software has the ability to enable or even advance changes in technology, economy, society, and humanity. To reflect these changes and endure relevancy to stakeholder, software is destined to evolve.
However, the increasing number of new maintenance and requirement requests often outgrows the ability of software languages.
Therefore, reengineering, and evolution of software often involves shifting to different software languages and their accompanying tools, which offer the basis to meet new requirements, such as performance, maintainability, reliability, and usability.
Language workbenches---a product of language-oriented programming---are environments designed to support the construction of domain-specific (modeling) languages (DS(M)Ls) offering an opportunity to meet not only current maintenance and requirement requests but also the ability to address future requests that current languages are unable to meet.
Language workbenches promise to guide domain experts towards directly carrying out development effort by enabling the creation of editors customized for user interaction. Thus, on one hand, productivity of development is improved by better suitable editors and closer relationships with domain experts.
For validation, we show potential error causes for violated constraints, instead of only the context in which constraints are violated. The state-space explosion problem is mitigated by our approach resolving constraint violations by increasing the neighborhood scope in a three-stage process, seeking constraint repair solutions presented as quick fixes to the editor user.
On the other hand, the application of language workbenches for the evolution of existing languages, e.g., as realized by XML technologies, as well as the creation of sophisticated editors, still involves expert skills of language engineers and considerable effort both in the initial creation and maintenance of the modernized language.
Consequently, the evolution of languages to productivity-enhancing and domain expert-focused languages is limited to developers owning both language engineering expertise as well as domain-specific knowledge.
In an effort to address limitations imposed by language evolution, we present an approach for the automated modernization of XML Schema (XSD)-based languages based on model-driven engineering (MDE) as well as search-based software engineering (SBSE) techniques and exploits extended language definitions for the creation of advanced domain-specific language editors.
Watch XMLIntellEdit in action by proceeding with the following simple steps:
After importing the maven project in Eclipse, run the following command:
mvn clean install
Alternatively, right-click on the "xmlintelledit-parent" project and select "Run as > Maven install".
Note that validation is performed as soon as file changes have been saved.