Model-Driven Software Engineering in Practice, Second Edition (IOP Concise Physics) by Marco Brambilla & Jordi Cabot & Manuel Wimmer

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



Copyright Disclaimer:
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.