Eindhoven University of Technology MASTER Comparing a Code-Based
Total Page:16
File Type:pdf, Size:1020Kb
Eindhoven University of Technology MASTER Comparing a code-based implementation with a model-driven implementation of a cloud computing platform (PHP vs Mendix) Guillen Becerril, M.G. Award date: 2011 Link to publication Disclaimer This document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Student theses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the document as presented in the repository. The required complexity or quality of research of student theses may vary by program, and the required minimum study period may vary in duration. General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain Reengineering a Cloud Computing Platform using Model based Technologies Manuel Gustavo Guillen Becerril November 2011 Comparing a code-based implementation with a model-driven implementation of a Cloud Computing Platform (PHP vs Mendix) By Manuel Gustavo Guillen Becerril A thesis submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Business Information Systems Eindhoven University of Technology 2011 Supervisor: Dr. Ir. Pieter Van Gorp Examination Committee: Dr. Alexander Serebrenik Dr. Marco Comuzzi Dr. Ir. Pieter Van Gorp Eindhoven, November ii ACKNOWLEDGEMENTS This thesis is the result of my graduation project, which concludes the master program Business Information Systems at the Eindhoven University of Technology. The project was carried out within the Information Systems group at the School of Industrial Engineering. First of all I want to thank my sister Kalina Guillen and my parents Manuel Guillen and Irma Becerril. Without their support and care this would never have even begun. I would also like to thank all my friends and relatives in Mexico for their constant motivation, help in many situations and believe in me. I would like to extend my gratitude to my supervisor, Pieter Van Gorp for sharing his wisdom and guidance for the completion of this work; to Alexander Serebrenik for his comments and suggestions after my interim presentations and being part of my evaluation committee; and to Marco Comuzzi for his feedback and also being part of the evaluation committee. Furthermore, I would like to show my gratitude to my best team-mates, class-mates and friends Hector Diaz and Santiago Hernandez for all their help and support through these two years in Netherlands. To everyone I have met in Eindhoven who cared and supported me in spite so many difficulties. Finally, pursuing this master program and writing this thesis would not have been possible without the help of God. MANUEL GUILLEN i ABSTRACT Model Driven Development (MDD) has matured over the last few years and is now becoming an established technology. One advantage that is promoted by the MDD is the improved maintainability during the systems evolution over conventional development approaches. The elements that are used in this approach (metamodels and transformations) need to be handled different when it refers to maintainability assessments in comparison to code-based development. However there is still a lack of a comprehensive study about the impact of model-driven development approach on the maintainability of software. This thesis presents work towards the finding of appropriate approach and metrics for measuring maintainability within model-driven environment when compared to code-based approach in the domain of Web Information Systems. In order to accomplish the assignment, the project is divided in two parts. The first part is about the analysis of current solution which name is SHARE and is a code-based solution implemented with PHP. The analysis is part of a case study that consists in (1) the model capture (reverse engineering), (2) the problem resolution and, (3) the implementation (forward engineering). Mendix is used as a MDE (Model-Driven Engineering) tool for this project. For the second part of the study, it is necessary to evaluate and compare both solutions and determine which one supports the implementation of new features better (maintenance). A new framework is created for that purpose that classifies the solutions in four levels: conceptual level, design level, language level, and tool level. For the language level, the GQM framework and the MVC architecture are combined in order to obtain valuable metrics and be able to evaluate model language versus code language. Finally, results are obtained and even the model-driven arises as to be better than code based implementation, there are certain details that make interesting to perform this study in different domains using for evaluation the framework within the development of this project. ii TABLE OF CONTENTS LIST OF FIGURES ............................................................................................................................................. V LIST OF TABLES ............................................................................................................................................... VI 1 INTRODUCTION ...................................................................................................................................... 1 1.1 PROBLEM DEFINITION ................................................................................................................................. 1 1.1.1 Evolution of Programming Languages and Software Development Platforms ....................................... 1 1.2 MOTIVATION ............................................................................................................................................... 5 1.3 RESEARCH METHOD .................................................................................................................................... 6 1.4 STRUCTURE OF THE REPORT ........................................................................................................................ 8 2 PRELIMINARIES ....................................................................................................................................... 9 2.1 WEB BASED SYSTEMS .................................................................................................................................... 9 2.2 MAINTAINABILITY ..................................................................................................................................... 10 2.2.1 Factors ................................................................................................................................................... 10 2.2.2 Difference between Maintenance and Maintainability.......................................................................... 11 2.3 RELATED WORK ........................................................................................................................................ 11 2.4 MODEL-DRIVEN ENGINEERING ................................................................................................................ 13 2.5 DOMAIN SPECIFIC LANGUAGES (DSLS) ................................................................................................... 15 2.6 UML DIAGRAMS ....................................................................................................................................... 16 2.7 BUSINESS PROCESS MODEL AND NOTATION ............................................................................................ 17 2.8 MENDIX...................................................................................................................................................... 18 2.8.1 Characteristics ....................................................................................................................................... 19 2.8.2 Competitors............................................................................................................................................ 20 2.8.3 Justification ............................................................................................................................................ 21 2.9 PHP ........................................................................................................................................................... 22 2.9.1 Characteristics ....................................................................................................................................... 23 2.9.2 Competitors............................................................................................................................................ 24 2.9.3 Justification ............................................................................................................................................ 25 3 CASE STUDY ........................................................................................................................................... 27 3.1 SHARE ...................................................................................................................................................... 27