Model-Driven Software Engineering in Practice, Second Edition (IOP Concise Physics) by Marco Brambilla & Jordi Cabot & Manuel Wimmer
Author:Marco Brambilla & Jordi Cabot & Manuel Wimmer [Brambilla, Marco]
Language: eng
Format: azw3, epub
Publisher: Morgan & Claypool Publishers
Published: 2017-04-19T04:00:00+00:00
Figure 7.3: sWML model sketch.
Language purpose. sWML should allow the modeling of the content layer and the hypertext layer of Web applications. The content layer defines the schema of the persistent data which is presented to the user by the hypertext layer in form of Web pages. In addition, the hypertext layer defines the navigation between Web pages and the interaction with the content layer, e.g., querying content from the database.
Language realization. To support different sWML user types, a graphical syntax should be defined which may be used for discussing with domain experts and for reasoning on the structure of the hypertext layer and the content layer. However, for making a smooth transition from the standard development process based on programming languages to the model-driven approach, additionally, a textual syntax should be provided for developers who are familiar and used to working with text-based languages.
Language content. A sWML model consists of a content layer and a hypertext layer which reflects the previously mentioned purpose of the language.
A content model contains an unrestricted number of classes. Classes have a unique name (e.g., Tutorial) and multiple attributes (e.g., Tutorial.title). Attributes have an assigned name and type. For instance, permitted types are: String, Integer, Float, Boolean, and Email. For each class, one attribute has to be selected as the representative attribute which is not explicitly indicated in the concrete syntax to keep the syntax concise.
Hypertext models contain different kinds of pages, whereas each page has a name. Exactly one page is the homepage of the Web application. Later on, this page (and all directly linked pages of the homepage) can be accessed by all other pages of the Web application. Pages are subdivided into static and dynamic pages. Static pages represent only static content, e.g., a collection of useful links. In contrast, dynamic pages represent dynamically generated content coming from the database. Thus, a dynamic page always has a relationship to a class defining the type of the displayed instances. The relationship to the used classes is shown in parentheses under the name of the page. Dynamic pages are further subdivided into details pages and index pages having specific icons. Index pages show all instances of a class in terms of a list, e.g., a list consisting of all tutorials of the conference, showing only the representative attribute of the instances. In contrast, details pages always show exactly one instance, e.g., one tutorial, with all its attributes.
Links represent the navigation between pages by pointing from a source page to a target page. On the source page, the link is visualized to the user. Thus, a page usually knows its links pointing to other pages but it is unaware of incoming links. Two kinds of links are distinguished: (i) non-contextual links (NCLinks) are standard links, which do not transport any information, e.g., a link to a static page; and (ii) contextual links (CLinks) transport information to the target page, e.g., to transfer data needed to compute the content of the target page, e.g., to select the instance shown by a details page.
Download
Model-Driven Software Engineering in Practice, Second Edition (IOP Concise Physics) by Marco Brambilla & Jordi Cabot & Manuel Wimmer.epub
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8304)
Test-Driven Development with Java by Alan Mellor(6741)
Data Augmentation with Python by Duc Haba(6659)
Principles of Data Fabric by Sonia Mezzetta(6410)
Learn Blender Simulations the Right Way by Stephen Pearson(6305)
Microservices with Spring Boot 3 and Spring Cloud by Magnus Larsson(6178)
Hadoop in Practice by Alex Holmes(5961)
Jquery UI in Action : Master the concepts Of Jquery UI: A Step By Step Approach by ANMOL GOYAL(5809)
RPA Solution Architect's Handbook by Sachin Sahgal(5575)
Big Data Analysis with Python by Ivan Marin(5372)
The Infinite Retina by Robert Scoble Irena Cronin(5266)
Life 3.0: Being Human in the Age of Artificial Intelligence by Tegmark Max(5152)
Pretrain Vision and Large Language Models in Python by Emily Webber(4338)
Infrastructure as Code for Beginners by Russ McKendrick(4100)
Functional Programming in JavaScript by Mantyla Dan(4040)
The Age of Surveillance Capitalism by Shoshana Zuboff(3959)
WordPress Plugin Development Cookbook by Yannick Lefebvre(3813)
Embracing Microservices Design by Ovais Mehboob Ahmed Khan Nabil Siddiqui and Timothy Oleson(3616)
Applied Machine Learning for Healthcare and Life Sciences Using AWS by Ujjwal Ratan(3591)
