Version 3.0. VueJS Web Application

In the third version, a more modern architecture was adopted, but it was a monolithic application. Building the platform on web technology allowed the platform to mitigate and overcome some challenges of maintainability and extensibility when used by users. Thus, new capabilities were incorporated into the tool, such as control loops for continuous and discrete systems.

In addition, a framework for fragment-oriented programming was incorporated (Correa Daniel, Mazo Raúl, Giraldo Gloria. Extending FragOP Domain Reusable Components to Support Product Customization in the Context of Software Product Lines. In Proceedings of the ICSR Conference, LNCS 11602, pp. 17–33, Springer-Verlag, Cincinnati-USA, 2019), which promoted the challenge of specifying domain and application components, as well as generating a relationship between requirements and components that allowed (i) to obtain products not only from domain requirements, but also from the code corresponding to configured requirements, and (ii) to obtain final products thanks to assisted processes of configuration and customization of the corresponding domain components.

On the other hand, as the number of extensions increased, the rate of code duplication also increased and the developers’ discomfort grew because they spent more time manipulating the code of the VariaMosl’s graphical library than making well-structured code that added new value to the tool.

Additionally, there was evidence of a considerable learning curve for being profitable with MxGraph, the tool’s graphics library (used to diagram language objects). In addition, VueJS was a growing and instable framework and, at the time of this version of VariaMos, the version of the framework was changed without backward compatibility. This unexpected change implied rewriting almost all the code of VariaMos, and this made us think about the great threat to the continuation of the project represented by the dependence on a framework.

Limitations and challenges

  • By duplicating code within an application, not only extensibility but also maintainability is affected. This is because when a change is required, whether major or minor, the impact it will have on the software evolution will be considerable as it will require time to analyze the components that must be intervened.
  • The mitigation of code duplication and the lack of structure when extending the tool were two of the main motivators for the VariaMos team to think about a 4.0 version of VariaMos.

Period

2014-2019

Working team

Andrés Erazo, Andrés Lopez, Camilo Correa, Daniel Correa, Esteban Echavarría, Yan Wang, Jairo Soto, Luis Fernando Londoño, Paola Vallejo, Raúl Mazo.