Abstract
Dynamic web applications powered by Web Content Management Systems (WCMSs) such as Joomla, WordPress, or Drupal dominate today’s web. A main advantage of WCMSs is their functional extensibility by standardized WCMS extensions. However, the development and evolution of these extensions are challenging tasks. Due to dependencies to the core platform and other WCMS extensions, the code structure of an extension includes a large defect potential. Mistakes usually lead to website crashes and are hard to find, especially for inexperienced developers.
In this work, we define a model-driven development (MDD) process and apply it during the development of software extensions for the WCMS Joomla. To address two separate scenarios, involving the development of independent and dependent WCMS extensions, we use an MDD infrastructure, comprising a domain-specific language, a code editor, and reverse engineering facilities. In addition, we provide evidence indicating that our model-driven approach is useful to generate extensions with consistent interdependencies, demonstrating that the main issues of extension development in the WCMS domain can be addressed using a model-driven approach. By applying the MDD infrastructure on actual projects, we additionally present the lessons learned.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
JooMDD can be downloaded from GitHub https://github.com/icampus/JooMDD.
- 2.
An excerpt of the extension model can be found in [18].
References
Drupal.org. https://www.drupal.org
Joomla!.org. https://www.joomla.org
Magento - eCommerce Software & eCommerce Platform Solutions. https://magento.com/
Usage Statistics, Market Share of Content Management Systems for Websites. http://w3techs.com/technologies/overview/content_management/all
WordPress.org. https://wordpress.org
TYPO3 - The Enterprise Open Source CMS. https://typo3.org/
Antrim, J.: Technische Hochschule Mittelhessen - THM Organizer. https://www.thm.de/organizer/
Brambilla, M.: Interaction flow modeling language: Model-driven UI engineering of web and mobile apps with IFML. Morgan Kaufmann, Waltham (2015)
Brambilla, M., Cabot, J., Wimmer, M.: Model-Driven Software Engineering in Practice. Morgan & Claypool, San Rafael (2012)
Ceri, S., Fraternali, P., Bongio, A.: Web Modeling Language (WebML): a modeling language for designing web sites. Comput. Netw. 33(1–6), 137–157 (2000)
Efftinge, S., Spoenemann, M.: Xtend - Modernized Java, 02 December 2015. http://www.eclipse.org/xtend/
Efftinge, S., Spoenemann, M.: Xtext - Language Engineering Made Easy! 11 February 2016. https://eclipse.org/Xtext/
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)
Kraus, A., Knapp, A., Koch, N.: Model-Driven Generation of Web Applications in UWE. Ludwig-Maximilians-Universität München, München (2008)
Martínez, S., Garcia-Alfaro, J., Cuppens, F., Cuppens-Boulahia, N., Cabot, J.: Towards an access-control metamodel for web content management systems. In: Sheng, Q.Z., Kjeldskov, J. (eds.) ICWE 2013. LNCS, vol. 8295, pp. 148–155. Springer, Cham (2013). doi:10.1007/978-3-319-04244-2_14
McKeever, S.: Understanding web content management systems: evolution, lifecycle and market. Ind. Manage. Data Syst. 103(9), 686–692 (2003)
Norrie, M.C., Geronimo, L., Murolo, A., Nebeling, M.: The forgotten many? a survey of modern web development practices. In: Casteleyn, S., Rossi, G., Winckler, M. (eds.) ICWE 2014. LNCS, vol. 8541, pp. 290–307. Springer, Cham (2014). doi:10.1007/978-3-319-08245-5_17
Priefer, D., Kneisel, P., Taentzer, G.: JooMDD: a model-driven development environment for web content management system extensions - demonstration paper. In: Proceedings of the International Conference on Software Engineering and Companion, ICSE Companion 2016. ACM, New York (2016)
de Sousa Saraiva, J.: Development of CMS-based Web Applications with a Multi-Language Model-Driven Approach. Dissertation, Universidade Técinica de Lisboa, Lisbon, Portugal (2012)
Svansson, V., Lopez-Herrejon, R.E.: A web specific language for content management systems. In: Proceedings of the OOPSLA Workshop on Domain-Specific Modeling, Montréal, Canada (2007)
Trias, F.: Building CMS-based web applications using a model-driven approach. In: 2012 Sixth International Conference on Research Challenges in Information Science (RCIS), pp. 1–6
Trias, F., de Castro, V., López-Sanz, M., Marcos, E.: RE-CMS: a reverse engineering toolkit for the migration to CMS-based web applications. In: Proceedings of the Annual ACM Symposium on Applied Computing, SAC 2015, pp. 810–812. ACM, New York (2015)
Vermolen, S.D., Wachsmuth, G., Visser, E.: Generating database migrations for evolving web applications. In: Proceedings of the ACM International Conference on Generative Programming and Component Engineering, GPCE 2011, pp. 83–92
Vlaanderen, K., Valverde, F., Pastor, O.: Model-driven web engineering in the CMS domain: a preliminary research applying SME. In: Filipe, J., Cordeiro, J. (eds.) ICEIS 2008. LNBIP, vol. 19, pp. 226–237. Springer, Heidelberg (2009). doi:10.1007/978-3-642-00670-8_17
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Priefer, D., Kneisel, P., Strüber, D. (2017). Iterative Model-Driven Development of Software Extensions for Web Content Management Systems. In: Anjorin, A., Espinoza, H. (eds) Modelling Foundations and Applications. ECMFA 2017. Lecture Notes in Computer Science(), vol 10376. Springer, Cham. https://doi.org/10.1007/978-3-319-61482-3_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-61482-3_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-61481-6
Online ISBN: 978-3-319-61482-3
eBook Packages: Computer ScienceComputer Science (R0)