
MVCLang: A Software Modeling Language for the Model-View-Controller Design Pattern Mert Ozkaya1 and Irem Fidandan2 1Department of Computer Engineering, Yeditepe University, Istanbul, Turkey 2Eryaz Software, Istanbul, Turkey Keywords: Model-View-Controller (MVC), Software Modeling Language, Model Analysis, Code Generation, ASP.NET. Abstract: The Model-View-Controller (MVC) software design pattern promotes separating software systems 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 are 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 paper a visual, MVC-based modeling language called MVCLang, which enables to model MVC-based software architectures that can be easily analysed and implemented. MVCLang is supported with an Eclipse-based prototype toolset for specifying the visual MVC architectures and analysing 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 a software company that offers e-commerce solutions. Therein, 5 developers used MVCLang for their e-commerce project developments and provided feedback for a set of pre-determined questions. 1 INTRODUCTION entities that can be used for creating understandable software systems (Burbeck, 1987). Later on, MVC Model-View-Controller (MVC) has been proposed by has gained huge popularity in the area of web applica- Trygve Reenskaug in the late seventies as a software tions development, and many web technologies (e.g., design pattern, which aims at modularising the soft- .NET, JavaScript, and Php) nowadays offer their own ware systems into the model, view, and controller el- frameworks for the MVC-based web developments. ements and maximising their understandability and Moreover, as discussed in Section 6, many researches analysability (Reenskaug, 2003). Models represent have been conducted on extending MVC for various the system data, views represent the pictorial forms domain problems (e.g., secure systems, multi-agent on which the users see the model data, and controllers systems, and service-oriented systems). represent the interactions between the views and mod- However, the current MVC frameworks force els (i.e., how the models need to be used and manipu- practitioners to work on the software implementation lated upon any user requests via the views). Separat- and deal with the coding of the view, model, and ing the software development into different concerns controller units. While the MVC frameworks pro- maximises the cohesion and minimises the coupling, vide many re-usabilities, developers are still expected which is one of the main principals of quality cod- to deal with low-level programming issues that may ing and aids in reducing the development and mainte- require expertise on particular software languages nance cost. Also, separating the views from the busi- and technologies. Therefore, the effort required for ness logic and data enables multiple users (e.g., web developing and testing the model, view, and con- designers and developers) to work in parallel, which troller elements separately may be unexpectedly high. reduces the development time. Besides, other (probably non-technical) stakeholders MVC has first been applied in the Smalltalk 80 (e.g., customers) may not be involved in the develop- language in the late eighties, where the model, view, ment and testing process, which may negatively af- and controller concepts are represented as abstract fect the quality of software systems. To avoid these, 75 Ozkaya, M. and Fidandan, I. MVCLang: A Software Modeling Language for the Model-View-Controller Design Pattern. DOI: 10.5220/0009571400750083 In Proceedings of the 15th International Conference on Software Technologies (ICSOFT 2020), pages 75-83 ISBN: 978-989-758-443-5 Copyright c 2020 by SCITEPRESS – Science and Technology Publications, Lda. All rights reserved ICSOFT 2020 - 15th International Conference on Software Technologies Figure 1: The meta-model of the MVCLang language. one could enhance the level of abstraction by apply- ator translates MVC models into software code using ing software modeling, which promotes specifying the ASP.NET MVC framework. high-level software models that consist of abstract, In the rest of this paper, we initially introduce the explanatory statements without any platform-specific MVCLang language (i.e., syntax and semantics) and implementation details(Seidewitz, 2003). The high- then introduce MVCLang’s prototype toolset (i.e., the level models are potentially useful for the commu- model editor, analyser, and code generator). Next, we nication of the design decisions with different stake- illustrate MVCLang via the sports store case-study holders who can also contribute to the application de- and evaluate the language in industry. Lastly, we pro- velopment and testing despite having very little (or vide the discussions of the related works. no) experience in programming. The models can be useful for the early detection of the design errors that may otherwise go undetected until the system deploy- 2 OVERVIEW OF MVCLang ment and cause huge maintenance cost. The models that are analysed to be correct can be used for gener- MVCLang offers a visual notation set for the model- ating quality code that reflect the modeled design de- ing of MVC-based software architectures, which are cisions. However, as discussed in Section 6, software separated into four packages: model, view, controller, modeling has not yet been systematically employed and MVC. While the model, view, and controller for the development of MVC-based software appli- packages are created for modeling the model, view, cations. While many approaches have extended the and controller elements of the MVC architectures, the MVC design pattern for different needs, no any mod- MVC package is created for establishing the relation- eling platform consisting of a modeling language (i.e., ships between model, view, and controller elements the notation set) and its toolset has been proposed so that are modeled in their own packages. Figure 1 far for the MVC-based modeling, analysis, and im- shows MVCLang’s meta-model, which describes the plementation of software systems. modeling concepts composing each package and their The goal of this paper is to propose a software relationships. The visual symbols that are associated modeling language called MVCLang for the MVC- with the modeling concepts are depicted in Figure 2, based architecture modeling of software systems. Figure 3, Figure 4, and Figure 5, which are for the MVCLang offers a visual notation set for the specifi- model, view, controller, and MVC packages respec- cations of the model, view, and controller elements of tively. In the rest of this section, we discuss for each software systems and their relationships. MVCLang modeling package the syntax and semantics of the is supported with an Eclipse-based prototype toolset. language elements informally. That is, we describe The toolset’s modeling editor enables to create the vi- the visual symbols for the language concepts and their sual MVC architectures and check correctness for a relationships, the constituting parts of the language set of wellformedness rules. The toolset’s code gener- concepts and relationships, and how those concepts 76 MVCLang: A Software Modeling Language for the Model-View-Controller Design Pattern Figure 2: The abstract and concrete syntax for MVCLang’s model package. and relationships can be used and composed together to create meaningful specifications for each package. 2.1 Model Package As depicted in Figure 1, a model package is specified with a set of model elements that have association re- Figure 3: The abstract and concrete syntax for MVCLang’s lationships between each other. Models represent a view package. dataset to be stored and manipulated by the software system, which may be implemented as database ta- a link displayed on the view’s user interface, which bles. Figure 2 displays the concrete symbols that cor- can be clicked by the user. An action-link is spec- respond to the abstract concepts given in Figure 1. So, ified with the (i) name, (ii) request type, and (iii) each model consists of a set of properties that repre- http method.The request type can be an HTTP request sent the model data and are specified with the data that prompts the controller to return with a view or type and its name. The data type can be either inte- an AJAX request that do not prompt for a new view. ger, boolean, string, or double. The association rela- The http method can be GET or POST. A form mes- tionship is used to relate the data of different model sage represents the action that results from a form dis- datasets that are dependent on each other (e.g., the played on the view and transmits the data filled in the company and employee datasets). The association form to the controller. The form messages are speci- relationship is specified with the multiplicities and fied with the (i) form name, (ii) request type, and (iii) roles, where multiplicities can be one-to-one, one-to- http method. many, many-to-one, and many-to-many and role de- scribes the how each dataset acts in the relationship. 2.2 View Package Figure 3 shows the symbols for the view package. The partial view represents any re-usable view con- tent(s) that can be used (or rendered) as part of other view(s). The layout view represents the com- mon user-interface parts (e.g., the footer and header), which are shared among different views for offering a consistent layout appearenace.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages9 Page
-
File Size-