Model-Driven Web Engineering (MDWE) approaches have become an attractive research and technology solution for Web application development. However, for more than 20 years of development, the industry has not adopted them due to the mismatch between technical versus research requirements. To understand better this issue and the possible solutions, we have surveyed hundreds of engineers from different companies around the world. This post summarizes the results we got and a set of guidelines to improve model-driven Web engineering approaches to make them viable industry solutions.
Full details of the work can be found in Esteban Robles Luna, Juan M. Sánchez-Begínes, José Matías Rivero, Leticia Morales-Trujillo, José Gonzalez Enríquez, Gustavo Rossi. “Challenges for the Adoption of Model-Driven Web Engineering Approaches in Industry”. J. Web Eng. 17(3&4): 183-205 (2018). For a digested summary, just keep reading!
Challenges and hypothetical guidelines for successful adoption of MDWE
We present a list of issues that hinder the usage of MDWE in medium to big size companies. These clear practical problems need to be solved to support the “usefulness” claims that the MDWE community has been repeating for years. To provide a context for the issues that have been found, Figure 1 presents an agile development lifecycle process of a Web application.
The paper proposes a set of challenges and guidelines within the context of MDWE and then, to validate the proposed guidelines, it performs an empirical validation based on a survey. The survey is carried on over a hundred industry practitioners. The paper uses small experiments to apply MDWE in a company in addition to an exhaustive literature review to give support to its claims. As many different aspects are considered (not only technical) when dealing with limitations of MDWE approaches, we have created a categorization to stress the area where the issue was found: Social [S], Technical [T] and Economical [E].
Lack of control in development and deployment [S, T, E]
Creating a Web application is a complex process that involves not only coding/modeling but also having meetings with stakeholders and debugging the application to fix production problems.
Guideline: MDWE tools need to provide the following aspects to deeply control the actual development:
- Ways to hook in the modeling and transformation phases
- Make the code open source
Too focused on navigation [T]:
Opposite to what past research has shown the importance of different Web application aspects (e.g. integration), MDWE approaches still focus too much on one aspect of Web Applications: the navigational structure.
Guideline: Need to provide real tool support for the features that industry needs, beyond pure navigation or at least provide hooks to perform manual coding of these features.
Metamodel support and adaptation of its tools [S,T]
Extending a metamodel does not only require adding the new classes and transformations but also to adapt the tools that “consume” or depend on that metamodel in a timely manner
Guideline: Due to the existing technology and economic time constraints, metamodels and tools need to be adapted within days to cope with customer’s demands.
Traceability and debuggability [T]
One of the most important aspects of software development is the ability to introspect, change and monitor the “live” application under development to quickly fix the problems; these actions are considered as “debugging” an application.
Guideline: MDWE should provide those features to detect the root causes of the problems.
Lack of tools [T]
Building a Web application requires a set of tools that ease the process of development, deployment, and monitoring.
Guideline: To provide an industry valid approach, MDWEs need to support a handful set of tools that help with the complete application lifecycle.
Rigid architecture [T]
In current MDWE tools, the architecture is not modeled at all and, as a consequence, MDWE tools derive a simplistic 1-tier Web application. This 1-tier architecture can only handle a few sets of use cases and does not allow the development team to be able to adapt to future needs.
Guideline: MDWE need to model the architecture in such a way that development teams can decide which approach to use.
Technological aspects [T]
Logging, caching, load balancing and profiling (to name a few) are some of the aspects that engineers need to build highly scalable Web applications.
Guideline: These “technological” aspects need to be considered in some way inside the model-driven development process.
Community [S, E]
The MDWE space is very fragmented. There is a lack of consensus and terminology among the different approaches. This contrasts a lot with the area of web development frameworks, where each has a clear and large community of users and developers.
Guideline: These limitations and problems of description on MDWE not only entail understanding these issues, but also require unifying criteria and define common strategies in a shared quality model.
Today, two main business models to exploit MDWE approaches in industry exist. The first business model consists in implementing a specific tool support for the approach from free source environments. The second business model consists in implementing the approach under the environment of a powerful but commercial CASE tool
Guideline: Key questions are not only costs of a license, but also value (although it depends on the context), risks and incertitude that organizations assume with the implementation of these approaches and tools.
Empirical validation method for hypothetical guidelines
After establishing a series of hypotheses to the problems set out, it is necessary to carry out a study to gather information about the subject matter of experts in the field. The objective of this survey is:
- The first part of the survey is intended to obtain information about the participants as well as the company for which they are working. This makes us differentiate among the different members surveyed.
- The second part of the survey tries to analyze the processes or procedures as well as the tools they use in their companies as well as their opinions.
The aim is to extract useful information from these companies in order to validate or refute the hypotheses in some way. Some highlights of the survey are shown next.
Importance of architecture modeling in web applications
As Figure 2 shows, most users consider that understanding the architecture of the application that is been developed is extremely important, specifically 69 of the participating users (54.8%) has marked this response. In general, 99.2% think that understanding the architecture of the application they are developing is important.
And it’s not only about understanding, it is also about controlling and modeling the architecture. As we can observe in the following figure, 92.1% of the sample considers that it is important to know and control in detail the architecture of Web application, highlighting it as the most chosen and relevant option.
Distribution effort across the project lifecycle
The next question asked to participants is to organize a series of activities according to the effort they entail in the development of their projects. Figure 3 shows that the results obtained are not totally helpful since the opinions of the users are quite different in this regard.
Time to implement a change request in a web application
As Figure 4 lets us know, most of the users consider that the time available to implement and put into production a requirement when a change is requested during development is about 7 working days, as 44.4% of the participants think.
Importance of traceability from the models to the code
The results obtained in Figure 5 show that the majority of users consider that the fact of having traceability of the issues that could have caused an incidence is extremely important, being 42.9% the number of responses out of the total.
Importance of code-generation for web application development
Figure 6 clearly shows that, for the industrial developers we surveyed, the most important artefact is the code itself. importance of the code of Web application is fundamental in a Web application. And that while the automation of some building and deployment tasks is considered important, the actual code generation or derivation is not perceived as important.
Importance of tools for monitoring and profiling the web application performance
The next figure shows the results of asking the participants to evaluate the effort of different aspects related to the web application performance, especially putting in place monitoring and profiling strategies.
Importance of the community when choosing a web application framework
Clearly, the existence of a community behind a framework is a key aspect in choosing it. And if that framework is free much better. Figure 10 indicates that all companies avoid investing too much in tools, especially in software, since they fall into disuse too early. For this reason, 73% of the participants condition the purchase of such license to the value they believe the framework will contribute back to the company (e.g. in terms of savings in personnel due to effort reduction).
Conclusions and Future Works
To conclude, it has been possible to successfully verify many of the proposals raised thanks to the participants of the surveys that share the needs we presented. Despite this, not all the proposals have had the expected acceptance, since the needs of the respondents have not really clarified if the proposed solution fits each of them or is the same for all. Beyond the challenges covered in this paper, there are many other aspects (such as security, usability or support for testing) that we plan to include in a follow-up of this study.
In any case, it’s clear that MDWE frameworks have a long way to go before they can be massively adopted in the industry. We hope this list of challenges and guidelines points them to where to start.