Part III. Web Engineering

The Web is possibly the most used feature of the Internet, and of its many uses and features one that cannot be neglected is the scope of Web Applications. They are useful for a diversity of end-users and companies, achieving power that were commonly related to desktop software and then changing the traditional way of computer interaction, diversifying the platforms where software can be accessed. For example, moving from desktop computers to tablets and smartphones, or even diminishing the operational system role to become a simple interface to web apps. This way, the development of such web apps cannot be neglected to a “lower form of development”, needing as software engineering as any other piece of software.

However, Web developers often use ad hoc, geek or technee-type approaches, which lack rigor, systematic techniques, sound methodologies, and quality assurance. This is why we need to mention first the most important factors for the quality.

Quality of Web Applications

We can speak about external and internal qualities. External qualities are visible to the user and includes the following ones:

  • correctness: a web application is functionally correct if it behaves according to the specification of the application

  • reliability: the probability that the software will operate as expected, occurring software errors are not serious

  • robustness: software behaves reasonably even in circumstances that were not anticipated in the requirements specification

  • actuality: actuality of content must be guaranteed

  • user-friendliness: easy to use by human (novice / experts)

  • efficiency: economical handling of resources (time, storage space)

  • security: system is protected from unauthorized access.

Internal qualities are concerning and visible to the developer:

  • portability: a web application is portable if it can run in different environments

  • interoperability: refers to the ability of the web application to coexist and cooperate with other systems

  • maintainability: ability to modify a web application after it has been deployed, to correct errors or extend the web application

These factors are shown that each solution is a compromise and we need to made a tradeoff when choosing our own solution. This can be seen in the following figure.

The tradeoff-circle for Web applications

The cost of bad design, shabby development, poor performance, and/or lack of content management for Web-based applications have many serious consequences. A survey in the end of 2000 showed that most of the Web-based projects are faced with serious problems which resulted delays, malfunctioning functionalities or budget overrun. As a result, developers, users, and other stakeholders have become increasingly concerned about the manner in which complex Web-based systems are created as well as the level of system performance, quality, and integrity.

Modern Web applications are full-fledged, complex software systems. Due to the evolution of Web technologies the Web has become a primary platform for developing applications. However, as these technologies evolve very fast, they might become obsolete soon. Developers of Web applications need sophisticated solutions that support the whole product lifetime of an application that is able to cope with the quick changes of the underlying technologies.

Therefore, the development of Web applications requires a methodologically sound engineering approach. Model-driven Web Engineering (MDWE) is a still emerging field aiming at providing sound model-based solutions for building Web applications that try to separate the abstract design (PIM) from the concrete technological platforms (PSMs). However, current MDWE approaches cannot provide solutions for all kinds of the requirements against a software system but the directions are clear.

Support for Web Application Development