Please use this identifier to cite or link to this item: http://hdl.handle.net/10889/13359
Title: Efficient mining of design patterns for advanced modeling and optimization of content management system-based web applications
Other Titles: Αποδοτική εξόρυξη σχεδιαστικών προτύπων για προηγμένη μοντελοποίηση & βελτιστοποίηση εφαρμογών παγκόσμιου ιστού βασισμένων σε συστήματα διαχείρισης περιεχομένου
Authors: Γκαντούνα, Βασιλική
Keywords: Web engineering
Model-driven web engineering
Web modeling
Web development
Design reuse
Design pattern
Design evaluation
CMS
Joomla!
Web design
Web application
Web mining
Domain-specific design patterns
WebML
Keywords (translated): Συστήματα διαχείρισης περιεχομένου
Παγκόσμιος ιστός
Λογισμικό
Γλώσσες μοντελοποίησης
Abstract: 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.
Abstract (translated): Τα Συστήματα Διαχείρισης Περιεχομένου (Content Management Systems, CMSs) έχουν παίξει έναν σημαντικό ρόλο στην εξέλιξη του Παγκόσμιου Ιστού, καθώς σχεδόν το ήμισυ των διαδικτυακών τόπων σήμερα χρησιμοποιούν κάποιο είδος CMS ως βασική τους πλατφόρμα ανάπτυξης. Τα CMSs παρέχουν μια τυποποιημένη πλατφόρμα λογισμικού στις ομάδες ανάπτυξης η οποία διευκολύνει και επιταχύνει σημαντικά την ανάπτυξη εφαρμογών Παγκόσμιου Ιστού, ενώ ταυτόχρονα υποστηρίζουν υψηλής ποιότητας και χαμηλού κόστος υλοποίηση χωρίς να απαιτείται εκτεταμένη προγραμματιστική εμπειρία. Λόγω της ευελιξίας και της ευκολίας χρήσης τους, τα CMSs κερδίζουν συνεχώς σε δημοτικότητα και αδιαμφισβήτητα βρίσκονται ανάμεσα στις πιο διαδεδομένες πλατφόρμες που χρησιμοποιούνται ευρέως από τους προγραμματιστές για ανάπτυξη εφαρμογών Παγκόσμιου Ιστού. Στόχος αυτής της διατριβής είναι να μελετήσει και να διευθετήσει δύσκολα και απαιτητικά προβλήματα στην περιοχή των εφαρμογών Παγκόσμιου Ιστού που βασίζονται σε πλατφόρμες CMSs, επονομαζόμενες ως CMS-based Web applications, συνεισφέροντας μοντέλα, μεθοδολογίες και εργαλεία για την βελτιστοποίηση της ποιότητας τόσο της διαδικασίας ανάπτυξης τους, όσο και του ίδιου του τελικού προϊόντος λογισμικού. Στο πρώτο μέρος της παρούσας διατριβής, ασχολούμαστε με θέματα τα οποία αφορούν στην προοπτική Μηχανικής λογισμικού οδηγούμενη από μοντέλα (Model-Driven Engineering) για την ανάπτυξη εφαρμογών Παγκόσμιου Ιστού που βασίζονται σε CMSs. Παρά την ευρεία χρήση των CMSs, οι τρέχουσες μεθοδολογίες Μηχανικής λογισμικού οδηγούμενων από μοντέλα έχουν αγνοήσει αυτήν την κατηγορία συστημάτων, και επομένως, δεν μπορούν να υποστηρίξουν την αυτόματη (οδηγούμενη από μοντέλα) ανάπτυξη εφαρμογών βασισμένων σε CMSs. Δεδομένου πως οι μεθοδολογίες αυτές καθορίζονται στην πραγματικότητα από την εκφραστικότητα των γλωσσών μοντελοποίησης που χρησιμοποιούνται στο πλαίσιο τους, η αποτυχία τους να υποστηρίξουν τις εφαρμογές που βασίζονται σε CMSs πιθανότατα οφείλεται στο γεγονός πως βασίζονται σε γλώσσες μοντελοποίησης γενικού σκοπού, οι οποίες δεν έχουν τις δυνατότητες που απαιτούνται για να μοντελοποιήσουν το ιδιαίτερο περιβάλλον ανάπτυξης μιας πλατφόρμας CMS. Για την αντιμετώπιση αυτού του προβλήματος, προτείνεται ένα νέο είδος γλωσσών μοντελοποίησης, οι οποίες ονομάζονται γλώσσες μοντελοποίησης προσανατολισμένες σε CMSs, σχεδιασμένες ειδικά για να συλλάβουν και να μοντελοποιήσουν το περιβάλλον ανάπτυξης των πλατφορμών CMSs. Πιο συγκεκριμένα, προτείνεται ένα πλαίσιο το οποίο υποστηρίζει τον ορισμό τους σε τρία βασικά στάδια. Το πρώτο στάδιο περιλαμβάνει την ανάλυση της πλατφόρμας CMS ενδιαφέροντος υπό έναν αριθμό διαφορετικών πτυχών με στόχο τον ακριβή προσδιορισμό του ιδιαίτερου περιβάλλοντος ανάπτυξης της. Έπειτα, το δεύτερο στάδιο περιλαμβάνει την δημιουργία ενός μοντέλου αναφοράς για την συγκεκριμένη πλατφόρμα CMSs το οποίο περιλαμβάνει όλα τα βασικά στοιχεία του περιβάλλοντος ανάπτυξης της τα οποία πρέπει να μοντελοποιηθούν από μια γλώσσα μοντελοποίησης προσανατολισμένη στην συγκεκριμένη πλατφόρμα. Τέλος, το τρίτο στάδιο περιλαμβάνει τον ορισμό της γλώσσας μοντελοποίησης, δηλαδή την τυποποίηση των βασικών δομών και εννοιών μοντελοποίησης που θα χρησιμοποιεί, με βάση τις προδιαγραφές που προέκυψαν στα δυο προηγούμενα στάδια. Με αυτόν τον τρόπο, οι προτεινόμενες γλώσσες μοντελοποίησης προσανατολισμένες σε CMSs διαθέτουν την εκφραστικότητα να αναπαραστήσουν τις εφαρμογές που βασίζονται σε CMSs ως μοντέλα αποτελούμενα από στοιχεία μοντελοποίησης τα οποία είναι σε άμεση αντιστοιχία με τα στοιχεία του πραγματικού περιβάλλοντος ανάπτυξης μιας πλατφόρμας CMSs, καθιστώντας έτσι την μετάβαση από το επίπεδο μοντελοποίησης σε επίπεδο κώδικα (υλοποίησης) σημαντικά ευκολότερη. Αυτό επιτρέπει και καθιστά δυνατή την οδηγούμενη από μοντέλα ανάπτυξη εφαρμογών στον τομέα των CMSs. Για να υποστηρίξουμε το προτεινόμενο πλαίσιο, έχουμε προβεί στην εφαρμογή του πάνω στη δημοφιλή πλατφόρμα ανοιχτού κώδικα Joomla! CMS, η οποία έχει οδηγήσει στον ορισμό μιας γλώσσας μοντελοποίησης προσανατολισμένης σε αυτή την πλατφόρμα. Η γλώσσα αυτή υποστηρίζεται από ένα πρωτότυπο εργαλείο για την μοντελοποίηση εφαρμογών βασισμένων στο Joomla! σύμφωνα με τις προδιαγραφές της. Στο δεύτερο μέρος της διατριβής, ασχολούμαστε με θέματα τα οποία αφορούν στην ποιότητα σχεδιαστικού μοντέλου εφαρμογών Παγκόσμιου Ιστού που βασίζονται σε CMSs σε ολόκληρο τον κύκλο ζωής τους. Αδιαμφισβήτητα, η ποιότητα σχεδιασμού είναι ένας καθοριστικός παράγοντας για την επιτυχία μιας εφαρμογής, καθώς έχει άμεσο αντίκτυπο στην ευχρηστία, στην απόδοση, στη συντηρησιμότητα και σε άλλες παραμέτρους ποιότητας μιας εφαρμογής. Ωστόσο, καθώς οι εφαρμογές Παγκόσμιου Ιστού εξελίσσονται, κατά τη διάρκεια του κύκλου ζωής τους, η ποιότητα σχεδιασμού τους συνήθως υπονομεύεται από διάφορους παράγοντες, όπως η ολοένα και αυξανόμενη εγγενής τους πολυπλοκότητα και οι συνεχείς τροποποιήσεις στις οποίες υποβάλλονται λόγων των ραγδαία μεταβαλλόμενων απαιτήσεων. Στην πραγματικότητα, καθώς εξελίσσεται ο κύκλος ζωής μιας εφαρμογής Παγκόσμιου Ιστού που βασίζεται σε CMSs, οι σχεδιαστικές ασυνέπειες τείνουν να εμφανίζονται ολοένα και πιο συχνά, και είναι πολύ συχνό φαινόμενο το τελικό προϊόν να απέχει κατά πολύ από τον αρχικό σχεδιασμό. Το γεγονός αυτό έχει σημαντικό αρνητικό αντίκτυπο στην ευχρηστία και στη συνολική ποιότητα της εφαρμογής, υποδηλώνοντας την ανάγκη για τεχνικές και εργαλεία που να υποστηρίζουν την ανάπτυξη εφαρμογών διασφαλίζοντας πως η ποιότητα σχεδιασμού διατηρείται σε όλες τις φάσεις του κύκλου ζωής τους, από τις πρώτες φάσεις σχεδιασμού μέχρι την ανάπτυξη και τη συντήρηση τους. Ως απάντηση στην ανάγκη αυτή, προτείνεται μια μεθοδολογία για την αυτόματη αξιολόγηση της ποιότητας σχεδιασμού εφαρμογών Παγκόσμιου Ιστού που βασίζονται σε CMSs, η οποία επιθεωρώντας το μοντέλο σχεδιασμού τους (σε επίπεδο υπερκειμένου) υπό το πρίσμα της αποδοτικής επαναχρησιμοποίησης σχεδιασμού μέσα σε αυτό, οδηγεί στον αυτόματο εντοπισμό πιθανών προβλημάτων τα οποία υποσκάπτουν την ποιότητα σχεδιασμού από πλευράς απόδοσης, συνέπειας και ευχρηστίας. Πιο συγκεκριμένα, η προτεινόμενη μεθοδολογία εξάγει αυτόματα το εννοιολογικό μοντέλο μιας εφαρμογής βασισμένης σε CMSs και εν συνεχεία το υποβάλλει σε μια pattern-based ανάλυση με στόχο τον εντοπισμό όλων των επαναλαμβανόμενων προτύπων (σχεδιαστικών δομών) μέσα σε αυτό, τα οποία υποδηλώνουν επαναχρησιμοποίηση σχεδιασμού, αποδοτική ή μη. Έπειτα, με βάση ένα σύνολο μετρικών ποιότητας, τα ανακτηθέντα πρότυπα κατηγοριοποιούνται ως αποτελεσματικές ή αναποτελεσματικές σχεδιαστικές λύσεις. Διαισθητικά, αυτή η κατηγοριοποίηση καταλήγει στον εντοπισμό «hot-spots» στο σχεδιαστικό μοντέλο της εφαρμογής, δηλαδή προβληματικών περιοχών λόγω κακής επαναχρησιμοποίησης σχεδιασμού, καθώς επίσης και ενός συνόλου αποδοτικά επαναχρησιμοποιούμενων σχεδιαστικών δομών που μπορούν να χρησιμοποιηθούν ως αποτελεσματικά δομικά στοιχεία (building blocks) από τους σχεδιαστές για την αναδιάταξη (refactoring) των προβληματικών περιοχών. Εφαρμόζοντας την προτεινόμενη μεθοδολογία σε μια εφαρμογή Παγκόσμιου Ιστού που βασίζεται σε CMSs, οι σχεδιαστές της μπορούν να κερδίσουν σημαντικές πληροφορίες σχετικά με την ποιότητα σχεδιασμού της, καθώς η μεθοδολογία υποδεικνύει με αυτόματο τρόπο σε αυτούς πιθανά προβλήματα στο σχεδιαστικό της μοντέλο, αλλά και πιθανές προτάσεις αναδιάταξης για την βελτιστοποίηση της δομής, της συνέπειας και της ευχρηστίας της εφαρμογής. Στο τρίτο και τελευταίο μέρος της διατριβής, ασχολούμαστε με θέματα τα οποία αφορούν στην εξόρυξη και στον εντοπισμό υποψήφιων σχεδιαστικών προτύπων εξειδικευμένων ανά τομέα εφαρμογής (domain-specific design patterns) για την ανάπτυξη εφαρμογών Παγκόσμιου Ιστού βασισμένων σε CMSs. Τα σχεδιαστικά πρότυπα εξειδικευμένων ανά τομέα εφαρμογής (domain-specific design patterns) είναι ένα ισχυρό εργαλείο για την ανάπτυξη ποιοτικών εφαρμογών σε ένα συγκεκριμένο τομέα (domain), καθώς παρέχουν στους σχεδιαστές αποδεδειγμένες λύσεις σε τυπικά προβλήματα που εμφανίζονται επανειλημμένως στον συγκεκριμένο τομέα. Χρησιμοποιώντας τα, οι σχεδιαστές εφαρμογών μπορούν να αποκομίσουν έναν αριθμό από σημαντικά πλεονεκτήματα, όπως αυξημένη ποιότητα σχεδιασμού, μειωμένο κόστος ανάπτυξης και συντήρησης, καθώς επίσης και καλύτερη επικοινωνία ανάμεσα στις διάφορες ομάδες ανάπτυξης, δεδομένου πως τα πρότυπα παρέχουν μια κοινή βάση για την επικοινωνία των διάφορων εναλλακτικών σχεδιασμών. Παρόλα αυτά, παρά τα πολυάριθμα πλεονεκτήματα τους, ο αριθμός των διαθέσιμων σχεδιαστικών προτύπων εξειδικευμένων ανά τομέα εφαρμογής είναι σήμερα πολύ μικρός όπως επίσης είναι περιορισμένος και ο αριθμός των τομέων εφαρμογών που έχουν διερευνηθεί μέχρι στιγμής. Ο πιο σημαντικός παράγοντας στον οποίο οφείλεται αυτό το γεγονός είναι η έλλειψη συστηματικών τεχνικών που να βοηθούν τους σχεδιαστές με την διαδικασία αναγνώρισης και εντοπισμού αυτών των προτύπων. Αυτό οφείλεται κυρίως στο γεγονός πως η διαδικασία αυτή είναι δύσκολο να αυτοματοποιηθεί, καθώς είναι δύσκολο να εντοπίσει κανείς με συστηματικό τρόπο καλά ορισμένες και αποτελεσματικές υποδιαιρέσεις ενός τομέα εφαρμογής, ικανών να αποτυπώνουν την σημασιολογία του. Επιπλέον, είναι και η ίδια η φύση αυτών των προτύπων που δυσχεραίνει τον εντοπισμό τους, καθώς πρέπει να διέπονται από μια γενικότητα και μεταβλητότητα (variability) έτσι ώστε να μπορούν να χρησιμοποιηθούν σε διάφορες εφαρμογές σε έναν συγκεκριμένο τομέα εφαρμογής. Επομένως, υπάρχει μεγάλη ανάγκη για τεχνικές οι οποίες να υποστηρίζουν την διαδικασία εντοπισμού σχεδιαστικών προτύπων εξειδικευμένων ανά τομέα εφαρμογής. Για το σκοπό αυτό, στα πλαίσια της παρούσας διατριβής, παρουσιάζεται μια πρώτη προσπάθεια υποστήριξης αυτής της διαδικασίας με αυτόματο τρόπο, παρέχοντας στους σχεδιαστές προτάσεις για υποψήφια σχεδιαστικά πρότυπα. Πιο συγκεκριμένα, προτείνεται μια μέθοδος αυτόματης εξόρυξης υποψήφιων σχεδιαστικών προτύπων εξειδικευμένων ανά τομέα εφαρμογής. Για να το επιτύχει αυτό, η προτεινόμενη μέθοδος εξάγει τα σχεδιαστικά μοντέλα ενός συνόλου εφαρμογών σε ένα συγκεκριμένο τομέα εφαρμογής ενδιαφέροντος, και στη συνέχεια, αξιοποιώντας τεχνικές εξόρυξης γράφων (graph mining techniques), πετυχαίνει τον εντοπισμό όλων των επαναχρησιμοποιούμενων σχεδιαστικών λύσεων μέσα σε αυτά που χρησιμοποιούνται για την επίλυση τυπικών προβλημάτων τομέα. Οι ανακτηθέντες σχεδιαστικές λύσεις παρέχονται στους σχεδιαστές ως προτάσεις υποψήφιων σχεδιαστικών προτύπων εξειδικευμένων ανά τομέα εφαρμογής, διευκολύνοντας σημαντικά τον εντοπισμό τους. Επιθεωρώντας αυτές τις προτάσεις, οι σχεδιαστές μπορούν να διερευνήσουν όλους τους διαφορετικούς εναλλακτικούς σχεδιασμούς που χρησιμοποιούνται από τους σχεδιαστές σε έναν τομέα εφαρμογής για την επίλυση τυπικών σχεδιαστικών προβλημάτων σε αυτόν. Με αυτόν τον τρόπο, μπορούν να έχουν μια επισκόπηση όλων των κοινών σχεδιαστικών πρακτικών που χρησιμοποιούνται στον συγκεκριμένο τομέα για την επίλυση τυπικών προβλημάτων, ανάμεσα στις οποίες μπορούν πιθανότατα να αναγνωρίσουν και να διακρίνουν καλές πρακτικές (best practices) και σχεδιαστικά πρότυπα εξειδικευμένων ανά τομέα εφαρμογής. Για να υποστηρίξουμε την προτεινόμενη μεθοδολογία, παρουσιάζουμε τα αποτελέσματα μιας μελέτης περίπτωσης που έχει διεξαχθεί για τον τομέα των ακαδημαϊκών διαδικτυακών τόπων.
Appears in Collections:Τμήμα Μηχανικών Η/Υ και Πληροφορικής (ΔΔ)

Files in This Item:
File Description SizeFormat 
Gkantouna_Vassiliki_Thesis_2018_2019.pdf5.37 MBAdobe PDFView/Open


This item is licensed under a Creative Commons License Creative Commons