MVCLang - A Software Modelling Language for the Model-View-Controller Pattern

MVCLang

The Model-view-controller (MVC) software design pattern promotes separating software designs into the model, view, and controller elements. The views represent the user-interfaces, the models represent the system data, and the controllers handle the requests sent by the views and coordinate the interactions between views and models. While many software frameworks have been available for the MVC-based software developments, no any attempt have been made on increasing the level of abstraction for the MVC developments and provide a model-based approach. Indeed, none of the high-level software modeling languages support the MVC design pattern. So, we propose in this research an MVC-based modeling language called MVCLang, which enables to model MVC-based software architectures that can be easily analysed and implemented. MVCLang offers a visual notation set that is inspired by UML’s class diagram. MVCLang is supported with a modeling toolset that enables to specify the MVC architectures and analyse them for a number of wellformedness rules. MVCLang’s toolset can further produce ASP.NET MVC code that reflects the architectural design decisions. We evaluated MVCLang on Eryaz Software that offers B2B solutions. Therein, 5 B2B developers used MVCLang for their B2B project developments and provided feedback for a set of pre-determined question.