Summary: | Content Management Systems (CMSs) play an increasingly important role in the evolution of the World Wide Web, since almost half of the websites today use some form of CMS as their main development platform. CMSs provide development teams with standardized software platforms that significantly facilitate and speed up Web development, while maintaining high quality and low-cost implementation without requiring extensive programming expertise. Due to their flexibility and ease of use, CMSs are nowadays constantly gaining in popularity, and undoubtedly, they are among the most prominent platforms used by developers for building Web applications. The goal of this dissertation is to study and address challenging problems in the area of the widely used category of Web applications developed on top of CMSs, the so-called CMS-based Web applications, contributing novel models, methodologies and tools to optimize the quality of both Web development process and final products.
In the first part of this thesis, we deal with issues concerning the model-driven engineering perspective in CMS development. Despite the widespread use of CMSs, current Model-Driven Web Engineering (MDWE) methodologies have ignored this phenomenon, and thus, they cannot support the automated (model-driven) generation of CMS-based Web applications. Given that MDWE methodologies are actually driven by the expressiveness of the modeling languages that are being used within their context, this failure of existing MDWE methodologies is probably caused by the fact that they are based on generic modeling languages which lack the expressiveness to capture the particular development context of CMS platforms. To address this problem, we propose a new genre of modeling languages, called CMS-oriented modeling languages, which are specifically defined over the particular development context of CMS platforms. More specifically, we provide a framework to support their definition in three main stages. The first stage involves the analysis of the target CMS platform under a number of different viewpoints in order to determine its particular development context. Then, the second stage involves the creation of the domain model for the target CMS, including all the key elements of its development context that need to be captured by the CMS-oriented modeling language. Finally, the third involves the definition of the CMS-oriented modeling language, i.e., the formalization of its modeling primitives and concepts, based on the specifications elaborated in the two previous stages. In this way, the proposed CMS-oriented modeling languages have the expressiveness to represent CMS-based Web applications as models consisting of modeling elements which are in direct correspondence with the elements specified in the actual development context of the target CMS, making the transition from modeling to source-code level considerably easier, enabling the model-driven development in CMS domain. To support our case, we have applied the proposed framework on the popular open-source Joomla! CMS platform resulting in the definition of a modeling language oriented towards Joomla! CMS, which is accompanied by a prototype tool for modeling Joomla!-based Web applications according to the specifications of the proposed language.
In the second part, we deal with issues concerning the design quality of CMS-based Web applications throughout their entire development lifecycle. Undoubtedly, design quality is a key determinant factor for the success of an application, since it has a direct impact on usability, performance, maintenance, and other quality attributes of the application. However, as CMS-based Web applications evolve during their lifecycle, their design quality is typically severely undermined by several factors, such as their constantly increasing intrinsic complexity and the continuous modifications due to changing requirements, to name a few. In fact, as the lifecycle of a CMS-based Web application evolves, design inconsistencies tend to occur more and more frequently and it is very common for the final product to often drift away from the original design. This has a significant negative impact on usability and overall application quality, implying the need for techniques and tools to support the development of CMS-based Web applications by ensuring that design quality is maintained throughout all the phases of the application lifecycle, from the early design phases up to development and maintenance. In response to this need, we propose a novel methodology for the automated design quality evaluation of CMS-based Web applications, which, by inspecting their conceptual model under the viewpoint of design reuse, automatically identifies potential problems in them that compromise design quality by means of efficiency, consistency, and usability. More specifically, the proposed methodology automatically extracts the conceptual model of a CMS-based web application and, subsequently, submits it to a pattern-based analysis in order to identify the occurrences of all the incorporated recurrent patterns implying design reuse, appropriate or not. Then, based on evaluation metrics, the identified patterns are categorized as effective or ineffective design solutions. Intuitively, this categorization results in the identification of “hot-spots”, i.e., problematic areas in the application model due to ineffective ad-hoc forms of reuse, as well as, of a set of effective reusable design structures that can be used as building blocks by designers for the refactoring of such areas. By applying the methodology on a CMS-based Web application, developers can gain important information regarding its design quality, since it automatically highlights to them potential problems in the design model and provides them with a set of refactoring recommendations for improving the application’s structure, consistency and usability.
In the third and last part, we deal with issues concerning the identification of domain-specific design patterns for the development of CMS-based Web applications. Domain-specific design patterns are a powerful tool for developing quality Web applications in a certain application domain, since they provide designers with proven solutions to recurring design problems that occur in the domain. By using them, developers can gain a number of important advantages, such as increased design quality, reduced development and maintenance costs, as well as better communication between interdisciplinary teams, since patterns provide a common vocabulary to discuss the various design alternatives. Nevertheless, despite their numerous advantages, the number of available domain-specific patterns today is still small, as well as, the number of the application domains that have been explored which is also very limited. The most important factor contributing to this is the absence of systematic techniques to assist domain designers with the pattern identification process. This is mainly due to the fact that this process cannot be easily carried out in an automated way, since it is hard to find a systematic way to detect well-defined design partitions of a domain, able to capture its semantics. Furthermore, it is the very nature of domain-specific patterns that makes their identification difficult, since they must encompass generality and variability for being able to be instantiated in various web applications in a certain application domain. As a result, there is a great need for techniques to support the identification of domain-specific web design patterns. To this end, we here report the first attempt to automatically support their identification, by providing designers with recommendations about candidate domain-specific design patterns. More specifically, we propose a methodology which captures the designs of a collection of websites in a target application domain, and then, by utilizing graph mining techniques, obtains the identification of all the reusable design solutions which are used in them by designers as building blocks for addressing typical domain problems. The latter are provided to designers as candidate recommendations and they can significantly facilitate the identification of domain-specific web design patterns. By inspecting them, domain designers can explore all the various design alternatives which are used in the domain for handling a certain recurring problem. This way, they can have an overview of all the common design practices used in the domain for addressing typical domain problems, among which they can possibly recognize best practices and domain-specific design patterns. To support our case, we present the results of a case study conducted for the domain of academic websites.
|